Categories
Games

Review – Steel Battalion: Heavy Armor

Let me mention a few things up front:

  • I like giant robots.
  • I bought and enjoyed the original Steel Battalion, difficult as it was.
  • I like the Kinect.

That said, let’s move on to the review:

I don’t care how good the graphics, how elaborate the storyline, or how realistic the gameplay: if your controls don’t work, you don’t have a game. After playing the tutorial and having my virtual self flail about the cockpit like an idiot, I quit, packed the game back in its GameFly sleeve, and put it in the mail. The Kinect controls simply don’t work. The tracking is terrible and it’s a chore to do anything via the Kinect. Unfortunately, the Kinect part of the game is required. Therefore, the game is not fun, and nigh unplayable.

Congrats, Steel Battalion. You’ve set the low bar for any review I do in the future.

Categories
Games

Review – Towns

I’ve seen Towns compared to Dwarf Fortress, and they have a lot in common. They both have you control a group of people by giving them tasks to perform. They both feature town building, resource management, and combat. They’re also both very hard to get into, but extremely rewarding if you can get past the learning curve.

Gameplay
When you start a new game of Towns, you’re given a handful of townies (apparently what your people are called) in the middle of a randomly generated world. From there you have to set about acquiring resources like wood and stone and building up a small town to support your handful of townies. If you’re lucky, they’ll survive long enough to get a good settlement going. If you’re me, one or two might manage to survive until immigrants arrive.

Most of the game consists of you building your town. You don’t directly command your townies; you simply choose what you want done, and your townies will make sure it gets done. For instance, you can pick where your townies should mine or build, and they’ll set about performing the task. Sometimes this works as expected, but more often than not, you’re left wondering why your townies are doing one thing instead of another. The townies tend to work as a group, but this results in odd behavior at times; I’ve seen a single townie running out to an area where I’ve marked stone for mining, they’ll mine a single block, then run back to town to do something else, while another townie has to travel out to the same spot to mine a different block. Also, the “haul” task is separate from everything else, so even once you have storage areas set up, your townies are more likely to drop materials on the ground randomly instead of carrying it to a nearby container. It’s also difficult to prioritize what they’re doing (beyond a basic priority list). However, when it works, it works well. If things are set up properly, your townies can maintain themselves fairly easily with little assistance; it’s just hard to get to that point.

The user interface is the biggest hindrance to Towns. There’s a lot of information that would be useful if it was presented more clearly (or at all). I’ve had countless townies die because they were stuck on top of a building I was constructing, and all I needed was a “Hey, I’m stuck!” message and I could have saved them. Some messages show up that help, like when you can’t create something because you’re missing a prerequisite. These messages are great, but they’re buried in a menu. A chat-like log would be extremely helpful.

Towns also lacks an effective tutorial. The tutorials provided are very basic – simply a page of text describing what you need to do, and a few objectives like “Get 10 wood”. I played through all the tutorials and still didn’t understand how to create a thriving town. While the tutorials teach you some of the core concepts, they leave out a lot of the detail required to be successful. Luckily, there’s a wiki (www.townswiki.com) that explains what you should be doing much better than the game does. After reading through the wiki, I found I could get the basics set up pretty easily.

Graphics and Sound
The graphics are simple and plain, which works on a certain level but leaves much to be desired. Chopping trees consists of a townie standing on a tree and making a wood chopping sound. Combat shows townies ramming into their enemy repeatedly. Townies will sometimes team up on foes, which creates an awkward-looking orgy as your townies surround the enemy and thrust themselves into it repeatedly.

Sound is similarly bland, though some effects – like chopping wood and mining stone – are easily recognizable and help to indicate what your townies are doing. Death sounds are annoying, especially when animals are naturally dying around your village.

Summary
Towns is still in an alpha state, and it shows. I think Towns will be a fantastic game with a bit more polish. The interface needs a lot of work especially, since I find myself confused about what’s going on most of the time. Even when I think I understand what’s going on, I still can’t figure out why things aren’t working sometimes.

