Skip to content



Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Weekly Development Update #2


Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 113

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 113

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 138

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 138

Slightly delayed, because I am easily distracted by Starcraft 2 and shiney new graphics libraries.

What I’ve found this week is that I haven’t been very studious in terms of keeping this habit. There are extenuating circumstances, but it’s best not to use those as an excuse. Going forward, I need to make daily work more consistent.

Continued…

Posted in Game Design, Game Development, SPX.



Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Weekly Development Update #1


Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 113

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 113

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 138

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 138

One of the problems with hobbyist game development in your spare time is that it’s easy to become distracted. There’s no shortage of other tasks that need doing, or ways to find excuses to avoid a piece of tedious development. It’s not uncommon to suspend development for weeks or months at a time if enough is going on to serve as a rationalization.

This doesn’t serve my purposes. Every day I spend not working on game development is another day delay on me doing it professionally. It’s imperative to be working every day, to make it habit.

As such, I’ve resolved that I’ll do the following:

  1. I will make one commit to the source repository each day.
  2. I will keep a log of my progress and design decisions, and post it on a weekly basis.

“One commit a day” is a nice metric to use. It gives me a lot of flexibility as to the size of the commit, but it’s also very easy to measure and very clear as to what I need to make a daily habit: I have to make progress—any progress—on my code daily. Because the metric is clear, it’s very easy to turn into a habit. The weekly update is a little harder to make a habit of (this first one is already a little late), but is nice as a way of making me keep good logs of my work… and giving me content to post on this blog!

Yeah, I’ve been bad about that lately, haven’t I?

At any rate, I figure I should start by outlining the project I’m working with at the moment. The project is using the temporary name “SPX”, an acronym I can’t even recall. It’s completely utilitarian in the sense that it’s meant to be convenient to refer to but not something I might get attached to. The basic concept of the game itself is a 2D, multiplayer top down strategy game set in space revolving around a single large capital ship, its weapon systems and its fighter craft. The specific details are completely up in the air, since the actual kind of gameplay that will be involved is going to be fully explored only once a working prototype is available to tweak, but it will involve huge, heavily armed vessels blasting holes in each other with space-age weaponry.

On the technical side, the game is using SFML for graphics, input, and sound, and RakNet for network functionality. SFML is a library that I was unfamiliar with, but which looked full-featured enough, and RakNet is something I’ve worked with before (and found to my liking). Both libraries are free to use and multiplatform, which are useful aspects to have!

But enough about that, on to the logs.

Continued…

Posted in Game Design, Game Development, SPX.



Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

RUSE Impressions


Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 113

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 113

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 138

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 138

So, RUSE, the upcoming RTS from Eugen Systems, has an open beta on steam. Me, being all for the playing of freely available and frankly awesome looking games, took her for a spin. And I’m loving it.

And no, as much as that sounds like a sales pitch, they aren’t paying me to say that.

Now, for those who aren’t familiar with the game, a brief overview is in order. It’s a strategy game set in WWII, with a rather impressive scale. You can look at the whole battlefield or zoom all the way down to infantry fighting their way through a town, and the engine scales between the views much more elegantly than Supreme Commander ever did. The game’s main hook, as you might guess from the name, is misdirection and surprise, and boy, are there ever a lot of opportunities for that

I don’t play a lot of RTS games these days. Often, I find that I just don’t have the knack for it. Too many rules or relationships to memorize, or the whole thing is so micro heavy and my goldfish-short attention span too limited to keep up. I would generally spend more time managing an army than engaging in actual… I dunno, strategy? RUSE is a very different kind of RTS in that respect. It’s slow paced… units take time to move around, and once fighting is actually started it generally takes too much time to retreat: you’re committed the moment bullets start flying. There’s almost no micromanagement to speak of, just the big decisions of what you’re producing, where you’re putting it, and how you’re going to pull the wool over your opponent’s eyes while doing so. Continued…

Posted in Games.

Tagged with , , , .



Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Dwarven Mounts, Bladed Fortress

If you’ve been paying much attention to the independent gaming scene, you’ll probably have heard of Dwarf Fortress, the absurdly deep fantasy world simulation by Bay 12 Games. Gameplay involves guiding and developing a group of dwarven settlers in a world that keeps track of everything from geological phenomena and climate to the individual dirtiness, injury, and mental state of each dwarf. Developed by a single programmer with writing from his brother, it’s been something of a cult hit, attracting a small but utterly rabid group of fans. You might also have heard of a game called Mount & Blade by Turkish developer TaleWorlds, an ambitious open world game set in a medieval society. It started as a garage project from a husband and wife team, and grew as time went on and funding became available.

