Re: Software Architecture/Design

Jon Watte <[email protected]>
Newsgroups gmane.games.devel.sweng
Message-ID <[email protected]>
As long as games are on the "ship, then everyone leaves for other projects"
movie-style production model, then the CComponent knowing to special-case a
CTailWagger will happen. Hacks can be quite productive to get something
seeming to work right quickly.

If you want to build something that creates lasting value, then you need to
recognize what hacks are bad (general things knowing about special things,
say) and re-factor the hacks out into "leaf" code. This takes longer,
up-front, but means that the code is there and serves you on future
projects. Re-factoring can be done opportunistically, as long as you keep
doing it at an even pace.

Also, one thought of programming is to first do the simplest thing that can
work (make CComponent include CTailWagger). Then, before you declare success
and check in, re-factor until it's acceptable. This may make you discover
things about your system that makes doing common things straight-forward,
but leaves uncommon things complicated.

The main problem is having the discipline to always pay for factoring as you
go along developing.

Sincerely,

jw


--
Americans might object: there is no way we would sacrifice our living
standards for the benefit of people in the rest of the world. Nevertheless,
whether we get there willingly or not, we shall soon have lower consumption
rates, because our present rates are unsustainable.



On Wed, Jun 9, 2010 at 5:01 PM, <[email protected]> wrote:

> ----- "Brandon Van Every" <[email protected]> a écrit :
> > On Wed, Jun 9, 2010 at 3:00 PM, Mat Noguchi <[email protected]>
> > wrote:
> > >> We cannot object to garbage collection forever, any more than we
> > could
> > > insist on ASM code for everything forever.
> > >
> > > If you can garbage collect, you can determine more about an
> > arbitrary system than if you can't.
> > >
> > > Now whether that has to be a language feature or one that falls out
> > of a more disciplined approach to programming is an implementation
> > detail.
> >
> > Well programming your AAA title with a Turing machine could be
> > construed as an implementation detail too.  Too bad we don't have
> > good
> > formalisms for what makes a given software approach "a sow's ear,"
> > but
> > heuristically I say C++ fits the bill.
>
> Too bad Turing machine doesn't exist, as I'm pretty sure the game industry
> would love them. Immediate access to an infinite amount of memory is a
> winner.
>
> More seriously, Mat made a point - the approach we use is strictly an
> implementation detail, as it does not have much effect on the form of the
> final product (but it has an effect on the work that is necessary to obtain
> the final product). As a consequence, the programming language we use (and
> its feature set) is yet another implementation detail. That doesn't mean
> it's not important.
>
> (and C++ is not a software appraoch. OO is. As well as careful design. As
> well as horrible design - which might fit your bill more nicely than C++).
>
> >
> > Cheers,
> > Brandon Van Every
>
> Regards,
>
> -- Emmanuel Deloget
> _______________________________________________
> Sweng-Gamedev mailing list
> [email protected]
> http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
>

_______________________________________________
Sweng-Gamedev mailing list
[email protected]
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.