Re: Problem Breakdown

Mike <[email protected]> Wed, 14 Jul 2004 14:41:40 -0700
Newsgroups gmane.games.devel.general
Message-ID <[email protected]>
> At 11:43 PM 7/12/2004, Brett Bibby wrote:
>> Is it common to look at _all_ ways to solve a complicated problem before
>> determining a solution?  Or do most people just pick a solution that gets
>> them going and refactor later? Or?

my 2 bits on the topic, i'm starting the process of doing a 'version 2' 
of our game engine, and have been going through these same types of 
questions myself.

i don't think you can necessarily think of ALL of the ways to implement 
a particular system or attack a particular problem, and even if you 
could, you run dangerously close to the 'research' side of software 
development, and research is necessarily open-ended, and does not fit 
nicely into releaseable software and game schedules.

you do need to consider reusability, if the engine in particular is 
being designed to last multiple projects (which i would assume most 
engines are these days).  This is probably becoming more of an issue as 
we move forward, since the time to rewrite an entire technology tree 
from the ground up is becoming so much more involved.

with our engine, every feature that is added to the engine must be 
considered from the aspect of reuseability - if it's something that 
changes the basic player movement system, then make it so that we can 
disable it just as easily.  it doesn't take much extra effort to provide 
this kind of customizability up-front, but from the sheer number of 
options that you provide the designer, documentation becomes a major 
issue (which we are constantly battling).

however, the engine in question is specifically a multi-genre game 
creation 'system' more than an engine for a specific game tailored from 
ground up for only that one game.

refactoring is inevitable we've found over the years of assembling the 
engine.  often a feature appears first as a simple entity with a few 
options to manipulate, and then if it evolves further, may get moved 
into the scripting api or config files, usually to make it easier for 
the designer to edit & reuse throughout a game.

from the programmers perspective, you will never think of all the 
possible ways that the designers are going to try and use the features 
that you give to them - they will undoubtedly come up with new and crazy 
ways to combine different elements in ways that you would never have 
thought up.  in situations like these, refactoring may well be required. 
  it's not a bad thing, but make sure that the changes you are making 
help expand the reusability of the engine, not reduce it.

-- 
Mike Wuetherick
Gekido Design Group Inc
www.gekidodesigns.com



-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
Gamedevlists-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gamedevlists-general
Archives:
http://sourceforge.net/mailarchive/forum.php?forum_id=557