That said, I find myself enjoying the game, so there’s definitely something interesting here. It’s just not ready yet. I’m hoping development continues and the game becomes easy to get into and still remain rewarding when your town thrives.

Towns is currently $15 (on sale for $12) on Steam, and I think that’s a bit much for the current state of the game. $5 or $10 would have been more reasonable. For all these reasons, I can only recommend Towns to someone coming from Dwarf Fortress or deeply interested in micromanagement. Even though I enjoy it, it’s definitely not for everyone.

Categories
Games

Halo 4 – First Impressions

I’m waiting to play the campaign with friends, but tonight I tried out the some of Halo 4’s multiplayer options – mostly the co-op “Spartan Ops” episodes.

The Spartan Ops missions are short and felt very poorly organized. There’s an objective in each mission, but indicators are often hard to miss or don’t show up at all, leaving players confused and disoriented. In most of the missions, the game just throws multiple waves of enemies at you and tells you to kill them. It would probably be fine if they weren’t presented as missions, since they have a lot in common with Reach’s Firefight mode – they’re just not as fun or frantic.

One thing a friend and I both noticed is that many of the weapons don’t have the right feel. The battle rifle’s new effects are great, but the Wraith’s plasma mortar has a quiet launch and a pitiful “poof” when it hits the ground. Gone are the screen-shaking explosions, booming audio, and huge blast. Most of the “big” weapons (rocket launchers, fuel rod guns, etc) are similarly disappointing.

I also played a single round of the “Dominion” mode, where players fight to capture and defend several points. It was fun, but I was vastly under-leveled and was frequently killed by players with weapons I didn’t have access to. The maps usually have weapons lying around, but they were difficult to find if you didn’t know the map. I suppose that’s normal for competitive multiplayer games, however.

Player customization is nice, but there was an anemic selection of foregrounds for player badges. I was extremely disappointed to find my usual “Valkyrie” (sword with wings) badge was gone entirely. Hopefully more badges will unlock as I level my multiplayer character. The leveling system itself is nice, but even after unlocking items by reaching a certain rank, you still have to spend “Spartan Points” on the items to use them. These points appear to be non-refundable and are only awarded by leveling up, so they’re hard to gain and cause the whole leveling system to feel oddly restrictive.

Overall, I was unimpressed by the multiplayer modes. It feels like it’s been done before and better by other games, and I think Reach had a far better array of options. I want to like the multiplayer and maybe I’ll find something I missed, but I’m not getting my hopes up. And hopefully the campaign story is fantastic enough to balance out my multiplayer disappointment.

Categories
Projects

BattleGrid Update – October

Goals for October
Effects and bug hunting – same as September.

What Got Done?
Like last month, this month has been slow. I continued my work on effects and tried out a few new things to make the UI a bit more dynamic and interesting.

I also expanded the AI a bit to make it more intelligent about structure placement, which worked out nicely – so well that the AI was placing structures in the same places I would have. Right now, it’s a little too precise (it can get stuck trying to place a structure in the same place as an existing structure), but that will be fixed by adding a little randomness to it.

What’s Left?
At this point, I’m mainly focused on cleaning out remaining bugs so I can get something that’s complete and playable. My biggest bugs (and some of the heaviest load) comes from my factories and mobile units, so I may scrap them (at least temporarily), and replace them with more interesting turrets.

There’s still the music to worry about as well as loading and saving, which is kind of important.

Goals for November
I want to finish some of the changes to the AI to make it work better, and maybe even get around to implementing the loading and saving.

Categories
Projects

BattleGrid Update – September

Goals for September
Effects and bug hunting.

What Got Done?
This month was pretty slow. I did fix some bugs and add or modify a few effects, but I didn’t get as much done as I’d have liked. However, I did start work on a level intro sequence, which should be nice once it’s finished. (I also added in code so the intro sequence can be skipped if players are impatient)

What’s Left?
Basically the same as last month:

Bug Hunting
I fixed a few annoying and game-breaking bugs in September, but there are still many more to take care of.

Music
While I’ve still got some ideas for creating music myself, I think I may have more success using the Unity Asset Store for some nice music. It’s pretty affordable, so I might try a few things, anyway.

