[via Ze Frank]
3D Video Mapping
I thought this was a pretty clever use of 3D mapping to change the appearance of a room.
Living Room from Mr.Beam on Vimeo.
New Laptop
I bought a new laptop last week. My old laptop has felt slow for quite a while, but I haven’t wanted to spend the money on buying a new one. My original plan back in 2009 was to buy a new laptop when the game started selling, but I once I started to see sales numbers, I could see that things were tight.
The test I’ve been doing with my new laptops is to see how fast they can recompile the source code. When I last upgraded my laptop, I got a 3x improvement in compile times. The new laptop brought a 31 minute compile down to 14 minutes. In those terms, it’s 2.3x as fast as my previous laptop. I have to say, it’s been 4.5 years since I bought my previous laptop, and I was hoping for a better time than that. It’s not bad, but it seems like there’s been a decline in the rate of improvement of computers. Moore’s Law is that the number of transistors double every 18 months, which is widely (and not so accurately) interpreted as doubling the speed of a computer every 18 months. It’s been three 18-month cycles since my last laptop purchase, and this certainly isn’t 2^3 times faster (which would be 8 times faster). Although, it certainly seems more than 2.3x faster in most other tasks. According to notebook check, this laptop is 2.9x – 3.8x faster in their benchmarks than my previous one.
AI Middleware [Random Thoughts]
Back when I started putting together Empires of Steel, I looked around for some middleware that would help me build an AI. One really big problem with AI middleware is that the term “AI” encompasses so many different things. This means that most information about creating “AI” doesn’t apply to what your particular game is doing. I have a copy of “AI Game Programming Wisdom 2”, which is composed of a series of articles by different authors, and the vast majority of it doesn’t apply to the AI I was creating for Empires of Steel. You run into the same problem with middleware: most of the problems being solved by middleware aren’t the problems you need to solve for your game.
Anyway, I couldn’t find any decent middleware that I could use in Empires of Steel. Recently, I decided to take a look around and see if the landscape has improved at all in the past few years. It appears not. Searching for “strategy AI middleware”, I couldn’t find much of anything good. Most AI middleware seems to be pathfinding systems (i.e. given Point A and Point B and a landscape filled with various types of terrain and obstacles, the system will figure out a decent pathway between those two points). There’s some clever stuff being done with pathfinding, including neat stuff like updating the pathways based on changing obstacles, for example, a blocked hallway or a new hole punched through a wall, but there isn’t anything I’ve found that’s anywhere close to a strategy AI. Maybe games are just so unique that it’s difficult/impossible to create a general AI, so maybe attempts to create a general AI just end up pleasing nobody.
One open-source project I found on the first page of google results called itself “Realtime strategy AI game engine” and seems to have been abandoned after four months. It’s had no activity in the past three and a half years. The code that does exist appears to be composed of OpenSteer (a different open-source AI project designed to steer virtual vehicles) and a bunch of primitive stubs that were never turned into anything. (Ah, open-source. It’s filled with good intentions, but mostly abandoned projects. Generally, they die because the creator(s) get bored and disappear within a month.)
It sort of makes me wonder if there’s a market for AI middleware, or maybe it doesn’t exist because of the difficultly of creating it. It seems kind of pointless to put a bunch of extra time into the Empires of Steel AI (if sales were still really strong, I’d be happy to improve it, but considering how badly I got burned on sales). But, if there was a market for strategy AI middleware that I could spin out, that might be an interesting idea. In that case, I’d use EOS as a testbed.
The Gloaming Trailer [Video]
This is just a neat little animation. It’s actually a trailer for a video. The section beginning around 20 seconds into the trailer makes me imagine creating a little wargame with these personality-filled animations. Maybe something small that would play on a smartphone or something. You’d have your own little tribe that would go through history, conquering other pencil-drawn tribes.
The gloaming Trailer from niko nobrain on Vimeo.
Coffeeshop Piracy
One of the coffeeshops I go to had their internet down the other day. Their ISP had cut them off temporarily because of filesharing going on there. Over the past few months, their network has been down several times because of this. One employee said the coffeeshop owner had been getting warnings and lists of pirated material going over his network, but he ignored it. Apparently, they’re supposed to setup a computer to filter what stuff is accessible over their network. Once they get that up and running in a few days, their ISP will give them a slower internet service and put them on “probation”. At least it didn’t seem to hurt the coffeeshop’s business; they were pretty packed.
It’s kind of too bad that coffeeshops end up being responsible for things their users are doing. I was sort of wondering how this would play out with piracy, because, while ISPs can cutoff people’s home internet, it’s harder for coffeeshops because they can’t really monitor what their users are doing and there’s so many different people that some of them will be filesharing. The website filtering system is something I hadn’t thought of, though.
On a similar note, I noticed that when I connect to the Starbucks internet, a screen briefly appears showing the MAC address of my computer. (The MAC address is a unique number contained inside your network hardware.) I couldn’t help but think that maybe they were linking people’s MAC addresses to their internet surfing. Theoretically, this could allow them to ban your computer from all the Starbucks. Your MAC address never changes, not even if you install a new hard drive and Operating System. (I guess that’s not entirely true. You could buy a new network card, though most people aren’t going to do that.) I sort of wonder if Starbucks has been banning people for pirating. Afterall, if the ISPs are cutting off service to coffeeshops for filesharing, then Starbucks might be protecting itself from ISP cutoffs by banning the offenders’ laptops.
Product Placement
Now, this is what I call product placement.
Post Mortem Financials
I have to admit that it took me a little bit before I was comfortable releasing the financial numbers, mostly because I was embarrassed by them. I was also surprised how much I ended up paying in taxes despite earning so little. I think I’m paying something like 25%-30% of my income in taxes, which is surprising considering how little I earned. Here’s a writeup:
Post Mortem
This is the way the world ends: Not with a bang but a whimper. – T. S. Eliot
Well, this is it. The game isn’t bringing in enough money on a month-to-month basis to pay my bills. I’m also tens of thousands dollars in debt and I’ve burned through most of my savings. The game never came close to generating enough revenue to pay back my investment costs – despite my investment costs being super cheap: approximately $20,000/year to survive while I created the software. Sales peaked within the first two months of release, and have been declining ever since with occasional jumps due to a sale. November 2010 (the most recent month that I have numbers for) was the worst sales month on record – bringing in a scant $370 for the entire month. (Multiply that by 12 and it works out to only $4,400/year.) I don’t have any faith that I can or will ever recoup that development cost, and it’s better to cut myself loose rather than let myself be dragged down trying to beat a dead horse.
While I’m not happy about it, it’s a good thing to surrender to the inevitable. The past year has been tough. I intermittently suffered from too much stress, anxiety, and occasional depression caused by my financial problems. Because of this, on a few occasions, it was difficult to get anything done. Other times, I would defiantly work seven days a week.
What to say about Empires of Steel? Sales didn’t go nearly as well as we were hoping. The game took five and a half years of full time work by one person. It’s extremely rare to have a game created by a single person anymore. Assuming I worked 40 hours a week (I probably worked more than this, but I don’t track my hours), this adds up to 11,000 hours of work. When I had first talked to Battlefront, they had suggested that we might have revenue around $100,000. This would’ve averaged to around $9/hour, not very good from an hourly-pay standpoint. This is a bargain rate for a software programmer, and cheap for almost any work, considering that minimum wage is $7.25. But, it would be (just barely) enough to live on. After a year of sales, I haven’t earned close to that amount. I’ll post the actual numbers later, but I think it’s already obvious that I’ve earned less than half of minimum wage for my last 5+ years of work. Maybe I’m a cautionary tale for the game business.
I have to admit that it’s also been difficult seeing games like Minecraft, Angry Birds, and Plants vs Zombies catapult to fame and fortune while I crashed and burned. Like I’ve said before: it’s very feast or famine in the indie game business. Even the businesses that are big successes this year might be bankrupt five years from now — as illustrated by Introversion Software, who were the media’s favorite indie developer back in 2005 and 2006, only to lay off most of their employees and nearly go bankrupt in 2010.
Post Mortem
Thoughts on what went right and what went wrong with the game
* Part of me wonders if the game business isn’t conducive to being a lone developer. Certainly, single-developer games are extremely rare anymore. Back in the early 1980s, it wasn’t at all uncommon for single developers to make games. But multiple developers can accomplish more, and that raises the bar of what’s expected from games. In most cases I think the profit-work curve favors groups of developers over single developers. In other words, for many game genres, it’s difficult for one developer to put in enough man hours to move out of the “insufficient work” section and onto the top of the curve.
Obviously, this isn’t always true – since there have been some successful single-developer projects (Minecraft, or games on smart phones) – but it’s a matter of being able to successfully compete in the genre and accomplish what a game is supposed to do in that genre. One-developer games have to tackle small-projects that can be adequately reached without a ton of man-hours. These small games have to leave me thinking, “I’m not sure what else I could add to the game to really make it a much better game”, showing that they have largely fulfilled their niche. They also tend to have some innovative, creative gameplay that makes them quite a bit different from other games, resulting in less direct competition. In contrast, nation-building games, role-playing games, and first-person shooters have a problem in that there’s always something that can be added to the game – usually, this means better graphics or more game depth. In those cases, they favor large teams because a lot of work is needed to add those features, and any developer not adding those features get unfavorably compared to those larger projects.
In general, you can think of the game industry as a kind of ecology. The indie game developers are the mice and we can’t compete with the lions. But, that’s okay if we find our own ecological niche. Mice go after crumbs. Lions take down gazelle. We co-exist because we’re not going after the same food.
I guess the lesson is: know how much work it’s going to take to adequately compete in a genre. There are some genres that are simply off-limits, and I sometimes see small-time amateur developers talk about some work they’re doing in this or that genre and I just can’t help but realize that there’s no way they can possibly compete in that field. (Case in point: a week ago, I heard some developer talking about a hobby project he had to develop an ambitious massively-multiplayer game.) It should also be taken into account that we (especially amateur game developers) have inflated opinions of our own capabilities.
* I think the game was released a little early and was priced too high. The original plan was to release the game for $25. Somehow, the price kept edging up. Sometime later, we were talking about a $35 price. Sometimes later, my publisher was suggesting a $45 price. I thought it should be priced lower, but was a little flattered that it could be priced at $45. Even though I still thought $35 was a better price, I decided to go with my publishers accumulated experience and accept a $45 price tag because I figured, based on their experience in the game industry, they must know pricing better than me. Besides, he argued, we could always lower the price later if that’s what we wanted to do, but we can’t raise it after the fact. I now disagree with this view because it’s important to get things right at release, while we still have a lot of media attention.
The higher price and early release of the game caused a number of not-great reviews. Most of them were mixed between good and bad, giving a middling or slightly positive review of the game. In some ways, I think the game was ready for release, but I also knew I’d be improving the game significantly over the coming months. At the same time, I didn’t want to say, “Hey, I’m still adding to the game – it’s still a work in progress” because I was afraid people would read that as “it’s not ready, don’t buy it” which would muddy the release sales. Most of the reviews you’ll find on the internet are from early versions of the game, now more than a year old. I feel like those reviews have dogged sales of the game, putting off people who considered buying it. I also don’t think those reviews do justice to the game anymore. Not only are they out-dated, harping on problems that have been long fixed, but they are also harping on the original $45 price, which is more than twice the current price. I was well aware that this could be a problem – I remember the example of “Masters of Orion 3”, which was barely playable at release. I heard that it improved in the coming months, but by that time, they had lost all the momentum provided by the release buzz. Heck, I bought Masters of Orion 3, and I haven’t even gotten the patches to see if the game has improved since release.
I think part of the problem here revolves around the long-memory of the internet and the fact that the game industry revolves around “game releases” – as if the game is complete at released, and never a work in progress. Hence, a game can be judged by it’s reviews at release. This is true for most games. Only the online roleplaying games really buck this trend. I think the way to truly shed the bad reviews that put-off the potential buyers is to release a whole new version.
Even worse, when I was filling out the application for Steam, they wanted links to reviews of the game. Steam includes a “metacritic” score alongside ever game they sell. As a buyer, I find this helpful for figuring out the quality of a game. At this point, most of those reviews I’d be passing to Steam will be old, outdated reviews which will be distilled down to a single metacritic score. There’s no space for some “wait, wait! Don’t take the metacritic score too seriously!” disclaimer on the Steam webpage. Again, the year-old reviews will be dogging the game.
Lesson: Come into the game’s release with some force. If the game isn’t hitting home runs and getting As with both game quality and price, you’ll will miss a critical window when the media is paying attention, and your bad or middling reviews will dog you.
* There’s a variety of things done right and wrong in the design of the game. I probably could’ve made the game more flashy, with better explosions and combat animations to draw in new gamers, and give it more visceral appeal. I think the AI should’ve definitely been better at release. I fixed a lot of problems with the AI after release, but there’s still reviews (done weeks after the game was released) knocking it for having an AI that’s too passive. I think the customizability of the game, with maps, scenarios, and rules along with the sharing system was good. I think the combat system should’ve been more straightforward.
* I’d like to find ways to avoid the complicated code. The pathfinding system was complicated and suffered from occasional glitches (this eats up code-fixing time and decreases the user experience). The combat system was surprisingly complicated because it handled a lot of different cases. The AI (artificial intelligence) was tremendously complicated. I rewrote the AI, the pathfinding system, and combat system multiple times to solve problems I was having with it. The AI also takes up large portions of the source code. I would’ve done better with the AI if I had some previous experience writing AI (this was actually my first project involving any AI). So, there’s a variety of potential lessons here (take your pick): (A) you should have some previous experience writing AI or allow yourself lots of extra time to learn how to do it, (B) try to stick to game rules that can be easily programmed with an AI – for example, it’s easy to write a very good AI to play something simple like tic-tac-toe. Also, the AI in old nintendo games – e.g. Super Mario Bros or Zelda – was very simple, the same is true of smartphone games, (C) avoid writing games with AI (stick with human-vs-human games or games with no intelligent enemies – like sudoku or tetris). Of course, this can cramp the types of games you can create. Looking back, it seems rather audacious that my attitude was “I’ve never programmed an AI before, but I’ll figure out how to make a competent AI for this strategy game”. I don’t regret it. I’m just saying that it exists on somewhere between self-assured and foolhardy.
* As far as the really successful indie games, there’s a certain self-reinforcing momentum that gets built to make them financially successful. The vast majority of indie games never achieve this, but a few do. Here’s what I mean: a game is created. If it gets good reviews, more websites start mentioning it. Sales are good. It financially successful enough that more game-distributors pick it up. For example, Steam won’t pickup Empires of Steel, but they pickup a lot of other games. This blunts our sales while further expanding the sales of other indie games. The game is financially successful enough that it makes sense to port it to other platforms. For example Plants vs Zombies was successful on the PC, then it was ported to the iPhone where it sold 300,000 copies in a single day (at $3 each) – again, reinforcing their financial success. They get into the top 10 or top 50 iPhone apps, which gets them more visibility, increasing sales even further. It’s a situation where most people lose, but the winner’s success gets turned into a cycle of more and more success. Just the other day, I saw three different references to Minecraft – one in PC Gamer magazine, one in on Penny-Arcade, and another reference on some other website. It was all free advertizing, and it was spinning Minecraft into an unbelievable success. By my estimates, the creator of Minecraft has earned $1,000-$2,000 an hour for his work.
* I really wish the multiplayer system worked better without requiring people mess with their router. There were some ways to do this – provided that I setup a dedicated server. I didn’t have a dedicated server and it would’ve been expensive to pay for one. A dedicated server wouldn’t solve all the problems, but it probably would’ve helped. (Admittedly, I probably would’ve had more security problems. People are always trying to hack into internet servers, so they have to be built very carefully.) Internet routers (those are the modems used by players) are just a pain to deal with. They’re all different makes and models and manufacturers setting them up however they want. So, methods to get computers to talk to each other might work fine 90% of the time, but then the other 10% will have problems — problems you can’t adequately diagnose or fix because you don’t have the same hardware that they do.
Things I’d do differently:
– On one hand, I think it was really useful to get feedback from users to make the game better. On the other hand, the majority of game reviews were based on the game as it was initially launched. The question is: how do you get feedback from users to improve the game, while holding off the reviews until after the game has been improved? Perhaps a longer beta or a beta with more people. I suppose it would be possible to do a “beta” version that users could buy (thus, they could provide feedback while helping fund the development), and then reviews might be more circumspect about their opinion or hold-off until the game comes out of beta. Essentially, that’s what minecraft did – start selling copies of the game while it was still in open beta.
– More fine-grained information on sales. There were times when I wanted to know whether my action (e.g. posting forums or releasing a new video) had any effect on sales or downloads. I couldn’t get any of that information from my publisher. Sales were only given to me on a monthly basis, which made it next to impossible to figure out whether a particular action had any effect.
– I don’t know that I should attempt large nation-building games. Perhaps they’re just off-limits to small developers at this point, unless the game can be simplified and well-defined while still being small and fun. If I make any games in the future, part of me thinks I should stick to smartphone games or something, because there’s no massive teams of programmers to compete against.
– The growing number of defiant pirates on the internet makes me think that I should avoid creating client-applications in general. This makes me concerned about where things will be in, say, five years. On the other hand, I’ve heard a lot of conflicting information about the decline of the PC market. While it’s clear that the console game market is growing much faster than the PC game market, I’m not sure if the PC market is shrinking. Part of the reason it’s so hard to get data is because of the shifts in the PC market. Sales of PC games in stores have been hitting a steep decline for five to ten years, but online sales are going up. Even better, game developers get about twice as much money from the sale of one digital download than from a game sold in stores because stores take such a large cut. There’s also been a shift towards in-game purchases and subscription services (like World of Warcraft), which are difficult to track but they’re still part of the PC game-market revenue. I don’t know what my conclusion is about this, but it might be safer to lean towards games that use more server code. Either that, or move towards consoles (which are harder to pirate) or smart phones (which generally have such cheap apps that most people don’t bother with piracy). Whatever the case, I feel like I should be ready to abandon ship with the PC market or find stronger ways to deal with pirates. (I don’t blame EOS’ poor sales in piracy, by the way. I’m just saying that it’s potentially an issue going into the future.)
What Next:
– I’m going to continue running the game server so players can play multiplayer games and upload/download maps, scenarios, and rules. I’ll also be putting out some occasional updates, but they’ll be less frequent and will focus more on bug fixes rather than improvements.
– Will I make more games? I’ve always enjoyed making games, but the revenue numbers seem to indicate that this is pretty much just a very expensive, time-consuming hobby. If I do take another swing at games, I’ll take a very different approach. I’ll do smaller games where I risk a lot less time and money. Maybe games for smart-phones or something. Either that, or find some compelling game ideas for the PC that can be done in less than a year. Angry Birds was done in less than a year (although it was more than one developer). Minecraft spent 1.5 years in development (one developer). Plants vs Zombies was two years (I think) using three people plus one musician. But, matching the success of those games is unlikely, so maybe I shouldn’t bother with the game industry anymore.
– Shortly before Empires of Steel was released, I had started thinking about what I was going to work on next. I had hoped to do a space game, and had gathered lots and lots of concept art. (If you want to see some of the concept artwork I’ve been looking at, visit conceptships.blogspot.com and conceptrobots.blogspot.com) Based on my financial state and the fact that space-games are largely taken-over by the big companies, I’m doubtful that I can compete in this field. So, it’s rather unlikely I’ll ever create this game. Come to think of it, this should be under “what I thought might be next, but it won’t happen” category rather than the “what’s next” category.
Some of my concepts for the game involved some new types of warfare: genetically-engineered biological warfare, more interesting planetary warfare and invasions; political propaganda and culture – which would allow players to mold their population in various directions that have various positive and negative aspects. For example, turning your empire into a fascist, xenophobic, nationalist structure might make your population more industrious and willing to go to war, but also inspire more planetary revolts, spies willing to work for your enemies, and reduce technological breakthroughs and creativity (example: Hitler helped shut-down nuclear research, labelling it “jew science”; although, at the same time, the Germans made good tanks, the first assault rifle, and the first jet aircraft). Because he believed in his own superior “strategic intuition”, he forced his generals to make mistakes against their better judgment. Other gameplay aspects might involve revolutionaries (misguided or enlightened) from your own population working against your empire. Maybe your enemies (alien races) are helping to arm and support them in various ways. There might be ways to discredit them or hunt down these revolutionaries and reformers. If you are caught in too many lies or manipulations, then your population trusts you less, which causes various problems in trying to rule them.
Admittedly, part of the reason I wanted to focus on the politics is because I want people to understand the types of manipulations that governments and corporations can use on the common people to manipulate them for their own ends. I think those are enlightening concepts that are applicable to the real-world, but I don’t know yet if it would make for good gameplay. I wanted to add artificially-intelligent advisers that could help guide new players in their decisions. I also wanted an interesting technology system which changes each time you play, and different empires would have different options. For example, the idea of nuclear-weapons wasn’t an option until Einstein formulated a theory of mass-energy equivalence. In gameplay terms, maybe certain technologies would not be an option unless some scientist happened to formulate a theory about it. And, maybe empires pursue dead-end technologies and bad theories (for example: Lysenkoism). I also wanted to portray a universe that was vast, empty, and beautiful. I don’t think most space games do a good job of portraying that. With any luck, I could find a way to add some science and education in there, but again, I’m not sure if I can do that while providing compelling gameplay.
Angry Birds, Crush the Castle, and Inspiration
When I first saw Angry Birds, my first thought was that it copied (or more diplomatically, “was inspired by”) another game I had played called Crush the Castle. I looked up some details, and discovered that Angry Birds was released on December 10, 2009 while Crush the Castle was available in early 2009, at the exact time Angry Birds started their development. I will say this: Angry Birds added a lot more personality to the game. I thought it was interesting that Angry Birds kept the monarchy/military theme for the enemies, with pigs dressed in crowns and helmets. Angry Birds also uses a slingshot rather than a trebuchet.
A comparison:
And here Crush The Castle (jump ahead to 30 seconds):
Link: Crush the Castle
Also, as a side note, the game “Osmos” which is included in the Humble Indie Bundle is also reminiscent of a flash game I played years ago as well. I couldn’t find the old flash game, but it involved controlling a fish to eat smaller fish while avoiding larger ones. Each time you ate a smaller fish, you’d become slightly larger. It was the same basic gameplay as Osmos, though Osmos seems to have added a few more features.