Happy New Years and stuff
By Mike DalyJanuary 9th, 2010
Hawaii
So I took a nice vacation in Hawaii with the family. I've been there a few times already, so this time I focused on relaxing. I did get a decent amount of reading done. You may also find the following books interesting:
- Blink by Malcolm Gladwell
- Outliers by Malcolm Gladwell
- Super Freakonomics by Steven Levitt & Stephen Dubner
New years
Jody hosted a nice new years party at his house. It was good to catch up with people, particularly Stephen and Leanna Caudle who just had a newborn baby. Everyone seems to be having babies these days, what's up with that?
Video games
I've been talking to a few people about what games I enjoyed playing over the course of 2009. I'll reiterate them here in case you are looking out for something new to play.
- Shadow Complex
- Dragon Age: Origins
- Halo 3: ODST
- Torchlight
- Runman Race Around the World (free)
- World of Goo
- I MAED A GAM3 W1TH ZOMB1ES!!!1
- DoomRL (free)
- Defense Grid
- Spelunky (free)
- Cogs
Also, I'd like to point out that I had an awesome year as far as making video games. Sure, I failed at my original goal of submitting another IGF entry, but on the other hand, these are the games I made:
- Orbital
- Comic Game
- Sunny Day
- Daly Homes Inc
- Karma Riot
Ok, so Karma Riot isn't done yet and it doesn't have its own page, so maybe it doesn't count. But still, that's a pretty impressive run, I think. That's not even including other Game Jam games that I contributed to such as Space Fish, Robot Love, and Tether. 2009 was a good year for me with regards to hobby game development. Hopefully in the coming year, I'll actually distribute one of the games I worked on for once.
I still assert that I'm going to have an exicting post about Karma Riot soon, but I'm still not quite there yet, so I'll put it off once again. Happy new years people.
Comments
Attention Convention
By Mike DalyJanuary 31st, 2010
I just ate the most delicious meal of Bojangles I've ever had. The biscuit was flaky and generously buttered, the supremes and bo rounds were hot out of the ... vat (or whatever they use to cook them; I don't really want to know), the honey mustard was a little tangier than usual, and I decided to indulge myself with a bo berry biscuit as well. It helped that I hadn't had anything to eat yet so I was extra hungry.
But that wasn't what made it the best meal. The thing that really drove it home was that this meal was my (self-appointed) reward for completing a game for the 2010 Global Game Jam. I made a game from scratch this weekend and having it done (on time, no less) is extremely gratifying; the food tastes better, the snow is prettier, and I don't mind George sitting on my keyboard and sneezing on the monitor as much.
Global Game Jam 2010
Just to get people up to speed; the Global Game Jam is a one-weekend event where people get together and try to build small games that conform to a surprise theme. Like last year, the Triangle area had a site hosted by Icarus Studios and organized by my friend Mike Lee.
This year, we had an exciting twist; the Triangle area got a pile of snow this weekend. This much (or any) snow is kind of unusual for the area so naturally everyone panicked and shut down. Unfortunately, the places to close included our site. This made development tricky because everyone kind of scattered and had to work remotely and Mike and I couldn't keep an eye on each team's progress and help out as necessary.

Nick Darnell's alternate Game Jam site
Last year, I actually got to the jam late and ended up bouncing between a few projects, which is why I don't have an entry in the games page for it. This year, I was concentrating on making sure that everyone else was discussing things, forming balanced groups, and had reasonable concepts so I didn't actually really participate in the concept proposal or team forming part. I decded to strike it out on my own and try to make a game solo.
Attention Convention
The theme this year was to make a game that centered around the concept of DECEPTION and must also contain at least one of these things: a PET, a NET, or a SET.
The concept that I came up with was a multiplayer game where one player was trying to help a group of underage dudes sneak past security into an adults-only convention and the other player tries to pick the dudes out of a crowd. The first player can purchase changes to their appearance that make them harder to pick out of the crowd, at the cost of risking not bringing enough money into the convention. The second player can net anyone he wants, but netting legal attendees makes the first player have to bring less money to the convention to win.