Polish
I’m working on some effects to really get the “hologram” effect I want in the UI, and thanks to a few recent/upcoming games (Borderlands 2 and XCOM), there are some good examples of the effect to use as a reference.

Implement Loading and Saving
Still needs doing, and I still think it’s going to be difficult.

Goals for October
More effect work and cleaning out bugs.

Categories
Development

BattleGrid Music

I’ve written in many posts about how much I’ve been dreading working on the music for BattleGrid. It’s something I’d like to learn, but I simply have no skill when it comes to music. Unity has been running an “Asset Store Madness” sale this month, and I picked up a “Retro SFX” pack for half price. Some of the sounds in the pack are similar to some I had created using a simple, free tool I found, but were a better quality, so I’ve started using them where they’re better than what I had.

After using the sound effects, I thought, “Hey, maybe there’s music available, too.” So I did some searching and it turns out there’s some very good music on the asset store. I had to wade through tons of music that wasn’t great or didn’t fit the style of BattleGrid, but a few things I found are perfect – almost exactly what I had in my head but could never reproduce in reality.

Even better, as this is an asset store for a game development platform, several of the tracks are designed to be looped or have sections that can be looped, making it easy to make use of the tracks within a game. And the licenses are appropriately flexible, as well: royalty-free use in practically anything as long as the tracks aren’t able to be redistributed.

Categories
Projects

BattleGrid Update – August

Goals for August
AI and effects, the theme from the past few months.

What Got Done?
A lot, actually:

Effects Updates
I updated how I handle effects to make things easier for future development. I also added some new effects and updated old ones. Specifically:

There’s now a build animation when structures are built. It started out pretty lame (structures rising through the ground), but now there’s a new particle effect that looks pretty good. Either way, it still adds a lot to the game and gives you an indication of when structures will complete.

I added a map border, Supreme Commander-style, that caps off the map nicely and hides anything under the grid (like structures being built). I’ve got some plans for a level intro that will make use of the map borders.

I added a quick effect when a player captures new grid cells that looks fantastic. I liked it so much that I modified the map generation to use the same effect. This is easily one of my favorite effects so far – it’s very simple, but looks nice in-game.

I added some new UI effects that make it clear when you acquire and spend resources. This wasn’t really necessary, but I’ve been wanting to show something when your resources change. The effect right now is pretty simple and has some potential problems (like never going away if your income is ticking at the right intervals), so it will likely see a few updates.

AI Updates
As described in my AI post, I rewrote the “strategic” AI. After that success, I decided to rewrite the other AIs (turrets and pathfinding for units). The result is a greatly improved and simplified AI across the board, so it performs better and is less error prone. It was a good month for the AI.

I also found the source of some problems I’ve been having with turret targeting, and I’m working on an interesting solution to solve it (basically, everything will “talk” to each other – “Hey shield, I’m targeting you!”). When the changes are finished, targeting should run faster since I won’t have to validate the target list when scanning for targets – it will be managed automatically as the state of units changes.

What’s Left?
I’ve decided to scrap the map sharing features until after launch, depending on user feedback and success of BattleGrid (or a Kickstarter, if that happens), so my to-do list is getting slightly shorter.

Bug Hunting
There are some odd bugs that crop up from time to time that need taking care of, and the easiest way to find them is to play the game. Hopefully I don’t get bored.

Music
Yes, still. However, I finally have some ideas about how to go about the music, which I’ll eventually detail in another post, once I actually have some results.

Polish
I’d have put “Effects” again, but that was getting boring. The effects already present need polish, and new effects might come in to replace them. The AI might need a little tweaking, or at least some of the numbers it relies on, but the AI itself is pretty satisfactory right now. Aside from making some minor improvements to make it a bit more intelligent about placement, I probably won’t touch it much more.

Implement Loading and Saving
It’s harder than it sounds. I have a storage mechanism for the maps themselves, but storing where every structure and unit is, plus their firing state (how long until they can fire again) is difficult. I’m thinking about simply storing where everything is and treating a reload like a challenge map – just load everything and start the fire cycles from there. It would just suck if you had the game-winning artillery shell in flight when you save and it doesn’t reload that way. Then again, if you were that close to winning, you’ll probably still win.

