Sonic and Sega Retro Message Board: Roadmap - Sonic and Sega Retro Message Board

Jump to content

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

Roadmap

#1 User is offline Sofox 

Posted 29 November 2012 - 01:00 PM

  • Posts: 86
  • Joined: 26-March 12
  • Gender:Male
  • Location:Ireland
Time to organise this Roadmap, here's the first draft (I haven't made many of these, so suggestions for improvments welcome):

Summary:

The aim of this project is to create a high quality customisable 3d game engine that can be used in a wide variety of high speed platformers.
In order for it to be taken seriously as a game engine, and to ensure it has everything it needs to make a game, a high quality 6 Zone 3d game will be created. This is the long term goal.
To prove that the engine is ready for such a task, to increase motivation and have something that demonstrates the engine at an earlier stage, a single zone Countryside demo will be created that shows off the engine.

Current roadmap:

Already complete:
- Repository
- Basic 3d

To be completed for demo:
Programming:
- COLLADA importing
- Load character model
- Load level
- Character movement around level, including jumping
- Momentum and character movement physics
- Enemy movement and AI
- Lives, rings, and points managment
- Graphical effects including lighting and shaders
- Cross platform build system

Art:
- Level design
- Badnik design
- Items design (springs, goal)
- Level modelling
- Badnik Modelling
- Item modelling
- Sound effects development
- Music composing


To be completed for final game:

Programming:
- Cutscene system.
- Advanced menus
- Special stage system (?)


Art:
- Concept, design, and modelling for all 6 zones, including the enemies and various ites.
- Concept, design and modelling for Special Stage (?)
- All needed sound effects
- Full game soundtrack
- Storyline conception and scripting

Making copy of this here in the wiki for revising: https://bitbucket.or...ne/wiki/Roadmap
This post has been edited by Sofox: 29 November 2012 - 01:03 PM

#2 User is offline Candescence 

Posted 01 December 2012 - 06:28 AM

  • Posts: 1837
  • Joined: 22-October 10
  • Gender:Male
  • Location:Sydney, Australia
  • Project:Construct stuff
I think we should also have an in-engine level editor as part of the roadmap. Level editing is a massive part of making a game, and being able to dynamically create and edit a level in-engine allows devs to make quick, easy changes in-real time that they can test.

Hell, there was an entire thread with ideas on what could be included in a level editor, with the idea of optionally working with 'chunks' being one of them (kinda like Trackmania).

#3 User is offline Aerosol 

Posted 01 December 2012 - 06:45 AM

  • FML and FU2
  • Posts: 9236
  • Joined: 27-April 08
  • Gender:Male
  • Location:Not where I want to be.
  • Project:Sonic (?): Coming summer of 2055...?
That's a lot of goals for the initial demo. Maybe it should be scaled back to just include engine features related to rendering?

#4 User is offline Relick 

Posted 01 December 2012 - 07:37 AM

  • Posts: 197
  • Joined: 20-March 10
  • Gender:Male
  • Location:England
  • Project:C++/DX10 Engine (not sonic related)
  • Wiki edits:5

View PostAerosolSP, on 01 December 2012 - 06:45 AM, said:

That's a lot of goals for the initial demo. Maybe it should be scaled back to just include engine features related to rendering?


I don't think its too much for the programmers. Quite a few of those goals are trivial stuff, others not so much so it should balance out. As for the artists, I have no idea how long it takes to make the models, textures etc. so I can't say whether its too many for them.

Remember though that each list will (hopefully) be completed simultaneously, so it is actually half as big as you think it is :)
This post has been edited by Relick: 01 December 2012 - 07:38 AM

#5 User is offline Aerosol 

Posted 01 December 2012 - 07:59 AM

  • FML and FU2
  • Posts: 9236
  • Joined: 27-April 08
  • Gender:Male
  • Location:Not where I want to be.
  • Project:Sonic (?): Coming summer of 2055...?
Programming lighting and shaders is...trivial? That's news to me. I didn't know programming momentum and character movement physics was trivial either. Someone should tell that to Xaklse :specialed:

#6 User is offline Relick 

