Sign in to follow this  
Sugavanas

Create a Game Engine

Recommended Posts

Creating a game engine is really hard task. Especially for someone that hasn't got enough experience. I wated around 1 year before I start my engine(after this idea first came into my mind). During this time I read all books which had the keywords "engine" and "programming" in their titles(If I could find them in PDF, i would really like to buy some of them however not everyone has money).
And I can say, it would be better if I had waited a little more.
The result was: 5 months working on engine. And then give up, and start it from the very beginning. WHY? Well, books don't tell how you should struct your code. They can just show the way. I also coun't make a plan for my project. I mean I couln't plan my features. This two mistakes bring me down. However I do not regret, I learned how to plan my future projects and how to make my code right with minimal effort.(under struct I meant const correctness, design, naming, etc.)
If you are going to start it now... well, happy debugging. The choise is yours.

Share this post


Link to post
Share on other sites
[quote name='Sugavanas' timestamp='1351139167' post='4993671']
Hello guys, I want to create a game engine and i am confused with things. Can anyone say the things i need to know please..
[/quote]

The things you need to know are:
- a programming language
- a graphics library
- a sound library
- a library for mouse/keyboard/gamepad input
- at least three game designs that could be implemented by the game engine, preferably as different from each other as possible (within the scope of the engine).

Share this post


Link to post
Share on other sites
I want to know the language i need to learn and also the graphic thing. I need to know the sections i need to learn in the specific language and also in the graphics library. I need a clear answer for this.The game which is created by my game engine should work in pc, mac, ps3, xbox.

And guys i did not post anything because i am not started yet. I need some guide in it. For now i am learning so it would be more easier for me to learn if i know what to learn[img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]

Share this post


Link to post
Share on other sites
[quote name='Sugavanas' timestamp='1351165310' post='4993757']
I want to know the language i need to learn[/quote]
Most languages will do, if you know what you're doing.

[quote]and also the graphic thing. I need to know the sections i need to learn in the specific language and also in the graphics library. I need a clear answer for this.[/quote]
You will need a good grasp on everything that's important. What that is, only experience can tell you.

[quote]The game which is created by my game engine should work in pc, mac, ps3, xbox.[/quote]
Your engine doesn't create games, you create games. ;)
Try Unity, that's a popular cross-platform engine.

[quote]And guys i did not post anything because i am not started yet. I need some guide in it. For now i am learning so it would be more easier for me to learn if i know what to learn[img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img][/quote]
Learn to make a game, using an existing engine. Then you can make a "game engine", because you know how to use one.

Share this post


Link to post
Share on other sites
[quote name='Sugavanas' timestamp='1351167565' post='4993766']
Ya, i have unity 3.5 pro, i am using it. I also use cryengine 3 and unreal engine 3. Now i want to create my own because then i can make my game more easily.
[/quote]

Why do you think it'd be more easy to create a game with your own engine instead of with a highly polished and proven solution like CE3 or UE3? Building something which can compete with those engines would require loads of time, money and expertise from you and your co-workers.

If the only reason why you want to build an engine is because you think it'll be easier to build a game, you really shouldn't build one at all, trust me.

Share this post


Link to post
Share on other sites
[quote name='Radikalizm' timestamp='1351169640' post='4993774']


Why do you think it'd be more easy to create a game with your own engine instead of with a highly polished and proven solution like CE3 or UE3? Building something which can compete with those engines would require loads of time, money and expertise from you and your co-workers.

[/quote]


I know that my engine can't compete their engine but my game would be more prefect if i create my own game engine.

Share this post


Link to post
Share on other sites
[quote name='Inukai' timestamp='1351142460' post='4993685']
[url="http://scientificninja.com/blog/write-games-not-engines"]http://scientificnin...mes-not-engines[/url]
[/quote]

This is really bad advice.

Share this post


Link to post
Share on other sites
[quote name='Sugavanas' timestamp='1351171264' post='4993782']
[quote name='Radikalizm' timestamp='1351169640' post='4993774']
Why do you think it'd be more easy to create a game with your own engine instead of with a highly polished and proven solution like CE3 or UE3? Building something which can compete with those engines would require loads of time, money and expertise from you and your co-workers.

[/quote]


I know that my engine can't compete their engine but my game would be more prefect if i create my own game engine.
[/quote]

Yes and no.

What you would end up with is an engine that does exactly what you want. Often though this is alot more complicated that tweaking an existing solution to meet your needs. For a hobbyist who has the intention of making a game for production and making money it is often best to use a third party solution if what you want to do is fairly standard stuff.

In time you will know when you need your own solution. I've worked at studios that have exclusively rolled their own stuff and it was alright, you feel in control and licencing etc is less complicated. It comes at a cost of time though. Edited by Dave

Share this post


Link to post
Share on other sites
[quote name='alvaro' timestamp='1351172195' post='4993786']
Care to elaborate? I haven't read it in a while, but I when I did I thought it was precisely the advice that beginners should get.
[/quote]

I don't completely agree with that page either.

The advice given there is one of those typical "you should never ever build an engine and you should feel bad about wanting to build one" texts. I do agree that you shouldn't build an engine while still inexperienced or without a clear definition of the goals and future applications the engine will have to meet, but that doesn't mean that nobody should ever build an engine.

Share this post


Link to post
Share on other sites
A game engine is NOT just an Unreal Engine, Havok Vision Engine, Unity, etc. Those are all tools that were built upon an underlying game engine codebase. What you should do is start with the basics of a graphics api such as OpenGL or DirectX. Once you have the basics about working in one of those two graphics API then you will be able to start making a game framework and from there a full on game engine. Game Engine codebases tend to have a few things:

1. A way to render both 2D and 3D GameObjects. (E.g Models, Sprites, Text)
2. A way to get user input (e.g Keyboard, Mouse, Gamepad) (NOTE: the standard Windown API allows for keyboard and mouse input capture quite easily)
3. A way to render audio (e.g FMOD is a solid library for audio)
4. A way to simulate physics within the engine.
4a. For 2D (consider Box2D for a good api to help with 2D collision detection) Otherwise you must
muster up some balls and be able to write the function to manipulate the objects yourself.
4b. For 3D (consider Bullet Physics or Havok Physics APIs to help with 3D object collision and physics
simulation.

Once you have the components listed above working fluidly together you have yourself a full game engine. Now if you were thinking of making
something like Unreal Engine that is a whole other story.

Unreal Engine is a Forms Application that encapsulates what was stated above as well as many many other components (e.g Animation, video production, ai, etc etc)

What you should do is start simple and work your way up. Once you have the basics covered you can start making a full on game engine. Then you can if you are feeling ballsy learn how to encapsulate different aspects of the game engine into a windows form and start creating a simple GameEngine application that allows you to visually build your game rather than hardcode it all in.

Suggested books:

DirectX:

Introduction to 3D Game Programming with DirectX9 or Introduction to 3D Game Programming with DirectX11 by Frank Luna.
Programming 2D Games by Charles Kelly.

Share this post


Link to post
Share on other sites
Guys, you are discouraging me, but still i want to make one. [quote name='Debunez' timestamp='1351193829' post='4993896']
A game engine is NOT just an Unreal Engine, Havok Vision Engine, Unity, etc. Those are all tools that were built upon an underlying game engine codebase. What you should do is start with the basics of a graphics api such as OpenGL or DirectX. Once you have the basics about working in one of those two graphics API then you will be able to start making a game framework and from there a full on game engine. Game Engine codebases tend to have a few things:

1. A way to render both 2D and 3D GameObjects. (E.g Models, Sprites, Text)
2. A way to get user input (e.g Keyboard, Mouse, Gamepad) (NOTE: the standard Windown API allows for keyboard and mouse input capture quite easily)
3. A way to render audio (e.g FMOD is a solid library for audio)
4. A way to simulate physics within the engine.
4a. For 2D (consider Box2D for a good api to help with 2D collision detection) Otherwise you must
muster up some balls and be able to write the function to manipulate the objects yourself.
4b. For 3D (consider Bullet Physics or Havok Physics APIs to help with 3D object collision and physics
simulation.

Once you have the components listed above working fluidly together you have yourself a full game engine. Now if you were thinking of making
something like Unreal Engine that is a whole other story.

Unreal Engine is a Forms Application that encapsulates what was stated above as well as many many other components (e.g Animation, video production, ai, etc etc)

What you should do is start simple and work your way up. Once you have the basics covered you can start making a full on game engine. Then you can if you are feeling ballsy learn how to encapsulate different aspects of the game engine into a windows form and start creating a simple GameEngine application that allows you to visually build your game rather than hardcode it all in.

Suggested books:

DirectX:

Introduction to 3D Game Programming with DirectX9 or Introduction to 3D Game Programming with DirectX11 by Frank Luna.
Programming 2D Games by Charles Kelly.
[/quote]


Thanks i can use your help, other than this can anyone mention more.

Share this post


Link to post
Share on other sites
I had no intention of discouraging you, i actually encourage you to make a game engine. Apologies if it appeared otherwise.

The issue people bring up is how do you write an engine without a game to give you a set of requirements. Well, make up your requirements. Is there something you have seen in a game you'd like to emulate? Such as path finding, deferred shading, deformable terrain, destructable objects, gui ideas. Built up a set of demos, each their own executable, that do something different with your engine. As you develop more of those your engine code will mature, you might start again a few times because you realise you could have done something better.

At no point did i state that the article suggests Unity. Edited by Dave

Share this post


Link to post
Share on other sites
[quote name='Dave' timestamp='1351254085' post='4994118']
I had no intention of discouraging you, i actually encourage you to make a game engine. Apologies if it appeared otherwise.

[/quote]
I felled that you and some others were discouraging me because they said that not to do it, but thats ok


[quote name='Dave' timestamp='1351254085' post='4994118']
The issue people bring up is how do you write an engine without a game to give you a set of requirements. Well, make up your requirements. Is there something you have seen in a game you'd like to emulate? Such as path finding, deferred shading, deformable terrain, destructable objects, gui ideas. Built up a set of demos, each their own executable, that do something different with your engine. As you develop more of those your engine code will mature, you might start again a few times because you realise you could have done something better.
[/quote]

I did not want to use any engines,but still i know that it is easier to finish my game in some months with ue3 or ce3. The thing is i don't want to finish a game now. If you want to know one thing i am just 13 years old. I want to learn programming, i don't care if it takes too long to finish because i am still young. the main point is i did not know one thing till i read some others article. The thing is we have to make games by programming, so can anyone of you explain how do we change it to engine when it is completed and also is god of war made by programming without an engine.

Share this post


Link to post
Share on other sites

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