Jump to content
  • Advertisement
Sign in to follow this  
Zmurf

Basic Game Engine - No Coding, Just Planning

This topic is 4006 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

I'm planning on making a super basic Game Engine in C# for my own learning. I'll be using XNA and right now I'm planning out how I'm going to do things. This is roughly what I have so far. class Engine class ScreenManager class Screen class Node class Camera static class Input Node -> Camera -> Node -> Screen -> ScreenManager -> Engine Input -> I'm worried that this structure may become to messy. Anyone have any suggestions, or some links to some game engine theory? All my google searches are either too complex, or are all about the code. I have no problem coding, it's structuring that I'm struggling with.

Share this post


Link to post
Share on other sites
Advertisement
Hint: This is a waste of your time.

At this stage in your development as a developer, you have absolutely no idea what constitutes a workable design. Anything you write down will inevitably mutate significantly as it's translated from writing to code. You're better off just crashing in and throwing it together based on some vague ideas.

Share this post


Link to post
Share on other sites
Quote:
Original post by Promit
Hint: This is a waste of your time.

At this stage in your development as a developer, you have absolutely no idea what constitutes a workable design. Anything you write down will inevitably mutate significantly as it's translated from writing to code. You're better off just crashing in and throwing it together based on some vague ideas.


Can you send me running in the right direction? Perhaps I can then crash into something useful, rather than wasting my time.

Share this post


Link to post
Share on other sites
Write Games, Not Engines.

You need experience to know how to properly design an engine, and unfortunately that means trying things out and probably failing a couple of times along the way. Accept that you will almost certainly make mistakes, and remember when you do that mistakes are only a bad thing if you fail to learn from them. As the linked article observes, as a beginner at this you're probably better off making a few games without worrying about producing a reusable engine first; this will both get you experience, and will give you some practical, working code that you can clean up, generalise if neccesary and reuse if you wish, and it'll probably let you experience a few things that don't work well along the way.


The problem is that there is no single correct engine design - everything is a trade-off and is highly dependant on the goals and requirements of your specific projects, so you really need to get your own experience rather than having other people tell you things that may not work well for you.

Share this post


Link to post
Share on other sites
I think he knows that he isn't going to hit it on the mark the first time. But he wanted some pointers in the designs of his classes and what inherents from what.

Share this post


Link to post
Share on other sites
And the best way he'll do that is by coming at it from the point of view of making a game. The way he's doing it here is like trying to stock up on food when you've no idea what you'll be cooking.

I'll move this over to game programming, as it's not a game design issue.

Share this post


Link to post
Share on other sites
well, I've got a little advise:
Try to build tools... I guess tools are the best way to make an engine. Write an editor, some script-tester. You'll need them anyways, cause debugging a game is always a hard thing to do.
You learn a lot from writing tools&editors which can then be put together to form a game
(at least this is my approach)

Share this post


Link to post
Share on other sites
I have to agree with jbadams here - don't worry about the "engine" at all. Write down your game concept and derive technical requirements from that. I'd even recommend against writing your own "engine". There are a lot of (free) game frameworks and tools available that let you concentrate on the important part - the game.
Even if you might spend a few weeks getting comfortable with your framework of choice, it is still much more effective than reinventing the wheel over and over again while repeating the same mistakes others already made an learned from.

Just my 0.02€,
Pat

Share this post


Link to post
Share on other sites
Recently it was suggested to me (a noob myself) to write a tic tac toe game.

I just went at it in code, didnt plan anything. Probably ended up writing each function 10 times lol. But I learned ALOT. So I agree with the above about just diving in for experience.



Share this post


Link to post
Share on other sites
I totally agree, make games not engines. Having a rudimentary engine ripped from OpenGL game programming it quickly became apparent that simple framework was not well suited for my game, and lots of the code I had was either rewritten or cut out completely. For example the collision detection aspect of that engine was inadequate for breakout as every object checked every other object several times which would mean 10secs of realtime would pass for a ball, map, player about 20 blocks which is a show stopper I can tell you, I had to rewrite the code so it only checked dynamic/static collisions and left things like blocks colliding with blocks out as they don't.

What you do need though, in my opinion at least is some core classes. You want a extensive math library a good book to get you started is 3D math primer for Graphics and Game Development. Also a few class to handle various house keeping task, like generating a OpenGL/DirectX window and a generic input class, High resolution timer. These are bits you need in almost every game and are worth thinking about.

Honestly try to make a game, run into problems then design around those problems you learn so much more from it.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!