Posted 01 December 2012 - 08:38 AM

  • Posts: 197
  • Joined: 20-March 10
  • Gender:Male
  • Location:England
  • Project:C++/DX10 Engine (not sonic related)
  • Wiki edits:5

View PostAerosolSP, on 01 December 2012 - 07:59 AM, said:

Programming lighting and shaders is...trivial? That's news to me. I didn't know programming momentum and character movement physics was trivial either. Someone should tell that to Xaklse :specialed:


Maybe trivial wasn't the right word (I need to get some sleep).

I meant these ones were quicker to do:

- Lives, rings, and points managment
- Cross platform build system
- Load character model (this one only because the COLLADA import would have already been implemented)

than these ones:

- COLLADA importing (depends on whether we use a library or not)
- Load level
- Character movement around level, including jumping
- Momentum and character movement physics
- Enemy movement and AI

This one will take longer or shorter depending on how many shaders are going to be implemented:
- Graphical effects including lighting and shaders
This post has been edited by Relick: 01 December 2012 - 08:40 AM

#7 User is offline Sofox 

Posted 01 December 2012 - 10:33 AM

  • Posts: 86
  • Joined: 26-March 12
  • Gender:Male
  • Location:Ireland
Candescence: Good call about the in-game level editor. I think a basic version of it should be available for the demo to demonstrate it's features (maybe like Sonic 2 debug mode, for placing items and rings and such), and leave the advanced stuff for later. If further discussion changes our mind about this, we can update the Roadmap, but for now I've updated the wiki with that information.

Aerosol and Relick: You're both right, it's going to be hard to figure out the complexity and time of some of these tasks. We'll update the Roadmap as we learn.

#8 User is offline Aerosol 

Posted 01 December 2012 - 10:45 AM

  • FML and FU2
  • Posts: 9236
  • Joined: 27-April 08
  • Gender:Male
  • Location:Not where I want to be.
  • Project:Sonic (?): Coming summer of 2055...?
Damn, it didn't go through after all. I'll just make this short then.

We still have an irc channel at BadnikNET, aptly named #mobiusengine. I propose that we try to schedule times and topics so that everyone can get together and talk about something. I'm especially eager to nail down what rendering and lighting techniques we're shooting to have and when. Not time-wise, but in relative terms. Short-term, mid-term, long-term, etc.

#9 User is offline Damizean 

Posted 08 December 2012 - 12:36 AM

  • As classic as rock
  • Posts: 118
  • Joined: 01-February 06
  • Gender:Male
  • Location:Valencia, EspaƱa
  • Project:Various projects
  • Wiki edits:1
Just my two cents here, but I have the feeling the development is getting rushed just in order to have inmediate results, before thinking through the architecture of the engine. A foundation must be stablished, otherwise you'll encounter unforeseen design flaws that will require a lot of the codebase to be rewritten. My humble suggestion is to do some software engineering work beforehand, even before displaying anything other than a black console window. Stablish paradigms, code style, draw UML diagrams about the core system, it's interaction with other subsystems and external libraries, how they are integrated, etc.

My first critical thoughts about this would be:

  • Dependencies: Target platforms? Useful third party libraries?
  • Abstraction level: How much will you abstract the underlying layers? Wrap third party libraries? (Adapter pattern?)
  • Memory & Resource Management: What approach? Use an external library? Usage of smartpointers?
  • Game Architecture: State based? Specific game states or entity ridden?
  • Entities Architecture & Communication: How are entities described? Deep class hierarchy? Component aggregation? What communication protocols will be used?


There are some good reads out there about game engine architecture design, I would try to analyze other mature game engines and take what would seem to be the good decisions. Here's a couple articles that are pretty nice to read:
Id Tech 4 architecture review
MVC Architecture on Game Development
Game Programming Patterns
Gamedev: Useful programming design patterns for Game Development.

#10 User is offline Candescence 

Posted 08 December 2012 - 04:28 AM

  • Posts: 1837
  • Joined: 22-October 10
  • Gender:Male
  • Location:Sydney, Australia
  • Project:Construct stuff
WHOA WHERE DID YOU COME FROM

I can understand where you're coming from with this, though we should be careful not to take too long with the underlying architecture, otherwise we'll end up with the same result that got this project restarted by Sofox in the first place. Granted, that was mostly Gen not posting jack shit for months and eventually disappearing without explanation, but still.

