Skip to main content

Programming a homebrew game

Submitted by WiffleCube on
Forum

This is a thread is for those who would like to discuss game projects that they have created/completed in their spare time (from a simple PacMan clone to something more complex) and share experiences (e.g. unforseen difficulties that you overcame, staying motivated etc.)

Submitted by WiffleCube on Wed, 21/09/05 - 12:33 PM Permalink

As for me, I've been working on a 3D/FP engine for some time though I've not yet written a full game on a PC.

I've posted screenshots and a desc of this project here previously and have been grateful for the constructive criticism. In contrast I also tried posting about it once on a generic gaming forum - the response was pretty viperous! (the demo was made using simple placeholders for graphics). A lesson there being to confine such discussion to game-development boards, where everyone understands what you've done.

Since the project isn't yet complete, I can't really comment on the entire process (at least for games). What I generally do is to take an informal SD approach; first read up on common algorithms for solving a particular problem, or take apart demo code if it's an interface I'm trying to understand. Then comes planning the classes, their responsibilities and how they interact etc. As it's a hobby project, I'm bit lax with testing, though I generally throw input at new classes in isolation until I'm satisfied that they work (a 'test harness'), before adding them in.

In terms of difficulties, the constant upgrading of DirectX has been a pain in the butt, which ended up with me buying MSVS .net. To stay motivated I try to add a single bit of functionality (or similar) improvement in each session at least.

Submitted by Kane on Wed, 21/09/05 - 11:09 PM Permalink

I was working on a Street Fighter style game in java for quite a while, but lost interest because of my crappy programmer art. As well as that, I didn't really do much planning, so the code was beginning to become messy.

It was far from finished, you could only punch to attack, and there was a shite load of bugs in it, but it is the biggest hobby project I've attempted.

I'll try to post a link to the game so people can download, try it out, and laugh at how simple and buggy it is. =D

Submitted by TheBigJ on Thu, 22/09/05 - 1:12 AM Permalink

I'm always working on some sort of game or game tech project in my spare time. Unfortunately, I don't have a whole lot of spare time these days as I work full-time and study part-time at uni.

I've been working on a new game engine for most of this year, which is coming along quite nicely. I've probably only averaged two or three hours of coding time a week, but it already has some nice features. Hopefully in a few months it'll be advanced enough for me to write some sort of basic networked-multiplayer FPS demo.

Submitted by WiffleCube on Sat, 24/09/05 - 11:06 PM Permalink

quote:Originally posted by Kane

I was working on a Street Fighter style game in java for quite a while, but lost interest because of my crappy programmer art.

Replacing the phrase 'crappy programmer art' with the euphemism 'placeholders' tends to make a project seem more worthwhile.
quote:
As well as that, I didn't really do much planning, so the code was beginning to become messy.

It's true that five minutes on paper can save you a couple of hours at the keyboard fixing bugs. I tend now to do 'tidying passes' through code as much as I add stuff, in order to keep it maintainable/reusable.
quote:
It was far from finished, you could only punch to attack..

Could call it 'Joe Bugner's Street Pugilism' instead. [:p]
quote:
I'll try to post a link to the game so people can download

Cool [8D]

TheBigJ: Sounds ambitious. Multiplayer is way down on my list, since I'm trying to keep the project to a managable size, and there are enough things I need to consider to make a decent single-player game first. [}:)]

Submitted by lorien on Thu, 27/10/05 - 10:56 PM Permalink

I think good programmers always have spare time projects on the boil. It's part of loving what you do.

If a spare time project becomes an obsession you might be able to pursue it as a research degree somewhere, and if it (and you) are good, end up being paid (scholarships) to work on your own project, get input from others, and get a higher degree too. Of course there's a big thesis as well, but writing about your own work and ideas (and similar work and ideas) isn't so bad.

In my case (being qualified in computer music more than anything else), a comp-sci research scholarship was out of the question. There is no government support for research degree study other than scholarships, but there are no fees (other than GSF) either. After a trial as a casual tutor I was given a teaching fellowship.

While my research work isn't a spare time project, that's how it started.

Submitted by Rohan on Wed, 28/12/05 - 3:48 PM Permalink

I've always got projects underway. It's fun alot of the time and a pain at other times :P

1. Big major project - Top secret stuff... very crazy idea. Not likely to be done anytime soon
2. 3D RPG (Current Project) - A bit like Morrowind in a way... ie. FP or 3P and realtime combat - Will mix real life weapons in a fantasy setting
3. Multiplayer 3D Shooter - Annoying Aliens and Maniac Marines
4. Numerous other bits and pieces such as experimental AI, maps, q3 mods etc...

