Open Surge Forum

A fun 2D retro platformer inspired by Sonic games and a game creation system

You are not logged in.

Announcement

Our community has moved to Discord! https://discord.gg/w8JqM7m

#1 2019-12-26 04:49:44

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Another Sonic the Hedgehog 2 Remake - AS2R

You can playtest an updated version of this project here:
https://www.sonicfangameshq.com/forums/ … -demo.706/

Hello, My name is Jonathan and I've been quietly enjoying the Sonic fan gaming community for quite some time. I grew up with the 8 bit versions of Sonic games and i'm so excited for the remakes of Sonic Chaos and Triple Trouble.

But what about MY favourite? Sonic 2 is special. It has some of the most unique and interesting locales i've ever seen. It's gimmicks and variation make it stand out and i've wanted to make my own game since the ROM hacking using SonEd days.

I've been hand drawing my assets and putting them into the engine. And I will be learning how to use surge script so I may add things like bosses, cutscenes, gimmicks and the drop dash. I've already had a play with visual studio, it's very easy to understand, so I must thank the creator for entering it into this year's SAGE! I have no programming experience, so for now I am handling the art and level design. I hope to learn from the youtube tutorials and this community!

I should hope to have an Under Ground Zone demo ready in 2020, I really want to get the art right for this one.

3.png

2.png

1.png

Thank you for looking!

Last edited by Just John 43 (2021-08-20 20:45:00)

Offline

#2 2019-12-26 19:44:52

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Welcome, Jonathan smile

That's a very interesting hand-drawn interpretation of 8-bit Sonic! Is your scenery also fully hand-drawn? Cool idea.

Open Surge is a fully programmable engine, so it's true that you can build anything with it.

I too remember playing 8-bit Sonic when I was a kid. The minecart and the hang gliding were awesome. With SurgeScript you can make these and much more, even come up with your own original ideas.

Looking forward to seeing more of your art!

Offline

#3 2019-12-27 18:31:20

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Yes, all my assets will be completely hand drawn, and at the moment i'm taking it a bit at a time. I draw in pencil, take a photo and make it so I can colour it in using Paint, touch it up and then scale it using GIMP. Then I add it into the existing assets that came with Open Surge. I'm simply redrawing individual tiles from the original 8bit game, using the same palette and mixing it with the mask that came with Sunshine.

Here's some more pictures. Today I finished Sonic's walking animation

79874484-2309016359388904-5968865005011992576-n.jpg

still.png

walkin5.jpg

walk2.png

1.png

2.png

Offline

#4 2019-12-28 01:01:41

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Wow, that's a lot of work, but certainly very interesting! Keep up the good work!

You are in no way restricted to the original mask. You can adapt it the way you want it to be. Just be sure you're working on copies of the images, and not on the original images, so you won't lose your changes when you update the engine!

Hopefully we'll be playing a demo soon! smile

Offline

#5 2019-12-28 17:22:05

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

It's very exciting indeed!

I unsuccessfully tried to add the drop dash today as a companion. But it froze my game, lol.

I have an issue that I can't seem to fix. In a normal Sonic game, if you press jump and keep the button held in you should hit the ground and stay footed but in open surge of you keep the button held you will immediately jump again. Can this be fixed?

Offline

#6 2019-12-29 02:05:09

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Just John 43 wrote:

I have an issue that I can't seem to fix. In a normal Sonic game, if you press jump and keep the button held in you should hit the ground and stay footed but in open surge of you keep the button held you will immediately jump again. Can this be fixed?

Yes. It has been fixed on the November update and it's also fixed on Open Surge version 0.5.1. I'll be releasing it as soon as I finish the testing, but you may get the latest Release Candidate right away!

Just John 43 wrote:

I unsuccessfully tried to add the drop dash today as a companion. But it froze my game, lol.

Why not share your code with us, so we can take a look at it?

Offline

#7 2019-12-29 02:07:41

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Yes, I have read some of your updates and assumed that the issue would be fixed if you're adding new jumping abilities smile

Here is my drop dash code. It works...ish


object "Drop Dash" is "companion"
{
    speed = 720;     // dash speed, in pixels/second

