New Game Maker Studio Sonic Engine To tide us over until AeSthEte.
#17
Posted 14 July 2013 - 11:37 AM
While it's not something I can exactly use, since my own engine is specialized for external custom characters, externally built stages, and splitscreen co-op, I'm sure I could probably learn some new tricks from this, or add more features to it, when I get the chance to pick it apart. If what Mr Lange says about the physics is true, I'd like to see what makes it feel similar to Sonic 2.
AeroGP, on 14 July 2013 - 11:08 AM, said:
Sonica, on 14 July 2013 - 11:06 AM, said:
- A scaled-up collision mask makes sonic bump over the enlarged pixels as he goes down, you should calculate this position through maths, not the mask.
- Sonic's mask should not always be that small. That small size should only be if Sonic is in a ball, or ducking. sonic should otherwise be 40 (?) pixels tall.
This engine was designed so that I would not have to do those things. I will not be changing them.
Is there a particular reason for that? O: I'm curious. Unless Game Maker 8.1's sprite collisions are handled differently from earlier versions, it seems odd not to handle collisions through math; collisions purely with a mask are jagged in behavior and aren't pixel perfect during movement, in my experience.
#18
Posted 14 July 2013 - 11:44 AM
- Fundamental design choice to separate this engine from AeSthEte.
- Accomodates gravity directions other than 0 more easily and is easier to understand.
#19
Posted 14 July 2013 - 06:01 PM
#20
Posted 14 July 2013 - 09:15 PM
AeroGP, on 14 July 2013 - 11:44 AM, said:
At least you were more successful with an alternative method for physics than I was. I tried a bobsled-esque mask that checked the terrain slightly ahead of the character. It technically worked great at slow speeds, and close to pixel perfect on landing, but the math that held it together, not so much. If you moved too fast, Sonic would fly right through the slope like water and slowly rise back up to the ground above it. (Still considering for enemy physics, however, since they don't move so fast, and it's much simpler than giving them dumbed down player character physics.)
Anyway, I'm glad you didn't bump into the problems I did, although I still worry this method could make Sonic fly right through a wall if moving fast enough. (The super characters in my own engine have a really high speed cap.) I should play the demo before I judge, though.
AeroGP, on 14 July 2013 - 11:44 AM, said:
By that do you mean different angles of gravity, (Like reverse gravity in Sonic & Knuckles' Death Egg Zone) or simple changes of direction while running along slopes? Sorry if that confused me, I'm not sure if you meant either of those.
#21
Posted 14 July 2013 - 09:27 PM
#22
Posted 14 July 2013 - 11:30 PM
.Luke, on 14 July 2013 - 09:15 PM, said:
The former. (It's not limited to just upside-down, either)
Also, what Overbound said.
Actually, I was able to reintroduce instance deactivation whereas originally I had it disabled due to the way Studio now executes it. In previous Game Maker versions, it was instant; now it doesn't update until the next step, so I couldn't check immediately after moving if the player was outside the deactivation range and extend it. To solve this, I took another page from DASH (this engine borrows a lot, you see) and had the deactivation range extended at the same time instances would normally be deactivated, so it will at least try to catch the player outside the view before he actually moves out.
It obviously doesn't work if the increase in movement speed is both huge and instant, so when you import the engine and start fooling around in debug mode, you can still end up falling to your death offscreen after hitting one of the debug test keys. (The build Overbound had still has deactivation disabled, so the issue simply doesn't occur) In practice, you shouldn't be letting the player reach a high speed that quickly anyways. Also, there are failsafes. You can specify that scene objects such as solids be ignored by the deactivation system individually, and therefore trade the memory overhead for better security if you really need it. You can also just limit how fast the player is allowed to move in the first place. (By default, it's already limited by the very generous amount of 128 pixels)
#23
Posted 15 July 2013 - 12:02 AM
And I'm glad you were able to work around that oddity with instance activation/deactivation. I didn't know that was an issue, so I need to be prepared for that when I get the chance to upgrade to Game Maker 8.1, especially for split-screen modes. (There's a way to use instance deactivation so that separate player objects only activate/deactivate the scenery around them, so co-op runs much smoother than in my last fan game.) Although it makes sense that the behavior remains the same as with old versions, while using your workaround.
In my last fan game built on Game Maker 7, I didn't have a speed cap for Super characters, so on certain zones, they were capable of flying well past the screen, into an empty area with no scenery objects, and die; so this was a problem in older Game Maker versions as well. That's partly why I didn't disable the speed cap on super characters in my new engine, and I think my speed cap is actually lower than your's for Super Sonic and Burning Blaze. (40, versus your 128; which I agree is generous. I couldn't even control speeds beyond 60 in play tests. *insert ludicrous speed GIF here*)
#24
Posted 15 July 2013 - 03:38 AM
#26
Posted 15 July 2013 - 01:37 PM
#27
Posted 15 July 2013 - 01:42 PM
I honestly find it really odd that Studio is not a re-branded 8.1 or above. I'm guessing there's probably no way to import older Game Maker source files into that too, (Or really painful to port over an existing source file, and fix all the little nuances in syntax differences between versions of Game Maker.) so I can see why you created an engine specifically for Studio. If I can avoid going through flaming hoops to activate a copy of 8.1, and exporters to other platforms, I might skip that version of Game Maker if it has Steam DRM attached. I don't have enough RAM on this laptop to leave Steam running in the background all the time while working on projects, since it's a bigger memory hog than Skype, so yeah.
Thousand Pancake, on 14 July 2013 - 06:01 PM, said:
This might be an obvious question, but do you have Visual C++ libraries installed? (There are 64-bit and 32-bit editions of it. That's why I can run Dolphin on Linux, but not Windows 7 past the emulator's startup, because I installed the wrong version of that library for my architecture, 64-bit.) Pretty sure you do if you play lots of games on it, but I felt the need to toss that one out there, since Game Maker is written in C++ now instead of Delphi. So I wouldn't be surprised if it was dependent on Visual Studio libraries, or something else entirely, for the Windows version.
#28
Posted 15 July 2013 - 02:06 PM
#29
Posted 15 July 2013 - 02:13 PM
#30
Posted 15 July 2013 - 03:08 PM
Didn't mean to derail the topic a bit over there, but I'd probably buy it direct from YoYo Games website, if I was stuck between a choice of GM 8.1 or Studio. Either doesn't sound too bad right now, besides the lack of extensions for the latter, but I've never needed them so far anyway. (Although if 8.1's extensions give me lots of options, that would be pretty tempting.)

00