Annoying Aliens and Maniac Marines is quite playable:
http://darkreign.buysmartpc.com/temp/AAMM-Alpha.avi (11mb or so WMV9 AVI)
Although as you can probably tell I'm not an artist - Seen as it's a private project I've been borrowing art from other sources
Its got full MP support, AI, melee and ranged combat plus lots of other stuff.

IMHO if I didn't have projects to work on I dunno what I'd be doing :P

Submitted by ruzza on Thu, 23/03/06 - 11:40 AM Permalink

quote:Originally posted by WiffleCube

In terms of difficulties, the constant upgrading of DirectX has been a pain in the butt, which ended up with me buying MSVS .net. To stay motivated I try to add a single bit of functionality (or similar) improvement in each session at least.

Same here, had to keep rewriting DirectX code - think I'll leave it at DirectX 9 - Windows Vista and DirectX 10 will take a while before everyone jumps on the bandwagon. I'm also doing a multimedia course to keep me motivated. Another thing that keeps me motivated is writing a website on how I created the game (like a blog of sorts) - helps to keep my head clear as well. I wrote a simple 2D game and still need to finish it off (see [url]http://users.tpg.com.au/ruzbacky/chapter400.html[/url]). I'm also working on a 3D FPS from scratch.

I found the 2D game not too hard to program - took around a year part time to get the hang of it. For the 3D game. some of the hard parts seem to be learning how to use a 3D modeler to do a level design and make characters / objects and texture them. It took a while to get my head around how the whole 3D graphics pipeline works (model, world, camera,projection space to screen space). Playing with existing graphics engines and game mods for FPS games seemed to help. It's going to take a while! :)

Submitted by chris34 on Thu, 29/06/06 - 3:14 PM Permalink

Web based games looks very promising. I was playing urbandead and I have thoughts on developing a game with this philosophy.

There are many limitation, since the browser does not give you any resources. I am referring to audio and graphics. No referrence for any video or movement on characters.

I will give more information a few days later, since now it's a testing and debuging period.

Submitted by Grover on Fri, 07/07/06 - 10:56 AM Permalink

Ditto with lorien on this. Its a little bit like an addiction. Youd think Id get my fill from writing game code for a living.. bzzzt. Need more.. NEED MORE!! :)

Like most people have fingers in all sorts of things outside work at the moment. From simple script based app/game development tools LuaEng http://luaforge.net/projects/luaeng/ which was actually made for the ARage guys, and ended up being my little 'testing sandpit' for all sorts of things. Also writing a embedded html widget (target surface independant). As well as a Mil Strat sim.. and a little game that I have been meaning to finish for my kids (since they did a tun of art for it :)). Added to this is various side things going on... most of which is under NDA's, so thats all I can say - although one I can talk about is a pretty interesting way to make apps, via a completely visual tool :) Thats turning out to be quite alot of fun - imagine developing a game in a tenth of the time with no possible bugs ;) .. tis the future of dev imho.. no more coding.. YAY! :)

Submitted by davidcoen on Sat, 08/07/06 - 5:04 AM Permalink

grover, would have thought writing a game without code might result in a rather slow game?

have the usual olde'heap'o'projects, but most time has been spent working and reworking application and code architecture.

currently there are about 3 games i want to make, and 2 tech demos, though made myself promice to 'only work on one project at a time and finish it' which helps a little in my constant start new project, move on in 2 weeks (has just ment i would start a new architecture to make these things with, and abandon that in 2 weeks)

Submitted by Grover on Wed, 12/07/06 - 3:18 PM Permalink

Yeah I had thought so.. but.. :) But I made a little discovery (or many ppl have I guess) and that is, if you use a optimal, small and lightweight scripting system, the amount of code it generates and runs is comparable to writing complex object management systems in code, with all the controllers and handlers to suit. While there are performance benefits for specific things in C/C++/Asm, thats where they should be anyway (ie I/O systems like gfx, audio, files etc). Also, many high level systems have been around for decades for managing large volumes of complex data - like relational databases, which are also ideal for game systems, and a whole lot more efficient than anyone could code for object management (ie dont reinvent the wheel :)). Coding these days too is frought with complexity and thus extremely large debugging and error chasing resources, but moving up an API or three, you can gain alot of safety, rigidity (regression testing is usually a whole lot easier too), and the best bit, you can develop rapidly - Ive found around 5-10 times faster with more robust results. Take that a step further.. and I think you can even elimate programming (as we know it) alltogether :)