Both of them have proven successful financially. A steady steam of user donations is the only stream of income for the creators of Dwarf Fortress, yet it grants them an impressive monthly tally, which they publish regularly on their forums. Mount & Blade instead opted for discounted pre-orders that gave access to beta builds, and this was enough to fund development until Paradox Interactive picked them up. Now their game is available at retail and recently went on an 85% sale on steam… a sale which was so popular that steam burned through all the serial numbers TaleWorlds had provided them and needed to procure more! These two companies are pursuing very different paths to financial success, but they’re both obviously doing well! How the heck are they pulling it off, and are there any common threads?

The most obvious similarity—and perhaps most impressive, given the scale of the games in question—is that the development teams have been quite small for both games. TaleWorlds started as a husband and wife team, and remain quite small even now that they have publisher support, while Dwarf Fortress has only ever had a single programmer and a writer… a fact which continues to make my head spin, given the infamous scope and depth of the game. I suspect that the small size of the teams involved have been helpful to their financial success. After all, labour is the greatest expense in game development, and with only one or two developers a small revenue stream can still be enough to pay them a decent wage. Of course, the less developers you have the longer it’ll take to create things, but if you work smart there are ways to strike a solid balance between profit generating product quality and the number of cooks in the kitchen.

There’s also something to be said about the kind of games these are. They’re both “open world” games in many respects, though their approach is very different. Dwarf Fortress is an all-encompassing simulation with a disturbing level of detail, and playing around in that sandbox and doing crazy stuff is the whole point. Mount and Blade’s open world aspects, by contrast, are mainly an excuse to set up a series of fights for your to hack and slash your way through. M&B’s focus has always been on a realistic representation of medieval combat, along with their extremely well done third/first person combat system. They both have areas where they’re very weak, as well. Dwarf Fortress is entirely ASCII art, Mount & Blade’s open-world aspects tend to be lifeless and pointless, and both games have learning curves that feel like running headlong into a brick wall. The appearance is that they have neglected secondary aspects to perfect their core features. What this tells me is that, at least for independent games, players are willing to forgive poor production values or neglected gameplay elements as long as the main hook of the game is implemented well. M&B’s titular mounted and melee combat is brilliantly done, and Dwarf Fortress managed to out-Will-Wright Will Wright… if that ain’t an accomplishment, I don’t know what would be.

So, lesson one: Focus on your strengths. If you do what makes you unique very well, you can get away with not doing quite as well on the rest.

The revenue models of these two companies seem very different on the surface. Bay 12 Games offer their products free of charge, and merely ask for donations. Essentially, their games are as cheap or expensive as you want or need them to be, and their funding is entirely dependent on the gratitude of their players. TaleWorlds, on the other hand, is closer to a traditional retail model with their use of pre-orders. So far as I can tell from reading interviews and digging around the net, the creators never thought they’d be able to make it to a finished product. Instead, they elected to offer a “pre-order” at a significant discount that guaranteed access to the beta builds, thinking that players who bought in wouldn’t get burned as hard if the final game never materialized. In other words, you pay for access to all current and future builds just like you would with a normal game, with the removal of the expectation that you will receive a finished product. Users are therefore paying for a PROMISE that a finished game will eventually appear, instead of the end product itself. Bay 12 is banking on their fan’s generosity and gratitude, while TaleWorlds is banking on their trust.

I’ve got to say I like both approaches. It provides precisely the right fiscal incentives to the developers, and even for people of enormous integrity it’s always better to have your economic model support your principles. Both models demand that not only that you deliver a fun experience, but you deliver updates in a timely manner and treat your fans well. If you break that trust, your revenue will disappear, but if you keep that promise you are duly rewarded.

That’s lesson two, then: Set up your incentives to support your principles. Perhaps not a necessity to success, and possibly even a barrier to making money, but I can’t imagine a better way to hate your job than to be forced to abandon your principles just to pay the bills. Not only that, but I think some credit has to be given to the fans as well. They recognize when a creator has their best interests at heart, and many of them are all too happy to reward that. When they can see that the developer has nothing to gain by jerking them around, it becomes that much easier to trust them.

Still, neither of them would have gotten off the ground without some form of marketing. If nobody knows about  your product it doesn’t matter if it’s as fun as two barrels of monkeys; it just won’t sell, and you’ll have to live in a box. Since boxes are inconvenient places to develop games from, you’ll presumably want to get the word out somehow. Dwarf Fortress and Mount & Blade (at least in its early days) never had big, noticeable marketing campaigns. They were indie projects nestled deep into the dark and gloomy cracks and fissures of the internet, relying only on those who had crossed them and lived to tell the tale to spread their names. Or, to be less of a dramatic twit about it, they relied on word of mouth… the cheapest and probably most effective marketing technique there is. Eventually, they both gained a lot of recognition in the press, but I’m inclined to chalk this up to same community forces that got their names out in the first place.

