Sonic and Sega Retro Message Board: Sonic MAX - Open-Source GMS Engine - Sonic and Sega Retro Message Board

Jump to content

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

Sonic MAX - Open-Source GMS Engine

#1 User is offline TruePowerofTeamwork 

Posted 09 April 2015 - 05:36 PM

  • Posts: 14
  • Joined: 21-September 14
  • Gender:Male
  • Location:Ontario, Canada
  • Project:Sonic Overture, Teal Game Engine, TealSonic
Sonic MAX is an open-source Sonic engine made in GameMaker Studio. The main purpose with this engine is to be as accurate as possible to the classic Genesis games, while allowing for as much customization as possible.


Sonic MAX is designed to be efficient and easy to use with many flags for changing certain aesthetics. Sonic MAX is open for anyone to contribute or help out. Sonic MAX is made to be very efficient, easy to use, and can be exported for many different platforms, with an initial development time of 500+ hours, over the course of 6 months.


If all you know about Sonic MAX is the SAGE Act 2 release, you'll be surprised. A lot has changed since, and the engine has been completely overhauled.

Here's a list of features:
- Sonic, Tails, and Knuckles.
- Elemental and Insta-shields
- Over 30 gimmicks/objects
- Sonic 2 Style Menus
- Input Recording engine
- Debug Mode engine
- Homing Attack
- Palette Cycling
- Custom Room Transitions
- Infinite Layer Terrain system
- Cutscene Engine
- Basic Endless Level Engine
- 3D Animated Water
- Parallax Engine
- Key Sequence Engine
- Floor Mode and 360 Angle Detection
- Sonic 3 Style Save System
- Super and Hyper Sonic

Credits:
-TruePowerofTeamwork - Creator/Coder
-Mega Ikey Ilex - Accuracy
-Mr. Potatobadger - Accuracy
-Mr. Lange - Accuracy, Various Help
-Nekkosu - Android/iOS Graphics
-SuperBliz/AeroGP - Trail Code
-Damizean - Bridges

Screenshots:

____________

Spoiler


Main:
Arrow Keys - Move
A - Jump, Shields.etc
S - Air dash/Homing
Q - Super Sonic
Enter - Pause/Select

Debug and Testing:
Press CTRL to switch between Floor and 360 angle modes.
Press E while Super to turn Hyper
Press D on Title Screen to activate Debug mode
Press Up Up Down Down Left Right Left Right on Title Screen to activate level select and sound test
Press 0 to slow down room speed(For testing)
Press 9 to revert speed.
Press 8 to restart the game
Press 3 to display HD rings(For testing GUI-level drawing)
Press 2 to instantly go to credits.
Press 1 to instantly go to cut-scene example
-Only when debug mode is active:
Press 5 to record input(Recording will stop when level finishes)
Press 6 to play recorded input
Press 7 to reset recording
-Note: Z, X and C can be used as A, S, and D alternatively.

New in-game Debug Mode:

Press D to switch to object mode and back.

Press S to change object.

Press A to place object

Press Q to change type.


_________________________

Version History:
Spoiler


________


Update: Download links have been moved to Google Drive.
DEMO(.EXE) Build 288
DOWNLOAD

SOURCE
DOWNLOAD(.GMZ)
GITHUB
This post has been edited by TruePowerofTeamwork: 19 April 2015 - 04:46 PM

#2 User is offline Covarr 

Posted 09 April 2015 - 08:06 PM

  • Sentient Cash Register
  • Posts: 4077
  • Joined: 05-February 07
  • Gender:Male
  • Location:The desert of nowhere, USA
  • Wiki edits:1
When I complete a stage in fullscreen mode, the next stage runs at the width of my monitor instead of 4:3. Otherwise, pretty good stuff here.

#3 User is offline Jcaraballo 

Posted 09 April 2015 - 11:10 PM

  • Posts: 20
  • Joined: 24-December 14
  • Gender:Male
It supports 32-bit operating systems

#4 User is offline TheValeev 

Posted 10 April 2015 - 08:16 AM

  • Posts: 17
  • Joined: 17-August 13
  • Gender:Male
  • Location:Russia
  • Project:Sonic Game Land
