Mark Wang | 7 Jul 2003 08:10
Picon

Re: RE: Designing a renderer

As for book suggestions, I really recommend "Game Coding Complete", by Mike 
McShaffry, which was very recently (within the last month or so) 
released.  The ISBN is 1-932111-75-1.

Despite the name, it doesn't attempt the impossible feat of living up to 
its title.  It does however cover many of the "big picture" design and 
organization issues in games (eg, what to put in the main loop), logistical 
code (eg, resource caching/management), and software engineering "best 
practices", which is stuff that most "general" game dev books focusing on 
implementation of graphics, algorithms, etc. don't cover much, if at 
all.  While it's Windows/DirectX-specific in terms of the exposition and 
example code, pretty much every concept discussed is relevant across 
multiple platforms, too.

And, there's a lot of funny anecdotes in it as well. =)

-- Mark

At 03:38 AM 7/2/2003, dirk <at> dirkgregorius.de wrote:

>Thanx for answers.  Maybe you can give me also some suggestions for the
>first part of my questions.
>
>Also thanx for the book tip. Are there any other books on software
>design that you can recommend? Especially concerning games :-)
>
>Best regards
>
>Dirk
>
(Continue reading)

Gareth Lewin | 3 Jul 2003 11:41
Picon

RE: Designing a renderer

> Thanx for your honest words. To clear things up let me tell 
> you what I do:

Sure, like I said, I assumed you were a hobbist, but wasn't sure.

> I work at a university and we research about emotions in 
> motion and my task
> is to write some kind of API that could be used in a game 
> environment. 

What you really want to do is write it totally renderer neutral. Assuming
you are talking about emotions in the skeleton animation sense, then make
your API use hooks into the 'game' allowing your matrices to be set and
queried.

One thing you might want to look into is Granny by
http://www.radgametools.com/ (I haven't actually seen the sdk though)

> The
> reason I asked was to get an idea how games are implemented 
> by professionals
> and not hobbist.

Okie.

> So maybe we forget the question and maybe you allow me to ask 
> again but in a
> different way.
> What is a renderer? 

(Continue reading)

Gareth Lewin | 2 Jul 2003 15:12
Picon

RE: Designing a renderer

(And with little effort, Jamie and myself bring us back to game design, sort
of)

Yes, one of the problems hobby projects have is the lack of proffesionalism.
Normally there is no game design, there is no goal, and thus no completion.
The other type of hobby projects that fail (Like a lot of my own) are
because they are too grand in scope, so even if they have a very well
written design (game design I mean) they never get done.

Thus the IOTDs on flipcode which are "I finished my first game, it's a
bomberman/tetris/quake clone" impress me way more than "I implemented an
engine with the following list of buzzwords". Ofcourse each case is
differant.

So when asked how to get into the industry, I tell them to design(see:)) a
simple game and make it, from start to end, make sure it's finished, that
will impress your potential employers more :)

> -----Original Message-----
> From: Jamie Fowlston [mailto:jamief <at> qubesoft.com]
> Sent: 02 July 2003 13:47
> To: gamedevlists-design <at> lists.sourceforge.net
> Subject: RE: [GD-Design] Designing a renderer
> 
> 
> True. I tend to think the main problem with hobby projects is 
> that you set
> out to write an engine with no idea of what you want it to 
> actually _do_,
> and so it all becomes a fairly meaningless exercise in what 
(Continue reading)

Jamie Fowlston | 2 Jul 2003 16:26
Favicon

RE: Designing a renderer

couldn't agree more :)

J

-----Original Message-----
From: gamedevlists-design-admin <at> lists.sourceforge.net
[mailto:gamedevlists-design-admin <at> lists.sourceforge.net]On Behalf Of
Gareth Lewin
Sent: 02 July 2003 14:13
To: gamedevlists-design <at> lists.sourceforge.net
Subject: RE: [GD-Design] Designing a renderer

(And with little effort, Jamie and myself bring us back to game design, sort
of)

Yes, one of the problems hobby projects have is the lack of proffesionalism.
Normally there is no game design, there is no goal, and thus no completion.
The other type of hobby projects that fail (Like a lot of my own) are
because they are too grand in scope, so even if they have a very well
written design (game design I mean) they never get done.