Forum

This is a thread is for those who would like to discuss game projects that they have created/completed in their spare time (from a simple PacMan clone to something more complex) and share experiences (e.g. unforseen difficulties that you overcame, staying motivated etc.)


Submitted by WiffleCube on Wed, 21/09/05 - 12:33 PM Permalink

As for me, I've been working on a 3D/FP engine for some time though I've not yet written a full game on a PC.

I've posted screenshots and a desc of this project here previously and have been grateful for the constructive criticism. In contrast I also tried posting about it once on a generic gaming forum - the response was pretty viperous! (the demo was made using simple placeholders for graphics). A lesson there being to confine such discussion to game-development boards, where everyone understands what you've done.

Since the project isn't yet complete, I can't really comment on the entire process (at least for games). What I generally do is to take an informal SD approach; first read up on common algorithms for solving a particular problem, or take apart demo code if it's an interface I'm trying to understand. Then comes planning the classes, their responsibilities and how they interact etc. As it's a hobby project, I'm bit lax with testing, though I generally throw input at new classes in isolation until I'm satisfied that they work (a 'test harness'), before adding them in.

In terms of difficulties, the constant upgrading of DirectX has been a pain in the butt, which ended up with me buying MSVS .net. To stay motivated I try to add a single bit of functionality (or similar) improvement in each session at least.

Submitted by Kane on Wed, 21/09/05 - 11:09 PM Permalink

I was working on a Street Fighter style game in java for quite a while, but lost interest because of my crappy programmer art. As well as that, I didn't really do much planning, so the code was beginning to become messy.

It was far from finished, you could only punch to attack, and there was a shite load of bugs in it, but it is the biggest hobby project I've attempted.

I'll try to post a link to the game so people can download, try it out, and laugh at how simple and buggy it is. =D

Submitted by TheBigJ on Thu, 22/09/05 - 1:12 AM Permalink

I'm always working on some sort of game or game tech project in my spare time. Unfortunately, I don't have a whole lot of spare time these days as I work full-time and study part-time at uni.

I've been working on a new game engine for most of this year, which is coming along quite nicely. I've probably only averaged two or three hours of coding time a week, but it already has some nice features. Hopefully in a few months it'll be advanced enough for me to write some sort of basic networked-multiplayer FPS demo.

Submitted by WiffleCube on Sat, 24/09/05 - 11:06 PM Permalink

quote:Originally posted by Kane

I was working on a Street Fighter style game in java for quite a while, but lost interest because of my crappy programmer art.

Replacing the phrase 'crappy programmer art' with the euphemism 'placeholders' tends to make a project seem more worthwhile.
quote:
As well as that, I didn't really do much planning, so the code was beginning to become messy.

It's true that five minutes on paper can save you a couple of hours at the keyboard fixing bugs. I tend now to do 'tidying passes' through code as much as I add stuff, in order to keep it maintainable/reusable.
quote:
It was far from finished, you could only punch to attack..

Could call it 'Joe Bugner's Street Pugilism' instead. [:p]
quote:
I'll try to post a link to the game so people can download

Cool [8D]

TheBigJ: Sounds ambitious. Multiplayer is way down on my list, since I'm trying to keep the project to a managable size, and there are enough things I need to consider to make a decent single-player game first. [}:)]

Submitted by lorien on Thu, 27/10/05 - 10:56 PM Permalink

I think good programmers always have spare time projects on the boil. It's part of loving what you do.

If a spare time project becomes an obsession you might be able to pursue it as a research degree somewhere, and if it (and you) are good, end up being paid (scholarships) to work on your own project, get input from others, and get a higher degree too. Of course there's a big thesis as well, but writing about your own work and ideas (and similar work and ideas) isn't so bad.

In my case (being qualified in computer music more than anything else), a comp-sci research scholarship was out of the question. There is no government support for research degree study other than scholarships, but there are no fees (other than GSF) either. After a trial as a casual tutor I was given a teaching fellowship.

While my research work isn't a spare time project, that's how it started.

Submitted by Rohan on Wed, 28/12/05 - 3:48 PM Permalink

I've always got projects underway. It's fun alot of the time and a pain at other times :P

1. Big major project - Top secret stuff... very crazy idea. Not likely to be done anytime soon
2. 3D RPG (Current Project) - A bit like Morrowind in a way... ie. FP or 3P and realtime combat - Will mix real life weapons in a fantasy setting
3. Multiplayer 3D Shooter - Annoying Aliens and Maniac Marines
4. Numerous other bits and pieces such as experimental AI, maps, q3 mods etc...

