Fan Game Sonic 3D in 2D (Complete)

Sotaknuck

Scrambled Egg Zone
May 27, 2020
20
9
23
36
Hello people of SFGHQ, I'm Sotaknuck.
I'm a long time Sonic fan that always wanted to make my own Sonic Game.
I also often wondered how Sonic 3D Blast would look like had it maintaned the style of its prececessor.

So, one fine day three years ago I decided to kill two birds with one stone...

I wanted to share with you my completed project: Sonic 3D in 2D.
The game is finished, with 3 starting characters (and more to unlock on a good ending completion) and it has been released yesterday.

There are a some hiccups here and there...let's say they are deadly secret Robotnik traps you should be aware of, if you know what I mean... I'm already at work to solve the issues users found out and brewing a patch.
Here is the launch trailer:


My game can be downloaded on itch and gamejolt at the following addresses:

I hope you can have fun as you blast through Flicky Island with a new perspective!
Enjoy!
 

Dolphman

Sprite resource designer.
Aug 29, 2017
21
8
28
31
Australia NSW
Really cool too see a finished fangame and one that looks promising. And one that is something I wanted to see done before.
Given that you worked on this for a long time, You probably didn't see the sprite sheets available of the 3D Blast Eggmobile and Badniks I did.
My 3D Blast Badniks - [Link]
My Eggman sprite sheet which includes the 3D Blast Eggmobile - [LINK]
Here's she sprites to make it easier to find.

Played through it before and watched longplays of it. Must say, it's pretty solid looking. The coding of the new gimmicks and everything helps with making it stand out.
The foreshadowing of Sonic Adventure is pretty clever. (And the custom Perfect Chaos mural is really awesome looking, same with the Final Weapon one)
 

Sotaknuck

Scrambled Egg Zone
May 27, 2020
20
9
23
36
Thank you!
I have to say you did a great job with the eggmobile sprites, it really reminds of the one from the original game.
I'm glad you enjoyed the nods to SA1, as well as the effort i put into spriting both murals. The chaos one especially, as i remade it twice. The first time I wasn't satisfied, the second one paled in comparison with the final weapon one, so I had to redo it once more...

Did you unlock the extras?
 

Sotaknuck

Scrambled Egg Zone
May 27, 2020
20
9
23
36
Hello! Just a short post to inform you that version 1.03 is now available, which fixes two gamebreaking bugs in Panic Puppet Zone act 2.

EDIT: 1.04 has been released, with more fixes!
 
Last edited:

Sotaknuck

Scrambled Egg Zone
May 27, 2020
20
9
23
36
Version 1.06 has been released, with a new and upgraded save system (which is compatible with pervious saves!)
 

Sotaknuck

Scrambled Egg Zone
May 27, 2020
20
9
23
36
Version 1.07 is out, and gets rid of the horrible limitation of fusion, that forces games to un-pause with a fixed button. Your start button on the pad finally works as it should!
 
  • Like
Reactions: NeedleMouse90

Sotaknuck

Scrambled Egg Zone
May 27, 2020
20
9
23
36
Version 1.08 arrived, with bugfixes and two compatibility command line codes to use a simpler water effect (/LIGHTWATER) and re-enable the un-pause-with-enter limitation of fusion for anyone that needs a few more FPS (/OLDPAUSE)
 

Rudie Radio Waves

The One With The Most Power
Sep 21, 2017
25
13
33
Italy
Version 1.07 is out, and gets rid of the horrible limitation of fusion, that forces games to un-pause with a fixed button. Your start button on the pad finally works as it should!
Hi! I tried a slightly older version of your project, as soon as I'm done with school I'm gonna give it another whirl!
I've been messing around with Fusion, and I wanted to ask you how did you manage to to fix the pause bug. Thank you!
 

Sotaknuck

Scrambled Egg Zone
May 27, 2020
20
9
23
36
I saw many people trying to tackle the problem in different ways, but all of them had different issues. For example:
  • Put all game events in a pause group that is deactivated when the player presses start: all "one action when event loops" are repeated when you reactivate the group, creating tons of problems with events in game
  • use subapp to spawn a modal dialog frame: works great in windowed mode, doesn't work at all in full screen
