• 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
Sugavanas

Create a Game Engine

47 posts in this topic

Hi,

For someone with no programming experience, creating a game engine will require [i]many[/i] things, some mentioned here.  One important requirement is that you make games for a year or years before starting to create a game engine.

There are many types of game engine designs.  Some are about the complexity of a game but others are far more complicated than a game. Some game engines are integreted with a game.  Some games have part of the game engine delivered with the game so the user can make missions, characters, skins (paint jobs on objects), maps, and so forth, as a modder or even professional artist.

I would estimate that the game engine of a typical AAA popular game which had huge sales took years with at least several distinct but connected teams of tech people and artists.  A few indy game developers have had success with being a one person band and created their own game engine for a successful marketed game but this demands years of programming experience.

As you research the making of a game, then you will slowly but surely learn about game engines if you read with a wise choice of sources.

Game creators must outnumber game engine creators by quite a gigantic amount.  1 to 100? It must be more like 1 to 1000 or much more. It would be interest to know...

At any rate, you will need to be very experienced in a language and know much about the development environment with it to accomplish a very successful game engine.

It is doable yet be prepared for the possibility of the equivalent to a Masters or Doctorate amount of research.  A simpler game engine might take a couple years or more at least. There is nothing wrong with aiming that high, but just so you know!


Clinton
1

Share this post


Link to post
Share on other sites
Hey there,

If you truly are motived and determined to make a game engine then I applaud you. As people have already have pointed out this is an enormous task with a lot of different and challenging topics to cover, but there are quite a lot of good resources out there to point you in the right direction. It would honestly take me far too long to type out all the things you need to learn to make a game engine, but I do recommend that you still have a game in mind to develop using the engine that you create.

As for resources I recommend the following:
Game Engine Architecture by Jason Gregory [url="http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135"]http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/156881413[/url]
Game Coding Complete (4th Edition) [url="http://www.amazon.com/Game-Coding-Complete-Fourth-Edition/dp/1133776574/ref=pd_sim_b_1"]http://www.amazon.com/Game-Coding-Complete-Fourth-Edition/dp/1133776574/ref=pd_sim_b_1[/url]

Read those books very thoroughly and slowly, they do a good job of covering most of the general topics associated with developing a game engine.

There really isn't much else that I can say to help you at this point apart from the face that you're going have to put your head down and work really hard.
0

Share this post


Link to post
Share on other sites
My Advice:
If you are very enthusiastic on creating a computer game (especially 3D), and prepared to work hard, be prepared to buy a [b][i][u]LOT[/u][/i][/b] of books.
0

Share this post


Link to post
Share on other sites
[quote name='TroyBob' timestamp='1351345054' post='4994408']
Hey there,

If you truly are motived and determined to make a game engine then I applaud you. As people have already have pointed out this is an enormous task with a lot of different and challenging topics to cover, but there are quite a lot of good resources out there to point you in the right direction. It would honestly take me far too long to type out all the things you need to learn to make a game engine, but I do recommend that you still have a game in mind to develop using the engine that you create.

As for resources I recommend the following:
Game Engine Architecture by Jason Gregory [url="http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135"]http://www.amazon.co...ry/dp/156881413[/url]
Game Coding Complete (4th Edition) [url="http://www.amazon.com/Game-Coding-Complete-Fourth-Edition/dp/1133776574/ref=pd_sim_b_1"]http://www.amazon.co.../ref=pd_sim_b_1[/url]

Read those books very thoroughly and slowly, they do a good job of covering most of the general topics associated with developing a game engine.

There really isn't much else that I can say to help you at this point apart from the face that you're going have to put your head down and work really hard.
[/quote]

I would have recommended Game Coding Complete 4th edition however that book requires or rather is better used if you have some skill with DirectX prior to reading it. Using it alongside Frank Luna's book Intro to 3D Game Programming with DirectX9/11 would probably be a better idea.
0

Share this post


Link to post
Share on other sites
[quote name='3Ddreamer' timestamp='1351308195' post='4994332']


At any rate, you will need to be very experienced in a language and know much about the development environment with it to accomplish a very successful game engine.

It is doable yet be prepared for the possibility of the equivalent to a Masters or Doctorate amount of research. A simpler game engine might take a couple years or more at least. There is nothing wrong with aiming that high, but just so you know!


Clinton
[/quote]


i don't care hw many years it takes for me to complete a game or a game engine, i have already mentioned that i am juz 13 and the main reason for me is to learn things. Can anyone say me the best language to create games



[quote name='TroyBob' timestamp='1351345054' post='4994408']
Hey there,