Goals for September
Mostly effects and bug hunting. I’ll also do some cleanup on the code to get rid of things I’m not using so I can hopefully pick out the code with the bugs easier. And, if I get around to it, work on the music.

Categories
Projects

BattleGrid Update – AI

One of the biggest hurdles I’ve had to face with BattleGrid is the AI. How do you teach a computer to play a strategy game? It’s obviously been done plenty of times, but I don’t have the expertise or experience that developers behind big-name RTS games have.

In general, I try to go simple when developing. The simpler the code, the less error-prone it is, and the easier it is to fix problems or add new functionality. I thought my first attempts at AI for BattleGrid were pretty simple. I had narrowed the number of things an AI might do to 5 categories: attack, defend, capture, expand, or extract (claim bitstreams). There was a lot of overlap between the 5 categories, but implementing each one was difficult, and they could conflict with each other easily.

I recently decided to try simplifying the AI further. I trimmed the 5 categories to 3 (expand, extract, and build), and then further to a single goal: build. Once I made the switch, the AI worked almost flawlessly – it never broke and even seemed to be playing intelligently at times. With this single objective – build – I could focus the AI on the important parts – selecting what and where to build. When something goes wrong (can’t build in the desired location, can’t afford the desired structure), it’s easy to abort and start over, letting the AI pick something new to build.

The AI’s thinking goes something like this:

  1. Pick a structure to build.
  2. Pick a location to build the structure.
  3. Wait until I can afford to build the structure.
  4. Build the structure.

It’s a simple process, and the first two steps are the important ones.

When selecting a structure, the AI uses several factors. First, if there are bitstreams in their territory that don’t have extractors, they choose to build an extractor (as any player should). If not, they look at all the structures they can build and choose one based on their aggression and the effectiveness of the unit against their enemies. If the AI’s aggression is low, they’re more likely to select a defensive structure like shields, factories, or artillery – structures effective when turtling. If it’s high, they’re more likely to choose missile turrets, blaster turrets, or outposts – structures effective for quick expansion and harassment. The second factor – effectiveness – makes an AI more likely to choose the best structure to counter an enemy. If you have shields, they’re more likely to pick factories (units can enter the shield) or blasters (bonus vs shields). If you have artillery, they’re more likely to build a shield. Between the two, the AI can make a fair decision on what would be best to build.

When placing a structure, the AI uses one factor primarily – fragility. This is a new value I added that tells the AI how “fragile” the unit is, which basically translates to whether the structure should be placed on the “inside” of their territory (closer to outposts) or on the edge. It’s probably not the most accurate term, since it’s different from the structure’s health or strength – the blaster, for instance, has low health but a fragility of 0, telling the AI to build it close to the edge of their territory. Shields, factories, and artillery have a higher fragility, telling the AI to put it closer to their outposts or core.

Between the two, I’ve seen some interesting habits. The AI is pretty good about placement of outposts – they usually go on the edge of their territory to provide maximum expansion. Turrets are placed in about the right ranges to counter effectively – missiles are usually placed outside the range of blasters, for example. They’re also more likely to use shields or factories, which is great. Overall, I’m extremely pleased that such a small change – and more importantly a change to a simpler design – has resulted in a fairly dynamic AI that behaves well and is easy to tweak.

More importantly, I’ve started to lose against my own AI. The harder AI cheats a bit (it gets more money than the player), but I’m having a hard time out-maneuvering it. Sometimes the AI is downright brutal, using outposts to box me in and restrict my resource capacity, limiting what I can build and leaving me to build blasters on the edge of my territory in a feeble attempt to fight back. And then the AI builds a new outpost, neutralizing my blasters and leaving me powerless, waiting for my inevitable defeat. Which is a wonderful thing when I’m trying to develop a decent AI to play against. Of course, that means I need to tweak some settings so a come-from-behind victory is possible – especially now that I’m finding myself in that position.

Categories
Projects

BattleGrid Update – July