I solved the pause bug by creating a "wrapper" page that holds two subapplications inside. Wrapper and subapplications share the global values.
  • The wrapper holds a few lines that react when a global variable "pause control" changes. It updates its value, pauses the game subapplication (subgame from now on) and unpauses the pause subapp (subpause from now on). The wrapper doesn't have any input event for the player: if you put any here it will mess up your controls as the game doesn't understand where the inputs should go. It is also important that you never have subgame and subpause active at the same time for the same reasons. The wrapper also holds a few lines that resize subgame to the same size of itself. This way full screen and window resizing are correctly applied to subgame as well.
  • subgame doesn't pause anymore, when you press start it sets the global value "pause control" to 2 so that the wrapper detects it, pauses it and switches to the subpause. Subgame will bring back "pause control" to 1 whenever it is active and pause control is greater than 2.
  • subpause is an invisible subapp that only holds player input events and waits for the player to press start. It then increases again pause control so that the wrapper can switch back to subgame.
with 1.08 out, I set up a command line (/OLDPAUSE) so that "pause control" is set to 0, the wrapper isn't used and subgame is run directly. the old event "pause and resume with enter" is used when the player presses start.
 
Last edited:

SunkythePootis

Green Hill Zone
Sep 4, 2017
14
18
18
I've been trying to play your game with the latest update (1.08), but when I go to start a new game I can't get past the first cutscene frame ("Flickies are mysterious birds") no matter what buttons I press on my controller. Only work around was to reset the game and then use the continue option which skips the cutscene altogether.
Funnily enough using the /OLDPAUSE argument with a shortcut also fixed the issue so this might be an oversight with your current pause system.
 

Sotaknuck

Scrambled Egg Zone
May 27, 2020
20
9
23
36
Thank you for pointing it out! I might have forgot to put control checks inside the cutscene window whenever the game is running in subapp mode. I'll fix it for 1.09.
 

Rudie Radio Waves

The One With The Most Power
Sep 21, 2017
25
13
33
Italy
I saw many people trying to tackle the problem in different ways, but all of them had different issues. For example:
  • Put all game events in a pause group that is deactivated when the player presses start: all "one action when event loops" are repeated when you reactivate the group, creating tons of problems with events in game
  • use subapp to spawn a modal dialog frame: works great in windowed mode, doesn't work at all in full screen
I solved the pause bug by creating a "wrapper" page that holds two subapplications inside. Wrapper and subapplications share the global values.
  • The wrapper holds a few lines that react when a global variable "pause control" changes. It updates its value, pauses the game subapplication (subgame from now on) and unpauses the pause subapp (subpause from now on). The wrapper doesn't have any input event for the player: if you put any here it will mess up your controls as the game doesn't understand where the inputs should go. It is also important that you never have subgame and subpause active at the same time for the same reasons. The wrapper also holds a few lines that resize subgame to the same size of itself. This way full screen and window resizing are correctly applied to subgame as well.
  • subgame doesn't pause anymore, when you press start it sets the global value "pause control" to 2 so that the wrapper detects it, pauses it and switches to the subpause. Subgame will bring back "pause control" to 1 whenever it is active and pause control is greater than 2.
  • subpause is an invisible subapp that only holds player input events and waits for the player to press start. It then increases again pause control so that the wrapper can switch back to subgame.
with 1.08 out, I set up a command line (/OLDPAUSE) so that "pause control" is set to 0, the wrapper isn't used and subgame is run directly. the old event "pause and resume with enter" is used when the player presses start.
Thank you so much for replying!
 

Sotaknuck

Scrambled Egg Zone
May 27, 2020
20
9
23
36
No problem! One thing I forgot to say is related to the bug Sunky reported.
At the start of every frame of the subapp you'll need to add one event with "Run this event once" and force "Pause control" to the value right before the wrapper activates Gameapp and switches off Pauseapp. This way 2 things will happen: GameApp will bring back "pause control" to 1, but more importantly fusion will restore focus to Gameapp, so your controls will correctly be read.

If you forget to place it there is a chance (that unfortunately I haven't yet figured out why) that the gameapp loses internal focus and it stops from reading your input.
 

Sotaknuck

Scrambled Egg Zone
May 27, 2020
20
9
23
36
Version 1.10 has arrived! With a lot of fixes, and 23 new achievements to challenge you!

5652

Enjoy!
 

Sotaknuck

Scrambled Egg Zone
May 27, 2020
20
9
23
36
V1.11 is out with a minor fix to the spring master achievement that was unfortunately awarded for free...

EDIT:
V1.12 has been released, with a fix to the Achievement Menu that didn't hide the final 8 achievements from the list. The 15 zone achievements can be tackled in any order. Once completed the character achievements will unlock, one at a time.
This bug allowed a player to see the achievement and believe they could tackle them already.
 
Last edited: