Gauntlets of Recursion (+3)

Times, trials, and turbulence.

Monthly Archives: January 2008

“Don’t like the gum? Try the Patch!”

Project Skirmish

Development is once again up and humming. Although I’ve jumped around between projects a lot over the last months in a sort of tangential manner, I’m finding it easier and more natural to slide back into Skirmish. I’ve been working on this iteration of Skirmish for about 6 months now, and it’s become a much larger part of my routine than I had realized. Coming home from a long day of work and nestling into some Skirmish code feels much more pleasant than I thought it would be

Today’s area of development in Skirmish’s map editor: patches. Patches are those neat little polygons on the ground that can represent things like dirt paths, patches of greener grass (like that one pesky neighbour!), sand pits, or other effects. Patches are the last ‘mode’ of the editor that I will be implementing — Lights can wait until another version — which means the editor, Battleforge, is getting closer to being completed.

bf_img7.PNG      bf_img8.PNG

You can see two patches being used above to make a fairly subtle effect of three ground textures blending in nicely. In the other shot you can see the patch being built — the fade-distance selection in particular — which must be a convex polygon to ensure proper drawing. Overall, I think it’s especially nice because it really breaks the monotony and sharp edges that tile-based games tend to create for the eyes. It’s also a very abstract item, so it will be interesting to see what tricks future mappers will exploit patches for.

I’m a little unsure about my original goal of finishing the editor for the end of the month, but we’ll see what kind of progress this weekend brings. Frankly I can’t wait to get the Alpha out the door to a handful of folks and get some feedback, so I’m going to really try and focus on functionality over glitz on my first pass of the editor’s development.

Until next time!

Website online!

Huzzah, I finally have a real website! Not all of the sections are done, but the “big” stuff has been written and added. The main intention is to have a nice rèsumè item for future job seeking, but a tool to bring more traffic here is a nice added benefit.

The site is very “low-glitz”, and currently is waiting on a better name than “Blah’s Personal Website”, and perhaps a domain name.

The final version of my Metaballs article is also on the site, and took an Age and a half to get formatted nicely. You can read that here.

Adventures at Sony.

First Week of Co-Op

For those of you just tuning in, I just started my second co-op term last week, where I’m working at Sony Creative Software in their office in Waterloo. We’re really just the ‘satellite’ of the real SCS, which is located in the US, in Madison. Our office is staffed by a small ~10 people, so it’s pretty cozy. 🙂

First and foremost, I’ll say that it’s a real thrill to be working on “real” code. I know that some internships like to toss play-code at students to fill time, but I’m working on a significantly large product which will be competing with another certain well-known product. It’s going to be supremely cool to play with the final product once it’s released and see folks tinker with a couple of the additions I’m implementing.

The codebase I’m working on is well over 50 megabytes of source, which might explain why I spend a lot of time every day just compiling. 😉  Generally it’s only a couple of minutes if I’m doing a quick make, but clean-builds tend to take a little over 20 minutes on my dual-core 3.4ghz processors. Gah!

All of the workstations are equipped with dual widescreen monitors, which I’ve become hopelessly addicted to. Coming home to this lone, flat box is a little depressing. I also have some very nice speakers and a killer subwoofer on my system. I need to get one of these setups at home.

There’s no shortage of recreational possibilities at the office, either. I still can’t believe we get any work done, heh. A ping-pong table, a Playstation 3, a Foosball table, and a decent DVD collection make it hard to focus on work all of the time. 🙂

That was a very hastened hodge-podge description of the job, but it’s overall a pretty nice place to work. In short: pure adrenaline. Software developers lead the high life. 😉

Game Development!?

It’s been more than a little quiet on that front, hasn’t it? As I learned during my previous work term, it’s notoriously hard to code all day and then come home and try and code some more. Thus, a lot of my development will be somewhat constrained to the weekend.

My motivation for Skirmish has felt a little on the low-side as of late — which I think is understandable given my disposition towards map editors — so another tangent-of-a-project might be in order. More on that as it develops. 🙂

Battleforge edging closer to completion.

The serene break of the holidays is nearly at a close, and luckily so is the development for the Alpha version of Battleforge. There is still plenty of work to still be done, but the vast majority of the painful bone-crushing labour is out of the way. 🙂

The first task was finishing the “Tile Mode”, which allowed the user to perform drag+drop operations that either placed a tile over an area, removed the top-most tile from an area, or cleared all tiles from an area (using left click, right click, and CTRL+right click, respectively). Tiles are now loaded into the ImagePalette, and is fully functional:


(An exciting arrangement of tiles.)

I also implemented a shortcut to “grab” the current tile the mouse is over, via SHIFT+Left Click. Thanks to The Visible Man for the suggestion!

After Tile Mode was done, Prop Mode and Decal Mode were next on the list. If you recall, Props are classified as objects in the game that obey the physics engine (boxes, chairs, trashcans, empty bullet casings, etc), and Decals are purely aesthetic decorative objects that add to the atmosphere, such as blood stains, sludge marks, or miscellaneous trash. Since they act nearly identical within the editor, it made sense to bundle the logic for them together as well. Both can be placed on the map, selected, moved around, rotated, and deleted. All of this functionality was packaged into an EntityBox object which pointed to its respective type.

bf_img4.PNG bf_img5.PNG bf_img6.PNG

(Left: Selecting multiple crates and moving them; each showing a ‘ghost’ of where it will be moved to.)

(Middle: A small scene built using the Tile, Prop, and Decal modes.)

(Right: Using CTRL+Left Click to select one set of Props, and then making a selection box to select others.)

