Projects I Won’t Finish A Game Development Log

13Aug/090

Bastion

In my spare time I've been working on a card game called Bastion where two players duke it out in a battle reminiscent of warfar in the 16th through 19th centuries. During this time period they had big solid fortresses, and an incredible variety of techniques for capturing those fortresses.

Here is a topic I started on GoodGamery to discuss the development of Bastion.

The core of the game has one player buying defenses while the other player tries to breach them. Most of the cards they use will be similar, except that the defender has access to a bunch of fortifications, while the attacker will use specialized units like miners, sappers, siege ladders, and so on.

Each of the units has a couple corresponding Combat cards, which represent maneuvers or tactics that the player's troops use in battle. The more expensive units have access to more flexible or more powerful Combat cards, and specialized troops have specialized Combats. By moving all of the specialized rules for the units onto their combat cards, it keeps the units from having a bunch of special keywords, numbers, and abilities. Instead, they have only a cost and a health, and the rest gets to be artwork. All of the complicated stuff is on the combat cards, and since you only pick from a couple of those per turn, the combat plays out pretty simply.

Here is a spoiler of all the cards I've designed so far.

Tagged as: , No Comments
27May/091

Basic Dominion Strategy

Here are some basic strategies for Dominion.

Big Money

Buy the best treasure you can afford each turn, or a Province. This is a basic strategy that will not win you many games, unless you're playing against new players.

1-2: No buy
3-5: Buy silver
6-7: Buy gold
8+: Buy Province

Grand Smithy

Buy Smithy until you have 3 of them. Otherwise, buy the best treasure you can afford, or a Province. This will always beat Big Money, because Smithy is usually a much better buy at 4-5 coins than silver.

1-2: No buy
3: Buy Silver
4-5: Buy Smithy, limit 3
6-7: Buy Gold
8+: Buy Province

Chapel Strategy

For turns 1 and 2, buy Chapel and Silver. After that, chapel away all coppers and estates you draw, while buying silvers and easing into another strategy, usually buying treasures and +card draw.

Turbo Remodel

This strategy means forgoing most card buys other than Remodel. When you start out, getting a Silver and a Remodel are optimal buys. Then,make the following Remodels:

Estate -> Remodel
Remodel -> Gold
Gold -> Province (Once the game is close to ending, unless you can use the Gold to buy a Province that turn)

Good support cards include Cellar, Throne Room, Village, and Chapel, which all make your Remodels more reliable and more frequent.

Other Tips

Don't buy too many actions that don't themselves give +actions. Otherwise you're at risk for drawing multiple actions when you can only play one of them.

When players start buying Provinces, carefully take note of how many each player has bought, and how many are left. Once there are about 1-2 provinces left per player, it's time to stop buying cards that don't give you +Victory, because there won't be enough time to draw any new cards you buy.

22May/091

Dominion Visual Spoiler

Dominion is a fun game by Donald X. Vaccarino.

Here is a visual spoiler of all the released cards: http://dominion.diehrstraits.com/

Here is a spoiler list of all the released cards, plus some that haven't been released yet: http://dominion.diehrstraits.com/list.html

Tagged as: , 1 Comment
28Apr/091

Chess Tactics

The essense of chess tactics is to make a single move which threatens the opponent twice - unless they have some counter tactic to either deal with both threats, they will end up in a worse position, because you will be able to follow through on one of your threats with no trouble.

The simplest tactic is the fork - where one piece directly attacks two or more pieces. This is normally done by knights, because of their unique movement, but any piece may fork - including the king!

Other tactics include the following:

  • Pin - A bishop, rook, or queen gets in line with two of the opponent's pieces, where the intermediary piece is less valuable than the one it is blocking. If the opponent moves the intermediary piece, the farther one can be captured. If the far piece is a King, it's called an absolute pin, because the intermediary piece cannot be moved.
  • Skewer - Similar to a pin, but the intermediary piece is the more valuable one, and the opponent usually ends up having to move it, and loses the far piece.
  • Discovered attack - By moving one piece out of the way, exposing a piece behind it so that it can attack another. The attacking piece can be a bishop, rook, or queen - and if the moved piece also makes an attack, the defender has a difficult choice as to which threat to defend against.
  • Double check - This is a type of discovered attack where both attacking pieces check the opponent's king, which forces the king to move, as it is impossible to block both checks in a single move.
  • Undermining -By capturing a piece which is defending another, the opponent has to chose between recapturing the attacking piece, or defending their newly undefended piece.
  • Overloading - By gicing a defending piece too many squares that it has to defend, it has to give up defending some of them. This can result in hung pieces and other bad situations for the defender.
  • Interference - By moving a piece in between two long-range pieces that are defending eachother, the opponent is forced to either defend against the new threat that the interfering piece makes, or to defend the pieces that are no longer defending eachother.
  • X-Ray Attack - A piece defends another through an opponent's piece - if the opponent captures one of them, the other can recapture. http://en.wikipedia.org/wiki/X-ray_(chess)
  • Zwischenzug - A counter-tactic where a player makes an intermediary move which poses a more dangerous threat than their opponent's most recent attack. This is a way to get out of situations caused by tactics used against you. Usually the intermediary move has to create a check on the opponent's king, since they are then compulsed to defend against it.
  • Zugzwang - A situation that comes up usually in endgames, where the opponent would rather pass their turn than move. Of course, you can't pass your turn in chess, so they are compulsed to move to a position worse than the one they are in.

