Analysis Paralisis - how do you cope?

Just to be clear, my quoted comments were trying to explain what I thought Raghar was saying, not necessarily my opinions :).

You appear to be missing the point that “game design” is an entirely separate kettle of fish from “application design”. Requirements gathering, spec’ing, etc are all part of app design (they could be part of game-design too, in which case you are doing two sets of each).

Perhaps because game development is not about implementing an idea but about implementing a game-design, which is so much more complex than a single set of requirements / use-cases / etc that it (traditionally) is treated as an entirely separate process in and of itself?

The way that it’s usually described (lazily) in the industry (i.e. in lectures, articles, face-to-face, etc) is something like: “rather than only having requirements, we have an extra thing we have to manage called “putting the fun in”, and that’s not encapsulatable and becomes a parallel/separate process to the sofware engineering/design”. Most people don’t bother trying to explain it beyond putting some phrase in inverted commas with the word “fun” in there somewhere, with the implicit assumption “you know what I mean”.

Well, my suggestion was that the workload was getting beyond your capabilities as in individual (no matter how great you are…). But I can see a separate point that if you really had a game design completed then you wouldn’t need to spend much time picking particular technologies - because the game-design has already given you enough information to generate additional requirements on-the-fly.

c.f. Star Wars Galaxies, where the team was run from a 100+ page game-design document. Whenever questions came up about impreciseness in the software requirements, or about “should we adopt algorithm/library/technology X instead of the Y we were planning?” the game-design doc was used as “the bible” which would answer the question without allowing room for competing opinions - it’s say was final.

Probably my attempt to extend the analogy tripped up :).

You are certainly in a minority when compared to commercial games developmers, then. Whether your way of looking at things is right or wrong (I’m not qualified to have an opinion on that! Ask me again when I’ve managed 10’s of games projects ;)), it’s not how others do things. Personally, I’m inclined to agree with that majority on this subject: my experience strongly supports the view that if you don’t separate game-design from software-design then your game has a much higher chance of sucking as a game (i.e. being boring, unsatisfying, or unaddictive to play), even if the software engineering side is perfect (no bugs, short dev time, etc etc).

Um, there’s absolutely nothing of “game design” in that which would lead me to ask (playing devil’s advocate):

Where’s the fun in this? Sounds like it’s going to be as enjoyable as watching paint dry, unless there’s a secret bit of gameplay in there which you’re keeping quite about…

I don’t think that there’s any fundamental difference between a document stating

“The planet of gamelandia has 6 contintents. … The brown frog in continent 4 has 50 hit points. It appears with a probability of 40%, and when killed will drop a protection ring with 5% probability, otherwise it simply drops a healing potion”

and

“If the customer has purchased at least $1.500 worth of goods in the last 5 months, he will be offered a 5% discount in the next purchase, providing that he dosn’t pay using a discount coupon”

I see them both as documents describing how an application (be it a game, a flight control system or 3D modelling software) should behave. As for complexity, you should see some of the 300+ page requirements documents that we handle in my real job :slight_smile:

I think that sweeping an inadequate documentation under the “it must be fun - you know what I mean” carpet is just an excuse. Of course I’m not an expert either, but statistics show that many games are made with a game design document which surely has lots of “fun” things in it, and yet many games - a huge majority - suck anyway.

I think the “fun” thing can and should be expressed in the requirements. If the frog has 999 hp when it first meets the level-1 player and kills him everytime, this is not fun. If it has 10 hp and drops an Armageddon ring 100% of the times, it’s not fun either. However, just stating that “the frog must behave in a way that is fun” in the document, what does that mean, and who decides that?

Well, I guess they had a rather detailed game bible. How would that bible helped them choose between Java3D and Xith3D for example? :slight_smile:

This is precisely the reason why I want to make such a game, because of misconceptions like that.

For example, nodoby gave a **** about the way the scientific police worked until CSI came and made it seem interesting (albeit exaggerating it a lot).

In another area, you may remember games like Star Flight, Star Control, Master of Orion or the like that - at least for me - were terribly fun to play (not their last sequels, though).

In the first two of them, for example your ship could land on planets collecting ore. Before landing, you were presented a map of the planet which generally speaking bore little relation to on-surface factors.

In my game, the general approach is similar but you have a wide array of instruments at your disposal - providing that you have obtained/bought/built them , of course -:

Looking for nice stars with promising planets? How about a emission analysis to determine the composition of the star and its position in the main sequence?

Want to drop a lander and pick some ore on that nice-looking planet in that binary system? Ok, go ahead blindly, land to find how a huge earthquake smashes your lander while you are happily collecting ore. ;D
Yes, you should have dropped first some sensors for tracking geological activity. Binary systems and tidal gravity forces aren’t a toy :slight_smile:

Want to mine a nebula? You can go there and use your entire monthly pay in fuel just to find that it’s a hidrogen blob or you can do an absortion scan and find that it’s rich in basic organic compounds…

