Actions

Difference between revisions of "Sonic Physics Guide"

From Sonic Retro

(Added basics page reference)
(Added page)
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
ROM Hacks make the process of developing a functional Sonic game with unique art, enemies, and modifications much easier, since the game engine and basic mechanics are already functional. However, if the game requires a different game engine, modifying existing low-level assembly may be inappropriate, and some game designers might choose to program their own unique game engine. The physics of a game engine are rules that describe how to transform the player's input (either in the form of buttons, keyboard, or even a mouse if the designer feels inclined) into appropriate changes in the position of the sprites in the game (such as the Sonic sprite, or alternatively, how enemy sprites will respond). These physics guides will hopefully make the process of simulating the rules used in Sonic games easier.
+
ROM Hacks make the process of developing a functional Sonic game with unique art, enemies, and modifications much easier, since the game engine and basic mechanics are already functional. However, if the game requires a different game engine, modifying existing low-level assembly may be inappropriate, and some game designers might choose to program their own unique game engine. The physics of a game engine are rules that describe how to transform the Player's input (either in the form of buttons, keyboard, or even a mouse if the designer feels inclined) into appropriate changes in the position of the sprites in the game (such as the Sonic sprite, or alternatively, how enemy sprites will respond). These physics guides will hopefully make the process of simulating the rules used in Sonic games easier.
  
 
Since the rules themselves are independent of how they are implemented, many people choose programming languages such as Java, C, C++, Python, or a Lisp dialect to implement game physics. In addition, people can choose to use more specialized applications like Adobe Flash (Animate), GameMaker Studio 2, or a Clickteam program like Multimedia Fusion 2.
 
Since the rules themselves are independent of how they are implemented, many people choose programming languages such as Java, C, C++, Python, or a Lisp dialect to implement game physics. In addition, people can choose to use more specialized applications like Adobe Flash (Animate), GameMaker Studio 2, or a Clickteam program like Multimedia Fusion 2.
Line 8: Line 8:
 
*[[SPG:Basics]]
 
*[[SPG:Basics]]
 
A prerequisite for much of the info on this guide.
 
A prerequisite for much of the info on this guide.
 +
*[[SPG:Characters]]
 +
Basic info about characters such as their varying sizes and jump height, and also detailing how their moves work.
 +
 +
<div class="large-3 columns">
 +
===Collision===
 
*[[SPG:Solid Tiles]]
 
*[[SPG:Solid Tiles]]
A detailed description of sloped terrain, and how Sonic will interact with it in general. Also explaining how some specific actions such as walking, jumping, and rolling react to slope angles.
+
A detailed description of how sloped terrain is constructed, and how objects use sensors to collide with it.  
 +
*[[SPG:Slope Physics]]
 +
How the Player moves with momentum over angled surfaces, along with the specific physics for actions such as rolling.
 
*[[SPG:Solid Objects]]
 
*[[SPG:Solid Objects]]
Explaining object hitboxes, solidity, Sonic's hitbox, and other ways objects directly interact with Sonic.
+
Explaining object hitboxes, solidity, the Player's hitbox, and other ways objects directly interact with them.
 +
</div>
 +
<div class="large-3 columns">
 +
===Gameplay===
 
*[[SPG:Running]]
 
*[[SPG:Running]]
Describing how Sonic moves and changes actions on flat ground.
+
Describing how horizontal inputs control the Player.
 
*[[SPG:Jumping]]
 
*[[SPG:Jumping]]
Sonic's variable jump and acceleration in the air.
+
The Player's jump and acceleration in the air.
 
*[[SPG:Rolling]]
 
*[[SPG:Rolling]]
How rolling controls on flat ground.
+
Physics and quirks of rolling.
 +
*[[SPG:Game Objects]]
 +
How objects such as rings, enemies, blocks, and springs move around, are constructed, and react to certain situations.
 +
*[[SPG:Main Game Loop]]
 +
The order of events for objects, including characters.
 +
</div>
 +
 
 +
<div class="large-3 columns">
 +
===Specific===
 
