Sunday, November 8, 2009

Blender Weapon Pack Preview

I've been working on some guns and melee weapons in Blender lately. Ultimately I'd like to see them go into an RPG of some kind, but it might be a while. The projects I've completed have usually been abandoned and then picked back up later, sometimes more than once. Burnout is pretty common when you're working on your own time, but whether these models make it into a finished game or not, I'll release them all once they're complete.

From left to right, top to bottom: L85, Dragunov, M4, AK47, M1911.

I haven't even started UV mapping, but I'm actually tempted to just bake them shaded like that.
The bolt is animated for the rifles and the carrying handle iron sights can be removed to reveal a rail. I intend to add some modular accessories like a reflex sight, ACOG, SUSAT, etc.

The 1911 has been made from scratch and now has an animated slide and separate magazine.

The melee weapons I have so far can be found at

My goal is to build a fairly robust library of weapon models and so far it's moving right along. I'm not going all out in regard to detail and since the firearms aren't texture mapped, making a new rifle takes about 2 hours.

Feel free to request any particular weapons you'd like to see. I may already have it in mind to add them, but requests will at least increase their priority.

Thursday, October 15, 2009

Colt 1911 Revisited

Since there was a request for the blend file for the colt 1911 model, I figured I'd give it a little attention. I didn't put much work into it, but it's a little more clean and the non-manifold geometry is gone.
The texture is pretty rudimentary, but I didn't know anything about the source of the original image I used so I grabbed some from Wikipedia that were listed as public domain.

The original is available here.
The revised version is here.

Creative Commons License

If you don't have Blender, get it here.

Monday, August 10, 2009 2009 Game Contest

I've been using the 2009 game contest as an excuse to dive into modern C++. Nevermind that I studied it pretty extensively about a decade ago, today it's a different animal.

Anyway, here's a preview of my entry. There's a lot to be done, but I think the hardest parts are over.


(youtube for better quality)

I'm not an artist, so you can expect a fair amount of particle effects in an attempt to cover my miserable sprites and textures.
The visuals are all lua driven and my campaign / mission system is pretty solid so adding the rest of the gameplay elements should be relatively simple. Of course, they won't be and if I finish in time it will be by the skin of my teeth.

I got bored and didn't make the deadline. It is likely that I'll come back to this and finish, but I doubt it will be any time soon since I'm not especially fond of side-scrolling shooter games. It did at least serve the purpose of getting me more acquainted with modern C++.

Wednesday, July 22, 2009


A friend pointed out to me that Crawl Stone Soup recently released v0.5.
If you're a nethack, angband, or general roguelike fan you're sure to enjoy it.
You can download a client or just ssh to and log in as joshua.

A++ would die alone and hungry in a hateful dungeon again.

Friday, June 26, 2009

Current Events

Unless you've been living under a rock, you are probably aware that Michael Jackson died. In fact, we've had a couple of celebrities pass on this week, but I just want to take a moment to honor a lesser known celebrity who also died recently.

Saturday, May 30, 2009

Make A New Game

I do a great deal of hobby coding. If I'm not doing that, I'm playing games, which doesn't leave much time for blogging. It doesn't help that I also program for a living, so by the time I get home, gaming is much more appealing than hobbying around with code. Lately I haven't been into a new game so I've been thinking more and more about making another game myself. To date, my games are very simple, use a handful of 2d sprites and were easy to make. Limiting my games to 2d has two distinct advantages.

1. I can load up gimp and paint sprites, or as was recently suggested, load up Inkscape to make prettier sprites.

2. 2d logic is generally easier. You can cull to boxes instead of frustums and hit detection is usually trivial.

I could argue that you can get more depth out of a real 3d environment, but there are still a lot of really well done 2d games that knock the socks off of many recent 3d titles, not because they have more stunning visuals, but because they're just more fun. Even then, there are some 2d games with very impressive visuals.

Even though 2d logic is generally easier, 3d logic really isn't that hard once you wrap your head around the basics. Things like octrees, AABB trees and ray-triangle collision detection are actually not that hard to implement. Furthermore, there exists a wealth of open source 3d engines that solve a lot of these problems for you. (Ogre3d, Crystal Space, Irrlicht)

When I ask myself what keeps me from taking on a 3d game in any serious context, it's content creation. If my game needs people walking around, I'm going to have to model, UV-map, texture, rig, and animate human models. That's a lot of work, especially for one person or even a small team. Next our people are going to need to walk around on something, maybe enter buildings, swim and so forth. At least here we only need geometry and textures, but we need a lot of it. As I build my design document and flesh out gameplay ideas or story, I'm considering what kind of engine technology it's going to require and what kind of content I'll need.
How many game ideas involve a character walking around and interacting with other characters and the environment? Hint: lots.