You picked some microorganism on Antares-IV. You can trade it for $10 at the life-traders-union, or you can do a culture of it, make a stereochemical analysis of the byproducts and discover that the critter produces insulin, which happens to raise the value of the discovery to $1000

I think you get the idea.

Right, now this is “game-design”. Completely different from the other design stuff you quoted earlier.

I’m not sure how to respond to the earlier stuff, about specifying numbers of hit points, etc - that is NOT game-design, that is balancing and / or software/app stuff.

To me there is an obvious difference between specifying the dry facts of a design - like hitpoints - which nevertheless are often important to the fun (mainly because of the need to balance and counter-balance)…and specifying game-play, which is what you’re doing in the paragraphs I quote above. Or, to put it another way, there is a whole part of the game dev process which is exactly the same as what we did at IBM on any project in the planning stages; but then there’s this whole other aspect (the gameplay design) which is completely different from anything we did - although similar techniques can help focus a team when attempting to capture it (use-cases, etc). Perhaps at more “touchy-feely” :stuck_out_tongue: dot-com companies, where the “feelings” of the client were taken on board more explicitly, there is a part of the software design process that is similar to this gameplay stuff? But personally I struggle to find neat equivalents in the traditions of software engineering. When talking to investors, I usually describe it as “usually, when software is being written competently, it is solving some problem or need - such that even though the client usually doesn’t know precisely what they want, at least it’s possible to analyse it and work out what they want and give it to them; in games development, there is no such need nor problem, there’s nothing to analyse, you can only invent. This demands different (additional) processes”.

So it was, after all a communications/terminology problem that we had :slight_smile: , because I consider what I wrote basically part of the requirements, although belonging to the introduction of the whole specification, something like explaining the big picture and the rationale for the specific things that come afterwards…

But anyway, having all that clear still doesn’t doesn’t help me with my doubts :slight_smile:

That is the wrong thing to say, here. There was no “misconception” - you had completely failed to describe anything even remotely approaching “gameplay”. Your entire description could have perfectly well been applied to a website of “suggested science-projects for teachers to use in schools” … or even “a revision aid for science subjects” website.

I only put forward a simple question: where’s the GAME.

…now that you’ve furnished us with descriptions of the game/gameplay, yes, I have a good idea thanks ;D. Sounds fun.

Although it also sounds suspiciously similar to the plans of people who want to make that infamous MMOG: The Universe ™ (with plans to “model every atom separately using a particle system. It’ll be really cool - we’ll get, like, water running downhill, and a REAL physics system instead of this simulated crap” etc.

Which is why game-design as a process in and of itself is so highly recommended ;D. Now, I’m not suggesting you really care about what I think - I’m not a publisher nor customer - and maybe your gameplay is carefully scoped so that the above paragraph is inaccurate to the point of being insulting and patronising. I’m just going on what you’ve said so far, and trying to show how things like separating out game(play)-design could/would help, if someone were trying to pitch something using similar phrasing as you’ve used in this thread.

Perhaps: Because it either describes the gameplay as “designed to work on a small home-PC screen” or it describes it as “works on a PC but really shines on a CAVE”.

Basically, technical analysis will often make your decision for you (“Do I know OpenGL and have my own SG? Why, then I don’t want an SG I just want an OGL binding”) - or narrow it down to a few.

It tends to leave blanks - perhaps your technical analysis leads you to choosing jME or Xith with either being OK. NOW the wooly bits are probably answered by the details of your game(play) design…which talks about the look and feel of your game (no game design doc can avoid describing L&F!). That should then - in most cases - differentiate enough to make your decision for you. Between the two types of evaluation, you should only be left with a coin-toss in a tiny minority of cases.

To a certain extent, I’m with Onyx on this - I’m not sure why you would have much paralysis on current techs. For instance, the choice between what transport layer you use for your networking seems to me fairly trivial, as soon as you are armed with a decent resource (like the networking forum here ;))

  1. You know nothing about networking: learn a bit, then go get a 3rd party solution. There are several that are 100% free. You don’t care what transport it uses.
  2. You are competent at networking and understand the basics of TCP & UDP already: read the thread on this forum, and you now have a checklist of what the differences are. Run down the list and choose.
  3. You are really into networking, or want to do something really special: read the thread on this forum, and learn WHY people ever bother with the inferior UDP protocol. Discover that they want RDP / TCP-without-in-order-delivery - and go away and implement precisely that.

Of course, just finding the decent resource is often the problem. Hence things like making all articles on JGF peer-reviewed, to try and make it into a resource you can “trust” and save you having to trawl the net for good reliable sources…

Yes, i hadn’t written anything about gameplay (i was answering a specific question made by Cas about the aim of the game, not about of the gameplay)… but that didn’t stop you from concluding that it would be as boring as watching a painting dry :smiley: It looks like a statement to me, not a question :D, an oppinion about a subject formed on no facts about that subject, precisely the definition of the word misconception ;).

