Sonic Realms 0.4.0 - Unity2D Engine

Discussion in 'Fangaming Discussion' started by KOHCTPYKTOP, Mar 7, 2016.

  1. KOHCTPYKTOP

    KOHCTPYKTOP

    Member
    10
    1
    0
    United States
    Sonic Realms
    Demo - Windows | Mac | Linux (I'm not able to test on Mac and Linux, so not sure if those'll work - looking for somebody to help out with that!)
    Source - Repo | Latest Release


    [​IMG][​IMG][​IMG]

    Sonic Realms is a free, open-source 2D Sonic development kit for the Unity engine.

    It's free - built entirely in the Personal edition and requiring no external packages. Get Unity, get this, and you're good to go. No limitations on the free version other than Unity's splash screen.

    It's easy - scripts take advantage of the visual editor wherever possible. Everything but the logic itself can be modified without having to use code. The code, if you do need to change it, is organized and commented.

    It's modular - if you don't want it, don't use it. For example: if you like the physics, but not how the game is set up, just make a new scene and drag in Sonic! Everything is loosely connected, letting you rearrange stuff without getting flooded by errors.

    FEATURES

    Physics!
    A 360 platformer engine. How accurate is it? Well, try out the demo!
    But wait, there's more - customizable rotation, gravity in any direction, infinite speed limit, 8 layers for collision, water areas rather than a single water level...
    Make a collider, edit the shape, put it on the right layer, and you've got yourself a platform. Don't worry about small gaps and errors - the physics algorithm is built to take account for it.

    Character!
    No plural... There's currently just one character - Sonic. He comes with his moveset from Sonic 3&K.

    Level Stuff!
    The essentials - monitors, spikes, springs, moving platforms, water.
    A few gimmicks - pipes, tunnels, corkscrews, balloons.
    Badniks - two of them! Buzz bombers and motobugs.

    Triggers!
    They can play animations, sounds, and events in response to the player, all set up from the UI.

    Animations are awesome - the can do more than just swap sprites. Unity's animations can change platform position/rotation, enable/disable objects, and even call scripts. Many setpieces can be created just by using triggers to play animations. Let your imagination run wild!

    Sound!
    Fast and playable from the UI.

    Infrastructure!
    Design - the flow of the game is coordinated between Game and Level Managers, each with a plethora of gameplay and UI settings exposed in the Unity editor.
    Saves - keep track of character, lives, and level progress. Works even in web builds!

    Shaders!
    A palette cycler for 8 colors, a color curve and distortion shader for water, and a Sonic-style fader (to blue then black) for that extra hit of nostalgia.

    Miscellany!
    Parallax - Works even in edit mode for easy previewing!
    Font tool - Can make a font from any spritesheet. Comes with fonts from Sonic 2, 3 & K.
    Unity - A pretty good engine! Did I mention it's free?

    FAQ
    Can it do 3D?
    The engine doesn't have 3D movement and there are no plans for it.

    What about 2.5D?
    Sure! All that matters to the engine is that you use 2D colliders. The Z axis is fair game both for level assets and Sonic himself.

    Do I have to learn how to code?
    There is no visual code editor in Unity or Sonic Realms, but you can get pretty far with the trigger system. The most code heavy aspect of the engine would have to be creating new moves and new game modes.

    Can I use it for X?
    Use it commercially and privately as long as you give credit and don't sue me.

    Can I make web games with this?
    To some extent... Unity's WebGL deployment is still very young. As a result, there is an especially glaring bug with Sonic's animations in WebGL.

    Can I make mobile games with this?
    Probably, but you'll have to put in your own controls for it!

    What language does the library use?
    C#, Unity's .NET 2.0 Subset API.


    The engine is pretty bare-bones right now, but hopefully it presents another option to the fangame engines out there today.

    I wanted to release early on to see if people might be interested in the project, and I plan to put in more time to fully develop it. I'm open to suggestions for what to make or improve next as well.

    The lower level systems (physics, moves, objects) are pretty much set in stone, whereas the upper level (game structure, save files, UI) will probably change a lot to accommodate new features.

    I've yet to make a guide, so for now the only learning materials are the demo scenes and code documentation. There should be tooltips in most editor fields. And, of course, I'm always around to help!
     
  2. Aerosol

    Aerosol

    FML and FU2 Moderator
    10,579
    70
    28
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    It's pretty good so far, though moving up and down slopes feels a bit gummy, like your trigonometry or sensors are off.

    I have my reservations about allowing this to be used for commercial projects as well, but that's up to you.
     
  3. KOHCTPYKTOP

    KOHCTPYKTOP

    Member
    10
    1
    0
    United States
    Sonic Realms
    Huh... I can't believe I didn't notice that after months of development. I've pushed up a fix and uploaded new demos. Thanks for the input!
    (Sonic was getting ground friction with horizontal input, which isn't supposed to happen.)

    My reasoning was that I've seen what Strife did to Sonic Worlds to make Freedom Planet, and it'd be cool to have that kind of exposure. What about it do you disagree with?
     
  4. Atendega

    Atendega

    Lesser Sea Sponge Member
    577
    0
    0
    Comfy couch
    Collecting insults
    This looks excellent. I can't try it right now, but I've always wanted a good Sonic engine in Unity.
     
  5. This looks like a great basis for a Sonic fangame. There's still some jittery weirdness on slopes, but it feels like a Sonic game. I also found it a little odd that you are rotating the regular sprite to 45 degrees instead of using the Genesis/MD sprites. If you were doing smooth rotation I'd understand, but it looks a bit odd when you're only got the traditional 45 degree increments anyway. The gravity/camera rotation towards the end also felt off, not sure if it was just the camera, or the movement too.


    Overall though, this is very cool. As a Unity user myself, I can't wait to take a look at the code and play around with it.
     
  6. Aerosol

    Aerosol

    FML and FU2 Moderator
    10,579
    70
    28
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    Thanks for the quick update! The gumminess is gone, but there's still a weird bug. If I try to run up slope without a lot of momentum, Sonic will slow to a stop, and then jerk forwards then slow to a stop again. There's also some tile separation when the camera moves, but I suspect that's a Unity fuck up of some kind. It's fidgety when it comes to subpixel movements for sprites, if I recall correctly.
     
  7. Blast Brothers

    Blast Brothers

    Member
    49
    0
    6
    It's a little rough around the edges, but it's a great start. However, I found three main issues:
    1. Is anyone else's demo constantly making Sonic run to the left? This isn't supposed to happen... right?
    2. The color and mellow wavy effect (which could be made a little more intense) make being underwater look like an acid trip.
    3. Sonic sticks to the ground on slopes a little... aggressively?
    Other than that, this is really neat- and the gravity-defying section made me laugh. Can't wait to see how this improves ad gets used in the future.
     
  8. eighttailedfox

    eighttailedfox

    Member
    106
    0
    0
    Canadia Land
    Project Maelin
    I've been working with the maker for the last few months, mostly as a tester. Helping him find bugs and stuff.

    Now I'm a really bad programmer, I've been looking for an engine to use that could also do more HD stuff, not just pixel. With the modular way he's built it, along with Unity's own ease of use, this has been the most user friendly engine I've tried. Which is why I've been helping him so long.

    If you're talking about the mushroom hill sections, I believe this is mainly my fault. I helped build this level with him, and the bounding box type of collision Unity uses combined with how sonic sticks to the ground, some of my bounding boxes on the mushroom hill assets don't have a large enough angle difference to donate a state where he let's go of the ground.

    Such as the section just before the checkpoint, where sonic can spindash all along that curvy slope. So, sorry for that.

    Edit: Apparently the angle difference max is set to 70 degrees in this version of the demo. So the two combined is what makes him feel more aggressive.
     
  9. Atendega

    Atendega

    Lesser Sea Sponge Member
    577
    0
    0
    Comfy couch
    Collecting insults
    I just got around to trying it, and it is excellent.
    I vote that everybody abandon's Sonic Worlds and uses this. Unity is just infinitely more versatile than Fusion.
     
  10. But then people would have to learn an actual programming language...
     
  11. Atendega

    Atendega

    Lesser Sea Sponge Member
    577
    0
    0
    Comfy couch
    Collecting insults
     
  12. How is any of that countering my statement. If you've never used Unity before and you want to jump into using this to make a fan game, you're still going to have to learn (specifically in this case) C#.
    Just because the code is commented doesn't mean you don't have to actually understand the language.
     
  13. AURORA☆FIELDS

    AURORA☆FIELDS

    The cute one here Tech Member
    I don't think this shit is even close to ready for a topic release. Its good effort, for sure, but it just feels like you half-finished everything and went "fuck it, its good enough, ship this shit to everyone". The physics feel awkward. Its like they try to be right but just cant make it. The mixing of different zone assets and complete lack of respect for common level design principles is really irritating, even for a test zone. The whole engine is a buggy mess; I can fall through platforms, randomly get picked up by platforms that are too far to pick me up (seriously spindashing in air being lifted by a random platform pixels away from me is dumb), and the shitty execution of the zone rotation gimmick (which is cool but nauseating with the wonky camera work). I cant get it to display larger than 1366 pixels or whatever. There is no way to adjust volume that I can tell of, or pause menu for that matter. What if I want the music shit off so I can listen to some other stuff? My monitor #0 is labelled as display #2 for some strange reason. Graphics quality setting is utterly dumb and shouldnt exist. The underwater palette is questionable at best. The save system is broke (getting game over = I have one life left - sometimes??) Object priorities are way beyond fucked (sonic behind a platform, shield in front???). There seems to be no notion of high plane and low plane. Balloons are silent. I can get hit by spikes when I am still flashing. shield animations are a joke. This puts my GPU load to 80% and my GPU is pretty high end. Signposts don't know how not to rotate infinitely.
    Oh right of course; If you hold down and start moving, instead of you just moving (ala S3K physics), you just walk a bit and start to roll.

    Seriously with all of these issues (and really I bet I could find many more if I had the time) this engine at this point feels like a crappy knock-off Sonic game, minus the actual gameplay. Its really not ready to be released yet.

    As you may tell, I know my Sonic shit pretty well, even down to the code. If you are bothered by it not being basically 99+% accurate to the original, I can help you fix the issues. But I am not touching Unity with a long stick, so I can really only provide technical information and complaints about things you get wrong.
     
  14. Atendega

    Atendega

    Lesser Sea Sponge Member
    577
    0
    0
    Comfy couch
    Collecting insults
    I realize that, but for the most part you don't have to touch any code, just import your assets and arrange them in the editor.
    This is already mostly accurate to the Genesis games. I didn't encounter any major problems. Plus, if he doesn't tell us about it, we can't fiddle with the source and help him improve it. Way to be pointlessly pessimistic.
     
  15. AURORA☆FIELDS

    AURORA☆FIELDS

    The cute one here Tech Member
    You are very wrong about it. This is not "mostly accurate" to the Genesis games. Very not so. I did encounter major problems with this at all times. Now, I am not being "pointlessly pessimistic", I am being exactly as pessimistic as I need to be. I was looking forward for this when I saw a video earlier, but I was sorely disappointed by the lack of quality. So I pointed out the things I found (which any decent developer would be thankful for, by the way), and set the tone according to my disappointment. I think, therefore, my tone was wholly justified.
     
  16. KOHCTPYKTOP

    KOHCTPYKTOP

    Member
    10
    1
    0
    United States
    Sonic Realms
    To be honest, that's pretty much how I rationalized it. There are a fair amount of bugs, and while I think the core physics is robust, I do concede that the menus, saving, structure, etc. are incomplete for sure. I got impatient with myself after having kept the development under wraps for so long, decided to yolo and, for better or for worse, show it off.

    Note to self: Green Mushroom Plant Zone was a bad idea

    As for level design, eighttailedfox built it incrementally as I put in more features and it suffers from flaws as a result. So it's my bad. Nevertheless, I'm sure he'd appreciate any specific criticisms.

    Again I disagree with the physics being that much off, but I imagine that working with the originals for so long the flaws would stick out like a sore thumb. It'd be amazing if you could help with the physics issues!

    I'm a little salty. But any input is good input.

    Overall I'm still glad I released. I've a list full of bugs to fix and things to improve, even if they probably should have been fixed before I posted. Thank you to everyone that's trying it out and giving feedback. I'll see what I can do in a week or two.
     
  17. AURORA☆FIELDS

    AURORA☆FIELDS

    The cute one here Tech Member
    I've worked with the classic games enough to notice really any difference, and let me tell, I found a lot of them. In fact so many I couldnt really concentrate on the minor issues, as there was so much major ones. Mostly its just case of velocity adjusting, tuning it to match properly the originals, but some were really bad physics issues.
    Drop me a pm with any contacting method, and I'll pick the one I prefer.


    There is no real reason to be; all I am pointing out is the flaws with the engine and giving my opinion on it. Of course you'd hope its "good enough", but it clearly isn't and the blame is not in us. But its good if you accept the input nonetheless, allows you to move past the mistakes.
     
  18. eighttailedfox

    eighttailedfox

    Member
    106
    0
    0
    Canadia Land
    Project Maelin
    I won't say that the level design is great. I know it has flaws. It's a showcase level. A section on the layering system, a water section, a section with crushing blocks, a gravity section. The tube from chemical plant is in there. The mentioned balloon. Item boxes and shields of all kinds.

    I chose mushroom hill, since test levels for other engines almost entirely focus on emerald hill or green hill. Plus it allowed me to do the U shape to show three layers in the same area. A little before the checkpoint.

    I'm happy with it as a test level, and as the engine moves forward, the test level will be rebuilt. The layering section goes on a bit too long, and the platforms for the second half of gravity section don't match the gravity direction.

    In the end, for a fan engine, the level design will be up to the fan who uses it to create levels. I will improve the test level as we go to show this better, but I do believe this to be a functional test zone.

    He's justified in being a little salty. Your first sentence was declaring the whole thing to be shit. We both value the feedback, but that doesn't mean you have to outright condemn the whole thing.

    By all means, I appreciate the time you've put in to test the demo. Just in the future, please don't say people have nothing to be offended about, when you type profanities.
     
  19. AURORA☆FIELDS

    AURORA☆FIELDS

    The cute one here Tech Member
    You would like to re-read it, maybe. I didnt call this "shit". In fact right after I say its "good effort"! Could you pay attention to what you read and not jump the gun on what I say in a post?
     
  20. Mr Lange

    Mr Lange

    A wise guy eh. I know how to DEAL with wise guys. Member
    1,286
    5
    18
    The Land of Waldos
    Sonic Utopia, Sonic Overture
    I agree fully with Green Snake. Others here are only revealing they've barely if at all played the classic Sonic games, or are trying to be more positive and supportive than is warranted.
    Sonic in this engine plays with so many oddities and inconsistencies I don't even know where to begin; from lurching seemingly at random to awkwardly accelerating and decelerating while moving up and down slopes. I haven't put much pressure on it yet and already flaws are coming out of the woodwork, just playing it normally.
    Even Sonic's rolling action is broken on flat ground under no special conditions. https://I.gyazo.com/e06a46d7d15641f52a1f3f31dfccfce6.mp4
    This engine needs a great deal of work before it can be considered viable not only for commercial projects but fangames as well. Despite Unity's vastly superior capability to MMF2, this can't replace Sonic Worlds due to this engine's faults. All of that power is no good if the gameplay doesn't work.