In Progress
2/14/08 - Chinese Checkers




After Tron, Stardom is my oldest project and has undergone countless rewrites and redesigns. I wrote the original versions of the game back in my QBASIC programming days and have even created a version which runs as a series of Excel macros that manipulate your open spreadsheet to display the game. Unfortunately I no longer have working versions of all my old QBASIC builds and I don't think I have the Excel version anywhere either (you get a floppy disk near one little magnet and you lose everything). Although Stardom was originally based on the game Star Frontier for the Commodore 64, it quickly became a significantly different game and I still consider it to be an original game of mine. Naming my projects always seems to be much more difficult than it should be but luckily this one came to me almost immediately and I still love the name. It's a simple enough concept, a kingdom in the stars, a stardom. The fact that stardom is already a word, which has a completely unrelated meaning, just makes the name more fun.

I implemented a number of new things with this version of the game. One difference, which shows up on the opening screen, is that in the last version I allowed players to work together by forming alliances whereas in this version the players can create teams. There is really only a subtle difference between the two options which is that under the alliance system, just because player A is friendly with B and C does not imply that B and C are friendly toward one another, but under the team system it does. A more noticeable difference between this version and the majority of previous versions would be the fact that the planets are displayed as textured rotating spheres instead of 2D images. This makes the game look nicer but has no bearing on game play at all. In one version I gave the players the ability to produce 7 different types of ships which had varying strength shields, weapons, movement speeds and production costs. I like the flexibility this gives the players and I would like to revisit the idea in the future, but it caused a lot of problems with balance which I was unable to avoid so for this game I chose to stick to the clean and simple approach of a single ship type for all players. Another obvious change from previous versions to this one would be the inclusion of context based buttons for game control. In the past, much of the game was controlled by the keyboard with basically only ship movement being controlled by the mouse. In this version I went to the extreme and removed the keyboard from the game entirely. I feel that the decision to move to a fully mouse controlled interface makes the game feel more polished and easier to play.

The last noticeable change is the one which I think has the largest impact on the game. In all previous versions combat was displayed as two numbers, one indicating how many ships you have and one indicating how many the opponent has. The program would essentially flip a coin and subtract a ship from you on heads or from the opponent on tails. Once one of you reached 0 the battle would be over and the player with ships remaining would be the victor. This time I wanted to show some sort of a battle going on between the opposing forces but I didn't want the outcomes of the battle to stray far from the original "coin flip" battle system. What I came up with was a simple mechanic which faces the opposing ships off against one another and then allows them to shoot at one another while moving up and down. A single hit destroys an enemy ship and a volley of shots will typically destroy almost as many enemies as there were shots fired. As you run out of ships the area they are allowed to move around in becomes smaller and smaller which keeps them from avoiding enemy fire forever. The end result is a battle system which is quick, much more interesting than two numbers counting down and gives very similar battle outcomes to the old coin flip method. This battle system also allows for the possibility of ties(both players run out of ships at the same time) in which case the defender is considered the victorious party.

Combat Screenshot

I have also put a lot of work over the years into coming up with a fair way to distribute the player's starting locations. For a long time each player would begin with a random planet that had a large number of ships on it(usually 200) and a high production(usually 30). Player controlled planets have no cap on the number of ships that can be stockpiled there, but I quickly decided that the neutral planets needed a cap of around 50 or else it becomes too difficult to expand your empire. The location of your starting planet has a lot to do with how long you survive for two reasons. First of all, if you have no other planets near you that have high productions, players who are able to capture high production planets will have a production advantage over you. Even more importantly though, if your starting location is between two or more other players then you will wind up being attacked from all sides and will almost certainly be destroyed. I implemented many tweaks to the design in an attempt to alleviate these problems and eventually arrived at what you see today. First of all the planets have always been randomly distributed around the screen, but in modern versions of the game they are placed roughly into four rings. The inner ring has the fewest planets in it but the planets have the highest productions, as the rings get farther from the center of the screen the number of planets in them increases and the productions for those planets decrease. This encourages players to fight over the center planets which makes the game go faster. Additionally, by having the players start with two large fleets of ships instead of having starting planets, the players get to choose their own start locations which neatly avoids the issue of starting out surrounded by enemy planets. A little bit of thought goes into the starting locations of your initial fleets, but not a great deal so basically we can pretend the locations are chosen randomly. Giving each player two starting fleets both increases their options and decreases the chance that they will get wiped out before they have even played a single turn.