If you truly are motived and determined to make a game engine then I applaud you. As people have already have pointed out this is an enormous task with a lot of different and challenging topics to cover, but there are quite a lot of good resources out there to point you in the right direction. It would honestly take me far too long to type out all the things you need to learn to make a game engine, but I do recommend that you still have a game in mind to develop using the engine that you create.

As for resources I recommend the following:
Game Engine Architecture by Jason Gregory [url="http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135"]http://www.amazon.co...ry/dp/156881413[/url]
Game Coding Complete (4th Edition) [url="http://www.amazon.com/Game-Coding-Complete-Fourth-Edition/dp/1133776574/ref=pd_sim_b_1"]http://www.amazon.co.../ref=pd_sim_b_1[/url]

Read those books very thoroughly and slowly, they do a good job of covering most of the general topics associated with developing a game engine.

There really isn't much else that I can say to help you at this point apart from the face that you're going have to put your head down and work really hard.
[/quote]

thanks i will buy those books and start leaning it. I have a great story in my mind but i don't have enough programming skills to develop it so i think to spend more years learning and then start with the story


[quote name='MrJoshL' timestamp='1351357242' post='4994453']
My Advice:
If you are very enthusiastic on creating a computer game (especially 3D), and prepared to work hard, be prepared to buy a [b][i][u]LOT[/u][/i][/b] of books.
[/quote]

Thanks for your advice but can u suggest me some books.


[quote name='Debunez' timestamp='1351390269' post='4994612']
[quote name='TroyBob' timestamp='1351345054' post='4994408']
Hey there,

If you truly are motived and determined to make a game engine then I applaud you. As people have already have pointed out this is an enormous task with a lot of different and challenging topics to cover, but there are quite a lot of good resources out there to point you in the right direction. It would honestly take me far too long to type out all the things you need to learn to make a game engine, but I do recommend that you still have a game in mind to develop using the engine that you create.

As for resources I recommend the following:
Game Engine Architecture by Jason Gregory [url="http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135"]http://www.amazon.co...ry/dp/156881413[/url]
Game Coding Complete (4th Edition) [url="http://www.amazon.com/Game-Coding-Complete-Fourth-Edition/dp/1133776574/ref=pd_sim_b_1"]http://www.amazon.co.../ref=pd_sim_b_1[/url]

Read those books very thoroughly and slowly, they do a good job of covering most of the general topics associated with developing a game engine.

There really isn't much else that I can say to help you at this point apart from the face that you're going have to put your head down and work really hard.
[/quote]

I would have recommended Game Coding Complete 4th edition however that book requires or rather is better used if you have some skill with DirectX prior to reading it. Using it alongside Frank Luna's book Intro to 3D Game Programming with DirectX9/11 would probably be a better idea.
[/quote]

Can you send me some links, about other books
0

Share this post


Link to post
Share on other sites
You must learn to crawl before you can walk and you must learn to walk before you can run.

Creating a game engine with little to no programming experience is extremely hard if not impossible. I would suggest fist learning a language like python, java, or maybe c#. You'll see a lot of talk about c++ and how it is used in the great games but don't fall for it. Talking from personal experience, as a beginner you should not start with c++ as you will regret it. If you're really wanting to create an engine I would start with java but learn the basics and slowly progress towards and engine.

The progression route I would take would be: get a book on the language and do any and all exercises, write a text based game, try and write a pong clone, try to write your own basic game (keep in mind it won't be perfect, but you'll learn a lot), and most importantly [i]practice[/i].

That's just my opinion and what I've found to work for most people. I can't recommend any good books, but I would also combine some online tutorials with a book so you can get another perspective on things as well. Don't give up, but be patient and work towards a game engine. Rome wasn't built in a day [img]http://public.gamedev.net//public/style_emoticons/default/wink.png[/img]
2

Share this post


Link to post
Share on other sites
Use XNA. It is the easiest route to a 3D game engine. Here are some books I suggest (in this order).
[u]Algebra II[/u] by Mcgraw-Hill
[u]Trigonometry[/u] by Mcgraw-Hill
[u]The C Programming Language[/u] [OR] a book on C#
[maybe a linear algebra book and/or calculus book, depends on what you do]
[u]Computer Graphics, Principles and Practice[/u] (you may not need this, depending on how much you learn off of the web)
[u]Real Time Rendering[/u], 3rd edition
[u]OpenGL Programming Guide[/u]
[u]Game Engine Architecture[/u]
There are of course many other books on topics like AI, audio, physics, algorithms, and general programming. I wouldn't say you need EVERY SINGLE ONE of these books, as you can supplement your knowledge from papers on the web. But trigonometry is a must and also Algebra II, more so trigonometry. You have to have a firm grounding in computer graphics and definitely mathematics. Save yourself the sanity and failure. Use Unity or UDK. Edited by MrJoshL
-1

Share this post


