Why Game Developers Should Finish What They Start 80
Michael writes "Too often, hobbyists and open source programmers take on game projects that they can't hope to finish. Freshmeat is rife with games from developers who have bitten off more than they can chew. So I drafted an article which takes a look at the major roadblocks to successfully completing open source and hobbyist game projects."
I find myself in this situation a lot (Score:5, Interesting)
The way that I get myself back on track is by concentrating only on the code that must get done and then I worry about making it more robust later on. I sometimes find myself worrying about the content. This is A Bad Thing(tm) to do while programming a game engine. It's a lot better just to focus on the code and the functionality first.
Obviously, there are times when I physically am unable to program for various reasons (real life and all that). But, no one said that being an open source game developer was easy.
I'd love to post my game URL here, but I'd rather not have my ISP think there's a DDoS attacking me. It's called Ether though, it's a web-based MMORPG. (there's a very uninformative page for it on SF.net [projectname: ethermmorpg])
Re:I find myself in this situation a lot (Score:2)
I also ran into the problem of a nigh-unusable menu when you're using a slow computer (as I put in way too much OpenGL goodies and the menu actually runs too slowly to move the cursor correctly).
Re:I find myself in this situation a lot (Score:2)
Re:I find myself in this situation a lot (Score:1, Funny)
Rumour has it that Microsoft also use this approach. "Later on" never comes though since they're always busy thinking up new major features to add to the next "service pack". Clippy, the Office paperclip assistant, would have been one of those "must get done" things while security and robustness were put on the roadmap.
Re:I find myself in this situation a lot (Score:2)
I thoroughly disagree. Work on the content first, then develop the engine and other technology you need to implement your vision and story. There are already too many ga
Well said (Score:2)
The problem is: Games aren't only about programming. Neither are other apps, for that matter.
Programming complicated algorithms is the fun part, and that's why every kid wants to show off his cool (non-structured, non-indented and generally buggy _and_ unmanageable) clever code. No offense y
And an example of a project went wrong (Score:2)
_Everyone_ wanted to code some cool uber-complex function. Noone wanted to just sit down and write room or NPC descriptions.
Getting a new _small_ town into the game took 2-3 years, with more team just for that town than some other MUDs have for the whole game.
Even coding new functions for the game degenerated into uber-complex designs that were no fun for the user either.
E.g., at one point they wanted to add ranged comba
Re:I find myself in this situation a lot (Score:2)
It's my own time so I'll do what I want (Score:5, Insightful)
The reason why people give up is quite simple.. it's fairly easy to get a 80% complete game, and see what it's like. The last 20% however takes 50x longer to do, is really quite boring, and by that point I've had a new idea for a "greatest project ever!", and have decided to go and write that instead
One problem with games that other programs don't have so much is that most games (with the except of fairly free-form RPGs like nethack) is that most people will only play them once or twice, so if you write a game and release a 70% complete version, then 4 months later release a 80% complete version, very few people will re-download and re-play the new version, which is one reason people find it so hard to motivate themselves to finish them, and not just go and write something else.
Now pardon me while I try to get and think of another great idea for a new game and start to write that one!
Re:It's my own time so I'll do what I want (Score:4, Interesting)
You learn so much from doing partial projects. This time around, I learned:
LibSDL, SDL_Net, SDL_Console, and INI_Parser.
Granted, I don't have a product to give away, but I just made the game for myself anyway
Re:It's my own time so I'll do what I want (Score:3, Informative)
This works best, of course, if they really like the project you've developed and can give you positive feedback as well.
Re:It's my own time so I'll do what I want (Score:5, Insightful)
If you can get people interested, even if they aren't actually contributing to the project, they can be a big motivator.
Re:It's my own time so I'll do what I want (Score:4, Interesting)
Yeap, the standard joke in the industury is that the first 80% takes a linear 80% of your times, and the last 20% takes an exponential 80% of your time. i.e. ~160% total time.
Why do you think id, Blizzard, etc. keeps polishing their games before they declare them good enough to ship?
--
Original, Fun Palm games by the Lead Designer of Majesty!
http://www.arcanejourneys.com/ [arcanejourneys.com]
Re:It's my own time so I'll do what I want (Score:1)
They don't. They're just a bunch of sadists, and enjoy torturing hundreds of thousands of people by not releasing their games. They actually finish near the initially advertised release period, and then they sit in their offices playing their awesome games all day, all the while reveling in the satisfaction that fanboys are crying themselves to sleep!
Re:It's my own time so I'll do what I want (Score:2)
Does anyone know of a C++-compatible scene graph library?
get bored, not just games (Score:4, Informative)
Re: get bored, not just games (Score:5, Funny)
> I have found that when I work on personal projects, a couple games amongst them, I get bored with them once the hard parts (those that I haven't had much experience with ie new to me) are done and bug free (as best I can tell
Yeah, I tend to think of a problem, program at it just long enough to see how to do it, and then go on to another one.
I suppose there's a reason we aren't all entrepreneurs.
Re: get bored, not just games (Score:5, Funny)
From: dhein#NoSpam.onramp.net
An Engineer, a Physicist, and a Mathematician all go the same
Conference. University budgets being what they are, they all stay in
the same cheap hotel. Each room has the same floor plan, has the same
cheap TV, the same cheap bed, and a small bathroom. Instead of
a sprinkler system, the hotel has opted for Fire Buckets.
The Engineer, Physicist, and Mathematician are all asleep in bed. At
about 2AM, the Engineer wakes up because he smells smoke. He looks in
the corner of the room and sees that the TV set is on fire! He dashes
into the bathroom, fills the Fire Bucket to overflowing with water, and
drenches the TV set. The fire goes out, and the Engineer goes back to
sleep.
A little while later, the Physicist wakes because he smells smoke. He
looks in the corner and sees that the TV set is on fire. He grabs a
handy envelope, estimates the BTU output of the fire, scribbles a quick
calculation, then dashes into the bathroom and fills the Fire Bucket
with just enough water to douse the flames. He puts the fire out and
goes back to sleep.
In a little while, the Mathematician wakes up to the smell of smoke.
He looks in the corner and sees the TV on fire. He looks into the
bathroom and sees the Fire Bucket. Having determined that a solution
exists, he goes back to sleep.
Re: get bored, not just games (Score:1)
Electrical fire (Score:2)
2. Don't use water on an electrical fire.
3. Toxins are released, even if the fire is gone you shouldn't stay in the room.
4. No smoke alarms?
Eat your own dog food? (Score:2, Insightful)
"There are no games at the moment. When we announce something, we'll put it here!"
Rik
He also forgot a list of blockers. (Score:2)
The title is just plain wrong (Score:5, Insightful)
Re:The title is just plain wrong (Score:3, Funny)
Games by learning - or by fun (Score:4, Insightful)
Opensource isn't just a one man band. The best games would have >1 developer to lend a hand.
Don't encourage rash, hacky programming tendancies to push quantity of quality.
Of course, fleshing out mist of your game can be a good way of making you want to complete it.
My advice: Get other people to help with graphics. Go to a site like www.deviantart.com and post a message saying pixel help / 3d help needed for xyz game, AFTER you have an engine that can showcase their work.
Looking good isn't a crime!
There are some rgeat freeware games around, and top down shooters using mouse look are excellent, and they usually have some funky particle FX.
As game development is simplified through libraries, we may see more amateur games, and more skill, pressuring commercial games sales.
CounterStrike for instance, if this used an open source, free beer 3d engine, then the 'best game' would have been open source and free beer.
OK quake 1 is open source now for ages, I am not sure what this means for counterstrike source code?
Valve obv. have license for thier commercial exploits of the game.
Modification of games is also prevelant, making open source games modifiable, even using md2 model files etc, would greatly increase thier adoption.
Top ten open source, free games?
Game programming libraries (Score:3, Interesting)
If you're going at the programming by yourself, I would strongly recommend you use a library to save you from having to write your own low-level access routines (unless you just want to learn about how all these whiz-bang effects are done, but that may distract you from the goal of getting a game finished). Unless you have commerical backing, or are absolutely sure you have the willpower to stick to the proj
Video Game Author: My dream job. (Score:5, Interesting)
Well, the last few weeks in particular, I've been working on my first game for real. Allegro, gcc on linux. I'm doing the mundane stuff first, menuscreens, trying to get libmpeg to do cutscenes, not that I'll ever actually have any rendered.
Maybe it was the years of starting to doodle around with code, and never accomplishing anything, but I did realize that I needed placeholder images/video. Done, grabbed random mpegs, doodled out so laughable stuff in gimp. My game will use very little in the art dept, being SVGish in many aspects. At the moment, only the opening menu screens would seem to need any.
The point is, why does this guy think this is a revelation? I can't imagine that there is anyone out there that isn't using Allegro or SDL, or has io needs so simple that a keyboard routine is all they need. His first requirement, therefor, hasn't been an issue in at least 5 years.
His second issue, art/graphics. I can see this as contentious. Even so, those who really want to program, to author the game, they give up on it soon. (In some respects, at least... if I were doing a 3d game, I'm decent enough at 3d modeling). So people either finish this part, or they don't. Does he expect them to design games that don't need any, or would he just rather not see any unfinished games?
It sounds more discouraging than encouraging.
Offtopic: What in the hell do I do with my game, assuming I do finish it?
Re:Video Game Author: My dream job. (Score:2)
At the time, 3D graphics hardware was just starting to become common -- so, initially a rendering engine was written that used allegro's triangle drawing and the painter's algorithm to draw 3D objects. Then the authors decided that OpenGL was the way to go instead (I think Quake had been released a little while beforehand, and everyone thought it was cool back then). While they messed around
Re:Video Game Author: My dream job. (Score:4, Interesting)
Designing a ship means drawing an outline (the hull) and choosing the hull material. Then dragging and dropping components. Pressurized interiors, life support, computer systems, engines, power reactors, weapon systems. Scripting the control interface. Some stuff, like routing power conduits and data lines might be done via wizard, but a person has 95% design control. Add in real physics, and it could be interesting. Your ship weighs 50,000 metric tons, but you only had room and money for the tiny engine with 2000 lbs of thrust? Oops. You forgot that there are no tires on the ground to turn with? Hope you put the weapons on a turret!
And then of course, I can calculate exact component damages. They knock out several turning jets, damage a few more to 30% effectiveness, and your engineer is hurriedly writing new script, because the old keystroke assumed all 8 turning jets at equal power. "Cap'n, it'll take at least 10 minutes to get the primary navigation system back in order!"
Graphics aren't too tough. Some stars in the background, with slow parallax. Bitmap or SVG skins over the ship visuals. (Pet project as a player? Making an authentic Narn battlecruiser design!) Various interface screens will be collections of guages and interfaces... probably SVGesque. All designed by the guy who makes the ship. Some people might even fly totally by instruments... there might not be a "space view" at all.
I'm also considering a campaign mode, though it might be lame. Thank god for 2d, vector graphics and the stark void of deep space.
Doubt it could be popular though, doubt even more so that people would buy it. But if I don't write at least this one game, I'll never be happy as a human being.
Re:Video Game Author: My dream job. (Score:2)
Re:Video Game Author: My dream job. (Score:2)
Campaign mode, I'd want cutscenes, but I'm not good enough to make my own. Plus, it's going to be tough, making the campaign missions non-lame. It's not that I don't want to do it, but that may be hard to finish, even more so than the playable engine itself.
If I do it the way I want, though... there will be plenty of opportunity for others to make entire campaig
Re:Video Game Author: My dream job. (Score:2, Informative)
Assuming you want to get a job as a game developer, read through Tom Sloper's Game Biz Advice [sloperama.com] site.
If you just want people to play it, I'd try places such as freshmeat [freshmeat.net], or the forums at gamedev.net [gamedev.net] or flipcode.com [flipcode.com].
If you liked this... (Score:3, Informative)
http://www.amazon.co.uk/exec/obidos/ASIN/15845021
Re:If you liked this... (Score:1, Informative)
Also, before writing articles on how to finish a big project like a game shouldn't the author have something finished before he starts wagging his finger and other homebrew developers? It's his personal game studio site and the only ot
My own tips on finishing the project (Score:5, Funny)
I have been writing a neverwinter nights modules for what seems like forever and I consider the authors tips, at least in the context of a "community mod", to be pure BS. Writing something good is hard, even on a platform like NWN where the game engine is already written for you and you can focus on the "plot and storyline". Doing it well is hard and takes a lot of work. Anyone who has ever written a large dialog tree for even a single conversation would know this. Think about what a players response to each line might be and write all the reasonable branches. By the time you have reached the grandchild node, it is immense. Oh and if any of these have a plot impact, or you include race or class based differences, it gets even more immense. Even a conversation between two NPCs to advance the plot can have you debugging for hours. A cut scene is a serious hair puller.
Blowing things up is the easy part. Fights are fast and simple to put together. Putting together an immersive environment with properly placed background noise and placeables - as opposed to empty and lifeless areas is difficult. Good, self consistent stories and smooth play are difficult. That is why 95% of the modules on neverwinter vault suck and that is also why my "soundstage" modules still have a toolset to gameplay time ratio of something like 100:1. And that is soundstage where I can keep track of the plot in a notebook becasue I will be DMing them later.
Oh and I periodically stop developing because I have a life; plain and simple. Wife, kids, job, friends, other hobbies. Sometimes I get sick of building and even play for a little while.
So here are my own tips on finishing the project:
1) If you have a spouse or significant other, they are simply a drag on your time and preventing you from delivering. Divorce is in order here. If you are not married, it is less of a hassle to extract yourself from this situation.
2) Kids? Give them up for adoption.
3) Friends. If they are not willing to help out on the project (remember the >1 developer rule), then they are not really your friends. Never speak to them about anything else for the duration of the project.
4) Other hobbies. And desires to do anything else with your free time is indicative of lack of focus. Sell your hot rod/mountain bike/golf clubs/books/whatever.
5) Getting bored with your project and need a break? This is the single biggest factor in not delivering. Oh, you say that you will take a break for a few days, watch that DVD, play, see friends, etc and then come back to work on your game again, but will you? Oh you might in a month or six, but your idea will be stale. REMEMBER - YOU ARE NOT DOING THIS TO HAVE FUN!!! Is the project starting to feel like you are still at work? You are. Now get back to that keyboard.
Re:Harsh But Fair (Score:1)
Get allies, and about (sourceforge) projects (Score:1)
Just read what Linus Torvalds did: he offered others the chance to work on Linux when he reached his threshold, and the project florished.
Some of the projects on sourceforge I looked at suffer from too much control of the author; for example, if you find the map editor sucks, but the author tells you "I am right now working on it", then he got a lock on it, and it is pointless to continue working on the editor or a
Software Design (Score:5, Insightful)
Oh, wait, there is no mention of software design in this article...
I keep forgetting that game development is not about producing good software, but about efficiently pipelining your artistic assets. This misconception transcends this little article. For example, Game Developer Magazine is a worthwhile publication, but should really be called Game Artist Magazine.
Re:Software Design (Score:3, Interesting)
One thing I've noticed with my own hobby apps is that the most sucessful ones (in terms of actually getting something running somewhat decently) are ones where I just sit down and code. The ones which I spend a lot of time "architecting" tend to be the ones where I have less enthusiasm, and code more tentatively, almost like I'm afraid of making mistakes. Even if
Re:Software Design (Score:2)
I've learnt the importance of design the hard way.
Re:Software Design (Score:1)
For me, I notice that I could sit there and try to make it work on paper, or I could write something that works in practice - and then refactor as necessary. In the end, the latter seems more efficient to me.
But then again, I don't work on truely large projects where architecture is more important.
Re:Software Design (Score:1)
This thread is all about hobby-shop coding. Thanks for the insight into the commercial world, though. This is why commercial software is, on the whole, terrible. OSS has the potential to be much better than commercial software BECAUSE it is not driven over a cliff in the garbage truck of marketing. (Unfortunately, too many OSS projects a
Re:Software Design (Score:2)
- Functions that are three or more screens long.
- class members called undescriptive names like w,w0,w1 etc scattered everywhere
- No use of polymorphism to avoid switch statement nightmares
- code copy-and-pasted about with a few values changed rather than factoring out the similar code and putting it in a separate func
Re:Software Design (Score:1)
Re:Software Design (Score:2)
Re:Software Design (Score:1)
"Being able to program" (at a very basic level, as you correctly point out) is an oft-overlooked quality. I should assume that, but experience has trained me to doubt mere competence.
I can probably own that to an extent... (Score:5, Insightful)
While I've never released any of these projects, I suspect that this may be a similar situation with some of the game designers. I.e., the game is mearly a means to an end. If the true goal of the game is accomplished before the game is finished, there is less motivation to finish the game.
Rebuttal (Score:1, Insightful)
Nature of the beast (Score:5, Insightful)
It's not necessarily a bad thing. Some projects begin to test a theory that never pans out. Those projects feed into the next iteration that makes it a little further. And some projects are so ill concieved that they never deserve to see the light of day anyway.
You can look at it as R&D, or as the electronic version of Darwinism.
Article not really descriptive (Score:4, Insightful)
The reasons within the article are technological reasons about why games fail - pertaining to how the code is designed. It doesn't explain more pratical reasons, such as insufficient experience with programming or mathematics (e.g. you don't yet know how to divide a shape in two efficiently.)
This sort of stuff needs to be written over a period of time - you can't just write a single small article and say that it's done. That's also why there are books on the subject rather than one section in a periodical.
Effort to fix this kind of problem (Score:5, Informative)
Every month (or two, or three..) they choose a game to work on, and generally the end result is a greatly improved game. Currently they're working on TuxKart, if you view the screenshots of some of the improved models, they're amazing.
Anyone who has an incomplete game that they're no longer working on would do well to at least suggest it to the GOTM people, since they have artists and other people willing to do the type of work that coders hate.
Heck the pros are releasing unfinished games too (Score:3, Insightful)
Test Test Test! That is imperative. Don't use the same testers on the final version. You need to see different actions than the expected ones to ensure the bugs have been found. I play plenty of Beta modules for NWN and you can see who tests their modules and who releases the latest modified code. I can honestly say there are better developers in the NWN community than some of the professional developers.
Specific issues for Champions: There should not be "holes" in the graphic walls a character can fall into and be outside of the defined world. There should not be a 10-30 second delay to a response to an action like your pack being full. Simple and common things like accessing your inventory must be fast. Do not force large automaps when you add more than 2 players.
Other games: If the player moves the camera to a specific position, leave it there. If you have 2 tough areas back to back allow the user to save in between. If you have NPC characters, either move them out of the path of the PC or allow the PC to walk through them. If an activity is not required for general game play, but can help with bonus play, do not force the user to learn it.
What makes games get finished (Score:5, Insightful)
If a project is to have a chance of becoming finished, it needs at least one person involved who is rabidly determined that it will get done, no matter what, no matter how long it takes. This person needs to have the will to take back responsibility/control from anyone who's not getting some part of it done, and the ability to either do all those parts of the project themself, or to find someone else who will do them. If you have a person with pit-bull like persistence and determination on a project, it is decently likely to get done. If you don't, it's hard to finish unless you're doing something pretty easy.
A Nice Reminder (Score:2)
All projects (Score:1, Funny)
From the article... (Score:2)
You need to get through technology development as quickly as possible. If you disagree with this statement, you care about something else besides finishing your game.
Of course we care about something else - it's a hobby project, isn't it? Having fun is more important. And the technology development is the best part! Who cares about finishing this stuff, that's work.
Relying on other people (Score:4, Insightful)
Pitfall #0 (Score:3, Insightful)
Most games (hell, software projects of all kinds) don't get finished mainly because they are started by the wrong people. Some joker with minimal OpenGL experience comes up with a "wouldn't it be cool" idea and then immediately thinks they have to announce it to the world. They then spend all their time without a solid plan engaged in activities that do little more than stroke their own ego. Those people are best told not to finish, but to not even start.
Re:Pitfall #0 (Score:2)
From a NWN mod author (Score:5, Interesting)
The closest I've come to understanding why I keep making these things is a comment made by a writer. They didn't write because they wanted to write, they write because they had it.
I make games because there are these stories inside me that keep wanting to pop out. Characters that demand being brought to life. Making the games can occasionally be fun, but the bugtesting and release is usually grueling and unpleasant.
So, I think I'll keep my day job of code wrangling and tip my hat out of respect to professional game developers. It's a tough job, putting something you've invested so much of yourself out there for the world to poke at.
My way around this (Score:1)
My way around this is to simply admit I am never going to complete a game.
I'm tackling the content side instead, sorta. What I have written basically is a terrain tile generator. I noticed a lot of the 'craft like games suffer from lack of good graphics, and figured that terrain was part of the graphics that might be easier to generate than to render individually.
If you are morbidly curious my stuff is at gasnippets [sf.net] but I don't consider it finished yet. Working on DirectFB and OpenGL variants of the s
I know this all to well.... (Score:5, Interesting)
So my idea was to make this driving game where you had to race across country, but that was just the plot for plot sake. (It was about as much plot as Doom had in the readme.txt)
The race didn't matter. It was just an excuse for the different locales. The actual purpose of the game was to race, rob, carjack and maim everybody and anybody you felt like with your vehicles. I thought most drivers could identify with this on some level and the idea at the time was "out there" and sure to make some controversy.
I was working around anywhere between 1000 ~ 2000 hours a year on this. (Depends which years) Every time it got close, a new game would come out and raise the bar. Like an idiot, I'd start all over because I wanted it to be as good as anything out there. Well, seeing the target for this 3D game was originally a 386DX, later 486DX DOS/32, mostly everything had to be done in assembler. (Actually, in hindsight, I probably could have gotten away with a little less optimization) it took forever for it to go anywhere. Just when I'd get the renderer in order and start adding the other elements of the game, a new game would drop and it didn't look so slick anymore.
Anyway, I took a break for almost a year. I decided to finally just finish it and get it done. Thought it would be easier in some ways now that base targets were lot more powerful. Well shortly into it, as I'm coding, I see on the television a story about Carmegeddon and GTA.
F*CK! I gave up right there, my thunder sapped. The first GTA was alright, but what I was envisioning was a lot closer to what the GTA series has become. It's weird looking back at notebooks with drawings of golf carts and cars dodging planes on the runway. (Though some of it would be dated, like the LA segment during the riots)
I've had a PS2 now for over a year and outside of trying a rental or two, there is only one game I own and play. Vice City. Though it's missing a few elements, (Where's the steam roller?), it's pretty much, for me, the ideal game. (Might change my mind after I play Doom3 though)
I try and take it with a grain of salt when I see how fantastic it panned out for them. Though it's hard not to think, if I hard only gotten that second 90% done, if I had just got it out and didn't keep revisioning it.
Oh well
It's not just games... (Score:3, Insightful)
I think the underlying issues mentioned in the article -- principally aiming too high in various areas -- hold back a lot of personal developments, games or otherwise.
Now, I'm as much a fan of good design as anyone. I advocate it frequently, and I believe it more than pays for itself in time and effort over the lifetime of a project. But there comes a point where the best is the enemy of the good, and good enough is what matters. There is never a perfect architecture anyway, simply because projects evolve and you rarely know exactly what the future holds.
Similarly, you have to know how much one person, or a small team, working in their own time can realistically achieve. I have a few useful and significant techie projects under my belt, but for the majority I did nearly all of the legwork in a weekend or two, with occasional tidy-ups and fixes during the weeks immediately afterwards.
Perhaps the most impressive project I've worked on non-professionally was a complete redesign and content update of a reasonably large web site for a club I belong to. Without going into all the gory details, we're talking about well over 100 pages, a new graphic design, a new navigation system, and a completely reworked technical architecture based on XML+XSLT. The basics of that project took several hundred man-hours, of which probably the majority came from me over several weeks. However, I had help from a couple of other people on the web design and architecture front, checking things over and filling in some blanks. We also had several of the other club organisers providing content. Then one of the guys spent considerable time porting existing "minor pages" to the new scheme, etc.
Now, I could have done all of that on my own, but realistically I was always focussed on the technical architecture, the overall site structure and graphic design, and the top 25-30 content pages that everybody was going to see. I might have taken on the "project lead" role, but without all the back-up, a lot of it probably still wouldn't be polished up even now, a year later. As with the games, you've got to know, honestly and realistically, what you can achieve yourself, and when you need help if something's going to get done.
Personality (Score:1)
Maybe better promotion of your game idea will encourage detail-oriented developers to join you? ie. create quick storyboards and notes and publish them.
I dunno -- I'm stuck with lots of ideas and half-finished pr