Check out this article on game development, the link appeared on http://developers.slashdot.org/developers/04/02/28/1834224.shtml today.
http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=114
Andy.
Check out this article on game development, the link appeared on http://developers.slashdot.org/developers/04/02/28/1834224.shtml today.
http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=114
Andy.
Yes, I was just about to post this.
Nice article to help give an idea of what it takes these days.
Which is why two thinsg will become increasingly important:
(1)Coding tools designed to help manage complexity (eg Java.)
(2) Middelware that offloads some of the hariest coding tasks.
Complrxity has reached the point where it stands as a barrier to imagination and innvoation. That can’t possibly continue and have the industry remain healthy.
That is a good article, in some ways…
But it gets me a bit how he emphasizes how much expectations for professional games have grown, and therefore that it’s harder to code a game now than ever before.
Really, if you’re not out to code a 3D MMRPG, game development is easier than ever before…we have so many more tools for making better games than existed ten or twenty years ago. The internet is littered with tutorials on game-making, and a large collection of free or cheap programming languages (eg Java, various C++ compilers, Blitz) and tools (eg Eclipse, LWJGL, Dev-C++, SDL, Allegro, DirectX) are available. Ten years ago it would be a lot more work, and likely expense, than it is today to write a 2D space-shooter or a side-scroller.
Hm.
I don’t really think that Java and LWJGL (for example) have made games development an order of magnitude easier. It’s just a slight shift towards the “easier” end of the spectrum from C++.
I would like to draw your attention to Powerbuilder, and what happened to development of client/server database applications back in the early 90s. Suddenly it was a total doddle to write database applications on Windows that took advantage of the whole platform effectively. It takes me minutes to achieve in Powerbuilder what it takes me days to achieve in Java. This is the sort of order of magnitude that the games development environments we have today need to grasp. RAD for game development.
It has little to do with Java:“the language” - although Java may well be the most effective underlying platform technology.
Even libraries like Xith3d are not making things a great deal easier because of the outrageously complex syntax of Java programming.
We need BASIC, in an IDE with all the 3D models and resource editing and deployment built-in, all geared totally towards developing games.
Cas 
[quote]We need BASIC, in an IDE with all the 3D models and resource editing and deployment built-in, all geared totally towards developing games.
[/quote]
BASIC ???
No thanks 
But what you’re describing sounds a lot like UnrealEd (although that is somewhat genre specific).
Erik
[quote]Which is why two thinsg will become increasingly important:
(1)Coding tools designed to help manage complexity (eg Java.)
(2) Middelware that offloads some of the hariest coding tasks.
Complrxity has reached the point where it stands as a barrier to imagination and innvoation. That can’t possibly continue and have the industry remain healthy.
[/quote]
Excellent summing! You describe exactly what people feel when they’ve spent years in gaming industry. Creativity is being hindered by technical obstacles.
[quote]Hm.
I don’t really think that Java and LWJGL (for example) have made games development an order of magnitude easier.
[/quote]
The complexer your game is, the more you’ll profit from a effective language/platform like Java. Again you’ve to differentiate: Moorhuhn ist not “the games development”, so it depends what you do and what you use to reach it.
A game of type Lemmings you’d sell as casual game today, and still it’s complex to program, so actually even casual games will benefit from Java (+ 3d layer) a lot.
[quote]It takes me minutes to achieve in Powerbuilder what it takes me days to achieve in Java. This is the sort of order of magnitude that the games development environments we have today need to grasp. RAD for game development.
[/quote]
Typical database apps have more in common than most games, though. Add to this that complex database apps aren’t built with PowerBuilder neither. A good computer/video game is an unique piece of art. I don’t think they fit well to a “game construction kit”.
[quote]Even libraries like Xith3d are not making things a great deal easier because of the outrageously complex syntax of Java programming.
[/quote]
Xith3d (or take Java3D as its big brother) makes things easier. A good OpenSource 3d engine is of great help.
[quote]We need BASIC, in an IDE with all the 3D models and resource editing and deployment built-in, all geared totally towards developing games.
[/quote]
You’re kidding. No grown game will be written with Blitzbasic, and even in case it would: let’s wait 10 years until it’s ready.
Jeff hit the nail on the head: an effective language/platform in addition to nice middleware (3d engine, physic engine, AI engine, …) and there you go.
Between the language and middleware there’s still room for other game-orientated libraries, like JOGL, JOAL, Jinput, and some 2D ones maybe.
[quote]Even libraries like Xith3d are not making things a great deal easier because of the outrageously complex syntax of Java programming.
We need BASIC, in an IDE with all the 3D models and resource editing and deployment built-in, all geared totally towards developing games.
Cas 
[/quote]
I disagree. For one Java syntax is slightly simpler than that of C/C++, which appears to be the dominant language for gaming. (Maybe not in your market though.)
BASIC was designed for beginners to learn - heck that’s spelled out in the name (the ‘B’ is for ‘Beginners’). It becomes a big problem when it is used for more than that. Look at the crud that is Visual Basic and it is clear.
Java can be hard for beginners, but I think higher-level APIs done with Java can go a long way to helping there.
I think we’re seeing that computers are mostly ‘fast enough’ to write truely generic and reusable game code. Something like the original Doom was stunningly good looking at the time, and ran blazingly fast. Yet try and get it to do a different game type and you’d be stuck.
Compare that to now when theres a large number of reusable code - not just graphics like Renderware, but full blown math engines for all that rag doll loverly-ness. Something like the UT engine has huge amounts of flexibility in it, and games like Neverwinter Nights have toolsets mature enough to be unleased on the general public (with both a WYSIWYG editor and a built in simple scripting language). Its just taking time for the really complex stuff to be off-loaded into reusable libraries.
Maybe when I said BASIC I upset a few language zealots here… BASIC can be anything you want it to be; but one its better points is readability. You can have classes and abstraction and encapsulation in BASIC.
What I’m trying to say is that there is no fourth generation language for games development. Powerbuilder really, truly is the choice for c/s database applications development because, simply, no tool comes close to it in terms of productivity and power. It has fallen from fashion recently largely through catastrophically poor management from Sybase (a joke of a company if ever I saw one).
A 4GL is specifically geared towards providing syntax and a RAD development environment for the task for which it developed. BASIC would be ideal because its syntax is clear and simple and very easily bastardized. In fact, Powerscript (as used in Powerbuilder) is just bastardized BASIC. One of their killer language features was just simply being able to type SQL directly into the code.
So I’m still saying - Java “the language” is just a little shift in the right direction. It fixes a few quirks and problems you find in C++ like memory allocation/deallocation troubles but ultimately the syntax is still nasty and can’t be read aloud in English and there are no high-level language constructs designed to make games programming easier.
Cas 
Agreed.
I’m getting fed up of people claiming that games in general are pieces of art; this is no better than claiming that games development is just like making movies. In both cases there are a few superficial similarities, but when you do a detailed analysis they are fundamentally different, and the comparison is mostly meaningless and unhelpful.
Uh…in many areas, we’ve yet to see any “nice” middelware in the games industry. The overall standard is poor (notable exceptions aside): usually the technology is good, but the interfaces are dreadful - or else fundamental functionality is missing or broken. Sometimes you feel like forgiving studios for “NIH syndrome” when you look at some of the tools that are marketed specifically at the games industry…
My favourite example is the Quake 1 licensees who allegedly thought that they’d be able to upgrade to the Quake 2 engine once it came out. Obviously this was a communication problem between vendor and licensee, but this kind of crud should NOT happen in a professional middleware vendor/licensee relationship.
This is something that many games developers think will solve their problems / be the holy grail. Looking carefully at the costs (where project-failure or termination is still the biggest problem of all, both in terms of percentage of affectd games, and overall lost revenue), it would seem that middleware comes a distant second compared to “learning how to do project management”.
I agree that good middleware can (and will, if we have anything to do with it) massively alter development speed, risk, costs - and thence the overall quality of individual games. But I think we need to recognize that there’s a bigger problem, until we’ve destroyed the oft-quoted statistic that of 3500 games produced each year fewer than about 35% break-even.
Although I hate BASIC, if it can reduce the aforementioned problem then it’s worth having. Don’t diss BASIC simply because you know it’s crud (no comment) - evaluate it in the context of the major problems for people within the industry.
[quote]So I’m still saying - Java “the language” is just a little shift in the right direction. It fixes a few quirks and problems you find in C++ like memory allocation/deallocation troubles but ultimately the syntax is still nasty and can’t be read aloud in English and there are no high-level language constructs designed to make games programming easier.
[/quote]
…and this same problem, both in Java and in C++, is the force driving professional studios towards scripting languages in droves.
We’re starting to see really inappropriate deployments of Python left, right, and centre simply because it’s a heck of a lot better than just using C++, and the developers aren’t (or can’t afford) taking the time to properly evaluate alternatives; Python integrates with C very easily, so it’s an particularly cheap way of releasing some of the pressure caused by the problems Cas mentions.
You could easily argue the reverse - the majority of game Just Plain Suck. And this is mostly caused by most of the time being spent on technology development rather than actually making a good game. With better middleware you could avoid this.
[quote]So I’m still saying - Java “the language” is just a little shift in the right direction. It fixes a few quirks and problems you find in C++ like memory allocation/deallocation troubles but ultimately the syntax is still nasty and can’t be read aloud in English and there are no high-level language constructs designed to make games programming easier.
[/quote]
Java makes games programming easier in contrast to what’s being used in 90% of the games: C++. For several reasons. Java kicked most of the nasty C++ syntax/pitfalls but is more than a language, it’s a platform. It’s got a big library which makes a developer’s life easier. A library which works in a common way. That’s the big jump compared to C++. Of course in C++ you can use all kind of external libs but for any team you start with you’ve to learn new libs, buy new ones, bug fix those, etc. C++ plus libs is fragmented.
Btw I liked BASIC. Used it for 10+ years or so. But its time is over IMO.
Exactly.
I’ve seen several times that teams of larger (C++) applications in the end spent 60+ % of the time in re-inventing the wheel named basic libraries or even “middle-ware”.
They did their own network library, their own 2d blitting engine, their own 3d engine, their own hard coded or maybe scripted AI engine, and so on. The time they need for that lacked at finetuning the application and so on.
Point taken. If you believe this, then fair enough. As it happens, from the failed games I’ve seen, I don’t think that it’s an accurate summary - apart from public failures (and whatever post-mortem info leaked out on them) I’ve seen fewer than 15 failed games, so it’s a comparitively minute sample, and I’m open to any convincing arguments in favour of what you’ve outlined above.
AFAIAA, the 3500 number excludes “Joe Bloggs and his VisualBasic multiplayer Tetris clone he never quite finished”, but I don’t have any stats to hand where I know the original survey/source (anyone got the latest ELSPA report?)
but…to what extent was this due to stupid decisions (i.e. bad project management) and to what extent was it due to lack of available middleware?
Do we really need more or better middleware, or just better project planning?
[quote]I’m getting fed up of people claiming that games in general are pieces of art
[/quote]
Well, I still think that a good computer game is a unique piece of art, like a good board game is. I didn’t say that all games are art, “just” the (really) good ones. Naturally it depends on the genre, too. For example a flight simulation needn’t be art, it’s already a good simulation if it reflects a plane in a realistic manner.
The games I am talking about are the ones with unique ideas and gameplay (several of them come with not so good technical aspects, but it doesn’t kill the art somehow).
To make a game you’ve also to know the business of software engineering and planning, you’re right.
Oh, off-topic again…
[quote]Uh…in many areas, we’ve yet to see any “nice” middelware in the games industry. (…) I agree that good middleware can (and will, if we have anything to do with it) massively alter development speed, risk, costs - and thence the overall quality of individual games.
[/quote]
3d engines for example are an important middleware. Physic engines in future, too. To name just two.
[quote]Although I hate BASIC, if it can reduce the aforementioned problem then it’s worth having. Don’t diss BASIC simply because you know it’s crud (no comment) - evaluate it in the context of the major problems for people within the industry.
[/quote]
I know BASIC and Java: what would BASIC speed up in contrast to Java, for example? Do you mean as scripting engine?
[quote]. As it happens, from the failed games I’ve seen, I don’t think that it’s an accurate summary - apart from public failures (and whatever post-mortem info leaked out on them) I’ve seen fewer than 15 failed games, so it’s a comparitively minute sample, and I’m open to any convincing arguments in favour of what you’ve outlined above.
[/quote]
Well how about looking at it from the other angle, sucessful games that managed to avoid getting bogged down in technology?
Unreal Tornament 2k4, building on an already well established engine, nothing really ‘revolutionary’ in terms of graphics, but really good artwork. Existing AI was already very intelligent. Added in a physics middleware (Karma I think) which gives great rag doll deaths and more importantly some (very) fun to drive vehicles. So they get much more time balancing the weapons, tweekng the handling and making good maps.
See also The Sims, whose sucess is well documented and uses a scripting language for all the AI (I forget which, something freaky like Lisp). Without good AI it would be pretty mundane. And for another random example, FZero. Built on the well tried-and-tested Super Monkey Ball engine, good solid physics, great sense of speed and lots of well balanced gameplay.
Just devils advocate, I personally think the reality is somewhere in the middle.