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