Infinifranchise Post-Mortem

The Backstory

The Infinifranchise, starting with Infinitron, was born from a hastily invented game that I played on two occasions many years ago. I wanted to make a strategy game where all the units were created as we played, thus requiring only scraps of paper and a few pencils. If I recall correctly, I unexcitedly won the first game, like a boxer winning because his opponent was killed rescuing orphans from a fire the night previous, as the game wasn’t that well defined. The second game ended in what was technically a tie, as my friend flipped out over the fact that we could literally do whatever we wanted, which makes for a broken game. I think he tried to nuke me. By some chain of thoughts I remembered this last year and set out to create a valid game similar to what I had played years before, and ultimately ended up with Infinitron.

Similar to its inspiration, only two games of Infinitron have ever been played. The second was the test game featured in the rules, played over the internet with a friend named Jon. The first was what I would say was the only real game played; it lasted eight hours, most likely had no more than twenty turns, and was one of the most draining games I had ever played; I had no desire to play again for quite some time. Thirty minute turns were common, as we haggled over deals for units and abilities and attempted to figure out how the rules actually applied.

Intelligent Destruction was coded over a 48-hour period for a game programming contest (which I lost, I might add) and is essentially a watered down, no-haggling version of Infinitron. It’s two player hot-seat, something you don’t see a lot of nowadays, and has, as far as I know, never actually been seriously played. Perhaps you will be the first!

Returning home from school for the summer, I programmed Stockmotron, my first web-based game. After it tapered down from the whopping high of about twenty active members to essentially none, I reused a lot of the code to make a new game – Infinarena. It came to me in a vision of sorts, laying down for a nap and teetering between consciousness and sleep, and had something to do with triangles. By the time I finished the first version, it had absolutely nothing to do with triangles; players would create units by enumerating a number of traits and abilities they wanted the units to have. They would then fight and randomly use their abilities and attack each other, of which a text based representation could be viewed. I was able to get about fifteen beta players by spamming my buddies list and an IRC channel I was in at the time, who proceeded to give most of their fighters offensive names and quickly realize that strong beefy units were generally the most successful.

Upset with the direction the game was taking, I did a major overhaul of the game system. A rudimentary scripting language was used to control the units, moving them and attacking on a two-dimensional grid. There was no random chance involved, and the battles were played back through a DHTML / JavaScript animated playback engine. Instead of simply listing attributes, players customized their units and then gave them simple AI scripts to determine their actions. Shortly after rolling out this “new and improved” version two, membership dropped to a handful of players who mostly copied my example code. As it turns out, cryptic scripting languages alienate people, and I was unable to find any new, programming savvy players to continue testing. The point at which someone posted “Man, this shit fucking sucks. You really created a crappy product.” on the message board, the experiment was essentially over. Feel free to play around with it, though. (As an amusing side note, I made a simplified, mildly mundane version for an event the RPI Game Development Club put on for incoming freshmen. They loved it. Figures, crazy RPI kids. More on this later.)

Infinifrag was conceived a little bit over a month ago and was intended to be the showcase of the Infinifranchise. It started out as being small team based, with a commander, who would supervise construction and script weapons and player classes, and runners, who would perform the standard FPS duty of killing stuff. After going through the preliminary design document with the small team I assembled, we cut a lot out of the game and ended up going more toward a fully action oriented gameplay style. The one problem I couldn’t solve was how to make building work on the fly; in the end it was a bright freshman named Keith who saved my ass by pointing out that blocks could simply be “shot” at the faces of other blocks and the floor. Problem solved. A month or so later version 0.1 was finished, which as of writing is the current version and may be so for a while.

What Went Right

Some people value fancy graphics in a game; I value creativity.

That said, my favorite aspect of the Infinifranchise is that the games are about creativity. Not just creativity within the framework of a traditional game, like unit strategy in a game of Warhammer. It’s absolute, abstract creativity, forcing you to invent things from a much larger pool of permutations. Not a lot of games feature this, which I like to think makes the Infinifranchise stand out. When played correctly, although it’s tough, this open ended creative gameplay is fun and rewarding, as it can infer a real sense of accomplishment from having actually created something new.

What Went Wrong

Unfortunately, the things that made the Infinifranchise great are the same things that made them alienating and, at times, ridiculous. It’s very hard to be creative on demand, which can lead to games that are draining and not terribly spectacular if the players aren’t in the groove. As a result, the games tended to have a limited audience and be overly complicated, although this is most definitely also a consequence of me.

