Jump to content

  • Log In with Google      Sign In   
  • Create Account


Game Engine Pratical Books


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
20 replies to this topic

#1 Luca91   Members   -  Reputation: 114

Posted 01 July 2014 - 10:45 AM

Hi all,

since some years I'm inside videogames programming, and I'm also in an indie team. 

I'd like to start to create a personal 3D game engine, mainly for learning, but also to use it in my future games.

I was looking for *PRATICAL* books that teach you the basics of game engines implementation, so far I found these two:

 

Building a 3D Game Engine in C++ by Brian Hook (link): this looks good, and I saw reviews that says that the book will teach you to create a complete (basic) 3d engine from scratch. The only flaw is that this book is really old (1995), so the concepts are outdated too.

 

Game Engine Design And Implementation by Alan Thorn (link): this looks good too, and it is also recent, but I've read in the comments that it will not complete the game engine that is developing, and eventually it switch to ogre and leave the reader unable to complete the already developed engine.

 

does anybody can suggest me a good book ? has anybody tried one of those two books ??

 

Thank you very much!

 

 



Sponsor:

#2 SeraphLance   Members   -  Reputation: 1315

Posted 01 July 2014 - 10:59 AM

Game Engine Architecture is fantastic.  It doesn't have any code, so it may not be what you consider "practical" in that sense, but it does go into detail about the different layers and components of a game engine, and various design considerations.  Honestly, books without much code tend to be better in my experience anyway for this kind of thing, as they're more "strategic" in nature.  If you're still in the "Learn how to do X" phase while implementing a game engine, you're in for a world of hurt.

 

I haven't read either of those two books though, so I can't say much about them.  The name of the first one scares me a bit though, for the reasons outlined above.


Edited by SeraphLance, 01 July 2014 - 11:00 AM.


#3 Shippou   Members   -  Reputation: 1471

Posted 01 July 2014 - 11:28 AM

Break down what a "game engine" actually is, and work on each part individually.

 

A modern engine may have he following "parts"

* Physics engine

* Rendering engine

* Effects engine

* Graphics shading engine

* World engine

* AI engine

* Combat and event engine

* Script parser


Edited by Shippou, 01 July 2014 - 11:30 AM.

 Reactions To Technologies:
1. Anything that is in the world when you’re born is normal and ordinary and is just a natural part of the way the world works.
2. Anything that's invented between when you’re fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it.
3. Anything invented after you're thirty-five is against the natural order of things.

- Douglas Adams 2002


 


#4 Glass_Knife   Moderators   -  Reputation: 4085

Posted 01 July 2014 - 11:33 AM

Game Engine Architecture is fantastic.  It doesn't have any code, so it may not be what you consider "practical" in that sense, but it does go into detail about the different layers and components of a game engine, and various design considerations.  Honestly, books without much code tend to be better in my experience anyway for this kind of thing, as they're more "strategic" in nature.  If you're still in the "Learn how to do X" phase while implementing a game engine, you're in for a world of hurt.

 

I haven't read either of those two books though, so I can't say much about them.  The name of the first one scares me a bit though, for the reasons outlined above.

 

+1


I think, therefore I am. I think? - "George Carlin"
Indie Game Programming

#5 Luca91   Members   -  Reputation: 114

Posted 01 July 2014 - 12:37 PM

Game Engine Architecture is fantastic.  It doesn't have any code, so it may not be what you consider "practical" in that sense, but it does go into detail about the different layers and components of a game engine, and various design considerations.  Honestly, books without much code tend to be better in my experience anyway for this kind of thing, as they're more "strategic" in nature.  If you're still in the "Learn how to do X" phase while implementing a game engine, you're in for a world of hurt.

 

I haven't read either of those two books though, so I can't say much about them.  The name of the first one scares me a bit though, for the reasons outlined above.

 

Thank you. I think that the best would buy at least two type of books: one with more theory (like the one you posted) and one more practical. So I'll give a look to the book you have mentioned.
Any other suggestions please ? :)


#6 Nathan2222_old   Members   -  Reputation: -400

Posted 02 July 2014 - 12:31 AM

Check out Cybereality. The guy is making an engine too.

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32
smile.png
--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy


#7 Luca91   Members   -  Reputation: 114

Posted 02 July 2014 - 06:20 AM

I gave a look at cybereality, and it have some reviews about 3d engine books.

By the way I've just bought "Building a 3D game engine in C++", even if it is really old I hope it will give me some hints about the basics ;)

 

Any other books ? :)



#8 Nathan2222_old   Members   -  Reputation: -400

Posted 05 July 2014 - 03:15 AM

1. 3d Game Engine Programming

2. Others

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32
smile.png
--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy


#9 Luca91   Members   -  Reputation: 114

Posted 05 July 2014 - 07:38 AM

 

1. This book is on my wishlist :) Only cons is that it use DirectX so it is not portable on other operating systems.