Tactics like these can be strung together to form combinations. An example of this is known as a windmill - a series of checks and discovered checks where the attacker can pick off defending pieces on every other move, and the place their pieces in a better position at the end. This usually happens where the opponent's king becomes stuck in a place where it has only a couple squares to move to. A good example is in this game, starting on move 25 with a queen sacrifice to set up the windmill.

13Apr/090

ExSphere


ExSphere Main Page - Download

ExSphere is a game I made for a project in Professor Laird's Game Development course at the University of Michigan.

It took a total of three weeks, including all programming, art, and sound.

The goal of the game is to destroy all of the blocks on each level. This includes everything except
the indestructible walls, skulls, and power ups.

13Apr/090

Doubloons!

Doubloons

Doubloons! Main Page - Download

Doubloons! is a game where you are a pirate captain, commanding your ship and crew to take over and plunder enemy ships. At your disposal are cannons, bilge pumps, rowboats, grappling hooks, gangplanks, and a load of angry pirates.

Your goal is to attack your opponent's ship, steal their gold, sink it, and sail off into the sunset (in that order). You control the pirates through orders you give them, and then the pirates will complete the task to the best of their abilities. Combat effectiveness may change during battle due to grapeshot, inability to swim, and injury from swords.

The controls are listed above each ship on the play screen, start with Vs. Mode so that your opponent doesn't do anything. You control the pirates by giving them orders.

For example you hit the "man the cannons" button and the game will pick an idle/defending pirate and make him load the cannons. Later, you can hit the "decrement cannon loaders" button and the game will remove one of your cannoneers.