Infinitron / Intelligent Destruction

Infinitron was extremely difficult to play, and with the only real game lasting eight hours, sort of counts as a con (unless you like that sort of challenge). Additionally, the rules of the game create a very strong positive feedback situation, whereby the first player to capture cities gains a resource advantage that compounds into him having bigger and better units earlier in the game. Thus, most players would simply rush out to capture as quickly as possible, and then slowly roll in increasingly stronger units to finish the game.

Those two complaints aside, however, Infinitron brought what I feel were some excellent mechanics. Creating terrain on the fly was exciting and introduced some excellent strategy to the game, along with being able to leave a creative mark on the battlefield – you get to fight on the grounds that you created yourself. The concept of picking and sticking to a theme also helped to shape the game creatively, but was significantly more trivial than being able to customize the terrain. Overall, Infinitron was rather intense, and may even have some promise for play in the future – I’d like to sometime create a small league and try it out in a larger, group setting.

Infinarena

On the bright side, I really like a lot of the technology I developed for Infinarena; it’s mildly Ajax-y and I like the way it works. Unfortunately, it never really had the best member-base for what it is (an obscure programming game) and is a bit too in-depth for the attention deficit web-game crowd (myself included). The community also seemingly bottomed out before there was any chance for a good group of dedicated players to set in, with only a few people attempting to write their own AIs instead of just modifying the example – this prevented me from rolling out any of the story elements I had planned, such as the invasion of the Void, where players would cooperatively fight against an invading force and work together to find their weaknesses. Oh well.

This was my first big lesson in audience – as it was an online game and not just a board game, I was able to bring in actual players, and pretty quickly lose them through overly-complicated gameplay. On one hand it was simply not finding people from the appropriate niche I had in mind, but it was nevertheless a reminder that I need to keep my audience in mind.

Infinifrag

I just finished the first version (0.1) of Infinifrag a few days ago, so I haven’t had much feedback aside from during bug testing. I plan to roll it out at the next LAN party, and will presumably add the results to this document at that time. During bug testing it was received pretty well, with the only real complaints being technical, such as slightly buggy collisions and a few other minor glitches.

I’m very fond of the block building mechanic, and plan to add special block types in the future, such as projectile shooting blocks and moving blocks. I’d also like to open up weapons customization a little more, as there’s a very finite amount of choices, resulting in only about three distinct weapon configurations – rocket/mortar weapons, sniper weapons, and low-power rapid weapons. I think that it definitely has promise, though, and hope that it holds up to extended playtesting.

What This Means

I’d like to think that the Infinifranchise holds some sort of special meaning being abstractly creative; I started out with the slightly large goal of creating “the greatest game ever”, and fell quite a bit short, at least as far as I’m concerned. However, I’ve learned quite a few valuable lessons along the way:

  • When making things like this, it’s easy to get stuck in the meta-game; when you’re worrying more about Turing-completeness than gameplay, it might be a good time for a sanity check.
  • Remember your audience! Maybe, more importantly, make sure your audience is more than just yourself, or maybe just make sure to build a single player mode =).
  • It’s alright to fix some elements of gameplay, as giving players too many options means they’ll simply resort to obscenely-themed things.
  • I really doubt there will ever be an end all, “greatest game ever”, and even if there is you’ll still get bored of it (think World of Warcraft!). Part of the fun of playing a game, whether it’s an actual “game” game or just anything else in life that falls under the human definition of game, is discovering it and figuring it out. In all honesty, I’m surprised I didn’t figure this out earlier, as I get bored working on projects before they’re even finished – the secret is change and dynamics, so ride that sine wave!

To tell you the truth, I have no clue how I came up with the name Infinitron. Although it’s just a poorly conceived name that’s sort of awkward to type, to me it represents the infinite possibilities of creative gameplay, and what I hoped to create with the games of the Infinifranchise. There’s a bit of magic to knowing that you have absolutely no clue how a game will end, let alone what will happen along the way.

Intelligent Destruction

I coded this in 48 hours for the RPI GameJam competition, which ended today. It’s actually based on a board game that I’m working on and personally feel is far superior, but it’s worth checking out anyway – if anything, it’ll give you a good introduction to the wonderful board game that is to come.

