Book: Game Engine Architecture - Jason Gregory

Anything and everything that's related to OGRE or the wider graphics field that doesn't fit into the other forums.
Post Reply
User avatar
Neuro
Gnoblar
Posts: 12
Joined: Fri Apr 14, 2006 12:24 pm
Location: Melbourne, Australia

Book: Game Engine Architecture - Jason Gregory

Post by Neuro » Wed Jul 29, 2009 4:39 pm

http://www.amazon.com/gp/product/156881 ... oh_product

I was recently looking around amazon and ran across this book which looked pretty good so I ordered it. It arrived yesterday so I sat down tonight read the first 50 pages and so far there have been many OGRE references! Just wondering if any one else has had a look at it yet? The author seems to be pretty keen on OGRE! :D
0 x

User avatar
steven
Gnoll
Posts: 657
Joined: Mon Feb 28, 2005 1:53 pm
Location: Australia - Canberra (ex - Switzerland - Geneva)
Contact:

Re: Book: Game Engine Architecture - Jason Gregory

Post by steven » Thu Jul 30, 2009 2:57 am

Warning !!

@Neuro Do you know that your website is marked as an "Attack sites try to install programs that steal private information, use your computer to attack others, or damage your system."

See the report I got: http://safebrowsing.clients.google.com/ ... udios.com/


Back to subject the book seems nice.
Does it covers console machines (xbox, ps3)?
0 x

User avatar
Neuro
Gnoblar
Posts: 12
Joined: Fri Apr 14, 2006 12:24 pm
Location: Melbourne, Australia

Re: Book: Game Engine Architecture - Jason Gregory

Post by Neuro » Thu Jul 30, 2009 5:27 am

Yeah I'm aware of my website. Found out at 2am last night. Have a strong feeling that they brute forced my ftp password. :( Hooray for botnets.

As for the book, yeah the author works for Naughty Dog so there's appears to be lots of info about console dev especially the ps3.
0 x

User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
Contact:

Re: Book: Game Engine Architecture - Jason Gregory

Post by jacmoe » Thu Jul 30, 2009 8:25 am

Wow - yes, I've had my eyes on that book for quite some time! :)

Naughty Dog - they actually wrote a game for a console using Lisp, IIRC.
No, it was Scheme, wasn't it?

Yep, I'm definitely going to buy it. :wink:
0 x
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.

User avatar
aerique
Halfling
Posts: 59
Joined: Thu Oct 18, 2007 2:37 pm
Location: The Netherlands
Contact:

Re: Book: Game Engine Architecture - Jason Gregory

Post by aerique » Thu Jul 30, 2009 11:20 am

jacmoe wrote:Naughty Dog - they actually wrote a game for a console using Lisp, IIRC.
No, it was Scheme, wasn't it?
Scheme is a Lisp :-)

They wrote their own domain-specific language on top of Common Lisp: GOAL (Game Oriented Assembly Lisp). It served them well but also created some problems. Here are some links with more information:
0 x

User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
Contact:

Re: Book: Game Engine Architecture - Jason Gregory

Post by jacmoe » Thu Jul 30, 2009 12:34 pm

I know. Scheme is subset of Lisp. :wink:
0 x
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.

jqgregory777
Gnoblar
Posts: 1
Joined: Thu Aug 13, 2009 6:40 am

Re: Book: Game Engine Architecture - Jason Gregory

Post by jqgregory777 » Thu Aug 13, 2009 6:51 am

Yes, we (Naughty Dog) used a proprietary Lisp variant called GOAL for previous games; Uncharted and Uncharted 2 are written in C++ and assembly, but we still use a somewhat customized version of PLT Scheme (a Lisp variant) as an offline data definition language, and a simplified Scheme for runtime scripting. I did a talk about our state-based scripting system at GDC09 in LA... you can find my slides at http://www.gameenginebook.com.

Re OGRE, I use it in my class at USC (to great effect) because it's accessible, well written, works really well out of the box, is reasonably feature-rich, and is a great learning tool. Go OGRE!