#10 Nathan2222_old   Members   -  Reputation: -400

Posted 06 July 2014 - 06:18 AM

1. 3d Game Engine Programming
2. Others

 
1. This book is on my wishlist :) Only cons is that it use DirectX so it is not portable on other operating systems.

DirectX is more ... um ... standard.

You could make a DirectX engine first and then add OpenGL support later on. :)

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32
smile.png
--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy


#11 LennyLen   Crossbones+   -  Reputation: 3678

Posted 06 July 2014 - 08:25 AM


DirectX is more ... um ... standard.

 

Only if all you care about is Windows.  If you want to target linux, MacOS, Android, iOS, etc. then DirectX is useless.



#12 Nathan2222_old   Members   -  Reputation: -400

Posted 06 July 2014 - 11:52 AM

DirectX is more ... um ... standard.

 
Only if all you care about is Windows. If you want to target linux, MacOS, Android, iOS, etc. then DirectX is useless.
For me, it's Windows and Android.

But it's not up to me.

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32
smile.png
--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy


#13 BHXSpecter   Members   -  Reputation: 1433

Posted 07 July 2014 - 06:00 PM


DirectX is more ... um ... standard.

As LennyLen pointed out, DX is only standard to Microsoft (even then it isn't standard). Have you ever looked at AAA games when they install? A lot install using OpenGL rather than DX (even on Windows). 

 

http://en.wikipedia.org/wiki/List_of_OpenGL_programs

 

http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX (4 years old, but still worth the read).


Edited by BHXSpecter, 07 July 2014 - 06:09 PM.

"Through vengence I was born.Through war I was trained.Through love I was found. Through death I was released. Through release I was given a purpose."


#14 Hodgman   Moderators   -  Reputation: 29418

Posted 07 July 2014 - 06:45 PM

http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX (4 years old, but still worth the read).

That is the worst pro-GL link to be sharing, such that I can't resist pointing out how densely packed with lies it is... it would take too long to debunk the whole article, so cherry picking a single line:
"On the other hand, if you use OpenGL, you get faster and more powerful graphics features than DirectX 11, and you get them on all versions of Windows, Mac and Linux, as well as the PS3, Wii, PSP, DS, and iPhone."
* OpenGL is faster than D3D9, but much slower than D3D11 (in terms of both CPU-side and GPU-side costs), not faster! Even though it's faster than GL, D3D11 is much slower than it should be, which is why AMD has created Mantle to replace it.
* PS3, Wii, PSP and DS do not use OpenGL; they each use a different proprietary API specific to that device.
* Windows has at least 3 different (and differently-broken) GL implementations, with different performance characteristics - you must test (and rewrite parts of) your code on all 3 implementations to ensure you're on the "fast path" for all three.
* Linux is a clusterfuck of outdated ports of the broken windows drivers, or differently broken open-source drivers.
* Mac is ok, but always lags behind supporting the latest version of the specification.
* iPhone uses GLES 1, 2 and 3... which is so slow and badly specified that they've now replaced it on iOS8 with their own proprietary API.
* Other mobile phones also use GLES as above, but like on Windows, there are umpteen different implementation each with their own bugs and performance pitfalls. You must test (and rewrite parts of) your code for every different device that you want to support.
 
And one point of my own:
* Each of the 3 Windows implementations contains GL 1, 2, 3, 4, the sub-versions, and vendor-specific extensions. Writing a game that's portable across a range of hardware generations, say GeForce8 to GeForce700 (even if just for a single OS!) requires re-writing parts of your code several times for different versions of the API / different extensions being available. Then when you want your game to be portable across vendors (Intel, AMD, nVidia), you then need to re-write parts of your code again to deal with different breaches of the specification, performance behaviors and available extensions. Then when you want your game to be portable across OS's, you need to rewrite parts of it again. At this point, you've done so much patching of your rendering code for special cases and workarounds, that you really haven't saved any time by using a single "portable" API. You may as well have used one API for Windows, one for Mac, and one for Linux -- it would've taken the same amount of time and effort. Id' argue that having 5 independent versions of the rendering back-end is better than 1 version full of 100 special cases, because the code will be cleaner and easier to maintain.
In fact, this is what most "AAA" games do -- they use D3D9x on Xbox360, GCM on PS3, GXM on PSP, GX on Wii, GNM on PS4, D3D11x on XboxOne, D3D11 on WinVista+, D3D11.1 on Win8+, D3D9 on WinXP, OpenGL 3/4 on Mac, OpenGL 2/3/4 on Linux, perhaps OpenGL 2/3/4 on Windows, GLES 2/3 on mobiles, Metal on iOS8 and Mantle on Win7+AMD!
A 'AAA' might be made up of a million lines of code, but only about 3000 of those actually use the underlying graphics API. That means we're arguing over 0.3% of the code-base here!
Porting a game from one API to another is only a few man-month's of work. Also, once you've learned one graphics API, you can learn another one in just days, because the concepts will be almost identical. So GL portability is just a pipe-dream not a reality, plus it's also just a red-herring because it's not actually an important issue.
 
David Rosen should be ashamed of that blog post... I don't know why he's never taken it down or published corrections.
 
That said... this isn't a GL vs D3D thread, so let's not turn it into one unsure.png


Edited by Hodgman, 07 July 2014 - 07:34 PM.


#15 BHXSpecter   Members   -  Reputation: 1433

Posted 07 July 2014 - 07:29 PM


That said... this isn't a GL vs D3D thread, so let's not turn it into one 

Not trying to, in truth, if I broke it into a versus thread it would more than likely be 2D vs 3D as I don't care for OGL nor DX (directly). I prefer the old school 2D games and RPGs over 3D games.


Edited by BHXSpecter, 07 July 2014 - 07:42 PM.

"Through vengence I was born.Through war I was trained.Through love I was found. Through death I was released. Through release I was given a purpose."


#16 LennyLen   Crossbones+   -  Reputation: 3678

Posted 07 July 2014 - 08:32 PM

I prefer the old school 2D games and RPGs over 3D games.


With modern hardware you still really need to use either OpenGL or DirectX (for PC at least). Old school techniques don't perform so well any more.

That's why libraries such as Allegro 5 only work on platforms with either of those back ends, unlike Allegro 4 which had a far wider range of platforms supported.

#17 Alessio1989   Members   -  Reputation: 1927

Posted 08 July 2014 - 06:46 AM

* Linux is a clusterfuck of outdated ports of the broken windows drivers, or differently broken open-source drivers.

 

Dude, you are my hero xD

 

Please, come to my country and make a lesson at my Uni XD

 

 

..

 

To remain in topic:

 

One of my favourite strategy in programming is: take a good book for theory/general stuffs/big picture, and find a good project to use as "inspiring material".


Edited by Alessio1989, 08 July 2014 - 06:52 AM.

001100010010011110100001101101110011


#18 Nathan2222_old   Members   -  Reputation: -400

Posted 08 July 2014 - 11:24 AM

* Linux is a clusterfuck of outdated ports of the broken windows drivers, or differently broken open-source drivers.

Thank you for confirming my view of it.

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32
smile.png
--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy


#19 Nathan2222_old   Members   -  Reputation: -400

Posted 08 July 2014 - 11:34 AM

I prefer the old school 2D games and RPGs over 3D games.

I don't like RPGs (assuming you're referring to that have several modules on the lower/left/right part of screen indicating life, supplies etc. or those you have to press the mouse/touchpad/screen or those that have a weird top view or giant circles on the player) or "old school 2d games" or FPS games.