There’s quite a lot of functionality packed into each of the modes, allowing multiple selection types and colour-coded transparent selection boxes based on what you’re trying to do. It’s still pretty rough around the edges, and of course lacking any form of documentation, but I’m happy with it for an Alpha version.

Barring anything I’ve forgotten, all that remains is Patch Mode, the Map Settings dialog box, and map saving/loading. Ambient Settings and Light Mode will come at some point in the Beta version. I’m looking forward to the release — which will hopefully be this month — and getting as much feedback as possible to clean it up even further for the future Beta. 🙂

Happy New Years!

End-of-Year Report

First and foremost, a very happy new years to everyone and their families. Another year flew by, which means another whole twelve months of opportunity and potential are just waiting to be had. 🙂

At the end of every year I like to go over my own accomplishments during the year, my goals for the year ahead, and take the time to offer congratulations to some of the developers that I know who have been making some killer progress during the year (or are just generally awesome).

Accomplishments and Fulfilled Resolutions of 2007

I didn’t do too bad on fulfilling the resolutions I made last year. Although I didn’t accomplish all of them, I think I made up for it with some other accomplishments along a slightly different vein.

  • Learned more 3D graphics programming. I made this resolution last year, and I think I’ve managed to fulfill it. With completed projects like the Voxel Renderer and the Raytracer, I’ve made considerable strides towards gaining competency in 3D graphics and math.
  • Completed Membrane Massacre. I spent the first quarter of 2007 developing and finishing Membrane Massacre, of which I am still ridiculously proud of. I learned heaps about applying polish to a game, and about managing larger quantities of code.
  • Finished my first co-op term. Commuting to Toronto every day was a pain, but I somehow managed to pull through and learned a heck of a lot in the process.
  • “Almost” finished my first article. Ah-heh. I feel a little guilty adding this, since I technically haven’t completed my Metaballs article just yet. However, it is literally at the brink of being finished, so writing this here should spur me to finish it up and get it online. 🙂
  • Finally got into serious development with Project Skirmish. A project that you’re all probably familiar with by now, Project Skirmish is really and truly on the road to completion. This year saw five months of development on Skirmish, and things are only looking up.

Developer “Awards” for 2007

These ‘awards’ don’t really mean anything, but I really like to point out a handful of fellow developers every year and congratulate them on their excellent efforts. Being a hobbyist game developer isn’t usually a job full of thanks, so why not proffer a pat on the back for some great work, and for being a medium for motivation for myself as well. 🙂

  • Jonathan Chung. Once again the first developer on my list, Jon has worked tirelessly for the last few years on Stencyl, a suite of easy-to-use game creation software. His unwavering dedication to the project still leaves me staggering, and I wish him the success that is surely headed his way.
  • Mike Stedman. Mike has dedicated his whole year (and then some!) to Novarunner, an Elite-like space exploration game project. It’s come a long way since its conception, and Mike’s dedication to this game after such a long period of time has been a huge inspiration.
  • SteelGolem. SG has put a good portion of the year into his Action RPG project, which he’s made some very solid progress on over the last several months. He’s considering restarting a former project, Space Fortress, but I’m sure he’ll end up with something great irregardless of the route he takes.
  • Jussi Lepistö. A hobbyist developer thoroughly dedicated to the marriage of Python and game development, Jussi has been working non-stop on his 3D engine and his current game project: Red Nebula. He’s been making solid progress over the last few months, and it will be exciting to see what developments the new years will bring.
  • DarkCampainger. DarkCampainger (also known as “The Visible Man”) has been working hard over the course of 2007 on more than one project, such as Cosmic Peril and his own online action game, Final Horizon. For what it’s worth, I’d like to also mention that DC has been a supporter of Skirmish since the early days, and his thoughtful ideas and efforts into Skirmish have been greatly appreciated.
  • David McGraw. A dedicated student and developer. David is just completing Snowball Fight, an interesting online game project. I’m eager to see what the next project is that he will tackle in the new year.

Resolutions for 2008

My aims, goals and ambitions for the 365 days to come:

  • Continue development of Project Skirmish. I’m committed to seeing Skirmish through to the end, so a goal of unwavering development of Skirmish throughout 2008 is certainly a fair goal. To be a little less insubstantial, let’s say a goal of being in open to the public by the end of the year, at least. 🙂
  • Complete a 3D game using OpenGL. With plenty of experience in the small 3D demos I’ve made in 2007, I think it’s high-time I write and complete a fully 3D game. I’m putting no minimum on how ambitious it will be. Even a Wolfenstein 3D-èsque game would be a sufficient accomplishment.
  • Get a personal gamedev website online. I’ve been wanting to get my own personal website about game development up for ages upon ages. This year is the year that I get on this, and learn some more HTML and CSS in the process.
  • Resume creative writing. I used to be hugely into writing stories and such in my spare time, but programming and real-life have come to consume that hobby years age. I’ve been bugging myself to get back into this, and I think there’s no better opportunity to do so than now. We’ll say a fairly light goal of at least 10,000 words and a minimum of one completed story. 🙂
  • Write another gamedev article. With my metaballs article just about done, I’d really like to push myself to finish another article this year as well, if not more. Fingers crossed!
  • Continue my language studies. I’ve been learning German for the last two terms at university, which I plan to continue. I’ve also been very interested in learning Japanese, which I will also be spending time learning independently.

My goals never feel too excessively ambitious, which I suppose is a good thing. I don’t want to weigh myself down with more goals than are humanly possible. So, a light load that gets mostly completed within the year’s time is far better than a mammoth list that receives little more than a dent in it. I can hardly wait to see what items I’ll be checking off while I’m writing my resolutions for 2009. 😛

Have a safe and ambitious New Years, everyone. 🙂