don't click here

Symphony Engine

Discussion in 'Engineering & Reverse Engineering' started by Dark_, May 12, 2025.

  1. Dark_

    Dark_

    Remember when we felt the sun Member
    30
    108
    33
    Home
    Sonic Aural, Sonic Legends, Sonic XG
    Symphony Engine
    [Put the logo here when it's made]
    What is this?:
    Symphony Engine is my game engine for the Sega Mega Drive, specifically aimed for Sonic and other projects of mine. Engine cores are designed to be incredibly modular so it can be used in anything. This project is made just for me to have a solid base and for learning about the Sega Mega Drive's hardware and Motorola 68000 assembly... And just to have fun with this!

    I have planned to make this open source one day hoping it could be helpful for people for learning. This thread is mainly a dev log for the engine where i'm occasionally going to post what i'm doing instead of clogging up the General Project/Screenshot Thread.
    As of writing this thread, the engine features level scrolling, object system, sprite rendering and art lists[or PLC as everyone calls them]

    Screenshots:
    [​IMG]
    This is the only one so far.... will add more once there's more done

    This post will be also expanded later on as more stuff gets made!
     
    • Like Like x 8
    • Useful Useful x 1
    • List
  2. Dark_

    Dark_

    Remember when we felt the sun Member
    30
    108
    33
    Home
    Sonic Aural, Sonic Legends, Sonic XG
    Now gonna follow up this post to show off the basic object system, it is still extremely work in progress, it lacks drawing routine with priority basically, object system contains two separate routines, that being update and drawing, as of now sprites are being rendered in update routine just so you can see them. You can also draw sprites separate from objects which means you could do multi segmented objects in one object, for example you can do swings or bridges without creating multiple objects!

    This object system is based on Crackers and Devon's linked list system.
    [​IMG]
     
  3. Devon

    Devon

    pfp by @litchui on Twitter Tech Member
    1,582
    1,959
    93
    your mom
    It's really cool the amount of progress you have made learning to program for the Genesis in like, a month you told me? Can't wait to see more.
     
    • Agree Agree x 4
    • Like Like x 2
    • List
  4. MarkeyJester

    MarkeyJester

    You smash your heart against the rocks Resident Jester
    2,316
    565
    93
    Japan
    Hey nice work! Lookin pretty darn good~

    Hope to see it in all its fully glory and action, with some unique objects. Hope they'll be easy to program :thumbsup:
     
  5. Dark_

    Dark_

    Remember when we felt the sun Member
    30
    108
    33
    Home
    Sonic Aural, Sonic Legends, Sonic XG
    Thank you MarkeyJester! They won't be too hard to program considering the fact i have prior experience with gameplay programming in the fangame scene. So programming stuff like the player object and physics are not too hard for me. The biggest challenge was trying to figure out how the hardware works considering this is my first time programming something from scratch for the Mega Drive. :)
     
  6. Dark_

    Dark_

    Remember when we felt the sun Member
    30
    108
    33
    Home
    Sonic Aural, Sonic Legends, Sonic XG
    Hello everyone! I have no idea if i should consider this as something major, in my honest opinion i would say this is a minor update, i started implementing some collision functions! It is still incredibly work in progress, as of now you can only detect floor on plane A and does not return angle yet...

    [​IMG]

    Floor collision function was pretty simple to implement. Basically i have a function that calculates distance between collision point A and collision point B, and it returns distance from the point that lower than the other point. For example if point A's distance is 2 and point B's distance is 12, the function will return distance from point A.

    Also you might notice that there's no parallax or palette cycle anymore, that's because i have refactored the entire assembly file for the stage game mode, and i will make custom parallax system and palette cycle system later...

    But anyways that's it. :)
     
  7. MarkeyJester

    MarkeyJester

    You smash your heart against the rocks Resident Jester
    2,316
    565
    93
    Japan
    Hey nice work!

    Collision is one of the worst things to have to write, not the act of making or the math behind it, but sheerly from an optimisation point of view, if there's loads of objects which have to collide with the floor, it can get costly.

    Here's hoping you've come up with a level format that's easy to process for collision, that gif is looking pretty solid :thumbsup:
     
  8. Dark_

    Dark_

    Remember when we felt the sun Member
    30
    108
    33
    Home
    Sonic Aural, Sonic Legends, Sonic XG
    Thanks! Unfortunately, level format is not my own, it's ProjectFM's 64x64 chunk level format with my own stage renderer and collision code. Eventually i do plan on making my own level format and tools for level editing... I just gotta find the time and motivation for it.

    I think the biggest test for collision's performance is going to be the ringloss object whenever i get to that.
     
  9. Dark_

    Dark_

    Remember when we felt the sun Member
    30
    108
    33
    Home
    Sonic Aural, Sonic Legends, Sonic XG
    Now you can move on slopes! It kinda looks weird but that's mostly due to some angles on tiles being off and lack of proper slope influence

    [​IMG]
    If anyone asks what happened at the end of the GIF, i fucked up my jump code... it's fixed now
     
  10. Dark_

    Dark_

    Remember when we felt the sun Member
    30
    108
    33
    Home
    Sonic Aural, Sonic Legends, Sonic XG
    More and actually functional player physics

     
  11. Chimes

    Chimes

    The One SSG-EG Maniac Member
    1,070
    740
    93
    Whoa, this actually looks quite solid in regards to the Sonic physics!