    charge = Sound("samples/charge.wav");
    release = Sound("samples/release.wav");
    player = parent; // since this object is configured as a
                     // companion, parent is the reference
                     // to the correct Player object

    // capture the event
    state "main"
    {
        if(player.midair) {
            if(player.input.buttonPressed("fire1")) {
                charge.play();
                state = "charging";
            }
        }
    }

    // charging the dash
    state "charging"
    {
        player.anim = 3; // jumping animation
        player.animation.speedFactor = 1.85;
        player.frozen = false; // disable physics (temporarily)

        // ready to go?
        if(player.input.buttonReleased("fire1")) {
            if(timeout(0.3)) {
                player.gsp = speed * player.direction; // dash!!!
                charge.play();
            }
        }
        else if(player.input.buttonReleased("fire1"))
            charge.play();
    }
}

Offline

#8 2019-12-29 02:37:50

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Just ported my assets into the new engine and thank you! The Jump abilities are awesome cool

Offline

#9 2019-12-29 03:12:04

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Another Sonic the Hedgehog 2 Remake - AS2R

I think the Drop Dash is a wonderful example to teach programming, because it can be modeled just right with state machines. Have you taken the SurgeScript Crash Course?

You think in terms of what should happen to apply the drop dash. First the player has to jump (press and release the jump button). Next, he must hold the button while still jumping. If the button continues to be held when he touches the ground, then you apply the dash (otherwise cancel it).

Here is a sketch. I've kept it as simple as possible. There is room for improvement (e.g., add some sounds!) Also, the dash speed involves some computations, but the example uses a fixed speed of 600 px/s.

using SurgeEngine.Audio.Sound;

object "Drop Dash" is "companion"
{
    player = parent; // since this object is configured as a
                     // companion, parent is the reference
                     // to the correct Player object

    // capture the event
    state "main"
    {
        // player is jumping but NOT holding jump
        if(player.jumping) {
            if(!player.input.buttonDown("fire1")) {
                state = "watching the jump";
            }
        }
    }

    // player is jumping; watch if he holds the jump button
    state "watching the jump"
    {
        // player is jumping AND holding jump
        if(player.jumping) {
            if(player.input.buttonDown("fire1")) {
                state = "ready to dash";
            }
        }
        else
            state = "main";
    }

    // wait to get on the ground
    state "ready to dash"
    {
        if(!player.midair) {
            player.roll(); // make the player roll
            player.gsp = speed() * player.direction; // dash!!!
            state = "main"; // reset the state machine
        }
        else if(!player.input.buttonDown("fire1"))
            state = "main"; // cancel the dash
    }

    // compute the drop dash speed in px/s
    fun speed()
    {
        return 600; // FIXME

        // you may use more sophisticated computations for the speed:
        // https://forums.sonicretro.org/index.php?threads/how-the-drop-dash-works-in-mania.37587/
    }
}
Just John 43 wrote:

Just ported my assets into the new engine and thank you! The Jump abilities are awesome cool

Awesome, thanks for testing cool

Offline

#10 2020-01-05 02:15:14

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

I have a video showing off the graphics and some things i've coded into the game. Thank you Alexandre for your help.

https://www.youtube.com/watch?v=YAd0cmWQNKI

Been getting very familiar with coding bricks and masks and backgrounds. Open Surge has amazing potential for the most complex parallax scrolling and multiple background layers.

I've been working on the drop dash code, it now functions very closely to Mania's, just need to write a few more ifs to change it's speed

Coded an animated lava tile, works a lot like the spikes

Coded a fireball enemy that hurts the player on collision

Minecart still not working, but it's fun seeing what effects certain code has on the game and we're learning a lot about Surge Script in the process

Underground Zone Act 1 art is nearly complete.

Sonic's sprites are half way there but still need polish

Offline

#11 2020-01-05 20:39:44

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Congratulations for the progress! cool

Offline

#12 2020-01-08 22:27:48

KZR
Member
Registered: 2010-07-14
Posts: 1,447
Website

Re: Another Sonic the Hedgehog 2 Remake - AS2R

I think Sonic's sprite is a tad bit too big and it clashes with the scale of everything else.

and you forgot the pushing and getting hit animations