Thus the IOTDs on flipcode which are "I finished my first game, it's a
bomberman/tetris/quake clone" impress me way more than "I implemented an
engine with the following list of buzzwords". Ofcourse each case is
differant.

So when asked how to get into the industry, I tell them to design(see:)) a
simple game and make it, from start to end, make sure it's finished, that
will impress your potential employers more :)

(Continue reading)

Gareth Lewin | 2 Jul 2003 13:17
Picon

RE: Designing a renderer

Yes, but your requirements are differant to the standard. The original email
talked about linux/windows and not about consoles.

Also, I made the (maybe incorrect) assumption that he is a hobbyist, and
spending time R&Ding an OGL and DX renderer is (in my opinion) silly and a
waste of time. The reality is that a lot of hobbyists spend a lot of type
working on cross platform stuff when in reality their work will only ever be
run on a single platform, instead of utilising that same time in a more
constructive (in my subjective opinion) way.

As you well know, the real differant between ps/2,xbox/dx/ogl/cube etc is
the high and the low ends (the syntax is differant, and low level
optimizations are differant) but the basics are the same, and stuff you
learn with just a single platform are applicable everywhere.
________________________
Regards, Gareth Lewin
Programmer, Sudeki
http://www.xbox.com/Sudeki

P.S. Isn't this list about game design, not software design ? :)

> -----Original Message-----
> From: Jamie Fowlston [mailto:jamief <at> qubesoft.com]
> Sent: 02 July 2003 12:08
> To: gamedevlists-design <at> lists.sourceforge.net
> Subject: RE: [GD-Design] Designing a renderer
> 
> 
> Hmm, we support multiple platforms, and haven't found OGL solves our
> problems on PS2 & Xbox :)
(Continue reading)

Jamie Fowlston | 2 Jul 2003 14:47
Favicon

RE: Designing a renderer

True. I tend to think the main problem with hobby projects is that you set
out to write an engine with no idea of what you want it to actually _do_,
and so it all becomes a fairly meaningless exercise in what flavour of code
you fancy that month....

Yeah, i thought it was about game design too :)

J

-----Original Message-----
From: gamedevlists-design-admin <at> lists.sourceforge.net
[mailto:gamedevlists-design-admin <at> lists.sourceforge.net]On Behalf Of
Gareth Lewin
Sent: 02 July 2003 12:17
To: gamedevlists-design <at> lists.sourceforge.net
Subject: RE: [GD-Design] Designing a renderer

Yes, but your requirements are differant to the standard. The original email
talked about linux/windows and not about consoles.

Also, I made the (maybe incorrect) assumption that he is a hobbyist, and
spending time R&Ding an OGL and DX renderer is (in my opinion) silly and a
waste of time. The reality is that a lot of hobbyists spend a lot of type
working on cross platform stuff when in reality their work will only ever be
run on a single platform, instead of utilising that same time in a more
constructive (in my subjective opinion) way.

As you well know, the real differant between ps/2,xbox/dx/ogl/cube etc is
the high and the low ends (the syntax is differant, and low level
optimizations are differant) but the basics are the same, and stuff you
(Continue reading)

dirk | 2 Jul 2003 12:38
Picon

Re: RE: Designing a renderer


Thanx for answers.  Maybe you can give me also some suggestions for the
first part of my questions. 

Also thanx for the book tip. Are there any other books on software
design that you can recommend? Especially concerning games :-)

Best regards

Dirk

-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01
_______________________________________________
Gamedevlists-design mailing list
Gamedevlists-design <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gamedevlists-design
Archives:
http://sourceforge.net/mailarchive/forum.php?forum_id=556

JacobT | 2 Jul 2003 11:18

RE: Designing a renderer

We don't pass in the HWND to our renderer but rather let it use Win32 API
calls to get the HWND.
We pass in the title string of the window from our main app to the renderer
init function.  This is ignored for those renderers that don't need it.
Another option is to pass in argc, argv like variables to the Init of the
renderer.

Jake

-----Original Message-----
From: Timur Davidenko [mailto:timur <at> crytek.de]
Sent: 02 July 2003 08:35
To: gamedevlists-design <at> lists.sourceforge.net
Subject: RE: [GD-Design] Designing a renderer

