Sonic and Sega Retro Message Board: Sonic Construct Worlds - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
  • 6 Pages +
  • 1
  • 2
  • 3
  • Last ►
    Locked
    Locked Forum

Sonic Construct Worlds Proper port by me.

#1 User is offline StreakThunderstorm 

Posted 08 January 2012 - 03:20 AM

  • Posts: 185
  • Joined: 10-July 11
  • Gender:Male
  • Project:Mecha Madness
I've been working on this for a little while. I decided to mess around in construct and realized that it was tons better than MMF2 in terms of what it can do. Candescence was working on a construct port but I don't like the direction he took it in. With this, I've decided to try and keep it true to being a Worlds port. Its obviously not finished and if I add any more to this current build, I wont be able to continue to release it publicly.

http://dl.dropbox.co...icConstruct.rar
If anyone is interested in continuing the work in it, by all means have a go at it.

Right now it contains all of Sonic's basic movements. Rolling, spindashing, jumping, crouching and looking up. Everything works as it should. I've also implemented little things like a camera that zooms in and out dynamically based on your speed. There's also footstep modifiers for every piece of land you step on so that your character will create the appropriate footstep and landing sounds.

The missing Plugins:

http://www.scirra.co...topic41026.html

http://www.scirra.co...topic40990.html

#2 User is offline Kharen 

Posted 08 January 2012 - 06:51 AM

  • Posts: 336
  • Joined: 29-October 11
  • Gender:Male
  • Location:Spokane Community College - Newport IEL
Is this for the free version of Construct, or Construct 2? I'll give this a try, as long as I don't have to spend money on the program. I'm broke, and would rather spend the money I don't have on important things like my college stuff.

#3 User is offline Azu 

Posted 08 January 2012 - 08:02 AM

  • I must be stupid.
  • Posts: 1434
  • Joined: 23-February 08
  • Gender:Male
  • Location:Home
It's for the Classic version of Construct. If you're familiar with MMF2, it shouldn't take too long to get use to it, although, you still would want to use the wiki. For instance the expression for global vales are different. In Construct, you can define your global variable as a integer or string.

Global Variable 1 = 2
Global Variable 2 = Catnip

In the Construct's expression editor, you'd right "global("Global Variable"). If the variable doesn't exist, it will highlight yellow, meaning that you can define a new value right there.

Where as MMF2, you'd have this.

Global Values
----------------
Global Value A = 2

Global Strings
----------------
Global String = Catnip

In the Construct's expression editor, you'd simply write "Global Value A".

#4 User is online Mr Lange 

Posted 08 January 2012 - 12:54 PM

  • A wise guy eh. I know how to DEAL with wise guys.
  • Posts: 817
  • Joined: 27-August 10
  • Gender:Male
  • Location:The Land of Waldos
  • Project:Helix, NASF DX, Sonic Overture
  • Wiki edits:1
Bless Candescence for his effort, but his Sonic Worlds port was too broken to be usable. I will try this later, and if this is really a proper working port, I will have to give infinite thanks for saving me a bazillion hours of work that I was going to do in porting it myself.

#5 User is offline Azu 

Posted 08 January 2012 - 01:01 PM

  • I must be stupid.
  • Posts: 1434
  • Joined: 23-February 08
  • Gender:Male
  • Location:Home
Yeah, I like his effort, but I tired to do too much, a Castlevania engine and a Sonic Engine? I don't think that would work.

#6 User is offline StreakThunderstorm 

Posted 08 January 2012 - 03:12 PM

  • Posts: 185
  • Joined: 10-July 11
  • Gender:Male
  • Project:Mecha Madness
It is proper indeed. I spent a few years working on the MMF2 worlds engine so I know its ins and outs. The port is not much different.

Just a little example of what I was able to accomplish in the MMF2 version of Sonic Worlds:
Here

So far all it has is all of Sonic's basic movements. The rolling, spindashing, jumping, looking up and crouching down. This could be a really good start for anyone who was working with the MMF2 engine but found it limited. Construct is capable of so much more than MMF2 is even in its current, unfinished state. I also included variables to the player input object that would allow you to map an entire Xbox 360 control to do whatever you please. I'm sure it will work with other controllers. I also included a custom camera which zooms in on Sonic when he's moving slow and zooms out when he speeds up. It also extends ahead of him if he's moving fast.