Nice to see Sonic 2 8-bit revisited. my game gear's D-pad did not survive this game mad
I also liked that you gave Sonic a mania-like moveset. it definitely improves the gameplay

If you need faster feedback, let our Discord server know about it. I'm almost always reachable there and many other Forum users are there too

Last edited by KZR (2020-01-08 22:30:29)


SD_sml.pngSeD_sml.pngLTot_W_sml.png
https://discord.gg/w8JqM7m ---> Open Surge's Discord server

Offline

#13 2020-01-28 06:40:08

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Hello! Thanks for the feedback. I agreed with you on Sonic's Sprites, so I have made them smaller, he now matches Surge's height to the ears.

Been working with a composer called Akidna to design Art for Act 2 based off the vibes I got off his remixes. He's really talented and I can't wait to share his compositions with you! Act 2 will be set at Sunset and has swapping backgrounds, I'm looking forward to the day you can be surprised by it! tongue

Untitled.png

New things coded into the game are:

A bouncy ball that hurts Sonic (For the boss)
An ever bigger Rolling Ball that chases Sonic (Indiana Sonic Rush Jones style)
Spikes that fall when Sonic gets close

Question: Is it possible to trigger S3K style, in engine cutscenes (or events) in surgescript? Because soon I will be looking into creating a boss, and Dr Robotnik comes and saves Sonic before the first boss. Also I would like to make the level transitions happen in engine too.

Happy surgescripting!

Last edited by Just John 43 (2020-01-28 06:41:21)

Offline

#14 2020-01-28 13:13:35

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Cool, I'm eager to see a new video or a demo! cool

Just John 43 wrote:

Question: Is it possible to trigger S3K style, in engine cutscenes (or events) in surgescript? Because soon I will be looking into creating a boss, and Dr Robotnik comes and saves Sonic before the first boss. Also I would like to make the level transitions happen in engine too.

Happy surgescripting!

Absolutely. Everything is possible.

First you might want to disable the Default Camera object that is spawned in the Default Setup (see file scripts/core/camera.ss).

    fun disableDefaultCamera()
    {
        defaultCamera = Level.findObject("Default Camera");
        defaultCamera.enabled = false;
    }

    fun enableDefaultCamera()
    {
        defaultCamera = Level.findObject("Default Camera");
        defaultCamera.enabled = true;
    }

Next, you acquire direct control of the Camera via SurgeEngine.Camera (check out the docs). Making these cutscenes and transitions will require a more thorough understanding of scripting, but based on what you have already done so far, I'm sure you guys are able to do it.

Offline

#15 2020-05-13 15:40:39

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Development update!

Woo! As of today, Sonic's basic moveset is completely animated! Here is the modded spritesheet so far.

surge.png

Also the level art for UGZ Acts 1 and 2 are now finished! Though I think in the future the tiles will need further edits so everything connects together well (my slopes and minecart rails especially).

You can view the updates via this video.

https://www.youtube.com/watch?v=3HvN89Yjv9A

Currently I am building some beta level design so everyone can have a try and see the animation for themselves (my video capture software likes to blur everything).

Current to do list:
Peel Out? (New anim for max speed)
Minecart (solo + Sonic)
Falling anim?

Enemy that appears, fires a bullet, disappears

change bullet direction of lady bug

make platformer wolfy chase player on a timeout

minecart activator

Rolling boulder

Make falling spikes wobble

Change camera (Sonic can currently see more behind his direction than in front).

I have also planned out the cutscenes that I need to program, keeping them here as a backup.

Intro (plays before 1st level) - Redraw Green Hill Zone ending cutscene from Sonic 1. A flash of light makes the emeralds disappear and Eggman zooms past with a captured Tails. Sonic persues and roll opening credits via signs in the background. Sonic stops at a cliff and sees UGZ in the background. Fade to black.

UGZ act 1 (triggers at miniboss encounter) - Sonic rolls down a mountain, and nearly falls into a pool of lava but Eggman appears and picks up Sonic before hitting the bottom. Eggman carries sonic to the miniboss area. Eggman exits. Trigger miniboss.