Your story stops mattering at that point because it's not the bottleneck, it's not the hard part. Take a look at Fallout 3. I love the Fallout games. I even got some brief enjoyment out of that flop of a tactics game Interplay made. (This game marks the point where they officially jumped the shark.) Fallout 3 is immersive and visually impressive, a successful, although non-traditional resurrection of the franchise. Maybe everything is roughly the same color, but it still looks pretty good. The world is enormous and took a lot of time and work to make, but even in this professionally built game, they're repeating scenery and geometry.

All of this prattling on has been to lead up to the focus of some of my recent hobby coding. I've been tinkering with procedural terrain and procedural texturing of that terrain.
Thus far I've made a script that processes an 8-bit height map image into terrain geometry of the specified scale. You can even assign an arbitrary number of height levels with unique textures that are procedurally blended and 'baked'. In another mode it can use vertex colors to produce something more cartoony. Next I might look into using some Perlin noise to speckle the terrain with trees and rocks or other detail meshes.
My next post will be a more in-depth look at procedural terrain and my hope is that over the next few months we can explore some gameplay ideas and their accompanying implementations and requirements.

Monday, March 16, 2009

Classic Games

Most people I know, myself included, have games from their past that they remember fondly. Unfortunately, most attempts to revisit this ancient fun are met with disappointing results as we realize that not everything that was fun back then is fun to us now.
The good side of this is that you sometimes come across a game from your past that is simply timeless.
I keep thinking I'll put up some new blender material or maybe some programming goodies, but I've been lacking the time and the clarity to get any of it done. (Maybe these old games have something to do with that?) Instead I'm posting some older games that remain awesome.

The Ur-Quan Masters

Dune 2


Mechwarrior 4 : Mercenaries -- Online play doesn't work through MS anymore, but there are community mods. -- Community site

This list could get long so I'll stop there for now.

Sunday, February 15, 2009

Gun Sound Pack

Militia Defense has been updated with new sounds and some cleaner enemy tracking.
Some friends and I spent an afternoon target shooting and recorded some of the action, so I stripped out the non-essentials and packed it into uncompressed wav's for the masses.
These are released under the Creative Commons Attribution 3.0 Unported License.


Creative Commons License

Monday, February 9, 2009

Game Programming With Lua

Love sold me on lua as a scripting language and provided a great excuse to learn it. As I get time I intend to keep working on Militia Defense, but I'm at a point now where I need to make some significant changes and there just hasn't been time.

Presently, what time I have has been occupied with some reading and a little work on lua-driven 3D library. I'm using SDL with Bob Pendleton's fastevents and net2. My older openGL framework used GLFW. GLFW is actually really nice, but for this project I wanted to use fastevents and net2 for network access, so it's SDL. Honestly it's just a little trickier to load textures, but beyond that they're pretty equivalent. GLFW has a higher precision timer on the platforms I use, but the perceptual difference between 3k fps and 1k fps is probably negligible, and neither one of the libraries require you to use their timer.
Right now I initialize everything and load up a lua script file that sets the video mode and has functions for the main loop.
I've started using lua's userdata element to create procedural shapes and draw them in 3D. I need to work out matrix transformations and camera functions, but none of this should be particularly daunting. At this point I figure it would be best to implement the scene graph in lua, as well as the camera, but my main concern is texturing and defining static and dynamic mesh formats.
I'm using display lists for static geometry for the somewhat marginal performance increase over VBO's, but I'll be using vertex buffer objects for anything animated. Blender will be the content generator of choice, of course.

Once I start getting tired of this I'll probably go back and re-work Militia Defense. Changing projects form time to time helps me avoid burnout and I can usually come back to old work with new perspective, so rest assured there will be updates to this.

Saturday, January 17, 2009

Trying to Blog Again

It's been around a year since I last posted anything and I thought I might try to actually do something here for a change.

I've been hobbying around with a lot of 3d programming but lately I've started messing around with Love, which is a nice cross-platform 3d accelerated 2d engine that uses lua.
Content creation for 3d games can be a long, difficult process, especially for the lone game programmer. To that end, I've made a few simple 2d games if for no other reason than to say that I've made a couple of complete games.
First you'll need Love, which is a fairly small download.

With that installed, you can get the game files here:

My simple lander game

Militia Defense game

In Windows you should automatically have love associated with .love files if you ran the installer. In Linux, just run 'love' or 'love'. Alternatively, your preferred desktop probably has a mechanism for associating love files the the love binary. In gnome it's as easy as going to the 'Open With' tab on the file properties, adding the love command, then selecting it as default.

The .love files are actually just zips, so source code and resources can be found by unzipping them. Both games are released under the MIT license so feel free to play around in the source, but be warned, it might be nasty.
The lua backend makes it so easy to make games that I tend to just plow through them without much thought. The good side of this is, you can use your first game prototype as a design document and you really haven't lost any time.