(Edit: The game referenced is Infinitron.)

It’s a two player hot-seat (one computer) game that’s probably going to be confusing at first. However, there is an in-game help that should give you a few pointers to get you started. The basic gist is as follows: research units and then* build them* to capture cities to gain points (gained at the beginning of your turn) and increase your unit cap. Researching and building units costs points. When you capture a city, you can create and shape the terrain around the city, but only once. Begin your turn with one of your units on the enemy capital to win the game.

Download Intelligent Destruction

Screenshot of an Intelligent Destruction game.

Infinitron

Infinitron is a tactical board game in which players create the board, the units, and even the rules as they play the game. It started the Infinifranchise, and, in hindsight, sort of resembles a less pedantic nomic. Information about Infinitron can be found in the Infinifranchise Post-Mortem.

While Infinitron is somewhat playable, the rules aren’t necessarily balanced, or that fun. I’ve played one game of Infinitron, with two friends – it lasted 8 hours, and I’m pretty sure everyone was unhappy by the end. But, that doesn’t mean you won’t necessarily enjoy it!

Download the Rules for Infinitron

Infinifrag, Version 1.1

Ever since the first less-than-spectacular playtest of Infinifrag, I’ve always wanted to fix some of the big gameplay flaws and give it another shot. With the end-of-semester RPI ACM/GDC LAN party right around the corner, I figured that I’d dig back into the (ugly) code of Infinifrag and get the game running in time for another playtest at the LAN. Although the game is mostly the same, there are a few large changes:

  • Improved network latency via TCP_NODELAY
  • No more War/Peace modes; players can build and shoot at any time!
  • “Weapon One” set with a much weaker default, requiring players to customize
  • “Weapon Two” replaced with Satchel Charge, which can blow up blocks!
  • Players now start with a small amount of energy which increases over time and resets when they die

Download Infinifrag v1.1 (8.86 MB)

Infinifrag, Version 0.1

If you’ve seen anything else from the Infinifranchise, it should be easy to see where Infinifrag fits in. A networked, multiplayer first person shooter, Infinifrag brings some of the trademark aspects of Infinitron and Infinarena to a whole new exciting level. Features include:

  • Deathmatch, Team-Deathmatch, and Capture the Flag style gameplay
  • Customizable “sprite-models”, sort of like a 3D Infinarena
  • Customizable weapons, with tons of variables to change
  • Customizable terrain, allowing you to build massive bases

To be frank, it’s no where close to a real FPS like Unreal Tournament. I coded the entire thing from scratch over the past month, using Python, pyGame, and OpenGL, the last of which I’d never used before. Honestly, I’ve never written any networked games before, let alone networked first person shooters. The collision gets weird sometimes. You might get stuck in the floor (that’s what ‘kill’ is for!). The blocks might start flashing colors, at which point all you need to do is quit and rejoin the game (it’s nothing too serious). It is, however, stable enough that you should be able to play it at a lan party with a handful of friends (it technically would support well over 128 players, but I’d try to keep it a little bit lower and would restart the server between matches). It’s also a blast to play, as you get to literally build your base from scratch and customize your weapons for whatever your team strategy happens to be.

Download Infinifrag v0.1 (10.2 MB)

This is most definitely a version 0.1, as there are still a few non-critical bugs to work out and quite a few features I’d like to add. I need to get it out there, though, as I think I’m done with the Infinifranchise for the moment and want to move on to exploring some new concepts; expect a post-mortem within the next few days.

So, what are you waiting for? Go grab some friends and get your Infinifrag on! Enjoy! =)

Building a base to protect the blue flag. Firing an explosive weapon.

Wikipedia Quest

Wikipedia Quest is my term project for a class I took in the Fall of 2007, Introduction to Artificial Intelligence. It is a cliche, dungeon crawler style RPG with retro graphics, with one catch: all of the content was created by an AI that skimmed Wikipedia. Using statistical linguistic processing, it attempts to fit the content it finds into a framework defined by a game grammar, which is then processed and saved into files that can be loaded into the game. The program also finds images for all content, resulting in an exciting game of somewhat random proportions.

Download the Paper (PDF)
Download WikipediA Quest (65.5 MB)

If you actually want to run the content generator, you’ll need to have the ImageMagick installed for image conversion (all images are downsampled to 200×150 with 3 bit color before using them in the game). It might not work for you, though, so you’re sort of on your own…