The game ends when a player has no pirates left and one of the ships has sunk (Not necessarily that player's ship!), or when one of the ships escapes from the other by sailing off the edge of the screen, or when you press ESC. After this, each player is scored by gold possessed, pirates killed, damage dealt, and whether their ship survives or not.

3Oct/080

Proof of Concept

Here's an awesome file you should check out.

futrapro.zip proof of concept (Windows EXE)

Controls:

  • Mouse + left click to drag pieces around.
  • Esc to quit.
  • Delete when selecting a cone to delete it.
29Sep/081

FuTraPro Progress

Got some things working. Cars come out of the green triangles at regular times, and follow the signs to switch lanes, accelerate, and brake. Drag & drop also works on all of the objects.

Here's a screenshot.

FuTraPro Screen 1

26Sep/080

Progress Update

Got Game Maker 7 installed. Its event system is miles ahead of what MMF had, though it took a couple tries to get things working the way I wanted to.

Here's what I have so far:

  • Cars that can move towards the top of the screen at different speeds: 1 tile per second, 2 tiles per second, or 3 tiles per second
  • Lane changers and accelerate/brake tiles that affect the cars correctly
  • Car creators that create a car once per second

There isn't a UI yet for placing any of these things once in the game, so I'm laying them out in Game Maker's scene editor. All this was about 3 hours of work. Game Maker is almost frighteningly efficient.

25Sep/080

Future Traffic Programmer, Pt. 2

This is a follow up on the earlier post about Future Traffic Programmer, which has the unfortunate acronym 'FTP'.

I need to refine my design, since there are still a couple areas that are ambiguous. Namely, how the game processes over time and how it simulates the movement of the vehicles. To get a better feel of how to design this type of puzzle game, I'm going to look at a couple games that use similar concepts.

Lemmings - Each lemming is controlled after they pop out of the hatch, instead of placing something into the level beforehand. Everything resolves down to pixel-precision - there aren't any exact solutions to any of the levels, since the lemmings move fast enough that there is some variance to where they build, dig, and so on. The goal of lemmings is much more how to deal with the terrain in clever ways, rather than directing traffic. Lemmings can move at different speeds depending on their task.

Chu Chu Rocket - This game uses a square grid where you place arrows that direct mice from their starting places to a rocket launch pad. The challenge mainly comes from directing traffic, since there are enemies that can eat the mice. Each unit moves one tile per time unit.

Star Wars Pit Droids - Colored pit droids have to be guided to their color coded exits on a hexagonal grid. You place arrows to control their movements. There are some other aspects as well, but I can't remember the specifics since it was a long time ago that I played it. Pit Droids is very much a traffic control challenge because you can't let the droids run into walls or eachother.

The Lost Mind of Dr. Brain - There is a puzzle in one of the Dr. Brain series of games where there is a robot on a square grid, and you place programming cards intofunction areas to instruct the robot to perform tasks. You have to avoid obstacles and enemies as well. There's an online version of this called Light Bot, which is not as challenging but still fun. The big challenge in these titles is to get the robot to do everything it needs to do in as few instructions as possible, and you can use nested function calls to get a lot out of a couple simple commands. The commands are issued one at a time, at a rate of one command per time unit, and each command takes one time unit to complete.

Considering these, I believe Future Traffic Controller would work best with a (mostly) strict tile/timing system for the cars, otherwise it could end up as a mess with solutions that almost work, but for a single car that clips the edge of another's bumper at some point, requiring transmitter tiles to be readjusted pixel by pixel to fix. That type of gameplay isn't very useable when you have to place tiles with a mouse.

So, each action that a car takes will take at minimum one simulation 'tick' in game. The cars can still appear to move smoothly of course, just as Chu Chu Rocket does with its mice. Different car speeds can be simulated by having a slow speed be 1 tile per tick, medium and fast being 2 and 3 tiles, respectively. Higher speeds would be possible, but that would only cause the levels to be stretched out, without increasing their complexity. Lane changes will take two ticks to complete, so that the car will actually occupy two tiles during the intervening tick. This prevents cars in adjacent lanes from both going left at the same time, which hardly happens on the road, and is incredibly unsafe to boot.

Combining lane changes with the speed of a car means that a slow car moves two tiles forward as it goes one to the side. Medium and fast cards go four and six tiles, instead.

The final complication, and there always is one, is the priority of operation of triggers that you place. I want them to be triggered before the transmitters they are hooked to are triggered, so that when two cars in adjacent lanes hit a trigger and a transmitter at the same time, the transmitter is affected by the trigger.

Similarly, triggers that operate on other triggers should fire off from the outside in - this way anything you place on the road will take all of its multitude of triggers into account before deciding whether it is activated or not. This will allow for some complex (and hopefully not confusing) chains of toggles and other triggers that hook into a bunch of transmitters, resulting in some fancy traffic patterns, and of course their resulting puzzles.

So, where do the cars come from, and where are they going? The levels will be laid out as stretches of expressway, with cars coming from either the main trunk or entering later along the road from entry ramps on the left and right. Similarly, cars will be able to leave the level from exit ramps or by continuing straight along the main trunk. Complications can be added by having the highway expand or shrink lanes, or by having sections of a lane blocked by construction. The goal here will be to get cars from wherever they start to the exit location that they desire, shown by color coding on the car and the appropriate exit.

One type of puzzle (or portion of a puzzle) that will come up a bunch is the concept of traffic weaving - given lines of traffic in two adjacent lanes, where people from one lane want in the other, and vice versa. There are two steps to solving this type of puzzle. The first and hardest step is to get the lanes lined up so that no car in one lane is directly adjacent to one in the other lane. Once that's sorted, it's a simple task to put a lane changer in each lane, coded to affect only cars that actually want to get over to the lane they aren't in. Getting the lanes properly lined up can be easy if the traffic from each comes in a regular fasion at a medium speed, since you can put a brake transmitter directly before an accelerate transmitter in order to put one lane out of phase with the other. If the traffic is uneven, you'll need to use triggers to adjust the phase of particular cars based on whether there is a car adjacent to them or not. If both lanes are irregular, this may become supremely difficult!

There are two ways to score a successful solving of a puzzle here. One is by how long it takes for all the cars to exit the level, which puts an emphasis on putting the cars at their maximum speed, where you have less time to change lanes. This represents increased economic productivity when people can get to work quicker. The other way is to score based on the number of transmitters used, since they cost money and the transportation department has a budget to keep. Some levels could even feature a limited total budget or limits on certain parts, which is a common feature of puzzle games.

With those issues sorted out all I need to do is find an engine to write this in. I've been planning on looking at Gamer Maker 7, since it has a big community and a lot of successful releases, though I could probably make it in MultiMedia Fusion if needed, since the graphical requirements of this design aren't very restrictive. The tricky parts are probably going to be writing the trigger code so that it affects things in the right order, and creating a good drag/drop interface for placing all of the transmitters.

I need to put some pictures up in this piece, this is a lot of plain text to read.