Thankfully, we've got both Sofox and Relick working on this thing, and we haven't gone that far ahead (just have a primitive rendering, camera and movement), so we can take a step back and work out what underlying stuff we need to do.

#11 User is offline Relick 

Posted 08 December 2012 - 05:54 AM

  • Posts: 197
  • Joined: 20-March 10
  • Gender:Male
  • Location:England
  • Project:C++/DX10 Engine (not sonic related)
  • Wiki edits:5

View PostDamizean, on 08 December 2012 - 12:36 AM, said:

draw UML diagrams about the core system, it's interaction with other subsystems and external libraries, how they are integrated, etc.


I actually did just that yesterday before you posted, but I managed to lose it. I explained the main idea behind it to Sofox over IRC though.

I'll see if I can get another diagram drawn up today.
This post has been edited by Relick: 08 December 2012 - 05:54 AM

#12 User is offline Aerosol 

Posted 08 December 2012 - 01:38 PM

  • FML and FU2
  • Posts: 9236
  • Joined: 27-April 08
  • Gender:Male
  • Location:Not where I want to be.
  • Project:Sonic (?): Coming summer of 2055...?
Thanks for the input, Damizean. I totally agree that a good foundation should be built before getting too far ahead.

#13 User is offline James K 

Posted 24 December 2012 - 05:03 PM

  • Posts: 31
  • Joined: 16-March 11

View PostSofox, on 29 November 2012 - 01:00 PM, said:

To be completed for demo:
Programming:
- COLLADA importing
- Load character model


Try ASSIMP: http://assimp.sourceforge.net/ This is the best open source, general purpose 3D model loader I know of.

View PostSofox, on 29 November 2012 - 01:00 PM, said:

- Load level


If you're going for a "Model in external program, import into game engine" then maybe assimp would be sufficient for the geometry, and you could come up with a parseable map text format that stores the positions of objects, the scripting used for that level, definition of special effects used in that level, etc.

View PostSofox, on 29 November 2012 - 01:00 PM, said:

- Character movement around level, including jumping
- Momentum and character movement physics


THIS, this is probably the most essential part of putting Sonic gameplay into this engine.

Since 3D physics are so crucial to a serious 3D sonic engine, maybe someone could make an outline describing how the physics in SonicGDK, BlitzSonic, or Eggengine work.

The more detailed the better, but at least some kind of overview on how to properly align the player model on a 3D plane, how to adjust the player's velocity to a slope, how to handle the net forces acting on the player, determining the speed a player is able to run on walls, etc.

Just a 3D sonic physics guide informative enough to get the gist of how 3D sonic physics should be implemented.

Kind of like Sonic Retro's Sonic Physics guides http://info.sonicret...c_Physics_Guide - but for 3D



View PostSofox, on 29 November 2012 - 01:00 PM, said:

- Enemy movement and AI


You probably want to use a scripting system to make enemy programming flexible

I would recommend
Lua
http://www.lua.org/

or Squirrel
http://www.squirrel-lang.org/
Easy C++ intergration with the squirrel scritpting language: http://scrat.sourceforge.net/


View PostSofox, on 29 November 2012 - 01:00 PM, said:

- Lives, rings, and points managment


This is simple, no external libraries needed

View PostSofox, on 29 November 2012 - 01:00 PM, said:

- Graphical effects including lighting and shaders


You'll need some essential matrix math if you're going to do any fancy things with shaders

http://www.lighthous...mple-libs/vsml/


View PostSofox, on 29 November 2012 - 01:00 PM, said:

- Cross platform build system


Or you could just maintain 3 projects Codeblocks(Windows/Linux), VStudio, Xcode(Mac)
Automated build systems often give bloated projects with a bunch of verbose settings, but if automated build systems are the easiest to manage that's ok too.

View PostSofox, on 29 November 2012 - 01:00 PM, said:

Art:
- Level design
- Badnik design
- Items design (springs, goal)
- Level modelling
- Badnik Modelling
- Item modelling
- Sound effects development
- Music composing


High quality fan-made Sonic the Hedgehog sound effects and music resources are all over the web, you can probably use some if you ask around.
For 3D modeling, all I know is that there are a bunch of experienced Maya/Blender users on Sonic Retro

View PostSofox, on 29 November 2012 - 01:00 PM, said:

To be completed for final game:

Programming:
- Cutscene system.
- Advanced menus
- Special stage system (?)


For the beginning stages, I'd recommend an in-game console over a menu, it's easier to make than a GUI, and would make development and testing easier (e.g. switching maps via in-game console, adding enemies via in-game console, etc.)


Remember, there's a huge resource of permissively licensed open source software out there, you don't have to write all low level code yourself.
The links I posted are ZLIB/MIT/CC0 licensed, meaning you can use the code for practically any purpose.

#14 User is offline Aerosol 

Posted 24 December 2012 - 05:30 PM

  • FML and FU2
  • Posts: 9236
  • Joined: 27-April 08
  • Gender:Male
  • Location:Not where I want to be.
  • Project:Sonic (?): Coming summer of 2055...?

View PostJames K, on 24 December 2012 - 05:03 PM, said:

View PostSofox, on 29 November 2012 - 01:00 PM, said:

- Character movement around level, including jumping
- Momentum and character movement physics


THIS, this is probably the most essential part of putting Sonic gameplay into this engine.

Since 3D physics are so crucial to a serious 3D sonic engine, maybe someone could make an outline describing how the physics in SonicGDK, BlitzSonic, or Eggengine work.

The more detailed the better, but at least some kind of overview on how to properly align the player model on a 3D plane, how to adjust the player's velocity to a slope, how to handle the net forces acting on the player, determining the speed a player is able to run on walls, etc.

Just a 3D sonic physics guide informative enough to get the gist of how 3D sonic physics should be implemented.

Kind of like Sonic Retro's Sonic Physics guides http://info.sonicret...c_Physics_Guide - but for 3D


This depends entirely on the game we make. We may not want to try to extrapolate Genesis physics into the 3rd dimension. We may want to eschew Genesis physics entirely. That'd be my preference, but the end decision is Sofox's right now.

#15 User is offline James K 

Posted 24 December 2012 - 06:46 PM

  • Posts: 31
  • Joined: 16-March 11

View PostAerosolSP, on 24 December 2012 - 05:30 PM, said:

View PostJames K, on 24 December 2012 - 05:03 PM, said:

View PostSofox, on 29 November 2012 - 01:00 PM, said:

- Character movement around level, including jumping
- Momentum and character movement physics


THIS, this is probably the most essential part of putting Sonic gameplay into this engine.

Since 3D physics are so crucial to a serious 3D sonic engine, maybe someone could make an outline describing how the physics in SonicGDK, BlitzSonic, or Eggengine work.

The more detailed the better, but at least some kind of overview on how to properly align the player model on a 3D plane, how to adjust the player's velocity to a slope, how to handle the net forces acting on the player, determining the speed a player is able to run on walls, etc.

Just a 3D sonic physics guide informative enough to get the gist of how 3D sonic physics should be implemented.

Kind of like Sonic Retro's Sonic Physics guides http://info.sonicret...c_Physics_Guide - but for 3D


This depends entirely on the game we make. We may not want to try to extrapolate Genesis physics into the 3rd dimension. We may want to eschew Genesis physics entirely. That'd be my preference, but the end decision is Sofox's right now.


You mean you would prefer to have the Mobius engine(a Sonic engine) with a physics system entirely unlike Genesis physics in 3D and therefore having physics unlike Sonic GDK/EggEngine/etc?

What is the benefit of that though?
SonicGDK for example has Genesis-in-3D-like physics that are robust enough to replicate both
classic Sonic gameplay https://www.youtube...h?v=KH9KSi8bFpo
and modern Sonic gameplay https://www.youtube....h?v=QAX74ISpd4k

And even other platform genres, like for example, a Mario-like platformer would be compatible with SonicGDK-like physics, e.g. with Mario Galaxy-like platformers, 360 player orientation support would be quite handy

Why would it not be preferable to have a robust physics system that can emulate classic and modern Sonic platformers in addition to other platforming genres?

  • 2 Pages +
  • 1
  • 2
    Locked
    Locked Forum

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