When did I say that it was a description? It was the aim of the game, not a description of it. RTFP ;D. I think it’s clear that it’s quite different to say that the aim of a fighter is to defend a country than to describe how the fighter works. You use the aim when you go to Congress asking for budget, and then you use the description when talking to engineers.

Well, good luck to them :smiley: Except that atoms are not particles and atomic systems don’t behave like that, and no amount of computing power will ever be capable of such a simulation. The only way to simulate such a system is to be the system. That’s the fun of chaotic systems - systems that are deterministic but unpredictable nonetheless. And if we add to that nondeterministic qm then it becomes even more fun :smiley:

I’m somewhere between point 2 and 3, plus added lazyness because networking is not fun (to me). I don’t feel like diving in the source code of a TCP stack just to remove the in-order-delivery, and I don’t feel like writing a new protocol from scratch either since I know that this is no trivial stuff and network protocols are difficult to get right. I’ll see if there’s something already written, but probably I’ll just use two connections - TCP for things that I need guaranteed delivery and happen not so frequently and UDP for the rest, and use a common sequence number for frames and a mux/demux that sends them to the appropriate channel.

The problem with peer-reviewed articles is that here we have only oppinions. Most people I’ve read speak from their generic knowledge of the xxx protocol, but few have done hands-on research that can be reviewed, in the sense that “I wrote a small game to test bla bla bla. Here are the results plotted against quality of the channel expressed in % of incorrectly transmitted frames for modem users, xDSL users etc… Here’s also the playabilty of the game as judged by the players…”. It’s like trying to recommend a diet without taking into account the specific traits of the patient.

You can’t peer-review an oppinion. In science journals - described theories and experiments are either mathematically correct and reproducible or not. You don’t say “IMHO x^2 = 2 has no rational roots”. As Grimaldi said, “Arithmetics is not an oppinion”.

I was only trying to say that although you’d said lots of things that might normally be considered the output of the design phase of a project, they lacked what’s special about a games project. Perhaps the “devil’s advocate” phrase didn’t mean anything to you? It means “deliberately taking this is in the worst possible way, in order to establish what happens at the extremes, and possibly uncover a flaw in what is being said (that might otherwise be brushed aside because I happen to know what you really mean)”. According to dictionary.com, “argues against a cause or position, not as a committed opponent but simply … to determine the validity of the cause”.

Perhaps I wasn’t obvious enough: I was saying that they have a generic vague idea of what they want to do, rather than a game-design. They have no game, and worse they’re hankering after something practically (and obviously) impossible, but superficially “neat”.

So, where’s the problem? Going back to the point, I don’t understand why/how you get paralysis here?

OT, but … what words do you want me to use to describe the process where someone who has done the thing before reads an article someone else has written on the subject, and decides if it’s genuine, whether or not the source actually works, and whether it’s misleading or not?

To me the whole point of peer-review is to prevent precisely what you describe - “speak from their generic knowledge of the xxx protocol, but few have done hands-on” - and end up with things that actually work rather than being vague conjecture. How should I describe this?

I’m confused now. Shrug. I’ve lost the plot of what you think design is and isn’t, so I shall bow out now before causing further confusion :).

:smiley: Basically, the paralisis comes from trying to achieve a perfect design using the optimal tools when as someone rightly said here, in today’s computing world and unless I’m aiming at a “bleeding edge technology game” (which I’m not) it doesn’t really matter. So I’ll hear the advice of Richie and “first make it work, then make it work fast:wink:

Just the way you did :wink: But I haven’t seen articles like the one you mention in the networking forum, or maybe I haven’t looked well enough.

[quote]Basically, the paralisis comes from trying to achieve a perfect design using the optimal tools
[/quote]
Somehow I don’t think you’re a very good software engineer then. The whole point is that there is no such thing as “perfect” or “optimal” when it comes to large-scale system design in software. Engineering, by definition, means compromise - finding an acceptable strategy out of a range of possible solutions. It doesn’t matter what you do. As soon as you start using one technology, a better one will become available to you. Get over it and just make a choice. I’ll guarantee you that it will be wrong 5 minutes after you made it, but them’s the breaks. ::slight_smile:

It would be preferable if you keep your attacks and personal judgements for yourself and instead just state your oppinion >:(

I don’t agree with neither your definition of engineering nor with the statement that optimal designs do not exist. Existance is one thing, achievability under a set of constraints is a different thing, but I don’t feel like starting a purely mathematical discussion about this.

Flames alert! Please everyone stop here and instead of posting get on with some bloody work!

Cas :slight_smile:

Just a note to ahristov

I know precisly what you mean. I have been there a 100 times over. I always end up asking weirdo questions in the forum and driving everybody nuts.

I must be better at thinking simplistict and defining in detail what I want. Before I start coding and failing.