|
Some of you might wonder what I've been up to lately. Besides having a sprint on the site adding support for Twitter login I've been busy starting a research project at the university where I have my daytime job. The general idea is to take some of the experiences (10+ years) from game development and make further experiments to expand, enhance and validate & verify my findings in a scientific way. The result of this process will be a thesis and I'll become a Ph.D. And without further adue I present my "hyper thesis", a.k.a. vision Enhancing Quality of Software Architecture in Computer GamesThe driving requirement of software architecture in computer games has since long been performance. However, focusing on performance alone often leads to problems in other areas; the software cannot be maintained or changed in an agile way and it becomes hard for developers to react to market changes or advances in hardware. Testing is hard or even impossible in many cases and reuse of code and design is minimal. Modern approaches to software architecture in computer games, e.g. a modification of the model view controller (MVC) pattern, bear other qualities like changeability, maintainability, testability, and reusability without sacrificing performance. This is shown for a number of game types ranging from casual games to multi-player action titles. A standardized software architecture throughout many projects also enhances programmer productivity and project scalability. Feel free to comment |
Submitted by hObbE
Fri, 06/18/2010 - 06:58
|





Sounds very interesting! I'm
Sounds very interesting! I'm sure many would need to adopt this
---------------
Solid Core Entertainment
Developer of Roadclub and Sense: Survival Prelude (Developer blog)
I wholeheartedly agree with
I wholeheartedly agree with your vision. The sad part is that outside of small indie-developers the opinion differs, not from the developer standpoint, but from other sources. (Investors, marketing, management etc.) At least this is the view I have, for companies to adopt better practices like clean code, good design, and such we as developers need the tools to quantify the benefits of these things. Since most of the time they give very little direct benefits but in the long run they are essential, at least that is my view on it, but since I can't quantify it I can't make anyone except other developers agree with me.
Also, on a footnote I'd like to add a very nice little quote about optimization. "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." - Donald Knuth
I'm not saying one shouldn't optimize of course, but one should only do so after a performance issue/bottleneck is found. This is true for most game related development anyhow. Real time systems are a different matter, and I suppose even graphics engines probably need more focus on these things than the rest of the game software. But most people don't work on bleeding edge graphics engines, so I'll generalize and say don't worry about performance unless you actually run into performance issues.
Anyway, good luck with your thesis, I'll look forward to reading about your progress!
______________________________________________________________
There's no kill like an overkill!
Although if you can do
Although if you can do something two ways and one is more efficient but takes a few seconds extra i'll rather have the nicer code. like everything its about balance.
---------------
Solid Core Entertainment
Developer of Roadclub and Sense: Survival Prelude (Developer blog)
Indeed, I haven't met a
Indeed, I haven't met a developer yet that doesn't agree with this. But developers rarely are the ones in charge except in smaller indie-companies, thus the whole point of my post.
There are even a few solid studies that show that it's better to develop things with good quality than to try and patch it up later, but those studies tend to only state that it's better in the long run.
Without any way to quantify the difference you'll have a hell of a time convincing the people in charge that you want to refactor something (that works, but is ugly) for two months because it's better in the long run, because I bet they'll rather shorten the time to market, or add more features, or...
Although I believe hObbE's study is more aimed at early high-level design? In which case it's naturally good to think it through properly, but even then mistakes can be made that are only discovered later. And some of those mistakes will never be prioritized high enough to get corrected as other things will be more important, like specific bugs/issues, new content/DLC, porting to a new platform etc.
______________________________________________________________
There's no kill like an overkill!
I agree, refactor something
I agree, refactor something for two months with the same end results won't appeal to anyone holding the money
I meant that there's no use not coding as good as you can the first time making something if it doesn't affect the timeplan. Its probably not good to just simplify your code and throw everything sane out the window just because it goes 1% faster all the time. Not saying you should start any big detours just to get something nicer but you should keep following sane programming practises from the start. Badly coded loops and such can be made well the first time so you dont have to clean up that mess later when it wouldnt have taken you much longer to get it right from the beginning.
Keeping track of what runs once and what runs continuosly can also help optimizing in the right places and saving time. I usually dont bother much with the run-once code since its fast enough usually without any tricks.
---------------
Solid Core Entertainment
Developer of Roadclub and Sense: Survival Prelude (Developer blog)
Cool discussion Although my
Cool discussion
Although my project is not 100% outlined the goal is to further test and experiment with the ideas of immediate mode and model view controller architecture and compare different parameters (performance, maintainability, changeability etc) with other architectures in different scenarios/game genres. Hence it's more about up-front high-level design.
This is probably nothing that will revolutionize game development, game tech heads have a tendency for an "I know best" mentality and I agree that it will be hard to make the experiments convincing enough for a major developer to try out. And as you say Malice there are a lot of other ppl making decisions with completely different agendas and priorities than top notch architecture/code.
I do hope that we'll find an industry partner that could help shape experiments and scenarios and provide some more "realism" to the project.
Yeah unless it proves
Yeah unless it proves something in a larger production it may not hold much value to those "i know best"-types. Although it may give higher-ups an incentive to say "hey have you tried this MVC thing. sounds good. now rewrite that engine of ours. i wanna see input and output goddammit!". well, maybe not EXACTLY like that.
---------------
Solid Core Entertainment
Developer of Roadclub and Sense: Survival Prelude (Developer blog)
Scarifying performance?
I hate to be nitpicking, but "... without scarifying performance." makes my brain hurt.
dictionary.reference.com agrees with me:
scar·i·fy [skar-uh-fahy] Show IPA
–verb (used with object), -fied, -fy·ing.
1.
to make scratches or superficial incisions in (the skin, a wound, etc.), as in vaccination.
2.
to lacerate by severe criticism.
3.
to loosen (the soil) with a type of cultivator.
4.
to hasten the sprouting of (hard-covered seeds) by making incisions in the seed coats.
5.
to break up (a road surface).
How about:
/johno
"you can't stop the change"
I like hurtinating Should
I like hurtinating
Should actually be sacrificing.
Good of you to spot it and tell me Kwissus! Thanks!
Wow this time it actually
Wow this time it actually wrote something that made kinda sense.
---------------
Solid Core Entertainment
Developer of Roadclub and Sense: Survival Prelude (Developer blog)
No problem! The text looked
No problem!
The text looked copy-pasted from your actual documents, so I figured you might want to correct it. I wouldn't bother correcting a blog/news post...
Fruta planta is 100% pure
Fruta planta is 100% pure natural reduce weigh fruta planta products, so you lose weight. fruita planta boosts your metabolism, curves your appetite and cuts food cravings. fruta planta reduce weight Not to mention, fruta planta diet pills there are no proven long term side effects found with using fruta planta pills this weight loss frutaplanta product. planta fruta is formulated to help users reduce fruta planta weight loss their appetite and fight daily cravings. China is the fruta planta weigh loss pills organic and natural fruta planta diet pill to lose weight, because they help you lose weight fast. fruta planta Reduce Weight (30 Capsules). fruta planta slimming capsules works with your bodies chemical makeup to reduce your appetite and target all soft fatty tissue areas such as: arms, legs, hips, thighs, and buttocks. fruta planta original is a 100% all natural weight loss supplement and is made from all natural fruit plants.
Post new comment