Net trap gameplay
Instead of going on and on about it here, I'll just point you to the newly added game page for it: Attention Convention. You might notice another recent addition to the games page. I will talk about this next time, muah ha ha!
On one closing note, if you don't recognize some of the words in the story, be careful about learning via unfiltered google image search.
Comments
Mike Daly
February 4th, 2010 - 11:13 pm
We got about 7 inches of snow.
And I'm glad you enjoyed the story.
N8 (as guest)
February 3rd, 2010 - 09:15 pm
Re: the story. Ew.
Mummy (as guest)
February 2nd, 2010 - 08:37 pm
I love the pic. How much snow did you get?
Karma Riot phase 1!
By Mike DalyFebruary 11th, 2010
Over the past few months, I've been alluding to almost being at a major milestone for Karma Riot. Well, we finally hit that milestone: phase 1 complete! Actually, we hit it a month ago, but then I had to talk about Global Game Jam while it was fresh.
So, what does Phase 1 complete mean? It means that we have a working prototype that I'm ok with letting other people play. I know that's kind of a squishy definition, but using that as my milestone marker has a lot of practical advantages, and it's pretty much as far as I ever get with most of my hobby games. More specifically, here are the things we got done in phase 1:
- Established art constraints and style
- Kart driving simulation, including dynamic object collision response
- Prototype tracks
- Ranking and lap timing
- State machine including menus for choosing player count, speed, and track
- HUD
- Moves (fireball, side bump, and shield)
- Basic sound effects and music
- Kart trail rendering and physics
- A little polish and game balance here and there
But you don't have to take my word for it. One of the other nice things about being at phase 1 is that I put up a new entry on the Games page for it: Karma Riot. You cand download and play the prototype from there, however, you will need wired 360 controllers for each player.

Power slide to victory!
In case you didn't realize this, I'm working on this project with a friend - Paul Spychala. At the end of phase 1 we took a look at the game and decided that it was decent enough to go to phase 2. If/when we get to the end of phase 2, it should be at a point where we can consider releasing it on Xbox Indie Games. To close things off, here are a list of development stats:
- Phase 1 calendar time: 19 weeks
- Phase 1 initial task time estimates: 92 hours
- Phase 1 actual implementation time (combined): 119 hours
- Phase 1 average hours per week (combined): 6
- Phase 2 initial task time estimates: 126 hours
- Phase 2 projected completion calendar time: 20-26 weeks
Comments
Mash Buttons Until Death
By Mike DalyFebruary 27th, 2010
Hey guys. I created another short crappy game recently that I figured I'd post about. The game is called "Mash Buttons Until Death" or MaBUD for short. You can check out the Games page for it if you are interested in getting more information on the game and why it is so crappy.

Here's your requisite screenshot
There is exciting stuff going on in Karma Riot as well, but I'll save that for another post. For now I'll just tease with this screenshot:

Ooh, new stage! Who's driving those other Karts?
Later
Comments
Mike Daly
March 1st, 2010 - 09:13 pm
Computers suck at fancy games, so probably not. This game is terrible; don't play it.
Jody
March 1st, 2010 - 12:33 am
That game (button masher) looks terrible Mike. On a related note, I tried playing AVP demo but couldn't get connected to a game. I wonder if my computer could even play it.
BitmapToTiles
By Mike DalyMarch 14th, 2010
I've been doing a lot of work lately on homemade content tools for Karma Riot. It's really rewarding to create a tool and see it working, especially since I know other people can get the benefit from it too. Today, I'd like to go over some of the tools I've made for creating race tracks.
It's no secret that KR is directly inspired by Super Mario Kart. In SMK, if you take a look at the tracks from a top-down perspective and overlay a grid, you can see that the tracks are actually constructed out of a 128 by 128 grid of 8 by 8 pixel tiles.

Exhibit A: 2x zoom of Mario Circuit 2 in the Mushroom Cup
I want to do this as well. This way each track simply uses a 1024 by 1024 texture for rendering, so the challenge is how do we construct this texture from individual tiles?
Instead of creating a custom level editor, I decided to have track authors instead create a 128 by 128 image where each pixel in the image represents a tile the the full sized map. The images would use a small fixed palette of colors where each color represents a type of terrain. Basically, you just create the layout in MS Paint, or your image editor of choice. Creating the basic shape of maps in this way has a lot of advantages:
- Everyone already has a map editor
- Everyone already knows how to use the editor - no learning curve
- The editing process is simple and intuitive - just draw out a shape
- The editor comes with tools like undo, flood fill, lines, curves, shapes, and selection
- Some editors come with tools like magic wand, layers, and clone stamp (very useful)
- The editor reliably handles a known filetype - little to no chance of corruption, instability, or version mismatches
- I didn't have to create an editor that does any of these things
Once this image has been created, I have a processing tool that 'compiles' it into a high-resolution image. The compiler can make intelligent decisions about what tiles to use in each location based off of what the neighboring terrain types are. However, instead of just coding in a bunch of specific conditions that match a fixed tileset, I decided to make it data driven. The compiler is provided two things: a rule set, and a tile set.
The tile set is simply an image that contains an atlas of 8 by 8 tiles that you want to be used in the construction of your map. The tile set author can provide as many or as few tiles as they want and arrange them in any way they want. For example:

Exhibit B: 2x zoom of KR's "mountains" tile set
The rule set is an XML file that contains an arbitrary number of rules where each rule basically just says: for the terrain type of this pixel and given a particular configuration of neighboring tiles, use this set of tiles from the associated tile set. I'm not going to get into the nitty gritty of how these patterns are defined but I am quite happy with the solution that I came up with. Rules are fairly compact and easy to read but also flexible enough where you can describe a lot of situations and you don't need a ton of rule duplication to describe similar situations. At the same time I made it very verbose about anything it encounters that is out of the usual, so it identifies any rule parsing errors and while processing the track clearly identifies any situations that aren't covered by the rules you gave it.
So with the compiler (called BitmapToTiles), you give it an input image, a rule set (which references a corresponding tile set), and an output filename and it churns away. Let's take another look at the SMK example segment from earlier:

Exhibit C: 16x zoom of how you would represent that track in the base layout image

Exhibit D: 2x zoom of the compiled result
Now the cool thing about using a compiler is that if you play the level and you want to make some quick edits, rebuilding is trivial - just change the base layout (which is also used for the game's driving simulation) and the high res image can be kept in sync. Another handy feature is that you can change track types easily. Here I've changed the same example to use the "jungle" tile set, which actually has a completely different layout and set of rules for how terrain types interact with each other:

Exhibit E: 2x zoom of the jungle version
The BitmapToTiles program itself is fairly generic; it doesn't have any KR-specific assumptions. Each track also has an XML file that sets its name, tile set, numberof laps, music, etc. By creating another wrapper program for BitmapToTiles, I can just crawl through the track's XML and its references to figure out all of the arguments that need to be passed into BitmapToTiles. This wrapper, called TrackToTiles, only takes in the track XML file as a command line arg, which is mainly a convenience for compiling tracks. To further add to the convenience, I added it to my right click menu for XML files, so that compiling a track is super-easy!

So easy!
I had a blast making these tools, and I'm really proud of how they turned out. That being said, I realize that there would be tons and tons of additional work to get the tools and the tilesets to a point where I could just give them to some stranger and expect them to be able to make a map for the game. Fortunately, that's not a requirement (for now). In closing, I'll leave you with a preview of one of the tracks I put together. You'll have to use your imagination to figure out what it looks like in game:

2x zoom of "Jungle Rumble I" (tentative title) base layout
Comments
Sprite Maker
By Mike DalyApril 16th, 2010
One of my stylistic goals of Karma Riot is to have all the things in the game look like hand-made sprites. I would also like to have things viewable from many angles and have smooth animation. Since there are so many pixels that need to be produced to accomplish this latter goal, manually making each frame for each sprite is pretty much out the window. Instead I've decided to create 3d models and animations then try processing them so that they look like old hand-made sprites.
Behold; the sprite maker:
![]()
The UI for Sprite Maker
Sprite Maker is a utility that runs inside of 3ds Max. I wrote it in Max's built-in scripting language, MaxScript. I'm not going to go on about every little feature it has; just look at the options and use your imagination. The main point of the tool is that once I've created and animated a 3d scene:
![]()
source scene in Max
I tell this thing to go and it automatically takes rendered frames of the scene for each frame of animation in the sequence, each camera angle, and then composites the results into a single image, giving you something like this:
![]()
The frame and angle counts are lowered here just to make the sheet fit nicely on the web
In order to make the resulting sprite sheet look more like classic sprites, the Sprite Maker just passes the resulting image off to the Post Process Manager - another custom tool. The Post Process Manager simply takes in a config file and uses the config file to determine what external operations to perform on the input file. I've currently created two operations; the first is 'palettize':
![]()
Getting there
You can re-use the same configuration file for many sprites or create a custom configuration for some sprites that you want to process differently than others. All of the Sprite Manager settings including the configuration file to use are stored in the Max file. Anyway, here's the second image processor; the 'outliner':
![]()
Now we are cooking with fire
To get a sprite in the game, it's a matter of adding an entry to an XML file that indicates how many cells wide and high the sheet is along with a few other handy parameters. Now that my pipeline is complete, I should be able to start churning out effects.
![]()
A 2x zoom of the result
Later
Comments
Hans (as guest)
May 8th, 2010 - 12:46 am
Thanks Mike! I can't wait to check it out. I'm really interested in the post effect that you have for outlining. It is right on the money in terms of look. I'll have to have a play around and see if I can even get it close.
Really appreciate you showing your tricks. Make sure you keep some of it to yourself ^_^
Mike Daly
May 6th, 2010 - 12:14 am
Sure; I don't have any objection to sharing it. Check out this thread for a download link and instructions: Sprite Maker.
Disclaimer; I haven't done much to try to make this thing easy to use so you are on your own trying to figure out how to get things working. Since I haven't posted the post-processing stuff, you'll just have to leave that disabled.
Hans (as guest)
May 5th, 2010 - 07:10 pm
Any chance you might release these scripts in the future? (I would totally pay for something like this too)
Jody
April 18th, 2010 - 12:23 pm
This is a comment test.
Glide
By Mike DalyMay 22nd, 2010
So at work (I work on Gamebryo in case you didn't know), we've started a project where the development team spends one day per week working on game prototypes using our engine. This is a pretty useful exersize for us for a few reasons:
- We can (kind of) see our product from an end user's perspecive - we are eating our own dog-food as they say
- We are testing the upcoming release of Gamebryo in a way that directed and automated testing does not
- Team members are working with systems they are unfamiliar with which is helping with knowledge transfer and redundancy
- It gives us a creative outlet, which is always fun
- It breaks up the soul-draining monotony of finalizing a release (all testing, bug-fixing, documentation, and paperwork)
- Probably some other reasons
I was really happy with how good of a turnout we got for project proposals. In the end, we had to settle down to two projects to divide the team between and my proposal was one of the ones that got voted on. My proposal (entitled "Glide") was to make a game where players control a skydiver that can deploy or retract hang-gliding wings at any time. The goal is to get the highest score you can on a single drop where contributing factors are how smooth your landing was, the value of the landing platform you ended up on, how many floating rings you passed through on the way down, and any bonus objectives. You can think of it as combining the relaxing pace and exploration of Pilotwings with the reward mechanisms and social aspects of Monkey Target.
I made some concept sketches that I'll subject you to, but not without first disclaiming that I'm a terrible artist. You've been warned.

The game must feature a Pterodactyl
So that's fun. I'm still cranking away on Karma Riot, although making effects required a lot of iteration which slowed things down a lot. In order to keep up the pace, I've decided to put effects on the back burner and concentrate on more pressing features. I did sit down for two hours this week and crank out a new song for the sound track. Now we have one song per track type, which will probably be enough to get away with for this phase. Check it out:
Later
Comments
E3 2010
By Mike DalyJune 23rd, 2010
Hey guys, there's been some interesting stuff going on lately. I've been so busy I haven't taken the time to make an update, but if I don't do it now I'm going to start forgetting stuff, so here I go.
Last week I went to E3 for the first time. I only got half a day there, but I still got to see a lot of cool stuff. I'll boil down my experience into a few conventient bullets:
- Microsoft's Kinect is a bad idea and would we totally pointless if it weren't for the impressive Dance Central
- I can find no reason whatsoever to get excited about Sony's Move. It is a more expensive Wii that doesn't have any games to back it up. The Wii has already demonstrated that motion control based experiences are shallow.
- Nintendo's 3DS seemed to steal the show in terms of interest. It looks like it has a ton of potential. Now if someone could only convince Nintendo to use modern graphics techniques they would have a real winner on their hands.
- I'm not that interested in the big games that were shown, but I was most impressed by the graphics in Sega's Vanquish.
- All of the things that got me genuinely excited were downloadable (XBLA, PSN) games, as listed below.
There were a few games that I saw that I got really excited about. It is no coincidence that they are all smaller downloadable games that support multiplayer co-op. None of them seem to be getting a lot of press, so this may be news to you even if you were following E3. I got a little lazy and just decided to embed the trailers; take a look: (games are displayed in no particular order)
Castlevania: Harmony of Despair
Necromachina
Scott Pilgrim vs. The World
Glide
So Glide development is still coming along at work quite nicely, although only getting to work one day a week on it (and Friday at that) makes progress quite slow. Despite all of that, we took this video after about 6 days of effort was put in. I think we've come a really long way. This project is a team effort, but the stuff that I specifically contributed were flight mechanics, camera mechanics, landing coordination, and level design. Sadly, youtube took a big crap when I tried to upload it, so you'll need to download the video and hope you have whatever obscure codec I used. Check it out:
Well, that's about enough embedded videos for one month. Maybe next month I'll go back to nice old fashioned static pictures. Later!
Comments
V (as guest)
June 24th, 2010 - 01:08 am
Very cool vid! Excitement! Super wide angle lens needed (in place of spherical world. ;)
Mike Daly
June 24th, 2010 - 12:02 am
Spherical world support is still fairly low of the priority list relative to other gameplay stuff that we are working on. Also, the project is in some flux right now so its fate is unknown. In other words, I still would love to try out the exaggerated proportions tiny planet thing but I don't know if we'll ever get there.
DrMuffin (as guest)
June 23rd, 2010 - 11:56 am
Hooray for multiplayer coop! I hadn't heard about these. Thanks for showing! ^^
Enne (as guest)
June 23rd, 2010 - 08:58 am
The Glide flight mechanics look really sweet. Are you still going to move towards the graphic style (in particular using an overly-small sphere to put features on rather than a plane) from your last post?
Get ready to RIOT!
By Mike DalyJuly 12th, 2010
Most exciting news: Paul and I have completed Karma Riot phase 2! Woo hoo! We are winners!
We originally defined the things that would be in phase 2 as the bare minimum stuff we thought would be required to make the game ready for release on Xbox Live Indie Games. As it turns out, we didn't need some of the stuff on the original list so we cut it, but we felt we needed some other things before really being ready to ship to joe gamer, which we did not add to the phase. The result of all this is that we don't think it's ready to ship yet. However, it's still worth talking about all of the awesome stuff we did accomplish for the milestone.
Here are some of the things we added in phase 2 (in no particular order):
- AI drivers
- "Race Circuit" (/Grand Prix) mode
- 12 tracks
- 3 track themes (jungle/mud, mountain/ice, monastery)
- 3 "speeds" for levels of racing experience
- Animated sprite effects
- Cell shaded and outlined sprites
- 5 custom songs in soundtrack
- Engine and tire sounds
- General bug fixin'
- Game balancin'
- General polish
Some of my favorite accomplishments for this phase came in the tools I made to support generating content for the game. Particularly, I'm quite proud of how the BitmapToTiles and Sprite Maker turned out. They were both a lot of fun to work on and turned out to be tremendously useful.

Here's the obligatory screenshot
Anyway, enough blabbering from me, there's more details, more screenshots, and a juicy download link all available from the games page: Karma Riot v2!
I'm going to take a break for a few weeks now, but almost as exciting as being done with phase 2 is that I now get to decide what to work on next.
Here are some development stats:
- Phase 2 calendar time: 26 weeks
- Phase 2 initial task time estimates: 126 hours
- Phase 2 actual implementation time (combined): 168 hours
- Phase 2 average hours per week (combined): 6.5
Comments
Mike Daly
July 13th, 2010 - 02:25 pm
Download the game and take a look at the Content/Tracks folder. It has the base and composited versions of each track as plain old bitmaps. In fact, all of the game's data is uncompressed, so you can actually change the track's base image, then use the tracktotiles.exe in the bin folder to re-composite the track. The TrackTypes folder holds the tilesets and tiling rule definitions. You can even add your own circuits of custom tracks by editing Content\Circuit.xml
Vince (as guest)
July 13th, 2010 - 01:06 am
Cool!
Want more examples of input and output from BitmapToTiles!
January 17th, 2010 - 02:25 pm
I've had to force myself to stop playing DoomRL too. When I looked at my stats and say 17 hours, I was like "no way!"
January 11th, 2010 - 12:23 pm
DoomRL Ruined my life! I have logged over 60 hours on it. I've also reserved superfreakonomics at the library. The first book made a big impact in how I view many life situations (i analyaze incentives now).