Times, trials, and turbulence.
Category Archives: Game Development
I have been waiting far too long to make this post (read: six months), but yet here it is. Let’s quickly recap on what happened on yesteryear’s episode of, “I’m that guy who likes making games”:
Stephen: Wow, I’m working for local start-up X doing iPhone development!
Stephen develops iOS software and learns much about iOS, Objective-C, and OS X.
Stephen: This is sublimely grand. I should get my own hands into this. This mobile market is going to be huge!
Stephen purchases a MacBook Pro, an iPhone 3G, and an Apple iOS Developer License.
Stephen: Wow, I’m bloody broke! But that’s okay; I’ll whip out a quick iPhone game based on one of my simple existing games, GunDown, and make back my expenses lickity-split.
Stephen works on GunDown, as he has free time, for ten (10!) months.
Stephen: Holy macaroni, it’s been nearly a year and this blasted game still isn’t done! Sure, it’s real pretty-like, but still not finished.
And so here is where I now stand, with GunDown approaching a year of development, and my iOS Developer License gearing up to expire as of this March. That’s no good.
What’s the problem? I mean, GunDown — I’m going to assume that you’ve either played it or took a good long look-see — is ostensibly a simple, straight-forward game. When I first started the iOS port, it was just that: a port. As close as I could get to a 1:1 mapping of the desktop version to a touch screen version. Heck, at one point the “port” had virtual controls and looked much more like the (admittedly hideous) original:
So one might say that I took GunDown to the next level: professional artwork, vastly improved controls that just work with a touch screen interface, smooth animations everywhere, a killer soundtrack, and lots and lots of attention put into the details. The devil is in the details, they say. Goodness knows how true it is. I feel like the last half-year has been details without any sensation of “major” accomplishment. The pay-off: this game feels nice and sleek to play.
There is not a whole lot left to be done before I can flag the first release of the game as “complete”. The last 10% does have a way of taking 90% of the time though, so innocuous-looking items on the todo list like, “balance enemy waves” can easily take a fortnight to get just right, since there is really no way of testing this other than playing the game through over and over again until it just “feels” right. Why oh why did I commit to having thirty levels? *grin*
Why I’m Hugely Excited.
The future. And, by extension, the possibilities. Oh goodness the possibilities. When GunDown is ready for release, I will have the (entirely pleasurable) experience of marketing my game to the (literally) millions of iPhone and iPod Touch owners out there, getting heaps of feedback (the good and the bad), and, maybemaybemaaaaybe, all or part of my initial investment (MacBook, iPhone, license, etc.) back.
Then comes the even more exciting item: I get to start on a new project. Rapture! I have a list of possible/exciting iOS games a mile long that has been growing in my game development notebook for the last ten months. I cannot wait to get cracking on them. Of course, this will be nicely tempered with the release of updates for GunDown as well.
One more fun item full of promise: the iPad. I realize that I’m a year late to the party, but this is a really hot and powerful device that utterly reeks with potential for amazing and immersive games. Of course, many developers have already demonstrated this with great skill. Assuming GunDown does well enough, I would love to get my hands on one of these and experiment with all of the possibilities that game development on it presents.
There is also Android, which is another really exciting topic that I wish to
drone on explore at length. My goodness, what a fantastic time to be a game developer. =)
Until next time.
Whew, it’s been a while.
Exams are long since finished — which went well, to all parties who are curious — and I’ve been ‘vacationing’ back home until the end of the month. It’s nice to see the family, but I’m eager to get back to uni and get rolling on my co-op position this fall.
I’ve been project-hopping pretty badly for the last few weeks, which means that lovely screenshot of that dungeon crawler in my last entry is probably the last that will be seen of it. I need to cut the ambition down a few notches.
I’ve been toying with the idea of a small not-too-ambitious little Wolf3D-like game, which I think grades nice and low on the ambition-o-meter. According to my “research”, this might fare well:
I figure if I embark on a project that’s pretty darn simple, motivation should be a plentiful commodity, since there’s less tricky stuff (like networking :P) to get caught up on. Membrane Massacre began much the same, and it resulted in a completed game. We’ll see where this one takes me.
Several days ago a little bundle of joy arrived on my doorstep. No, not a baby, my precious little GP2X. It’s every bit as groovy as I had hoped, and after acquiring a 2GB SD card I’ve already installed a ton of software. The community has already matured enough to have produced many emulators, so I’m playing Genesis, SNES, NES, and GameBoy games on this thing like nobody’s business. Not to mention ports of other excellent PC games, such as Duke3D, Quake, Cave Story, and CDogs.
I’m not sure if I’ll be getting into the homebrew gamedev scene for this device, but for now I’m more than satisfied with just being a gamer. 🙂
Fall of Skirmish
No, Skirmish isn’t dieing, I’m just making a pun. I’m still really busy with studying for exams, and simply just haven’t been in the Skirmish mood lately. I’m slowly working on a side project at the moment, for the month of August or so. I want to pick Skirmish development back up in September, thus making it the “Fall of Skirmish”. Ho ho ho, get it? Sorry.
The code-name of my side project for August. I don’t think it will be finished within the confines of a mere month, but I just felt that I needed a change for a little while after a year of working on Skirmish. I’m not sure exactly where it will go, but I’m satisfied just with working on it for now.
The viewstyle, as you can see, is a sort of 3D-rotatable-isometric type. I’m not sure what other game it’s comparable to, so for now it feels sort of unique.
The original plan was to use voxels for the map components and draw them in real-time, which fell through as I became less interested in writing tricky rendering optimizations and more interested in actually making a game. So I’m currently working on moving it over to use OpenGL and 3d models for rendering, after which things should be a lot easier to work with. This is particularly interesting, since I’ve been looking for a chance to play with 3D programming in OpenGL and 3D modelling for a long time.
We’ll see where things go, but I’m leaning towards a sort of fantasy hack ‘n slash adventure, which the existing tiles might suggest. 🙂
I have my new development journal set up now on the free wordpress.com webspace. It’s not as fancy as before, but it’ll do for the time being. Unfortunately I wasn’t able to migrate my post attachments with everything else, so all of my posted images/screenshots will be vanishing sometime soon. I have them all on my harddrive still, so I’ll have to see about getting a gallery set up.
Progress on Skirmish has been deathly slow as of late, since final exams are just around the corner. I finish these around the middle of August, so I expect progress to leap back into action somewhere around there.
I finally ordered one of these awesome handheld gadgets, and am impatiently awaiting its arrival. I just learned that manufacturing has just recently been discontinued, :(, but I’m happy that I will at least be getting one of the last ones left.
These things are geared really strongly towards homebrew developers, and I’ve always dreamed about developing on limited non-PC hardware, so this will be a huge adventure. No doubt this will suck up a good chunk of my development (and exam studying 😉 ) time as soon as it arrives!
I’m very curious if anyone managed to find my new journal location amidst the sudden and spontaneous host change. Please take a moment to place a comment, if you wish to help sate my worries. 🙂
A little while back, I briefly spoke about my entry in my university’s gamedev club’s 24-hour competition. All three judges have finally posted their marks and opinions of the entries, which you can view here, as well as the entries themselves. A huge congratulations to everyone who took part — it was a whirlwind that I can wait to help organize again this summer. 🙂
For anyone looking for a quick link to my entry, Circuit Runner, you can download it at: Circuit Runner.
I have been getting some solid work done on Cyberspawn, which I mentioned a few times back February. Development on it has struck up again, with my Skirmish interest waning a bit at the moment. It’s been a lot of fun so far, and it’s particularly exciting to work on because I’ve never really explored 3D game development, and it will (eventually) be my first game with a true focus on atmosphere and storyline.
The most recent item has been the conversion from software raycasting over to OpenGL.
Aside from the bilinear texture filtering and large FPS boost, the changes are very subtle. The conversion has just been a verbatim change-over of functionality from software to OpenGL. Since the project has made the transition from “toy project” to “making this one happen” status, I’m opting for a more practical approach to writing a 3D game than old 2.5D raycasting techniques. 🙂
I’ve been continuing my fun quest of becoming better acquainted with Linux, and have been using it 90% of the time over Windows for the last few weeks without issue. Aside from playing the “newer” games, and Visual Studio, I don’t feel any major force pulling me back towards Windows.
Also, recently I made the move from Gnome to KDE for my desktop environment, and I can candidly say that I won’t be looking back any time soon. It feels overall much more established, polished, professional, and above all, functional.
Upon deciding to move my development over to Linux, the next big task became finding a good IDE or text editor, and learning how to use makefiles. I had previously been using a lame script that I wrote, which would simply recompile ALL source and relink after every single change. Hoy was that slow!
As the astute reader might be able to discern, the above screenshot was taken from within KDE, and I now have a solid development environment for Cyberspawn established on Linux. I’m using jEdit as the text editor, which has a vast plug-in system, enabling project management, buffer tabs, a built-in console and error/warning log, and other excellent Visual Studio-like functionality. I’m surprised at how happy with it I am, and that it’s easily rivalling my productivity — perhaps beating — from back in Windows with Visual Studio.
In short, I really strongly recommend looking into sliding over to Linux for your desktop and/or development needs. Not from an esoteric Linux elitist sort of viewpoint, but just because it’s such a hugely viable platform for any user willing to learn a thing or two. I can only see my experiences here as being huge pros on my future co-op terms and beyond.
Question to the Reader: What OS do you primarily run? Have you ever tried a Linux distribution? Do you plan to?
Have you ever killed a man with your bare hands? Do you plan to?
Progress has been moving along slowly but surely with the master server. As a recap, the master server will be a single instance app that will maintain a database of all player accounts, characters inside those accounts, and servers being run by players. Players will be able to log-in to the master server with their account credentials and view, join, and host games.
The master server itself is proving to be a fairly easy job, but the main work is on the client’s side, where the visual interface and logic for interacting with the master server will be done. The master server currently allows users to connect, create accounts, and log-in. My current task is doing the dialogs and networking work on the client’s end to allow players to perform these first-most tasks.
I’ve been restructuring a lot of the main game logic to better support the new ‘lobby’ interface, whereas I settled on having ‘Sessions’ of different types to accommodate this. A session is a fancy word that means that the player is either playing inside of a game, or inside the lobby system (finding a game or viewing characters), or even in the map editor. The game will be able to switch between sessions seamlessly, making for simpler transitions and, inside the code itself, a much nicer unification of data structures. In short, this will make it easy to implement transitions like going from the lobby into a game after clicking ‘Join’, or testing a map you’re working on in the map editor by switching from the ‘editor’ session to the ‘game’ session and loading that map.
Screenshots soon. 😉
I’m still working on getting the judges together to do the actual judging and scoring for the game compo entries, but hope to get things worked out very soon. I’m also trying to orchestrate getting the pizza quantities handled and delivered for the ‘Game Showcase & Final Meeting’ for the gamedev club at my uni. We like to get everyone together at the end of each term to show what we’ve been working on, and enjoy some pizza. I showed by voxel renderer last term, in November, but will be showing some stuff from Skirmish hopefully, like blowing up crates with the rocket launcher. Always a barrel of fun!
EDIT: I intentionally haven’t posted a download link to my compo entry yet — I’d like to wait until the judging is done and instead proffer a link to the entries/judging results so you can enjoy everyone’s game. 🙂
I’m just about to hit the bed, hard, but wanted to drop a quick entry in here. The 24-hour gamedev competition is over, and the judging will happen in the coming week. Below is a little screenshot from my entry before I collapse for the night. 🙂
And now is a time for rest. 39 hours without sleep has a way of creeping up on a fellow.
I’m just getting my stuff ready for the competition (mentioned in my last post) now. We’ll be taking over a computer lab in the Math Building (MC 2060 if anyone in UofW is reading ;)) for the next 24 hours or so. I’m planning on writing periodic mini-entries to myself as I go, and hopefully turn my experience into a mini-article afterwards.
Wish me luck!
Project Skirmish: The Master Server
Minus some minor grievances about the editor, Battleforge looks like it was rather well-received. I’ll be gradually working on tweaking things, fixing bugs, and general sprucing-up over the next while, but my main focus is now on the next big auxiliary component of the game: the master server.
Skirmish will function like many of the popular action games out there, whereas one main server will manage a large list of player-hosted servers, allowing players to search through these hosted games through one central access point. This presents the least bandwidth strain on myself, and doesn’t physically limit how many players could potentially be online at once.
The Master Server will act as a hub, of sorts. When Skirmish loads up, it will present the player with a login screen, which will establish a connection with the master server. After that, the player can create/delete/manage their Characters, refresh the listing of currently active games, customize their controls/settings, or even host games themselves. A chat feature might also be added, depending on the bandwidth load it presents.
The Master Server will be also written in Java, and will use a MySQL back-end to manage accounts, characters, servers, scores, and just about everything else. I’m finally putting the book I received at Christmas, Learning PHP & MySQL, even though I’m using the Java J/Connector MySQL driver rather than PHP. This is my first time delving into relational databases, but it’s been nothing short of an excellent learning experience. I’m very glad I narrowly chose this route instead of resorting to flat-files.
24-Hour GameDev Competition @ Waterloo
After a couple of weeks of planning, myself and one of the other UW GameDev Club executives have organized and launched a 24-hour gamedev competition at our university. It will be taking place this Friday at 8PM and run until Saturday at, you guessed it, 8PM. A theme will be announced before we begin, and judging will take place in the days thereafter.
I am supremely excited for what events unfold this Friday, and eager to see what games see completion by the end of the competition. I haven’t added a new finished game to my portfolio in nearly a year (gah, has it been that long?), so this is a golden opportunity.
We’ll be taking pictures of the entrants’ games as they are developed, as well as pictures of the entrants themselves as they grow more and more sleep deprived. I’m bringing a pillow just in case. We’ll be ordering pizza sometime part-way through, and generally be having a great ‘ol fun time like any crowd of gamedev-loving developers should. 🙂
Don’t forget your pillow!