There wasn’t much progress in July. Between the July 4th holiday, the Steam summer sale, and buying a new home, I didn’t have as much free time as I’d have liked.

Goals for July
My goals for July were to get some work done on the AI and effects.

What got done?
Toward the end of the month, I finally got down to business and worked on ironing out some AI bugs. The AI won’t wait for you to claim any bitstreams in your territory anymore (though they still seem to think a while before deciding to do something else), and they’re slightly less likely to go totally brain-dead later in the game. I also fixed an annoying bug with structure placement.

I also started running into a bug where my UI texture atlas is being sent to the web player at a really low resolution, causing the entire UI to look blurry. For the time being, I’ve been testing using a Windows executable deployment, which is great because the game runs at 150 – 200 FPS as a native executable. And BattleGrid looks pretty good when it’s running silky smooth.

I also started thinking about some new ideas for the graphics, and while I doubt I’ll use them for this game, I might use the ideas in a future project. Here’s a shot of what I was working on:

Voxelized blaster turret
The blaster turret from BattleGrid rebuilt using voxels.

What’s left?
AI Rewrite and Updates
I need to improve the AI a bit further, and there’s still the rewrite option open. I’m still not sure if I want to move to something else. Either way, the strategic AI is still pretty weak.

Effects
Same as before, I want to give some more life to everything.

Map Sharing
Still to-do, and tempted to scrap it entirely. I may just postpone it until post-release, since the editor is already working and players can make their own maps – they just won’t be able to share them.

Music
I’m starting to get some general ideas for the music, but I’m still stuck on the actual creation part.

Goals for August
Last month’s goals carry over into August – AI and effects. It’s going to take some epiphanies to figure out exactly how to handle the AI. I could make the AI smarter about picking and placing structures, but I’m not yet sure how to do that efficiently. Right now, structure placement is mostly random, aside from outposts.

The effects are a bit easier to get done, but they don’t feel final, so they’ll still need work until I find something I really like.

Categories
Projects

BattleGrid Update – June

Time for the June update, a little late because the end of June was busy… In June, I managed to clean up a few things, fix some annoying bugs, and do some general housekeeping. I didn’t get as much done as I would have liked, but that’s what I expected.

Goals for June
My goals for June were to add some extra effects, fix some bugs with the editor and defense modes, and look into some new options for my AI.

What got done?
New Effects
I added in a few new effects, but not as many as I’d like. Nearly every unit has a sound effect now, but they will likely need to be improved. I switched back to a few better-but-higher-draw-call effects (projectile trails) because of rendering improvements with the map and units.

Defense Mode Testing
I tested the defense mode, fixed a few bugs with it, and added some new UI elements for it. I think defense mode is about done – the only bugs left are general bugs not limited to defense mode.

New Resource Storage Concept
I had a new idea for how to handle resource storage to make it a bit more dynamic, so I implemented it. I’m happy with how it turned out, and I think it adds a lot to the game. I’m planning on describing the changes in a later post.

UI Update
I cleaned up my UI textures so it’s easy to create new pieces of the UI and should lower texture memory usage overall. I also updated the map previews to load from disk rather than being generated at runtime. While the runtime generation was neat, it was a huge processor hog. Finally, I added a new loading screen that features a progress bar so I can start to track loading times (and hopefully reduce them).

What’s left?
AI Rewrite and Updates
Same as last month, the AI still needs to be rewritten in a new system (if I choose to go that way), and I need to improve it overall.

Effects
There are still a few effects left to add. Mostly sound effects, but also some particle effects and maybe some miscellaneous environmental effects.

Map Sharing
Same as last month. I still need to create the website for BattleGrid map submissions. Along with this, I’ll need to update the UI in-game and think of an elegant way to let the player browse through possibly hundreds of maps.

Music
I’m still terrible at creating music. Even if I think I have a good idea, I don’t have the skills to make good-sounding music from it.

Goals for July
I’ll likely focus on the effects and AI for July, since they’re the biggest “gamey” parts left to implement. Once those are done, I’m down to the ancillary stuff like the map sharing site and the music, which I still expect to take several months while I try to build some music-making skills.