• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Lakshmi Narayan

Game Engine

21 posts in this topic

I am planning to build a game engine from scratch using c++ with directx 9.

can some one tell me how to go about and also let me know if their is a book that shows step wise to make a game engine.
Remember i m just a beginner and i have made games using some game engine and nothing more than that.
0

Share this post


Link to post
Share on other sites
There's a thread regarding [url="http://www.gamedev.net/topic/625470-getting-started-first-person-shooter/"]C# game engines[/url] (started yesterday).
You must be seriously, seriously pro to plan build an engine. There's no chance to do something serious without getting more experience first. Of course, as there's no definition of what exactly an "engine" is, you could cut a lot of corners and claim to have an "engine": that's not how it is supposed to work.
Game engines, no matter what they tell you, are not fun.
1

Share this post


Link to post
Share on other sites
If you have to ask how to build an engine you're definitely not ready to build one
Building an engine is absolutely not a beginner's job, so it'd be best to put that idea on the shelf for some time until you're ready for it
1

Share this post


Link to post
Share on other sites
Thanks for the response but i have worked on two projects in my university course work where in i made games using directx 11 and directx 9 using our professor's game engine. Also, i have an idea how each module of a game engine works too but i don't know know how to start making it from the scratch.(or is it still to early for me to consider making a game engine)
0

Share this post


Link to post
Share on other sites
Mostly in game engines there isn't a fixed point on where to begin, you could start off anywhere and build gradually on top of that. The easiest would of course be to lay out a design for your engine and start with the system that has the least, or preferrably no dependencies on other engine systems.
From then on it just comes down to implementing the systems you designed, you need to have a clear vision of what the engine is supposed to do, how it's supposed to do it, and for which goals it's going to be used. Writing an engine without having a clear usage goal in mind is substantially harder. This of course all has to happen within the limits of the system(s) you'll be targetting.

Building the systems themselves will be all up to you, and to build an efficient rendering system or audio system (for example) you'll be digging deep into the gritty details of how such systems work, and you'll need to be quite familiar with those details if you want to build something that actually works, and works well.

Let me give you one piece of advice: If it's games you want to build you should just pick an existing engine and build the games you want. The chance of your custom-built engine outperforming any of the available options will be quite minimal. If you're actually interested in building engines you should first of all consider whether you actually have the required skillset to start one. I'll have to disagree with Krohm here, because building engines can be fun IMO, but it's completely different from building games, and if you don't have a clue as to what it takes to build an engine you'll get frustrated quite easily, and the development process overall will not be a fun ride.

In the end nobody can stop you from building one, but don't expect there to be an abundance of tutorials or guides on the subject, it will all have to come from yourself :)
0

Share this post


Link to post
Share on other sites
I'm sorry to say but two university assignments isn't be enough to make an engine. I made several games from scratch (without using engines) and several other applications (all outside the university) and I still don't think I would even consider making my own game engine. A game engine is not about games. It's about architecture, software engineering and all the stuff that is not really game related (or at least not only game related).

So head the others' advice and make games instead of an engine, or get pretty damn solid knowledge and experience in software engineering (probably several years of intensive programming)
1

Share this post


Link to post
Share on other sites
Hey there - I'm in a similar position, and I'm going the game-engine building route for the following reasons:
a) Building up a knowledge of how game engines are structured is important to me. Building even a simple pac-man game engine myself would, for me, be enjoyable! Sure, it will be frustrating - having to write boiler plate code myself, but that's part of the experience for me. It's a richer learning experience in my view.
b) Using ready-made game engines, whilst yeilding much more immediate results, teaches you less about the princples - I think.

So basically as you've probably concluded, knocking out as many games as possible is not my objective. It all depends what you enjoy. It doesn't bother me that everything I'll do has been done before many times - that's not the point. The experience is of more importance than the tangible results for me.

In the future maybe I'll use ready-made game engines - who knows. Not yet though.
0

Share this post


Link to post
Share on other sites
[quote name='CdrTomalak' timestamp='1338213346' post='4944015']
Hey there - I'm in a similar position, and I'm going the game-engine building route for the following reasons:
a) Building up a knowledge of how game engines are structured is important to me. Building even a simple pac-man game engine myself would, for me, be enjoyable! Sure, it will be frustrating - having to write boiler plate code myself, but that's part of the experience for me. It's a richer learning experience in my view.
b) Using ready-made game engines, whilst yeilding much more immediate results, teaches you less about the princples - I think.