I prefer 3d open world games, racing games, simple 2.5d (?) games like temple run and those few like angry birds.
---

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32
smile.png
--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy


#20 Aiive   Members   -  Reputation: 695

Posted 11 July 2014 - 08:36 AM

 

 

 

1. This book is on my wishlist smile.png Only cons is that it use DirectX so it is not portable on other operating systems.

 

 

For 3D Game Engine Programming the author address this within the first couple of pages when he goes over his design for the engine. Since he was using Visual Studio and many readers were most likely on Windows, using DirectX 9 from the start probably made more sense audience wise. If you wish to add in OpenGL right from the start he basically says go for it - there is nothing stopping you. In my opinion DirectX was more of a "proof of concept" using the API classes. Adding any other rendering implementation is rather straight forward using the API independent base class he creates. After adding you're favorite extension, loading and using it takes ~15 lines of code. It is like this for everything in the book such as input, sound, and basic network support.

 

You should also take into consideration the age of the book in that shader support isn't a highlight of the book so that is something you will have to expand upon yourself. It has a basic shader system but he was targeting 1.0 versions. The FFP is presented only because some graphics cards weren't able to use the shaders. However if you understand the overall idea of the API independent class then adjusting the code won't be difficult. 

 

He also goes into making some simple math classes which was a great learning experience for me. While you could switch over to using another math library if you desire the idea was to teach you more of the core concepts such as matrices and quaternions. The DirectX rendering system makes no use of the D3DX functions but rather the math library implementation - which may or may not help if you want to change to OpenGL. Some SSE is provided in the math library if you are unfamiliar with it, but this can also be adjusted to use something newer if you desire. A simple 3D model format with animation is presented to show you how it is done, but adding support for your favorite format shouldn't be too hard. 

 

One thing to note about the end result of the book - it is mostly geared towards making a small FPS concept with accompanying editor. The editor reminded me of UnrealEd 1.0... just much less... awesome rolleyes.gif . While most chapters can stand on their own regardless of the game, this is just sorta the "glue" to show you that you could make something with everything provided in the book. AI and the actual game are left as practice for the reader.

 

I hope that possibly clears up any preconceived notions about it being DirectX only and provides a better idea about what the book is about before you buy it. Good luck! smile.png

 






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS