Sign in to follow this  

Unity EDIGames, next generation, game engine core design

This topic is 4733 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey all, I was playing around with some structure for our next generation game engine core, which will be built after the completion of our current game Morning's Wrath So I would see the community reaction to some of the systems i'm planning on using. So, here is the link to an image that contains some basic object defenitions, it's a non-standard design schema so do the best you can to understand what im trying to show. here are a few hints. 1.Our current engine is called Flare, so our next will be Magnesium(it's a cool name ;D). 2.this design only includes classes for the engine core, and the Graphics2D sub-system 3.this design is in no way complete or final, so view it as a work in progress 4.green is a concrete class 5.blue is an interface 6.red is an enum 7.class names are structured as Name:superclass:pattern any constructive feedback is appreciated, but please don't write back saying one or more of the following. 1.your design totaly sucks 2.you should use UML or 'X'designer 3.your naming conventions are bad I am mainly looking for oppinions on structure and how things relate, which I hope is explained well by this document. Thanks for your time =) [Edited by - EDI on December 30, 2004 10:50:47 AM]

Share this post


Link to post
Share on other sites
I guess its ok for a 2D engine. My comment is that you should start with a simple graphics interface support (DX or OGL) and make it work, then, when you feel your engine is strong, rewrite it for multiplatform but keeping the basic programming interface.

Havent you considered moving to 3D? My old engine, KEngine, was 2D but I decided to drop it and create KEngine3D and Warscale. I suffered a lot but its lot better. And many sections (like the GUI) are still the same basic libraries. Now I don't want to go back.

Luck!
Guimo

Share this post


Link to post
Share on other sites
This engine is both 2D and 3D since it is built in a multi-tier system.

however in the diagram only the Graphics2D strategy is shown.

what you are actually looking at is the engine 'core' which is tier-1,
and the Graphics2D strategy which is a sibbling library of tier-2, the document doesnt yet have the Magnesium2D or Magnesium3D classes which are the actual 'game' objects.

Share this post


Link to post
Share on other sites
As you say, you have a vision about your engine, so its hard to comment on an incomplete design. Maybe if you show a more complete version (only considering interfaces and main clases as the subclass implementations are not really required in order to understand the design.

Luck!
Guimo

Share this post


Link to post
Share on other sites
Ok I'll offer my comments [smile] -

1. I think its great that you have the beautiful diagram to use in planning. I was just about to tell you what I use for mine - but then I saw the logo at the bottom right corner [wink].

2. The first thing I would ask is - what is the platform for this engine. I noticed a lot of items that you could easily wrap and extend that are common for use in Win32 systems.

3. It seems like there is no engine core listed - what kind of framework are you going to use? Handle messages? Etc.. The classes listed seem like necessay parts - such as the lists and elements, but it seems rather empty.

4. I like the use of XML - I will be adding it to our engine [smile]

5. Out of couriosity, why are you use uint64 instead of uint32?

Other than that I think its a good start. I will take a look at the game too. Are there any docs avalaible refrencing your Flare engine - such as a similar diagram and such? I'd be intrested in seeing it.

I'm working on a game engine as well now - for the people who read this and say "your always working on a game engine", your right [lol]. Anyways I have finally accompished what I've been trying to do for over a year - an abstract engine designed with the use of plugins. It's hard to describe all of it, but the main goal is extensibility. I would consider adding plugins to your engine. Hey if you need a start with them feel free to take a look at my profile [wink]. The test projects are not designed entirely correct (view the thread to see why) but the plugin code is right - I am using it with my engine now and its working great!

Well I must say good job! Goodluck on your engine and game!
- Drew

[edit] GDev fix the darn 'Check here to include your profile signature.' checkbox! [/edit]

Share this post


Link to post
Share on other sites
>1. I think its great that you have the beautiful diagram to use in planning. I >was just about to tell you what I use for mine - but then I saw the logo at the >bottom right corner .

yeah, i like smart-draw

>2. The first thing I would ask is - what is the platform for this engine. I >noticed a lot of items that you could easily wrap and extend that are common >for use in Win32 systems.

the engine is meant to be platform indipendant, through the use of the strategy pattern for API access through a uniform interface.


>3. It seems like there is no engine core listed - what kind of framework are >you going to use? Handle messages? Etc.. The classes listed seem like necessay >parts - such as the lists and elements, but it seems rather empty.

what your looking at, is mostly the core, however it's not totaly fleshed out yet, we use a delegation system for handling of messages, the core handles all of the interaction with the platform and low-level managing of resources.
it probably seems empty since all of it isnt there, mainly the scripting subsystem

>4. I like the use of XML - I will be adding it to our engine

yes, in our experience with our current game, it is priceless

>5. Out of couriosity, why are you use uint64 instead of uint32?

we are trying to prepare for the introduction of addressing 64bits worth of memory or file data, should the need arise.

>Other than that I think its a good start. I will take a look at the game too. >Are there any docs avalaible refrencing your Flare engine - such as a similar >diagram and such? I'd be intrested in seeing it.

unfortunetly the Flare 3.0 engine wasnt built with alot of fore-though, as you can now see I am trying to change my ways by thinking through things first.

but here is a basic rundown of how it works...

specific api's are access through dynamic-link-libraries, through a common interface.

there is the Flare object, which is basically the-game,

this object contains a set of map objects, which in turn contain tiles and sprites

both the engine, and the shell *extended versions of engine parts* execute events on scripts to give the game programmers 'triggers' in which to do things, like place sprites, move them, etc, this is all done through a very high-level command system.


in our next engine, we will still make use of scripting, just a more optimized scripting engine. we will also overcome alot of the shortcomings we've seen, the number 1 being, information-inflexability, the ability to attach generic data in the form of strings or numbers to just about anything in a dynamic fashion, we've found is paramount, being able to access that data from both engine,shell and script is also very important, since it gives flexability when needing to design unforseen-functionality.




>I'm working on a game engine as well now

it took two years for us to complete our game engine, mainly due to much learning and revision, and now we are on the home-stretch to completing our game. so, dont dispair that it's taking a while.

>Well I must say good job! Goodluck on your engine and game!

thanks, alot,

without trying to give away our internal deadline for the game,
chances are you will be hearing more about our next engine, come spring.

Share this post


Link to post
Share on other sites

This topic is 4733 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this