Annoying Aliens and Maniac Marines is quite playable:
http://darkreign.buysmartpc.com/temp/AAMM-Alpha.avi (11mb or so WMV9 AVI)
Although as you can probably tell I'm not an artist - Seen as it's a private project I've been borrowing art from other sources
Its got full MP support, AI, melee and ranged combat plus lots of other stuff.

IMHO if I didn't have projects to work on I dunno what I'd be doing :P

Submitted by ruzza on Thu, 23/03/06 - 11:40 AM Permalink

quote:Originally posted by WiffleCube

In terms of difficulties, the constant upgrading of DirectX has been a pain in the butt, which ended up with me buying MSVS .net. To stay motivated I try to add a single bit of functionality (or similar) improvement in each session at least.

Same here, had to keep rewriting DirectX code - think I'll leave it at DirectX 9 - Windows Vista and DirectX 10 will take a while before everyone jumps on the bandwagon. I'm also doing a multimedia course to keep me motivated. Another thing that keeps me motivated is writing a website on how I created the game (like a blog of sorts) - helps to keep my head clear as well. I wrote a simple 2D game and still need to finish it off (see [url]http://users.tpg.com.au/ruzbacky/chapter400.html[/url]). I'm also working on a 3D FPS from scratch.

I found the 2D game not too hard to program - took around a year part time to get the hang of it. For the 3D game. some of the hard parts seem to be learning how to use a 3D modeler to do a level design and make characters / objects and texture them. It took a while to get my head around how the whole 3D graphics pipeline works (model, world, camera,projection space to screen space). Playing with existing graphics engines and game mods for FPS games seemed to help. It's going to take a while! :)

Submitted by chris34 on Thu, 29/06/06 - 3:14 PM Permalink

Web based games looks very promising. I was playing urbandead and I have thoughts on developing a game with this philosophy.

There are many limitation, since the browser does not give you any resources. I am referring to audio and graphics. No referrence for any video or movement on characters.

I will give more information a few days later, since now it's a testing and debuging period.

Submitted by Grover on Fri, 07/07/06 - 10:56 AM Permalink

Ditto with lorien on this. Its a little bit like an addiction. Youd think Id get my fill from writing game code for a living.. bzzzt. Need more.. NEED MORE!! :)

Like most people have fingers in all sorts of things outside work at the moment. From simple script based app/game development tools LuaEng http://luaforge.net/projects/luaeng/ which was actually made for the ARage guys, and ended up being my little 'testing sandpit' for all sorts of things. Also writing a embedded html widget (target surface independant). As well as a Mil Strat sim.. and a little game that I have been meaning to finish for my kids (since they did a tun of art for it :)). Added to this is various side things going on... most of which is under NDA's, so thats all I can say - although one I can talk about is a pretty interesting way to make apps, via a completely visual tool :) Thats turning out to be quite alot of fun - imagine developing a game in a tenth of the time with no possible bugs ;) .. tis the future of dev imho.. no more coding.. YAY! :)

Submitted by davidcoen on Sat, 08/07/06 - 5:04 AM Permalink

grover, would have thought writing a game without code might result in a rather slow game?

have the usual olde'heap'o'projects, but most time has been spent working and reworking application and code architecture.

currently there are about 3 games i want to make, and 2 tech demos, though made myself promice to 'only work on one project at a time and finish it' which helps a little in my constant start new project, move on in 2 weeks (has just ment i would start a new architecture to make these things with, and abandon that in 2 weeks)

Submitted by Grover on Wed, 12/07/06 - 3:18 PM Permalink

Yeah I had thought so.. but.. :) But I made a little discovery (or many ppl have I guess) and that is, if you use a optimal, small and lightweight scripting system, the amount of code it generates and runs is comparable to writing complex object management systems in code, with all the controllers and handlers to suit. While there are performance benefits for specific things in C/C++/Asm, thats where they should be anyway (ie I/O systems like gfx, audio, files etc). Also, many high level systems have been around for decades for managing large volumes of complex data - like relational databases, which are also ideal for game systems, and a whole lot more efficient than anyone could code for object management (ie dont reinvent the wheel :)). Coding these days too is frought with complexity and thus extremely large debugging and error chasing resources, but moving up an API or three, you can gain alot of safety, rigidity (regression testing is usually a whole lot easier too), and the best bit, you can develop rapidly - Ive found around 5-10 times faster with more robust results. Take that a step further.. and I think you can even elimate programming (as we know it) alltogether :)