Speaking of communities, the fans for the two games in question are pretty impressive! The Dwarf Fortress forums are filled with people exploring the game mechanics, telling stories, and otherwise being ridiculously hardcore about the game. Mount and Blade has a HUGE library of mods for a game as obscure as it is, indicating an impressive level of involvement on the part of the community members. In both cases the communities are thriving and active, with lots of dedication from participants. This seems to me like the thread which ties everything together. I believe that it’s this community aspect that allows them to get away with their unorthodox revenue models, and which allows the pervasive word of mouth advertising.

I’ve long believed that online communities are capable of achieving awe-inspiring feats. Wikipedia is a textbook example, as is social media like Facebook or MySpace. It’s amazing what you can get the intertubes to do for you if you point it in the right direction and tell it to sic’ ‘em. Collaboration is a powerful tool we neglect at our peril, as is the inherent social nature of the human animal. It seems obvious in retrospect that putting effort towards building a strong fan community would make alternative funding and advertising mechanisms much more feasible… for starters. If one were clever, they could do things like employ some kind of collaborative development scheme do help develop their game assets!

Take away number 3, then, is that a cohesive, involved community is a powerful tool. Taking the time and effort to build, develop, and maintain it will pay dividends in the long run. The details of implementation are another issue entirely, though. Perhaps in another blog post.

That’s all I could come up with. Anyone else have any insights on the success of these two games? Or perhaps another game that would make a good case study? Leave your thoughts in the comments!

Posted in Business and Marketing.

Tagged with , , , , .



Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Design of a Skeletal Animation System


Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 113

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 113

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 138

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 138

When I explained the evolution of John Smith’s animation system, I provided the broad strokes of the system and the overall feature set. This article is mainly focused on the technical aspects of the system, and will include a fair amount of source code snippets. I’ll be publishing snippets of the source code to get the thrust across, because the code is dependant on the graphics and physics engines used in my game, making the full source pretty much useless without substantial work. I developed this system in C++, so that’s what I’ll be presenting it in, but it shouldn’t be too hard to replicate in another OO language. However, if you’re still interested in looking at the full source as well as the source to the editor, pop me an email at ian@aimlessdevelopment.com and I’ll pack it up and send it your way, along with the instructions on how to get it going..

Without further babbling on my part, let’s dig in.

Continued…

Posted in Game Development, Game Systems, John Smith.

Tagged with , .



Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Evolution of John Smith’s Animation Systems


Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 113

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 113

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 138

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 138

In my last article I mentioned that I had overhauled the animation system in my game. In the hopes that it might be useful to others, I’m going to go over the details of the original system, the issues that prompted a rewrite, the shift to a skeletal animation system, and the current state of things.

Continued…

Posted in Game Development, Game Systems.

Tagged with , .



Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Current Project: John Smith


Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 113

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 113

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 138

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/link-template.php on line 138

It’s taken me ages to get something up, and for that I apologize, but between a busy month and having rewritten this set of articles something like three times, it’s taken a while! Ah, the joys of exams and perfectionism. Someone slap some sense into me, please!

I was initially just going to dive right into skeletal animation systems, but upon reflection I realized I’m not precisely an expert on the subject. As a result, telling people “how they should do it” or even “how they can do it” seems presumptuous. Instead, it’d be better to say “how I did it” according to my design requirements, as well as what went wrong and what went right. This, of course, is the realization prompted my latest—and hopefully last—rewrite.

Now, why am I saying all this? Well, it’d be a little odd to yap endlessly about how this design fits my requirements without actually saying what those requirements ARE. So, without further babbling, I’m going to introduce the game project that’s occupied a decent amount of my off-time in the last few years: John Smith.

Yeah, it’s named after the blatantly generic lead character. Sue me.

Continued…

Posted in Game Design, Game Development, John Smith.

Tagged with , , .



Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 35

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/aimles6/public_html/wp-includes/functions.php on line 43

AimlessDevelopment.com goes live

Okay, that’s probably being a bit overdramatic. I installed Wordpress and futzed about with a couple settings. And the domain has technically been registered for nearly a month. But hey, I had to say SOMETHING for the first post, right?

No update schedule is set yet, but I’ve got plans to start with articles on 2D skeletal animation. I’ve written a couple such systems in the last year or so, so I think I’ve got a little bit of insight into the process! The first article will focus on the design requirements of a system like that (as well as what I chose and why), while the second will focus on the details of the implementation.

Hopefully, this is the start of a long series of useful articles. Or rather, since this particular post is about as useful as a screen door on a submarine, the prelude to a long series of useful articles. With luck, the next article will be less of an utter waste of space, and this needn’t become recursive.

-Ian

Posted in Uncategorized.