Download Source and Datafiles (32.1 MB)

The Wikipedia Quest title screen. Wikipedia Quest world map.

Wikipedia Quest combat screen.

Notepad Weekend

After talking to my friend Rob and sort of randomly coming up with the idea of a game of snake that looks like Notepad, I made it – it’s the first link. I then got curious about the idea of using SendMessage to set the text of an actual Notepad window, and made the second program; inspired by the Sub-7 trojan (my friend got me with it at a LAN party in grade-school) it pops up a fake error message, appears to close, but will then play the Star Wars ASCII video from www.asciimation.co.nz in the next Notepad window to open. By this time, it was pretty clear to me that I needed to make a game using this new-found technology: the dehydrated game! (It’s a vertical space shoot-em-up, mind you.)

Download snake.txt
Download StarWars Notepad
Download Dehydrated Game

snake.txt - A game written in SDL that looks like notepad. dehydrated vertical space shoot-em-up - A game that plays in a REAL notepad window.

Gregor Mendel’s Pro-Botanist

A screenshot of Gregor Mendel's Pro-Botanist.

Download Gregor Mendel’s Pro-Botanist

I made this for a “one week, one person, one game” competition with the assigned theme “a game your mother would play”. I won, but only because I was the only person who could think of and create an entry. My girlfriend’s mother really liked it, though, so I guess that makes me a real winner of sorts.

Running the Game

Run GMPB2006.exe, and the game will automatically unzip to your temporary directory and run. So simple my mother could do it!

Objective

Make as much money as possible over the summer by growing a garden and selling the crops at the farmer’s market at the end of each month.

Gameplay

At the beginning of each month, you start with an empty garden. Every day, you may choose to either plant a crop or do nothing – you do either by selecting the action and clicking on the grid. Plants will grow, each in their own unique way, for the remainder of the month. At the end of the month, the crops are picked and sold at the market, increasing your score. Various bonuses can be collected by achieving different objectives. See if you can figure them all out! (or read the spoiler at the end)

Design Approach

I literally designed this game to be a game my mother would want to play, and plan to have her try it out after I finish. Thus, as I worked on the game, I had the following thoughts in mind:

  • My mom likes non-confrontational games. I could never really get her to play Sonic the Hedgehog with me, or any other game that had things that moved quickly. She’s not a big gamer, but she was hooked on a variant of same game for a while – it’s simple, fun, and doesn’t put you on the spot. You can take as long as you want to take your turn.
  • My mom likes to garden. Hence, I made a game about gardening. To add to the atmosphere, I decided to simply add ambient sound effects instead of music. I got my sound effects from www.naturesongs.com, where they appear to be free / not illegal to use in this application. All art was done by myself.
  • My mom doesn’t like complicated games. Like I said before, she’s really not a gamer at all. So, I made the game simple, perhaps a little bit too simple, but I think that is better than it being too complicated. With a win condition of simply beating your high score, the game isn’t overly tough; you’re playing against yourself, not a machine hell-bent on your destruction.

And thus, I present to you, Gregor Mendel’s Pro-Botanist 2006. Enjoy!

Spoiler:

Full Garden (+$50) – Fill up every square in the garden with something.
Berry Bonanza (+$50) – Sell only raspberries and strawberries.
Rabbit Food (+$50) – Sell only carrots and lettuce.
Weeds Only (+$100) – Sell only weeds. Heh.

Contact

Name: Zach Barth

Email: zachbarth@gmail.com

AIM: thekrispykremlin

MSN/GTalk: zachbarth@gmail.com

Blacksmithing for Dummies

Searching for tools for a metal casting workshop I was to host, I found myself at Harbor Freight. In addition to finding the safety gear and 90-degree needle-nose pliers I needed, I stumbled upon a 55 pound anvil shaped object on sale for $30. After purchasing a 3 pound sledgehammer and digging a few pieces of steel out of the Electronics Club metal scrap box, I fired up the charcoal furnace and gave blacksmithing a try.

After making a few generically pointy rods, I made something of slight utilitarian merit – a hot chisel. When placed into the hardie hole of my “anvil”, a hot chisel would allow me to cut heated pieces of steel. It has come in handy when working on other blacksmithing projects, but typically requires that I straighten the edge back out afterwards.

A poorly made yet fairly effective hot chisel.