UGZ act 1 (triggers after results screen) - Antlion miniboss suddenly reappears from under the ground, breaking it and sending Sonic deep underground. Sonic shakes it off and continues right. Fade to Act 2.

UGZ Act 2 (Triggers after Results) - Sonic Emerges at the top of the map and looks into the background at some tall blue structures extending into the clouds. Camera zooms to a paraglider at the edge of the cliff. Sonic runs to it and glides off screen. Fade to black.

Demo screen (Plays after UGZ cleared) - "Thanks for playing!" "Support Just John 43 on Youtube" "Support Opensurge" "Support Akidna"

Thank you for checking out my project!

Offline

#16 2020-05-13 23:45:19

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Awesome! The character is cute, I wanna play.

I know it's not final yet, but the level design could get more work. We have an article on Level Design which may be of help.

Graphically, the rails could be better adjusted to each other. There are discontinuities. My suggestion: adjust them, and also clean some pixel artifacts (clouds on the background, etc.)

You have lots of gimmicks that are interesting. Glad to see you are learning SurgeScript.

You are learning the engine, so keep on going.

Good luck with this project! It's promising! cool

Offline

#17 2020-05-28 02:48:19

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

You can now download a version of my mod for playtesting the first two levels. Please help me learn how to make my levels feel like Sonic! See the top of the first post for download link! Have some new screenshots also!

1.png
2.png
3.png
4.png

Offline

#18 2020-05-29 01:04:36

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Changelog to Demo:
- The hidden Fire shield in Act 2 now provides lava immunity. Can you find it?
- New musics added for bosses remixed by Bridge Capper of Youtube

Last edited by Just John 43 (2020-05-29 01:10:01)

Offline

#19 2020-05-30 14:38:42

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Changelog to Demo:
- Act 2 Level design tweaks
- Added Thunder shield immunity for Act 2 boss

Offline

#20 2020-06-04 14:48:59

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Changelog to demo:
- Brand new upload! Additional scripts
- UGZ1 level design tweaks
- Fixed issues with some tubes that would softlock the game
- Bouncy Balls no longer warp through the ground
- New Goal behaviour!
- UGZ2 level design tweaks
- TWO NEW BOSSES
- Antion Miniboss is a recreation of the original boss from UGZ. Very stable, please report any issues
- Antlion 2 is an original boss which in order to defeat, you'll need to watch and figure out a pattern. Unstable behaviour, can be broken the longer it goes on. In order to figure out how to fix I need your help.

Have a couple of screenshots!

5.png
6.png

Thank you!

Offline

#21 2020-06-06 12:16:52

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Changelog:
- Updated spring behaviour (provided by Alex)

Offline

#22 2020-08-18 17:16:16

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

It's been a while. I've been really busy as of late preparing for University and moving home. I'm finally at the point where I can work on the game again in my downtime. With 3 days left until SAGE 2020 submissions close, and because I will be doing another art overhaul during my animation course, I was thinking of entering a demo to SAGE, placeholder art and all. After all, this would get more exposure and I could finally get to watch somebody stream and get feedback that way. Let me know if what I have so far is good enough to showcase at SAGE, and if I should make any changes in time for the expo going live on September 5th. Perhaps adding a title screen and storyboard style placeholder cutscenes. I will also port the game into the newest version of open surge.

I watched a friend play UGZ Act 2 on a very low spec laptop and discovered that the engine struggles to render all those tiles at 60fps. On my PC this was never an issue. I also realised that UGZ Act 2's bosses behaviour is tied to the framerate. If it dips below 60, the boss can softlock the game.

Changelog:
- I have slightly changed the Drop dash script to not activate until 0.35 seconds have passed since the player holds the jump button. This makes it similar to Mania's Drop Dash and now it cannot be spammed instantly. More work needs doing to change the speed depending on the player speed.

The download is on the first post.

Offline

#23 2020-08-20 21:53:14

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Another Sonic the Hedgehog 2 Remake - AS2R

The demo is great to play! Definitely submit it. We have discussed it on Discord already; adding a title screen would be great to give the game its identity.

Some suggestions for your submission:

- Act1 boss: it is not immediately clear how to defeat it (for me). An eggman sprite shows up and I tend to hit him. Yet, to defeat the boss, the ball must hit that other thing several times. It was confusing to me. Maybe change eggman to something else? Act 2 of your demo is really great and I think it would be a shame if someone doesn't get to play act 2 because of being unable to defeat the first boss.

- Act2 boss: maybe make the player .bounceBack() when rolling on the boss? Would look more natural.
(edit: I also noticed the boss locks when you pause the game during the fight)

- Paper Zone/Waterworks: the goal sign is disabled.

It's difficult to download a folder from Google Drive. Took a long time to zip it

Regarding very low spec machines, try using lower resolutions. You may use an older Allegro 4 build of the engine and see how it performs (check the dev builds thread).

Your demo is fun and I enjoy it, specially act 2. I like the art and the gameplay. Congratulations on getting it done! Don't be too critical of yourself. What are your next plans?

I wish you success on SAGE !!! cool

Last edited by Alexandre (2020-08-20 22:21:30)

Offline

#24 2020-08-21 10:23:28

Just John 43
Member
From: UK
Registered: 2019-12-26
Posts: 30

Re: Another Sonic the Hedgehog 2 Remake - AS2R

Very interesting discovery about Act 2's boss. I can confirm it's behaviour resets to it's first state no matter what when you pause the game leading to some unintended behaviour. Very strange! Is pausing the game something I need to consider in my script? Also this boss will have more frames of animation in the future to make it clear when the player can attack.

Act 1's boss will change in the future, it will be more interactive, once I have mastered cutscene scripting. As the original boss goes, Eggman saves Sonic from falling in lava so he can test his new robots, and the cannon balls fired from Eggman will destroy the boss.

Come SAGE, the download will be hosted by Sonic Fan Games HQ so no more google drive!

Thank you for reviewing the level design, great care and watching many playtests has crafted these levels to ensure a nice Sonicy rhythm. I wanted the familiarity of the original game represented in Act 1, and then Act 2 opens up with more slopes and plenty to explore!

My next plans are to draw the rest of the level art throughout next year (Sky High, Aqua Lake, Green Hills, Gimmick Mountain, Scrambled Egg, Crystal Egg, Special Stages and Green Hill), and redraw the sprites with my new animation equipment. All the while improving my surge scripting knowledge and trying to get these cutscenes scripted. In all honesty I think adding new gimmicks like the minecart has been the greatest challenge, but I feel like I'm nearly there!

Last edited by Just John 43 (2020-08-21 15:10:22)

Offline

#25 2020-08-21 16:38:42

Alexandre
Administrator
From: Brazil
Registered: 2009-01-27
Posts: 3,300
Website

Re: Another Sonic the Hedgehog 2 Remake - AS2R

The Open Surge bosses work fine, so this is something to be investigated further. Might have something to do with timeouts.

It's worth taking a look at a diagram of your state machine to figure out where the error is. Also, executing Console.print(state); during gameplay might help.

In your code, I found constructions such as these:

   fun stop()
    {
        if(state = "down") {
            movement.enabled = false;
            aimer.shoot();
            state = "waiting";
        }
    }

There are others like this. This doesn't do what you might think.

The comparison operator is ==, whereas the attribution operator is =.

The expression state = "down" is an attribution that evaluates to "down", a truthy value that always passes the if test. You're changing the state to down, and then to waiting, unconditionally.

The expression state == "down" is a comparison that evaluates to true only if you're in the "down" state. So I believe if(state == "down") is what you have meant. In other parts of the code, you use the comparison operators just fine.

More info: https://docs.opensurge2d.org/tutorials/ … -operators

My next plans are to draw the rest of the level art throughout next year (Sky High, Aqua Lake, Green Hills, Gimmick Mountain, Scrambled Egg, Crystal Egg, Special Stages and Green Hill), and redraw the sprites with my new animation equipment. All the while improving my surge scripting knowledge and trying to get these cutscenes scripted. In all honesty I think adding new gimmicks like the minecart has been the greatest challenge, but I feel like I'm nearly there!

Great! Your knowledge is definitely improving. Will you ship the Minecart for SAGE?

Offline

Board footer

Powered by FluxBB  hosted by tuxfamily.org