Link to post
Share on other sites
By the way. Never, EVER start with C++. I did. I still use C. It is very difficult to think in an OOP manner. C is procedural, a little bit more natural to think about, and OpenCL for a beginner is just mind-boggling (along with being useless for games). Choose C#, as you can use XNA, and can publish your game (and 9 others) on Xbox LIVE and/or Windows Phone for $100. I made an XNA game (sidescrolling adventure) in about a week or two, that being the first time working on a game and programming. XNA even has a step by step video tutorial with it, something I have yet to find anywhere else. The game I made was stupid and AWFULLY BORING, and violated about 15 different trademarks, so I couldn't sell it, but it was still progress. I have embarked now on programming a simple 3D game with OpenGL 2.0 (from 2004) and C, and even that is extremely difficult. If you want to program for a platform that is non-Microsoft, learn C. It is pretty much tied with Java for the most popular language (even though popularity doesn't matter) and is safer than C++. But yet again, you won't get yourself off the ground without some good mathematics.
0

Share this post


Link to post
Share on other sites
I just published a mobile 2D cutout style animation tool on google play as somewhat of a stepping stone toward creating a game engine that allows you to focus more so on the artistic content of game development rather than the technical. I started with character animation loop development as the first tool in a series of tools. Please checkout my post on gamedev [url="http://www.gamedev.net/topic/633527-feedback-on-animate2d-mobile-2d-character-animation-tool-in-the-cutout-style/"]here[/url] or [url="http://www.gamedev.net/topic/633525-feedback-on-animate2d-mobile-2d-character-animation-tool-in-the-cutout-style/"]here[/url] as I don't quite know the properly location for it according to the post http://www.gamedev.net/topic/574344-does-my-post-belong-here/ it seems to indicate it belonged in this room.
1

Share this post


Link to post
Share on other sites
[quote name='Hodgman' timestamp='1351434819' post='4994716']
[quote name='Sugavanas' timestamp='1351415147' post='4994658']
i don't care hw many years it takes for me to complete a game or a game engine, i have already mentioned that i am juz 13 and the main reason for me is to learn things. Can anyone say me the best language to create games
[/quote]There is no best language. The best one is the one that you can use -- e.g. some people would say, for example, "Java is crap", but the guy who made Minecraft was comfortable making games with Java, so he made a game using Java and got $200000000... There's no right or wrong choices [i]in general[/i], the answer depends on your personal situation.

Right now, the best language for you is one that's easy to learn. Common suggestions for easy to learn languages that you can easily make games with, are Python or C#, but there are also many others.
Eventually, I'd suggest that you learn C++, but I wouldn't recommend you start that until you're comfortable programming in other languages first, because it's a painful language to learn.

An Engine programmer will be proficient in many languages, so there's no need to rush straight to "the right language" immediately. I work as an engine programmer, and I regularly use C#, C++, Lua and batch. To begin with, you can make an engine using one language, but in the long run, you are going to be able to use many of them, so don't rush [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]

Also, keep in mind that talented people almost never build their [url="http://en.wikipedia.org/wiki/Magnum_opus"]magnum opus[/url] as their first work.
e.g.
* If you want to build space-shuttles, you don't start building one at 13 and work on it for a lifetime -- you start building toy rockets and motorbikes, then go to college, then get a job at NASA.
* If you want to build sky-scrapers, you play with lego, learn to draw, go to college, get a job designing houses, and build bigger and bigger things until you're finally working on giant towers.

Likewise, your first game engine should be very limited in scope. In order to not get carried away trying to make something too large, try and attach it to a particular game. As you take this journey of learning, there'll be points where it will be better to start your next step (mostly) from scratch, rather than trying to continue building atop what you've made so far. The foundations of an engine that you write today in 2012, aren't going to be strong enough to support development of engine code that you want to write in 2022. So, think of some achievable games that you want to make, and design your first engine around the requirements of those games only.
e.g. Before UDK there was the Unreal 3, which was created alongside [i]Gears of War[/i]. Before that, there was Unreal 2.5, which was created for [i]UT2004[/i], before that was Unreal 2 for [i]UT2003[/i], before that was Unreal for [i]Unreal[/i].
Likewise, John Carmack made the Doom engine, then threw it out and made the Quake engine, then threw that out for Quake 2, then threw that out for Quake 3, then threw that out for Doom 3, etc...

I guess what I'm trying to say is, don't get caught up planning some project that will take you "I don't care how many years", because by then, you're going to be a much better programmer, and you'll have moved on past your initial code. e.g. John Carmack wouldn't want to use the Doom 1 engine code in Doom 4 -- he's thrown it out and written it again, because he's a different programmer now than he was then. It's great to have a big long-term goal ([i]e.g. be a competent engine programmer[/i]), but you need to find the short-term stepping stones to getting there, and keep them in sight ([i]e.g. build a 'Pong' engine, build a 'Mario' engine[/i]).
[/quote]