I'm thrilled that you find my book of interest. Feel free to email me (jason@gameenginebook.com)... I'm always open to feedback, errata (which I'll post to the book's website), improvements for the 2nd ed, etc.

Cheers!
J
0 x

User avatar
xadhoom
Minaton
Posts: 973
Joined: Fri Dec 28, 2007 4:35 pm
Location: Germany

Re: Book: Game Engine Architecture - Jason Gregory

Post by xadhoom » Thu Aug 13, 2009 7:12 am

Hi jqgregory777!

Short question:
Does the book deal with a component design approach and/or a fully multithreaded architecture?

xad
0 x

User avatar
Wolfmanfx
OGRE Team Member
OGRE Team Member
Posts: 1525
Joined: Fri Feb 03, 2006 10:37 pm
Location: Austria - Leoben
x 1
Contact:

Re: Book: Game Engine Architecture - Jason Gregory

Post by Wolfmanfx » Thu Aug 13, 2009 8:27 am

So 2 weeks ago i got my copy from amazon.
First off i read the first 4 chapters they are well written and you can really learn some tricks ( i do programming since 1995 :D and hold a MSc in CG ). After chapter 4 i jumped to chapter 13 which i am most interested in. So after i read this chapter my questions are still open :) (in my pet-project i switched to a 'property-centeric' design).

I have a abstract Component Tree which consists of ComponentsContainer as nodes, which acts as hub object (its name in this book), and can hold an n components. Everything is datadriven for example you can define a new type through xml like this:

Code: Select all

 
62     <ComponentContainer name="SpotLight"> 
63       <Component name="Location" position="v3:-50 100 0" /> 
64       <Component name="Light" type="i:2" visible="b:true" diffuseColor="cv:0 1 0" specularColor="cv:0 1 0" direction="v3:0 -1 0"> 
65         <spotLightRange innerAngle="f:70" outerAngle="f:80" falloff="f:1" /> 
66         <attenuation range="f:120" constant="f:1" linear="f:0" quadratic="f:0"/> 
67       </Component> 
68     </ComponentContainer> 
69  
70     <ContainerTemplate template="ogreHead" name="Troll1" pos="v3:0 200 0" /> 
90  
91     <ComponentContainer name="Cloth"> 
92       <Component name="Location" position="v3:0 0 0" /> 
93       <Component name="Appearance" mesh="s:cloth.mesh" visible="b:false" material="s:default" shadowCaster="b:false"/> 
94       <Component name="PhysXCloth" clothMesh="s:cloth.mesh" /> 
95     </ComponentContainer> 
96  
97     <ComponentContainer name="TriggerSetExits"> 
98       <Component name="PhysXTrigger"> 
99         <Shape type="Box" dimension="v3:100 50 5" isTrigger="b:true" position="v3: 0 -25 0"/> 
100       </Component> 
101     </ComponentContainer> 
also i support templates which looks like this:

Code: Select all

template ogreHead 
2 { 
3         #define $pos "v3:0 0 0" 
4         #define $rot "q4:1 0 0 0" 
5         #define $sca "v3:1 1 1" 
6         #define $mat "s:default" 
7  
8         component Location 
9         { 
10                 position=$pos; 
11                 rotation=$rot;  
12                 scale=$sca; 
13         } 
14  
15         component Appearance 
16         { 
17                 mesh=s:ogrehead.mesh; 
18                 visible=b:true; 
19                 material=$mat;  
20         } 
21  
22         component PhyActor 
23         { 
24                 type=Dynamic; 
25                 density=f:10; 
26                 position=$pos; 
27                  
28                 component Shape 
29                 { 
30                         type=Box; 
31                         dimension=v3:20 20 20;   
32                         position=v3:0 0 0; 
33                 } 
34         } 
35 } 
so my concrete question is this approach overkill for a real game ( i tested it with 40000 dynamic objects, with dynamic objects i mean you can attach a scriptComponent to a ComponentContainer which move a mesh around each frame, and wow i got 6 fps :( )
So i am not sure if i overdesigned the beast to make everthing plugable and datadriven maybe you could give a more detailed example with real numbers :) but all in all it is a good book and a its worth the buy

