The Repo on GitHub

An attempt at refining the concept of this multifarious idea we’re hatching.

OK, hear me out. Or don’t, I’m not the boss of you.

We are trying to address at least these major goals:

  1. We are trying to devise a multi-player game that is at least credibly fun to play. It is not clear how far we’ll go with creating the actual game, but we need to go far enough to support our second goal.
  2. The work we do should translate, not too loosely, into a class project for a small team of people who are learning programming.
  3. We want to do enough of the project so that our work will be exemplary of “how we work”, to serve as good and useful examples to whoever studies our project. Ideas such as incremental development, test-driving code, tight collaboration, and all that stuff we believe in, should show up here.
  4. We want the programming side of this to be interesting enough that we can rope people in invite other experienced people to program up parts of the project to share how they might do it with the audience.

This morning, I want to sketch some ideas that, as usual, I was kind of dreaming about while not quite awake.

Grand Concept

There is a world, asteroid, something. It is a long way from Earth. It is entirely uninhabited, with no indigenous life forms beyond plant life (Tentative. All of this is tentative.) The basic idea is that it is OK to explore and exploit this planet. No … maybe the purpose is only to explore it and learn about it, while doing minimal harm?

Because it is far away, we can’t send people or even large machines there. Instead, we have devised a “biot”, which is a part-biological machine. Shape undefined. There is some kind of biot generator that we have sent there. It basically constructs machines that can move around and manipulate things, with programmed control units that give them behaviors.

As a player of the game, you have the ability to build a finite number of biots, and your mission is to explore and discover as much as you can. You are “paid” for discoveries, such as biological facts about vegetation, or maybe there are creatures there that you can study, and certainly there are mineral resources. Whatever.

The focus of the game is collaboration. Your ability to create value (intellectual property) is limited by the number and kinds of biots you can field … but your biots can collaborate not only among themselves but with others fielded by other players. So the game is a MORPG, probably not an MMORPG, and the Roles are limited to biots. (At least as presently envisioned. Tentative, remember?)

Programmers

The programmers of this game will (mostly?) focus on building up specific behaviors or, in early days, specialized biots. The game will be specified in such a way as to provide lots of large splittable stories for biot developers. An example:

Mapper
Your team’s (one or two people?) mission is to build an mapper. The mapper job is to produce a complete map of (some area of) the world, showing each location that has something of interest in it. Your biot’s senses are two, long range and short range. Wherever your biot is, it can sense details in its immediately surrounding cells, and for a longer range, it can sense that there is something there but no details. A long range sensor cannot see past the first thing it sees in any given direction. Your mission is to produce a map of all the details in your world.

In early test scenarios, you will have only one biot. In later scenarios, you’ll be allowed more than one. In early scenarios, your biots will have unlimited fuel and food. In later scenarios they will have limited resources and your search will need to be efficient enough so that you can complete it without stalling.

As your own tests, you should set up a series of worlds, populate their maps (secretly) and set your mappers loose to map the world. The test passes when the mapper map has all the details in the world map.

As an acceptance test for your mapper, you’ll be presented with a series of tests of increasing difficulty. (Possibly we should just provide these off the bat? Tentative, remember?)

Tests
If I were doing this, and I do hope to be doing it soon, my tests might look like this:

An empty world; some single block items sprinkled around; some larger blocks, such that they block the view of some other details; increasingly complex shapes; starting the biot in tricky places such as a rectangular room with only one open exit; etc. Some of these are single-biot tests, some are multi-biot. Perhaps there is a test that can only be passed by efficiently searching with multiple biots, all of whom will time out but if the map is complete before the last one times out, you pass.

What if there is water on the world, and what if you can’t go into it, and there is something on an island in the middle of the water? Advanced problem requiring more than one kind of biot? Can you build a bridge, or a boat? A causeway?

Vague
All this is of course vague. We need to discover the game, the biots, and the programming problems all at the same time. These notes will of course be discussed and thrashed about in our continuing communications about this effort.

Comments welcome from anyone who reads this.