As soon as I'm able to work with Game Maker Studio(unfortunately, my computer is "too old" for it), I'll try to work with Sonic MAX for sure. This project looks promising and I hope it will grow up to be something like Sonic Worlds for Game Maker. :)

#5 User is offline Caverns 4 

Posted 11 April 2015 - 01:58 AM

  • Posts: 324
  • Joined: 07-December 12
  • Gender:Male
  • Project:Sanik Quest: Journey To The Right

View PostTheValeev, on 10 April 2015 - 08:16 AM, said:

As soon as I'm able to work with Game Maker Studio(unfortunately, my computer is "too old" for it), I'll try to work with Sonic MAX for sure. This project looks promising and I hope it will grow up to be something like Sonic Worlds for Game Maker. Posted Image


Legit, it's better than Sonic Worlds. We've done side-by-side experiments with MAX and Worlds to the genesis games, and MAX holds up a lot better... Though it has a few less gimmicks.

With that said, that's because MMF2 is a pretty inefficient program, and it's not Worlds or the Worlds developers fault at all that the engine (at least version 1.4.3) is inaccurate.

#6 User is offline Aerosol 

Posted 15 April 2015 - 11:24 PM

  • FML and FU2
  • Posts: 9736
  • Joined: 27-April 08
  • Gender:Male
  • Location:Not where I want to be.
  • Project:Sonic (?): Coming summer of 2055...?
I'm admittedly unfamiliar with GameMaker, but looking through the scripts had me frequently asking "why". There are 3000 scripts, with random ones being referenced in seemingly random places. Part of this is GameMaker's fault...it's kind of an awful IDE if you ask me. I'm guessing one isn't really expected to make much use of this unless they're either willing to just use the engine as is and start building levels, or if they're already comfortable with GameMaker? This isn't a problem specific to Sonic MAX btw. Every GameMaker engine I've come across just looks like a clusterfuck of scripts that's difficult to wrap your head around at first. I have seen a few with better documentation though.

I mean, part of the reason why so many people continue to use Worlds is because, as stupid as MMF is, Sonic Worlds itself isn't so blinding. It doesn't take as many mental backflips to figure out how the components interact with each other.

#7 User is offline Kharen 

Posted 16 April 2015 - 03:18 AM

  • Posts: 586
  • Joined: 29-October 11
  • Gender:Male
  • Location:Eastern Washington University
I'm the kind of person who learns best when I get an explanation along the lines of "this does this in this particular way because this". You know those tutorial videos on Game Maker that walks you through how to make a simple game engine? It would be amazingly awesome to see a set of videos that takes a finished version of an engine like this one, and explains how things work and why. For instance, if you were to take a gimmick and make a video showing how to add it to the engine and code it in, or if you were to take the Sonic object and do a video explaining how it works and how the code is organized the way it is, it would be incredibly helpful for somebody wanting to make something with the engine beyond the built-in objects.

#8 User is offline Trunks 

Posted 17 April 2015 - 11:26 AM

  • AGAIN TRY
  • Posts: 1407
  • Joined: 20-February 08
  • Gender:Male
  • Location:San Antonio, TX
  • Project:The Bancast, Lone Stars, LOVE
  • Wiki edits:30
I got a crash in emerald hill zone while I was rolling and tails died off screen. Dunno how reproduceable it is, but it's there.

This works incredibly well, and I'd love to dick around with the source code when I get a chance. This is the kind of thing that should be used by people to make new, non-Sonic games. Stuff like Freedom Planet.

#9 User is offline TruePowerofTeamwork 

Posted 19 April 2015 - 02:10 PM

  • Posts: 14
  • Joined: 21-September 14
  • Gender:Male
  • Location:Ontario, Canada
  • Project:Sonic Overture, Teal Game Engine, TealSonic

View PostAerosol, on 15 April 2015 - 11:24 PM, said:

I'm admittedly unfamiliar with GameMaker, but looking through the scripts had me frequently asking "why". There are 3000 scripts, with random ones being referenced in seemingly random places. Part of this is GameMaker's fault...it's kind of an awful IDE if you ask me. I'm guessing one isn't really expected to make much use of this unless they're either willing to just use the engine as is and start building levels, or if they're already comfortable with GameMaker? This isn't a problem specific to Sonic MAX btw. Every GameMaker engine I've come across just looks like a clusterfuck of scripts that's difficult to wrap your head around at first. I have seen a few with better documentation though.

I mean, part of the reason why so many people continue to use Worlds is because, as stupid as MMF is, Sonic Worlds itself isn't so blinding. It doesn't take as many mental backflips to figure out how the components interact with each other.


Yeah I've tried really hard to make it easy to use and organized, but it's really hard to do in GameMaker. The engine gets a lot easier to use if you get used to it, but it takes a lot of time to finally fully understand it.
Also the engine is designed for people that are more advanced with GM, as I used a few slightly advanced techniques and features, but I agree it should be much easier to understand.
I'll look into it and see what I can do about it. Thanks! =D

Edit: Could you give a few examples on where it just randomly references scripts? I try to use scripts for all code that is used more than once(With a few exceptions such as Actions), currently I'm removing the constants for actions, and just using the script resource name instead, which I think makes a lot more sense. Instead of having a massive switch for each action, and having to create a constant every time, you just set it to the name of the script that is associated with the action, and it can do all of that automatically.
I want to make certain tasks like creating characters, levels, or actions simple, fast, and easy. I've tried to set it up in a way where you can create levels very fast, without having to worry about the room creation code or setting up views and room speeds and such.

Edit 2: Oops, apparently some of the objects in EHZ are missing! That will be fixed very soon. I was comparing MAX to Sonic 2 directly, and I had some of the objects removed for easier testing, I guess I forgot to add them back before release..
Edit 2.5: Or maybe not... apparently the link is 285 when it should be 286. Either way I'm uploading 287 now.
This post has been edited by TruePowerofTeamwork: 19 April 2015 - 03:34 PM

#10 User is offline eighttailedfox 

Posted 30 May 2015 - 01:33 AM

  • Posts: 106
  • Joined: 10-November 14
  • Gender:Male
  • Location:Canadia Land
  • Project:Project Maelin
Is this engine still being worked on?

If so, I've been digging around the code, and have added many of the necessary codes and sprites for a 4th character, but I can't seem to find the part of the script that actually dictates which character appears when I run the test room.

#11 User is offline Chaos Rush 

Posted 29 June 2015 - 09:17 AM

  • Posts: 420
  • Joined: 14-March 10
  • Gender:Male
  • Wiki edits:1
Have you considered releasing a movement-only/physics-only version of this?

#12 User is offline SamplingMasters Nix 

Posted 13 July 2015 - 04:19 PM

  • Posts: 49
  • Joined: 09-February 10
  • Gender:Male
  • Location:Madison, MS
  • Wiki edits:1
Ok, I admit it. Without the Pro Upgrade, adding stuff to the engine is nigh-impossible, considering the memory limit placed on every basic project.

But, how would I know? I managed to get the Professional Upgrade, right before I went and imported the latest gmz. For something that was $100 via Steam, it better be worth it.

Quick question about the source: Can you add on to your own project? As in do I have permission to sprite and develop my own avatars, badniks, zones, and bosses? I want to create my own adventure with my Mobian, Weld the Dragon.

View Posteighttailedfox, on 30 May 2015 - 01:33 AM, said:

Is this engine still being worked on?

If so, I've been digging around the code, and have added many of the necessary codes and sprites for a 4th character, but I can't seem to find the part of the script that actually dictates which character appears when I run the test room.


Yes, I've wanted to ask TPoT the same question. So keep an eye out for a post from him.

Another thing before I forget. TPoT, I worked on a Sonic 1 ROM Edit via a Split Disassembly. Inside that project, the code was done in the Motorola 68000 Assembly Language. Although, now we use the MacroAS architecture to compile the Genesis ROMs, when I worked on my Sonic 1 N1X'd Edition, the main source code was the s1.asm text file. Thanks to peeps like drx, MarkeyJester, and Tweaker, the main disassembly text had comments to the side. The comments helped many newcomers to the Sonic Hacking Community by explaining what each line of code does in the grand design of the whole ROM.