So basically as you've probably concluded, knocking out as many games as possible is not my objective. It all depends what you enjoy. It doesn't bother me that everything I'll do has been done before many times - that's not the point. The experience is of more importance than the tangible results for me.

In the future maybe I'll use ready-made game engines - who knows. Not yet though.
[/quote]

And what principles would building a game engine teach you, you think? I don't think building an engine is a great learning excercise, because it requires you to already know all there is to it to actually get something up and running. If you start out with the idea "I'll learn everything while developing" you'll likely end up with a horrible mess of barely functional (or not even functional) code.
There is a common misconception (IMO) among beginning developers who think that building an engine will somehow give them much more experience than building games will, and that they'll learn so much more by throwing themselves onto an engine project from the start instead of actually gaining the skills required to build an engine.

But then again, nobody's stopping you from attempting to build one, but please do keep the advice given to you in mind
1

Share this post


Link to post
Share on other sites
[quote name='Radikalizm' timestamp='1338214078' post='4944019']
And what principles would building a game engine teach you, you think? I don't think building an engine is a great learning excercise, because it requires you to already know all there is to it to actually get something up and running. If you start out with the idea "I'll learn everything while developing" you'll likely end up with a horrible mess of barely functional (or not even functional) code.
There is a common misconception (IMO) among beginning developers who think that building an engine will somehow give them much more experience than building games will, and that they'll learn so much more by throwing themselves onto an engine project from the start instead of actually gaining the skills required to build an engine.

But then again, nobody's stopping you from attempting to build one, but please do keep the advice given to you in mind
[/quote]
I agree.
As many of the others have already said, you need to know the inter-workings of the engine before you really continue. Also, as Radikalizm stated, you'll need to know a great deal of code and understanding of what's required of you to build that engine. This would be different if you had been working with a certain engine for a few years and you had many quite a few games along the way and you felt ready to make an engine. You could also, check out [url="http://www.jadengine.com/"]Jad Engine[/url] an open source 3D game engine. Go look at the code and what's required of you. If there's a good amount of terms or keywords or even structures you're not sure of yet/haven't learned yet then it's probably not time.

But, if you do continue good luck.
1

Share this post


Link to post
Share on other sites
Ah yes, thanks for the tip on terminology. I was equating a game-engine to a game-framework (i.e. like for a 2d platformer or shoot-em-up). That could definitely be confusing. Interesting post that.
1

Share this post


Link to post
Share on other sites
Thanks a lot for each one of your responses and i have decided first to make a game of my own then a engine.
0

Share this post


Link to post
Share on other sites
I've begun making my own game engine (actually this is now my second as I grew bored of the original one) after precisely 1 university course on it.

It's not as bad as people say. Start simply (boxes and spheres), solid colours instead of textures, etc. and move on from there.

I should add that I'm writing mine in c# using SlimDX, so things are a little easier for me (I don't have to worry about memory leaks as much or other more obscure errors), so I'd recommend getting started with something like c# and XNA. Most universities I know teach some measure of Java, and C# is barely a stone's throw from Java, syntax-wise.
1

Share this post


Link to post
Share on other sites
Framework is the term used in the programming book I have been using: "C# Programming For Beginners", so I'd go along with that. The distinction between framework and game engine is an important one I agree.
0

Share this post


Link to post
Share on other sites
I think I have to humbly admit that I was guilty of the same confusion between engine or framework though I don't consider myself a beginner (I knew assembler on my c64 and Amiga)

If I get it right a game engine is some package that allows non-programmers or beginning programmers to create a game with point and click interfaces while a framework is only there to hide the nitty-gritty i.e. individual DIP calls, renderstate changes, model management, etc.
I myself want to create a game from scratch without a framework then but definitely not a game engine. According to me the latter is work for a whole team of Computer Science Phd's
0

Share this post