Actually HWND is a simple handle and can be passed just as a void*,
Sure you can make more general abstraction and create OS independed Window
class, but OSes can differ greatly and its hard to get it right at start.
If i would want to make stuff simple, some common initialzation structure
like
struct RendererInitParams
{
  void *hwnd;
  .. some other stuff. 
}
then DX renderer can be only on windows platform
so it is compiled with windows headers, simple cast void *hwnd into HWND
internally.
in OGL renderer you can used defines to see OS and use either windows code
and use void *hwnd, or if its Linux ignore this value.
(Continue reading)

Gareth Lewin | 2 Jul 2003 11:12
Picon

RE: Designing a renderer

Sorry to ask a stupid question, but why implement both an OGL and a DX
renderer ? Either your product is windows only, in which case DirectX or
OpenGL are good, or you want to support multiple platforms, and in that case
OGL solves all your problems.

Spending time on keeping two distint rendering engines up to date is a waste
of time, and now days there is no clear advantage to that that I can see.

> -----Original Message-----
> From: Dirk Gregorius [mailto:dirk <at> dirkgregorius.de]
> Sent: 01 July 2003 10:19
> To: gamedevlists-design <at> lists.sourceforge.net
> Subject: [GD-Design] Designing a renderer
> 
> 
> Hi,
> 
> I am wondering how you implement your render interfaces? On 
> what abstraction
> level is a renderer normally implemented - what are the 
> typical functions
> and classes? Do you pass a renderer reference to all 
> renderable entities?
> And how is platform independence achieved - do you use 
> polymorphism or for
> example the "Bridge" pattern - that by its definition 
> seperates abstraction
> and implementation? Maybe you can give me some tips.
> 
> One thing that I really don't understand is how to implement the
(Continue reading)

Jamie Fowlston | 2 Jul 2003 13:08
Favicon

RE: Designing a renderer

Hmm, we support multiple platforms, and haven't found OGL solves our
problems on PS2 & Xbox :)

Doing both on Windows is a good exercise for your architecture, to test you
can really have different drivers.

Jamie

-----Original Message-----
From: gamedevlists-design-admin <at> lists.sourceforge.net
[mailto:gamedevlists-design-admin <at> lists.sourceforge.net]On Behalf Of
Gareth Lewin
Sent: 02 July 2003 10:12
To: gamedevlists-design <at> lists.sourceforge.net
Subject: RE: [GD-Design] Designing a renderer

Sorry to ask a stupid question, but why implement both an OGL and a DX
renderer ? Either your product is windows only, in which case DirectX or
OpenGL are good, or you want to support multiple platforms, and in that case
OGL solves all your problems.

Spending time on keeping two distint rendering engines up to date is a waste
of time, and now days there is no clear advantage to that that I can see.

> -----Original Message-----
> From: Dirk Gregorius [mailto:dirk <at> dirkgregorius.de]
> Sent: 01 July 2003 10:19
> To: gamedevlists-design <at> lists.sourceforge.net
> Subject: [GD-Design] Designing a renderer
>
(Continue reading)

Timur Davidenko | 2 Jul 2003 09:34
Picon

RE: Designing a renderer

Actually HWND is a simple handle and can be passed just as a void*,
Sure you can make more general abstraction and create OS independed Window class, but OSes can differ
greatly and its hard to get it right at start.
If i would want to make stuff simple, some common initialzation structure like
struct RendererInitParams
{
  void *hwnd;
  .. some other stuff. 
}
then DX renderer can be only on windows platform
so it is compiled with windows headers, simple cast void *hwnd into HWND internally.
in OGL renderer you can used defines to see OS and use either windows code and use void *hwnd, or if its Linux
ignore this value.

Not a most generic solution in the world, but its fast to get running and actually quite flexible,
considering that you dont have 300 different OSes arround.
and getting universal portable window class other all OSes and Consoles are a task by itelf and you should
consider do you really want to spent time on this.

_________________________________
Timur Davidenko.
Crytek Studios (http://www.crytek.com)

-----Original Message-----
From: Dirk Gregorius [mailto:dirk <at> dirkgregorius.de]
Sent: Tuesday, July 01, 2003 11:19 AM
To: gamedevlists-design <at> lists.sourceforge.net
Subject: [GD-Design] Designing a renderer

Hi,
(Continue reading)


Gmane