Posts Tagged ‘ropes’

Scourge, Part III – the ROPES

Sunday, January 13th, 2013

Scourge is a complex game, and programming its model involves accomplishing several tasks. Starting out, I wanted to separate the game concepts that are specific to Scourge from the concepts that form the underlying structure of a strategy board game.

So! What makes a good model for a strategy board game? By “good” I mean, “offers a representation of the system it’s modeling that best facilitates reasoning about that system”. I want views, net protocols and computer opponents to be relatively easy to map to this thing. So here’s the list of criteria that I came up with:

  1. Each player decision must be explicitly represented : rather than leaving it up to players to discover what options are available to them, the model should create options from the state that players may then evaluate, compare and choose from. This limits the role of an AI to purely strategizing, and reduces the amount of code that a player relies on to reason about a particular rule. (I could technically write a functioning AI that performs no rule-specific reasoning about its decisions, relying solely upon a coarse estimate of the board’s value. I think it makes for a good starting point!)
  2. A traversable decision tree : we can couple the aforementioned player decision generation with a rewindable history object, so that players can climb up and down the decision tree like a rock climber on a climbing wall, moving from handhold to handhold, trying to reach a goal position.
  3. Dynamic rules : there are games with many, many rules, with each one applying to a particular context. If the game is being played in a context where a rule never applies, then the game model should not represent that rule computationally– after all, it will never contribute to the available options to a player.

(more…)

Scourge, Part II: The Project Gets Personal

Saturday, January 5th, 2013

So Scourge had this hiatus, during which I just didn’t have the chutzpah to tackle the problem of designing a game with AI and network play features. Briefly in late 2011 I looked into writing a new View for the prototype, which simplified the GUI considerably and made interaction on touch devices more straightforward, but I put that work on hold as I started to scope out the rest of the project. Let’s face it– views are interesting, but for a game like Scourge, their design needs to take a back seat to the core functionality. I’d have plenty of time to design a view later, when the rest of the game was functional.

So I started asking some deep questions. Why was I even doing this project? Obviously it’s one of those side projects I regularly work on for the sake of revitalizing an old idea; some pretty game or application from a simpler time is no longer widely available, and I have the skills to bring it back. Classic Jeremian time-waster.

Aside from that, though, Scourge is a chance for me to build something new and creative on top of something familiar. Even if you’ve never played Fungus before, I have faith that you’ll like the core gameplay, once there are opponents to play against. That gives me a platform to propose further design challenges and to pursue really ambitious goals, which I can learn a lot from. (more…)

Scourge, and my urge to verge toward Demiurge

Sunday, December 30th, 2012

In September 2010, I was on a late-night train from Manhattan back to my parents’ home in Westchester, when I decided to open SheepShaver and play an old game to pass the time. The game was called Byte Me!, released by Freeverse Software twelve years ago. Relying on the classic Mac OS and burdened by a once impressive OpenGL-rendered game board, Byte Me! is nearly impossible to play nowadays, let alone enjoy– but the game’s unique mechanics make it an all-time favorite of mine.

Byte Me! was itself a remake of the game Fungus by Ryan Koopmans. That was a school project back in ’92, but by then the basic game principles were already in place:

  1. Two to four players are given “heads” that are placed in a circle on a square board.
  2. Players take turns growing their bodies out from their heads by attaching shapes to themselves.
  3. Players who touch can bite one another; biting a player can divide their body, and the portions disconnected from their head wither and die.
  4. If attaching a shape to yourself causes your body to envelop a region of an opponent’s body, you seize that region.
  5. You win by growing your body to be the largest, or, ideally, by destroying your opponents’ bodies.

That’s the Fungus game variety in a nutshell. There can be variations, but the core is the same; you grow as big as you can, gobbling up your opponents and conquering the board. This is how Fungus and its various clones have been played for the past twenty years. (more…)