*[[SPG:Ring Loss]]
 
*[[SPG:Ring Loss]]
Detailing how rings disperse when hit.
+
How rings disperse when hit.
 +
*[[SPG:Getting Hit]]
 +
What happens when the Player gets hit.
 +
*[[SPG:Rebound]]
 +
Describing how the Player bounces off enemies and other destroy-able items.
 
*[[SPG:Underwater]]
 
*[[SPG:Underwater]]
 
How Sonic's abilities change underwater.
 
How Sonic's abilities change underwater.
Line 25: Line 47:
 
How Sonic's abilities change when super.
 
How Sonic's abilities change when super.
 
*[[SPG:Special Abilities]]
 
*[[SPG:Special Abilities]]
Specific abilities such as spindashing, flying, gliding, and elemental shields.
+
Abilities such as spindashing and elemental shields.
 +
</div>
 +
 
 +
<div class="large-3 columns">
 +
===General===
 
*[[SPG:Camera]]
 
*[[SPG:Camera]]
Detailing how the camera follows Sonic.
+
Mechanics of the camera following the Player.
*[[SPG:Getting Hit]]
 
What happens when Sonic gets hit.
 
*[[SPG:Rebound]]
 
Describing how Sonic bounces off enemies and other destroy-able items.
 
 
*[[SPG:Animations]]
 
*[[SPG:Animations]]
Covering animation frame durations and how & when they appear.
+
Covering how animations play and specific animation timings.
*[[SPG:Game Objects]]
+
</div>
Describing objects such as rings, enemies, blocks, and springs. Including how they move around, how they are constructed, and how they react to certain situations.
+
 
 +
<div class="large-3 columns">
 +
===Special===
 +
*[[SPG:Overlay Scripts]]
 +
Lua scripts which overlay the game in an emulator for an interactive visual of collision.
 +
</div>
 
[[Category:Sonic Physics Guide| ]]
 
[[Category:Sonic Physics Guide| ]]

Revision as of 15:41, 30 April 2021

ROM Hacks make the process of developing a functional Sonic game with unique art, enemies, and modifications much easier, since the game engine and basic mechanics are already functional. However, if the game requires a different game engine, modifying existing low-level assembly may be inappropriate, and some game designers might choose to program their own unique game engine. The physics of a game engine are rules that describe how to transform the Player's input (either in the form of buttons, keyboard, or even a mouse if the designer feels inclined) into appropriate changes in the position of the sprites in the game (such as the Sonic sprite, or alternatively, how enemy sprites will respond). These physics guides will hopefully make the process of simulating the rules used in Sonic games easier.

Since the rules themselves are independent of how they are implemented, many people choose programming languages such as Java, C, C++, Python, or a Lisp dialect to implement game physics. In addition, people can choose to use more specialized applications like Adobe Flash (Animate), GameMaker Studio 2, or a Clickteam program like Multimedia Fusion 2.

Hopefully, these guides will provide adequate information to facilitate implementation.

Physics Guides

A prerequisite for much of the info on this guide.

Basic info about characters such as their varying sizes and jump height, and also detailing how their moves work.

Collision

A detailed description of how sloped terrain is constructed, and how objects use sensors to collide with it.

How the Player moves with momentum over angled surfaces, along with the specific physics for actions such as rolling.

Explaining object hitboxes, solidity, the Player's hitbox, and other ways objects directly interact with them.

Gameplay

Describing how horizontal inputs control the Player.

The Player's jump and acceleration in the air.

Physics and quirks of rolling.

How objects such as rings, enemies, blocks, and springs move around, are constructed, and react to certain situations.

The order of events for objects, including characters.

Specific

How rings disperse when hit.

What happens when the Player gets hit.

Describing how the Player bounces off enemies and other destroy-able items.

How Sonic's abilities change underwater.

How Sonic's abilities change when super.

Abilities such as spindashing and elemental shields.

General

Mechanics of the camera following the Player.

Covering how animations play and specific animation timings.

Special

Lua scripts which overlay the game in an emulator for an interactive visual of collision.