Sonic Construct Worlds - collaborative porting project

This forum is currently in read-only mode.
From the Asset Store
Casino? money? who knows? but the target is the same!
  • <img src="">

    Now, for a while, I've kinda been waiting on Damizean to finish the Construct version of his Sonic engine, despite him saying that the only thing that needs to be finished is the actions. It's the base engine for Sonic Worlds. I myself had already made some minor changes to allow a mode for more traditional platforming physics except with rotations.

    So, I had a thought. Why not just finish it? Unfortunately, I had realised that I don't use MMF2, and don't intend to, so I was left clueless on how to implement what's needed. So, I came up with another idea, ask for help in the Construct community.

    But then I realised that the base engine was nearly finished - why not put a bit more effort and fuctionality into it while we're at it? So, I came up with this idea. Create a Construct version of Sonic Worlds, a showcase of what Construct is capable of in the right hands, and an alternative platform engine that does things that the regular platform behavior simply cannot - this engine doesn't have to be for just Sonic games!

    SO, I've decided to start up a collaborative project to convert the entire Sonic Worlds engine as-is to Construct, and go beyond it in functionality, whether it be incorporating stuff for Sonic fan-games or other types of platformer games, or even improving what's already there! Whoever wants to pitch in, feel free!


    • Movement, rotations, etc, the core stuff.
    • Two movement 'modes' - Sonic-style and normal-style. Normal-style is basically emulating the physics of normal platform games, except with rotation and stuff, you know, for characters who aren't Sonic, or at least who don't move nearly as fast.


    • Fixing directions - DONE
    • Basic/Common Actions - DONE
    • Sonic Actions
    • Tails Actions
    • A lot more documentation. Seriously.

    After we've finished those, we'll then focus on converting the rest of Sonic Worlds - converting MMF logic to Construct's events.


    • Guys who are awesome with Construct in general
    • Guys who also use MMF2, so we can convert this stuff over
    • Anyone who can help on the project, in any way they can, whether it be suggestions or testing, or whatever!
    • Damizean, if you're reading this, your help would be wonderful.


    Sonic Worlds at SFGHQ Forums, with MMF build download links

    Current .cap of the Construct version of Damizean's engine

    My version of the above cap, with two alternative 'skins' (I'll add Sonic back later) and the addition of normal-mode, switched on by default. (To change modes, just change the "SonicStyle" variable, 1 for Sonic-Style, 0 for normal). -Without Sounds-

    Same .cap, with sound files.

    Though there's not really much documentation at the moment, if any, but it should be easy to figure things out as they are through variable names and the events.

  • It's an interesting idea, for sure. I've thought about making a Zelda kit in the same style, and recruiting people to help build it as a community project. But the time and energy involved in making such a thing has kept me from it

    Good luck, though

  • sweet! I've always wondered what the platforming logic of a sonic game would go like.


  • Alright, I actually bothered to grab MMF2, and let's see-

    ... Oh, dear God. After working with Construct for so long, MMF2's event system looks absolutely horrendous. This is gonna suck.

    Edit: Okay, there's a second view for it? At least it makes it bearable, but, bloody 'ell. Might as well look over the events first.

  • Oh, lovely, merely trying to change directions through events is a chore.

    On a slope, changing from right to left results in... Upside down. To say the least, this'll be tricky.

    Also, who wants to have a stab at simplifying the events? Doppel reckons it could.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Oh, lovely, merely trying to change directions through events is a chore.

    You just gotta get your angles right

    Anyway, with a player sprite that can turn 360 degrees, perhaps a different approach is needed?

    Some of you may remember Vert, the game I was working on where you could turn the screen and the player any which way. Here's how I did the player sprite so as to make things a LOT easier when it comes to calculating angles: linky

    Instead of making both 0 and 180 degree animations under a "Run" animation, I made ALL of the sprite frames face 0 degrees and split animations up based on Left or Right. Here you can see I just flipped it for the runLeft animation: linky

    He can face Left or Right at any angle, not just 0 and 180. Having only one angle in your animation means that you can spin it freely rather easily. And to change "directions" from left to right, you gather input in a pv and do like so:

    + Control "Move Right" is down
        -> Set Player.Value('facing') to "Right"
    + Control "Move Left" is down
        -> Set Player.Value('facing') to "Left"
    + Player is moving
        -> Player.Sprite: Set animation to "run" & Player.Value('facing')
    It was also a lot easier calculating angles in my events because I could do it all from 0, I didn't have to add or subtract 90 degrees to compensate for the player sprite's default angle.  Something to think about, anyway.
    And yeah I do plan on finishing this game some day, but it broke like crazy a few builds ago and I pretty much have to redo the whole thing from scratch so I might as well just wait for 1.0.
  • i just set width to a negative or positive to mirror my sprite., something like when its facing left set width to abs(.width)*-1 and when its facing right to abs(.width). you dont have to waste any extra memory either!!!

  • Ok, I like this idea.

    Ive been working with MMF for... years now.

    I found out about construct from SFGHQ actually, some years back.

    I am/was good with MMF but I haven't had it installed on my machine for roughly six months.

    If I can, I would love to contribute to this project though. as I've been wanting a sonic engine since the day I switched to construct.

    I worked on one myself (Not 360, but a classic "Static" engine) but didn't get very far due to an annoying collision bug. (It was colliding with the slopes bounding box, not the ground itself.)

    So yeah, if I have the time i'll see what I can do. Best of luck guys!

  • Deadeye, Quazi, have I mentioned how much I love you both? Both solutions work perfectly. Though, I'm gonna go with Quazi's, since it does the same thing as Deadeye's and also requires the same sort of work needed for stuff like shooting and stuff, though hot-spots are automatically flipped from what I can see, so that'll be simple anyway. Thank you!

  • i just set width to a negative or positive to mirror my sprite., something like when its facing left set width to abs(.width)*-1 and when its facing right to abs(.width). you dont have to waste any extra memory either!!!

    That's a pretty clever solution, it would save me half my animations . Though in conjunction with the Angle 0 method I suppose it would have to be height instead of width.

    And a little off-topic, but I ran one of my Vert caps earlier and it ran fine . I guess whatever broke it got fixed while I wasn't looking.


    The cap has been updated.

    • Turning bug fixed
    • Basic, common actions implemented (Idle, Walking, Running, jumping, Standing Up, Crouching)

    Click the link in the original post for the updated cap.

  • New .cap uploaded. Click the link in the original post for the updated cap.

    • Skidding implemented, as well as a turning animation function for "normal mode". Not quite perfect, but it's getting there.
    • Spin-dash and rolling implemented. Also imperfect, for example, spin-dash release is too slow at the moment. Might consider using TimeDelta as part of the functionality.
    • Separated code for the skins into their own specific Event Sheets. I also might consider doing the same for actions. It would probably be better that way.
  • This doesn't seem to be working on 0.99.72? <img src=""> is what I'm getting trying to run it.

  • Oh, bloody 'ell, the link's wrong. My bad.

    Also, I uploaded a zip with sound files as an alternate link, if you don't mind linking the files and a few extra megs for download.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)