cheers
0 x

User avatar
steven
Gnoll
Posts: 657
Joined: Mon Feb 28, 2005 1:53 pm
Location: Australia - Canberra (ex - Switzerland - Geneva)
Contact:

Re: Book: Game Engine Architecture - Jason Gregory

Post by steven » Thu Aug 13, 2009 8:34 am

Wolfmanfx wrote: i tested it with 40000 dynamic objects, with dynamic objects i mean you can attach a scriptComponent to a ComponentContainer which move a mesh around each frame, and wow i got 6 fps :( )
Huh... you have 40'000 moving dynamic objects on screen and still get 6fps? IMO this is very good!
0 x

User avatar
Wolfmanfx
OGRE Team Member
OGRE Team Member
Posts: 1525
Joined: Fri Feb 03, 2006 10:37 pm
Location: Austria - Leoben
x 1
Contact:

Re: Book: Game Engine Architecture - Jason Gregory

Post by Wolfmanfx » Thu Aug 13, 2009 8:37 am

the objects are simple planes with 4 verts and a texture if i do it with ogre i would really got more fps :) because is the same mesh but yeah i think its really bad for a simple test scene. I profiled my app with intel vtune and my bottelneck is the messaging more concrete the vector push_back and the clear of the vector in each frame.
0 x

User avatar
Chris Jones
Lich
Posts: 1742
Joined: Tue Apr 05, 2005 1:11 pm
Location: Gosport, South England

Re: Book: Game Engine Architecture - Jason Gregory

Post by Chris Jones » Thu Aug 13, 2009 8:57 am

40,000 dynamic objects is a lot, i don't think you'd have nearly that amount in an actual game. What's the vector used for? You could try a different container or use a memory pool (as an allocator) for the vector so allocation is faster.
0 x

User avatar
Wolfmanfx
OGRE Team Member
OGRE Team Member
Posts: 1525
Joined: Fri Feb 03, 2006 10:37 pm
Location: Austria - Leoben
x 1
Contact:

Re: Book: Game Engine Architecture - Jason Gregory

Post by Wolfmanfx » Thu Aug 13, 2009 9:01 am

Of course optimizing is always possible thats not my purpose for now i try to make a step back and look at different design approaches maybe there is something out there with less overhead i dont know anything about it.
0 x

User avatar
xadhoom
Minaton
Posts: 973
Joined: Fri Dec 28, 2007 4:35 pm
Location: Germany

Re: Book: Game Engine Architecture - Jason Gregory

Post by xadhoom » Thu Aug 13, 2009 12:43 pm

Hi WolfmanFX!

I have the same property-centric view in mind, too. Maybe this is interesting for you: http://www.ogre3d.org/forums/viewtopic.php?f=10&t=51941

As far as I understand the book is worth a try. Its now on our procurement list ;-)

xad
0 x

User avatar
Kentamanos
Minaton
Posts: 980
Joined: Sat Aug 07, 2004 12:08 am
Location: Dallas, TX

Re: Book: Game Engine Architecture - Jason Gregory

Post by Kentamanos » Wed Aug 19, 2009 12:07 am

Ordered the book and got it today. The front cover even has a code snippet with a couple of Ogre::Real's :).
0 x

User avatar
SpannerMan
Gold Sponsor
Gold Sponsor
Posts: 446
Joined: Fri May 02, 2003 10:05 am
Location: UK
Contact:

Re: Book: Game Engine Architecture - Jason Gregory

Post by SpannerMan » Thu Nov 05, 2009 10:10 pm

Hey guys, so far I've only found the hardcover version of this book.
I only get time to read when I'm lying in bed before I sleep, and for these practical comfort related reasons I need softcover :P

Is there any plans for a softcover version any time soon? Like before christmas?
0 x

Post Reply