Link to post
Share on other sites
[quote name='Fredericvo' timestamp='1338311947' post='4944368']
I think I have to humbly admit that I was guilty of the same confusion between engine or framework though I don't consider myself a beginner (I knew assembler on my c64 and Amiga)
[/quote]

I'd say you stand a good chance of creating your own game from scratch if you dabbled in assembler. [img]http://public.gamedev.net//public/style_emoticons/default/ohmy.png[/img]
0

Share this post


Link to post
Share on other sites
[quote name='Fredericvo' timestamp='1338311947' post='4944368']
I think I have to humbly admit that I was guilty of the same confusion between engine or framework though I don't consider myself a beginner (I knew assembler on my c64 and Amiga)

If I get it right a game engine is some package that allows non-programmers or beginning programmers to create a game with point and click interfaces while a framework is only there to hide the nitty-gritty i.e. individual DIP calls, renderstate changes, model management, etc.
I myself want to create a game from scratch without a framework then but definitely not a game engine. According to me the latter is work for a whole team of Computer Science Phd's
[/quote]

An engine is not a point-and-click tool. There have been countless of discussions to define the term "engine" but it always ends up with lots of people disagreeing with eachother.
The best way to describe an engine would be to give examples. Have a look at the UDK, Cryengine 3, Unity, etc. Those are engines
They provide an entire toolset for building vastly complex games of varying genres, and that's what an engine's all about

[quote name='CdrTomalak']
[left][background=rgb(250, 251, 252)]I'd say you stand a good chance of creating your own game from scratch if you dabbled in assembler.[/background][/left]

[/quote]

What would make you say that? I've programmed in IA32, AMD64, MIPS, MC68000 and ARM assembler, and those skills mean absolutely nothing when it comes to developing my engine or games for that matter Edited by Radikalizm
1

Share this post


Link to post
Share on other sites
Maybe point & click was a bit radical but I couldn't find the exact way to express it.

On assembler, yeah I agree I know x86-64, ARM, 68K but it doesn't help understanding how to create a game, only how computers work under the hood.
0

Share this post


Link to post
Share on other sites
[quote name='Radikalizm' timestamp='1338312571' post='4944373']
What would make you say that? I've programmed in IA32, AMD64, MIPS, MC68000 and ARM assembler, and those skills mean absolutely nothing when it comes to developing my engine or games for that matter
[/quote]

I was referring to the expertise required to program in a low level language, which I see as admirable frankly. I see higher level languages as easier to master if you have mastery of low level languages. By implication, programming expertise in low and higher level languages is a huge advantage if you want to make a game, by virtue of the necessity of coding.

I would say that your expertise in assembler is a huge advantage, since it proves that you have the mathematical mind required for programming - giving you a solid foundation for coding any software you put your mind to - including games.

I was not intending to downplay the complexity of game design or anything else. It was a compliment to those who can cope with low level languages.
0

Share this post


Link to post
Share on other sites
If it's something you want to do, I say go for it.

You will certainly learn a lot in the process, and be more useful to future companies if you know not only how to [i]use[/i] an engine, but how game engines [i]work[/i] and how to solve problems other API-level programmers will struggle to fix.

I've developed several game engines myself, and each time I do it, I find better ways to do things along the way. Of course, building an engine isn't a weekend hobby. Getting a basic rendering core going is something that can be done in a few months - but really making a fully-featured engine can take years. Edited by Jeff.Leigh
0

Share this post


Link to post
Share on other sites
Assembler isn't really THAT complicated once you get it. Trying to figure out how some complex problem could be coded in it is. But the language itself is really nothing more than "load value from mem location 1234 into register x" "add 5 to register x" "store value from x to mem location 4321" "is value in x greater than y" etc.
Whatever you really learned in a higher level language but with the necessity of breaking it down into very small steps thereby losing the insight C might give you. It will definitely help you understand how your pc (or mobile) works but not how to code a game or whatever. I personally "got" shaders from assembly versions because HLSL sort of eluded me since they didn't provide me with an insight of how GPU's work but I digress as you first have to understand mainstream CPU's in assembler before you try to understand other chips with their own instruction sets etc. I think if you got yourself a legacy computer such as the Amiga and teach yourself assembler on that you may understand my point as the Amiga had a few co-processors with their own instruction set.
0

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  
Followers 0