Actions

Difference between revisions of "ProSonic"

From Sonic Retro

(Engine 1)
(Engine 2 timeline (partial))
Line 53: Line 53:
 
*<b>08/20/2006</b>
 
*<b>08/20/2006</b>
 
This build is nearly identical to the 07/31/2006 build. The most significant changes were all behind the scenes, including changing some data file formats.
 
This build is nearly identical to the 07/31/2006 build. The most significant changes were all behind the scenes, including changing some data file formats.
 +
 +
====Engine 2====
 +
*<b>12/15/2006</b>
 +
This was the start of a complete rewrite of the engine. At this point, there was no player object. The arrow keys controlled the camera to view the level. The drawing code was completely different from the original engine in an attempt to make coding effects for paralax scrolling much easier. The side effect was it ran very poorly only older computers. This version came with several executeables, each demonstrating a unique aspect of the drawing code to show to the public.
 +
 +
*<b>12/25/2006</b>
 +
Sprites had been added to the engine by this point. A new feature not seen in Engine 1 was translucency which used a table created by a set of algorithms to determine what the closest matching color would be to use based on the percentage of translucency used.
 +
 +
*<b>12/28/2006</b>
 +
A level created by [[StephenUK]] was used in place of Chemical Plant Zone. Paralax scrolling abilities were enhanced and shown off in the new level.
 +
 +
*<b>01/10/2007</b>
 +
This version introduced the build-in level editor. It only had the ability to change tiles at this point. Zooming support was also added and worked by using the Page Up and Page Down keys on the keyboard.
 +
 +
*<b>04/01/2007</b>
 +
Various color modes were added. In addition to the standard 8-bit color mode, 15-bit and 16-bit modes were now supported.  The drawing code had to be extended to work with these new modes. This version also included a DOS build, but it was limited to 8-bit color. Also, a level switching mechanism was added which worked by using the 7, 8, and 9 keys on the keyboard. Using the 1, 2, and 3 keys would switch between timezones for levels that supported them.
 +
 +
*<b>04/03/2007</b>
 +
This was a DOS build. The executeable includes some minor changes, but none that are apparent when running the program.
 +
 +
*<b>04/25/2007</b>
 +
This was an attempt to add level rotation support. It never worked right, resulting in scrambled graphics. The engine was left untouched after this for nearly a year.
  
 
==External links==
 
==External links==

Revision as of 13:42, 24 May 2009

Sonicretro-round.svg This short article is in need of work. You can help Sonic Retro by adding to it.

ProSonic is a Sonic the Hedgehog game engine that has been in development since December 15, 2005. It is headed by saxman, a long-time veteran of the Sonic community. The engine made its first public release on August 22, 2008. A major update to the engine is being worked on, but no date is currently available.

Features

Some of ProSonic's key features include:

  • Import level data from the original Sonic games
  • Integrated real-time level editor
  • Genesis YM2612 FM synthesis with GYM and VGM file support
  • True Sonic physics ported directly from the disassembly
  • 16-bit hi-color for creating colorful environments not possible on Genesis
  • "BLAST Programming Interface" for interfacing ProSonic with Genesis code
  • Scripting support for writing objects as of May, 2009

The engine is being programmed in C with the aid of the Allegro software development library. The engine compiles for Microsoft Windows, MS-DOS, and Linux.

BLAST Programming Interface

The BLAST Programming Interface is part of the ProSonic engine. The interface allows Motorola 68000 code with the internal ProSonic engine code to allow Sega Genesis code to run in ProSonic. This essentially opens the door for 68000 emulation. BLAST isn't actually complete emulation, but is instead a partial implementation of 68000 instruction interpretations with modifications to make 68000 compatible data to work on Intel-based platforms.

Smart Mix

Smart Mix is a feature of the sound code that allows the audio to be mixed above the range of clipping. It uses a combination of a compressor and a mixer to adjust the audio so the loudness remains the same while the actual volume of the voices is reduced. This prevents harsh clipping. The purpose behind this feature is to allow the engine to handle proper mixing since most people aren't audio engineers.

Development timeline

The following dates represent existing backups of the ProSonic engine. The descriptions reflect what changes to the engine make each version unique.

Engine 1

  • 02/12/2006

This is the earliest backup available of the ProSonic engine. The engine was only two months old at this point, and it ran as a DOS application. Navigating was very difficult as the wonky physics caused the player to bounce around a lot, and the F8 key was used to allow the player to float while in mid-air.

  • 02/21/2006

This build introduces scripting functionality for objects. It's very buggy and causes the engine to become unstable and crash.

  • 02/27/2006

This was a test build created to try and determine why the player refused to fall to the ground. It turned out to be a problem involving the mismanagement of memory.

  • 03/25/2006

Physics were taking an overhaul during this time. Moving off of ramps worked better, but sailing smoothly across the landscape was broken. It was also easier to navigate around the levels. In addition to these changes, a title card sequence was added.

  • 05/02/2006

The physics are much better at this point, but they were not yet perfect. This build was made right before the engine was reworked slightly to handle the Windows port.

  • 05/30/2006

Water had been added to the engine, including distortion filters to make the water sway from side to side. At this point, the engine had been successfully ported over to Windows, where it would remain as the preferred platform for development. Also, level data was grouped into the newly created PZF format.

  • 07/02/2006

By this point, a level switching mechanism had been worked into the engine by using the F6 key. The engine also supported different tile sizes, including 32x32, 64x64, 128x128 (Sonic 2 and 3), and 256x256 (Sonic 1.) Some Sonic 1 levels were successfully ported over and were playable.

  • 07/26/2006

The physics had changed yet again. This time, gliding across floors worked almost flawlessly, but the player's speed was wrong. Controlling the player was much more difficult.

  • 07/31/2006

Extra debug information was added in an attempt to study the physics and make them better.

  • 08/20/2006

This build is nearly identical to the 07/31/2006 build. The most significant changes were all behind the scenes, including changing some data file formats.

Engine 2

  • 12/15/2006

This was the start of a complete rewrite of the engine. At this point, there was no player object. The arrow keys controlled the camera to view the level. The drawing code was completely different from the original engine in an attempt to make coding effects for paralax scrolling much easier. The side effect was it ran very poorly only older computers. This version came with several executeables, each demonstrating a unique aspect of the drawing code to show to the public.

  • 12/25/2006

Sprites had been added to the engine by this point. A new feature not seen in Engine 1 was translucency which used a table created by a set of algorithms to determine what the closest matching color would be to use based on the percentage of translucency used.

  • 12/28/2006

A level created by StephenUK was used in place of Chemical Plant Zone. Paralax scrolling abilities were enhanced and shown off in the new level.

  • 01/10/2007

This version introduced the build-in level editor. It only had the ability to change tiles at this point. Zooming support was also added and worked by using the Page Up and Page Down keys on the keyboard.

  • 04/01/2007

Various color modes were added. In addition to the standard 8-bit color mode, 15-bit and 16-bit modes were now supported. The drawing code had to be extended to work with these new modes. This version also included a DOS build, but it was limited to 8-bit color. Also, a level switching mechanism was added which worked by using the 7, 8, and 9 keys on the keyboard. Using the 1, 2, and 3 keys would switch between timezones for levels that supported them.

  • 04/03/2007

This was a DOS build. The executeable includes some minor changes, but none that are apparent when running the program.

  • 04/25/2007

This was an attempt to add level rotation support. It never worked right, resulting in scrambled graphics. The engine was left untouched after this for nearly a year.

External links