This is really solid advice. Nice job Hodgman!
1

Share this post


Link to post
Share on other sites
Some of the advice in this thread is just right and some is completely wrong, so take care.


Clinton
-6

Share this post


Link to post
Share on other sites
[quote name='3Ddreamer' timestamp='1351481269' post='4994926']
Some of the advice in this thread is just right and some is completely wrong, so take care.
[/quote]

That's a strange comment. Wouldn't it make sense to point out which is which, in your opinion? And while you are at it you could justify your classification.
2

Share this post


Link to post
Share on other sites
Hi, alvaro

I believe that the reason it seems strange to you is because there is more to the issue than the surface which you see.

The people much more experienced and moderators should handle this delicate situation instead of me, so I am 100% justified to take a "Hey, we've got a problem here," kind of approach. Since you have a reputation of over 3,000, I wonder why [i]you[/i] haven't taken care of the loose ends.

Fair criticism I have here. On face value, a legitimate question you had. Now let's see who is experienced and bold enough to point at the wrong advice in detail to correct them.


Clinton
-3

Share this post


Link to post
Share on other sites
Small advice. Buy a cheap "learn video game programming" book for c++ or c sharp. Start there and use the information to build your own projects. These books will teach you how to implement your graphics device either through DirectX or OpenGL which is very important. Additionally it will teach you proper game engine structuring for Object-Oriented design. Edited by Bad Unicorn
2

Share this post


Link to post
Share on other sites
hi, i think it's a matter of choice.
starting from the very bottom, or direct to the high-tech, depend on our own characteristic and purpose.

some want to write game and implement/sell the result soon as possible.
or, perhaps some want to experience just the game production-cycle, not into detail.
and, maybe some want to learn programming tech, or hobby in the graph-design process.

what the best suit me, so must search, listen & try/learn it.. after experience it what next to do.. i think so..

have fun in development
-1

Share this post


Link to post
Share on other sites
[quote name='AMenard' timestamp='1351521664' post='4995069']
I'm presently learning Directx with the help of Rastertek online tutorials, and even he use the term "engine" and at other time "framework".
[/quote]

Personally, I will be creating things with distinction in the terms: game source code, game engine source code, higher level framework, and lower level framework. It is possible to architect clear boundries between these four areas in the same game development system. This begs the natural questions: What if I need to make major changes? Would it be better for future changes if I make orderly boundries between these major levels? For me, the answers would be a definate [u]yes[/u]! If I form a [i]team[/i] around me who uses my system, then could it be much more efficient and easier to understand if there are clear distinctions in the above mentioned four levels? Again, for me the answer is an obvious [u]yes[/u]! From a purely coding perspective, would this be most efficient to organize these levels? My answer for me is [u]yes[/u]!

The need for preparing our game development minds for future demands might cause us to desire a better use and understanding of words in this field.

Would I be better served by a "spaghetti" type of fully intergrated system with no clear boundries? In my case, I just say [u]no[/u]! [img]http://public.gamedev.net//public/style_emoticons/default/laugh.png[/img] I'll have the spaghetti only for meal time, thank you very much! [img]http://public.gamedev.net//public/style_emoticons/default/laugh.png[/img] Would I be best served by doing and saying anything I feel in creating my game development system? I simply say [u]no[/u]!


It is very feasible (though maybe not easy) for a game developer to have different uses for the terms: game source code, game engine source code, higher level framework, and lower level framework. I recommend seeking expert books and industry publications in print and through the internet to cut through much of the confusion out there. A lot can be learned by how corporations use these terms in describing their software. My opinion is that software industry and game development organizations lead us in establishing standards, including definitions. This would prevent much confusion caused by arbitrary use of terms by individuals, in my opinion.

All these are only suggestions, but I hope that people can get something here. [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]

Clinton
1

Share this post


Link to post
Share on other sites
[quote name='Dave' timestamp='1351171524' post='4993784']
[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.
[/quote]

It's actually pretty solid advice, but it's missing a few caveats.

You need to be disciplined enough to take the time to refactor and clean up your code. If you're writing a bunch of functions to handle sprites, combine those functions into a unit of some sort (class, namespace, etc.). And, combine functions into generic versions when possible.

And, you need to be able to admit that the current solution isn't working very well, and start over. If you're doing this all along, you should never have to throw out the entire code base but only rewrite a specific module. The longer a bad module is left in place, the harder it is to remove or repair.

The idea boils down to iterating on the existing code until you can complete the game; and not writing code before you need it. It also accounts for the fact that it incredibly hard to anticipate every bit of code you need to complete a game. Edited by cdoty
1

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