#7 User is offline Azu 

Posted 08 January 2012 - 07:29 PM

  • I must be stupid.
  • Posts: 1434
  • Joined: 23-February 08
  • Gender:Male
  • Location:Home
I don't know much about the engine, but I can try to make some gimmicks.

#8 User is offline Candescence 

Posted 08 January 2012 - 08:41 PM

  • Posts: 1394
  • Joined: 22-October 10
  • Gender:Male
  • Location:Sydney, Australia
  • Project:Construct stuff
To be frank, my original efforts were more along these lines, but my lack of inexperience with static engines and the fact that I find MMF2's event system virtually incomprehensible compared to Construct's much more sensible event system meant that I eventually found it too difficult to re-build the whole static engine in Construct, so instead, I utilized the Custom Movement Behaviour. But I wasn't entirely successful with that, either, and that one not only still has some problems, it also can't be ported to Construct 2 due to how that version of the behaviour works. This, however, can, once families are implemented. Streak and I have some disagreements on HTML5, but, if peeps end up working on an open-source continuation of this engine, stuff that isn't dependant on Construct Classic-exclusive plugins can easily be done in Construct 2.

On another note, I've tried making a rudamentary multiplayer implementation, but with limited results. Streak tells me I'm doing it all wrong and I should take a good look at the original events, but... Well, I've looked over the events, and I'm pretty sure I understand them, but perhaps I'm just not looking at them in a certain way. Hmm. Maybe I should go over them with someone who actually knows their stuff with these things.

Quote

Yeah, I like his effort, but I tired to do too much, a Castlevania engine and a Sonic Engine? I don't think that would work.

Actually, it wasn't, really. That SAGE showing was simply an inclusion of a Castlevania-themed level, using Sonic-style level design.

#9 User is offline Azu 

Posted 08 January 2012 - 10:18 PM

  • I must be stupid.
  • Posts: 1434
  • Joined: 23-February 08
  • Gender:Male
  • Location:Home
The custom movement doesn't use Pixels Per Frames like static engines does. It uses Pixel Per second. A Speed of 100 in custom movement is the same as
Always
---Player.x+1

#10 User is offline Candescence 

Posted 08 January 2012 - 11:34 PM

  • Posts: 1394
  • Joined: 22-October 10
  • Gender:Male
  • Location:Sydney, Australia
  • Project:Construct stuff

View PostAzu, on 08 January 2012 - 10:18 PM, said:

The custom movement doesn't use Pixels Per Frames like static engines does. It uses Pixel Per second. A Speed of 100 in custom movement is the same as
Always
---Player.x+1

I wasn't aware of that difference, but then again, the custom movement implementation wasn't a 'true' port anyway - it was an attempt at using a different method of achieving a similar end.

Completely moot now, anyway, because it's clear now that Streak's implementation can be much more easily ported to C2, because the C2 version of the Custom Movement works in a way that makes my Classic implementation infeasible.

#11 User is offline StreakThunderstorm 

Posted 09 January 2012 - 12:05 AM

  • Posts: 185
  • Joined: 10-July 11
  • Gender:Male
  • Project:Mecha Madness
I won't be touching Construct 2. As I continue to work on this, I'm keeping it in Construct classic.

#12 User is offline Candescence 

Posted 09 January 2012 - 12:15 AM

  • Posts: 1394
  • Joined: 22-October 10
  • Gender:Male
  • Location:Sydney, Australia
  • Project:Construct stuff

View PostStreakThunderstorm, on 09 January 2012 - 12:05 AM, said:

I won't be touching Construct 2. As I continue to work on this, I'm keeping it in Construct classic.

I know. Not much difference either way, because you said you're doing this for Mecha Madness, not an open-source engine.

I'm just saying that if anyone is going to expand on the engine in an open-source manner like Worlds, I'll be the one to port it over to Construct 2.

#13 User is online Mr Lange 