The point is, did you by any chance leave comments in the code? If not, you should do that right now, and make sure we know what each line does, or is supposed to do. I need to find out how to add additional player characters to the roster.
This post has been edited by SamplingMasters Nix: 13 July 2015 - 04:35 PM

#13 User is offline .Luke 

Posted 19 July 2015 - 05:45 AM

  • Posts: 2078
  • Joined: 30-March 12
  • Gender:Male
  • Location:United States
  • Project:Freedom Planet fan art; Learning Music Theory
That's a whopping big list of features you guys have over there! If GM:S's compile time wasn't a pain in the neck, I'd give the code a good look. I wanted to make a full-featured Sonic example myself once, so it's good to see that finally happen. I got preoccupied with a Shantae engine anyway.

View PostAerosol, on 15 April 2015 - 11:24 PM, said:

I'm admittedly unfamiliar with GameMaker, but looking through the scripts had me frequently asking "why". There are 3000 scripts, with random ones being referenced in seemingly random places. Part of this is GameMaker's fault...it's kind of an awful IDE if you ask me. I'm guessing one isn't really expected to make much use of this unless they're either willing to just use the engine as is and start building levels, or if they're already comfortable with GameMaker? This isn't a problem specific to Sonic MAX btw. Every GameMaker engine I've come across just looks like a clusterfuck of scripts that's difficult to wrap your head around at first. I have seen a few with better documentation though.

I mean, part of the reason why so many people continue to use Worlds is because, as stupid as MMF is, Sonic Worlds itself isn't so blinding. It doesn't take as many mental backflips to figure out how the components interact with each other.


The extra scripts could be playing a role in streamlining the aforementioned customization in the features list, and wouldn't require you to mess with them much. I haven't looked at the code yet to know, so it's a wild guess as to why there's an illogical amount of them.

Anyway, I've noticed the same trend with a lot of Game Maker engines. Barely ANY comments in the code to explain what each block of code does, and tons of weird scripts that act as dummies to existing functions in GM for no real reason.

I had an easier time picking apart and studying Damizean's oldest Sonic 360 example than I did lots of text engines. (Most of them were so unergonomic and convoluted, I just wrote my own Zelda-like text box instead. It works great too!) Which is stupid considering Damizean used trigonometry and a little calculus in his GM stuff. I also had to write my own heart meter because of how badly explained and put together all the examples online are.

Honestly, GM gives you control of (almost) everything, so you don't need a hundred scripts to get something done. That's why I commented as much as possible in my Shantae engine, wrote a document that listed how the engine's structured, and mostly used scripts to cut down on multiple usages of the same code blocks. (All enemies can call one script for their ground physics, instead of each one carrying a duplicate in the Step event.) Damizean's original Sonic example did the same thing, so the way I learned to apply scripts was through his way of coding things.

(Damizean/RogueYoshi's last engine was a spaghetti mess of code, though. I found it faster to code features I wanted in myself from his basic, first example, than trying to understand what made that monster tick.)

It's really important to not only get a helpful example out there in the wild, it needs comprehensive comments and a readme or two. If the average intermediate can't learn how to do things with it, the only person who'd ever use it is the one who made it.

#14 User is offline KingofHarts 

Posted 19 July 2015 - 06:22 AM

  • Posts: 1546
  • Joined: 07-August 10
  • Gender:Male
  • Project:Sonic 1 Complete
  • Wiki edits:1
An avid Game Maker user, myself... I'm looking forward to this. A Shame I never got around to it before.

#15 User is offline qwertysonic 

Posted 27 July 2015 - 10:06 AM

  • Posts: 250
  • Joined: 29-April 11
  • Gender:Male
  • Project:creating the biggest sonic collection
I downloaded this a couple weeks ago and I really think it's good. I would also like to echo the earlier requests for more documentation. I've been learning Game maker for a couple months now, but these scripts are just not that intuitive. I love the progress that has been made though. It feels very much like a Genesis Sonic game.

  • 2 Pages +
  • 1
  • 2
    Locked
    Locked Forum

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