[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Introduction!

Josef Spillner wrote:

> Hi,
> On Monday 25 February 2002 17:24, katie@fysh.org wrote:
>>To kick off a debate - anyone use Design Patterns in their games
> Patterns do automagically appear if projects grow, this is what I've 
> experienced. For a small 2-3k game one doesn't think that much about the data 
> structures, objects (if OOP at all), and related matters - only the UI and 
> the main algorithms determine the code.

True. Games with that little code don't need much of a design. There is 
not much room left for this in that little code. It would most likely 
just bloat the whole thing up.

> But beyond that, if it comes to extend a game and viewing it as a more 
> flexible engine, one will hardly move one without at least some patterns.

Yes. The funny thing here maybe is that the basic patterns actually stay 
the same. Every game tends to split up into input handling, game logic, 
rendering, maybe networking and sound/music output because these are the 
basic seperateable tasks a game engine has to do. And voila: there's 
your design pattern. It's not strict and not too detailed, but it is there.

> On the other hand, games try to avoid patterns in some situations. Imagine the 
> class of units in a game - instead of inheriting from such a class to create 
> a unique set of creatures, it is more likely to try to use one single class 
> (as long as it's possible, excluding maybe special units or heroes), and 
> assigning attributes to them which are not compiled in.

That's the point where at least common 3D engines try to avoid patterns 
as much as possible. Every aspect of the game rules (including physics 
and basic behaviour) that's hardcoded into the engine makes the engine 
less reuseable and therefore less attractive for future development (and 
a good engine still is a huge, expensive and time consuming project). So 
there you go with scriping languages, modularisation and plugins with 
which the game-specific stuff is bound to the engine. And this is where 
most of the design pattern specific stuff should be as well.

> (OK - I talk about free/open games where cheating the one way or the other 
> couldn't be prevented anyway.)

Talking about cheating: It's unavoidable even in commercial, 
closed-source games. Commercial game developers struggle very hard to 
make life harder on cheaters, but technically it's just a new dimension 
of the hacker vs. cracker war.

My humble oppinon here is that cheating is much less fun when the game 
is open source because it's not the same kind of cheating done on closed 
source games. It's satisfying to the cheater if he can exploit a 
implementation bug or a design weakness he first has to discover. 
Cheating in an open source game is different: Open your text editor, 
read the source, find the appropriate passage, modify it to your 
likings, recompile and there you are. So what's the deal with this? 
Nothing. The solution is there. It's straightforward. And that doesn't 
make it fun anymore. At least that's what I believe.


* Gregor Mueckl                 GregorMueckl@gmx.de *
*                                                   *
* The ChallengeOS project:                          *
* http://challangeos.sourceforge.net                *
* Math problems?                                    *
* Call 1-800-[(10x)(13i)^2]-[sin(xy)/2.362x].       *