Posted 09 January 2012 - 09:58 AM

  • A wise guy eh. I know how to DEAL with wise guys.
  • Posts: 817
  • Joined: 27-August 10
  • Gender:Male
  • Location:The Land of Waldos
  • Project:Helix, NASF DX, Sonic Overture
  • Wiki edits:1
Alright I just spent a day working with this engine. I love it, a lot. In fact, I went a step further than testing it. Since I had once ripped and organized all the BG tiles from Hydrocity Zone and had them lying around, I made a short test stage.
Added:
Changed Right Shift to Z, X, and C keys for jump.
Collectible rings (the program doesn't count them)
Crappy Sonic Generations style depth blur (based on movement speed)
Added BG music and modified sounds and made the spindash sound more proper (increases pitch with charging)
Short stage with improved BG (based on Hydrocity Zone's graphics)
Sonic Construct Hydrocity Test
So its mostly cosmetic stuff, I made no changes to the movement engine itself.
This test stage also easily reveals a lot of common issues, some of which I've noticed I'll mention here:

-Sonic gets stuck in the falling animation most or every time he lands on the ground that way.
-Short jump, that is, variable jump height, is permanently disabled after you do a ground roll.
-While skidding, if you hold the forward direction again, it sustains your speed, and completely disregards friction and gravity from slopes, breaking the gameplay entirely.
-You cannot turn around in midair until you are actually moving in that direction. This is not good, especially if one intends to implement a jump dash or homing attack.
-The engine seems to improperly detect some sharp angles as slopes. In this test stage, you can see this every time Sonic runs down the ramp that cuts off in midair, in which he just runs right under it in a circular sweep. Also, the first quarter pipe ramp, I once saw Sonic run straight down it when running left off of it, even though its a 90 degree angle.

I did not use collision masks for anything, just set the sprite objects themselves to solid. That's one thing I love about Construct, I can give any sprites pixel collision detection, which even ignores transparent pixels. For a Sonic game, this kind of advantage is ideal, but in the case of this engine, it might possibly be more proper to create collision masks for some things, which might defeat some of those bugs/oversights. Best case scenario is that they are fixed in the code.

Now that I've covered some of the obvious bugs, I'd like to suggest a couple things.
-I would have preferred that this engine behave in Genesis style, as Damizean's or MMF2's Worlds engine does. By that I mean, you made this a lot closer to the 2006 Game Maker engine than Sonic Worlds (classic style) in terms of Sonic's visual behaviors. I don't like the spinless hop, or the improper switches between rolling and unrolling when in midair. I could change all this without too much effort, but it still bothers the crap out of me. Although I can't say I disagree with the footsteps sounds system, that's pretty badass.
-None of the movement math in this engine is tied to deltaTime, and is therefore immune to timeScale. Some, including myself, like to make use of this feature. I would love it if you could add this in, or at least provide instructions so I or others can do so. I tried tweaking it to work, but I just made a total mess of the movement.
This post has been edited by Mr Lange: 09 January 2012 - 03:59 PM

#14 User is offline Azu 

Posted 09 January 2012 - 10:37 AM

  • I must be stupid.
  • Posts: 1434
  • Joined: 23-February 08
  • Gender:Male
  • Location:Home
DeltaTime also uses Pixel Per Second.

#15 User is offline StreakThunderstorm 

Posted 09 January 2012 - 04:39 PM

  • Posts: 185
  • Joined: 10-July 11
  • Gender:Male
  • Project:Mecha Madness

View PostMr Lange, on 09 January 2012 - 09:58 AM, said:

WORDS


I have since fixed the short hop, the skid bug, the falling animation and a few other tweaks. If you're interested in porting what changes you made to it[I love 'em] I'll upload the cap. As far as delta time, I wouldn't know how to implement it because the engine works on substepping. No matter how fast Sonic goes, his collisions will never be incorrect. Dami's work was pretty impressive in that regard. I wouldn't know how to implement time delta into that because it may in fact destroy the movement engine itself.

Here it is. Version 0.2
http://dl.dropbox.co...icConstruct.rar
This post has been edited by StreakThunderstorm: 09 January 2012 - 05:30 PM

  • 6 Pages +
  • 1
  • 2
  • 3
  • Last ►
    Locked
    Locked Forum

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users