The SimBlob Project

1996–1998
(screen shot)
9 Aug 1998

SimBlob is a game project I started in 1994 to let me experiment with various things I was learning or wanted to learn. From the programming side, I wanted to play with bitmap graphics, multithreading, user interfaces, cellular automata, and procedural generation. From the science side, I wanted to learn about landscapes (water flow, erosion, sedimentation, volcanism, wind, precipitation, rain shadows, tectonic plates, forests, fires, vegetation, flooding) and economies (rural/urban, trade, transportation, labor/capital). I spent years reading and implementing the simulation aspects, and never made much progress on the game itself. That’s ok. I realized later I was writing a game in order to learn geology, hydrology, climate modeling, urban theory, economics, etc. and I didn’t actually care about the game itself.

SimBlob started out as a strategy game for OS/2 with simulation of the environment and economy affecting your quest to conquer neighboring towns. The setting is an early (green) Mars, with blobs being the most intelligent life form on the planet. The best classification I have for it is a paintbox game[1]. The original plan turned out to be too ambitious for me, given that I spent much of my time on projects and I started spending much of my time on my Ph.D. thesis.

My second plan, given that my first plan was too ambitious, was for the SimBlob project to include two (or more) simpler games instead of one very complex one. (I was young and foolish and didn’t realize the irony of saying I’d write too games because writing one was too ambitious.) The games would have shared the basic map structure (a hexagonal grid map), environmental simulation (water flow, erosion, fires, tree growth, etc.), and user interface. The first game, BlobCity, is a single player game where you are playing against the environment. In it you try to build a town in a world that has fires, floods, volcanos, and so on. The SimBlob project also included a second game, which would have had less city building and more resource management. This game was never fully designed. I wrote up several possibilities for games that could fit into the SimBlob project. The blobs might live in a large city; they might be building a town to compete with other towns; they might have towns already, and want you to link them together with trade; or they might be seeking to take advantage of the natural resources on Mars.

[13 Jun 2013] You can now play in a web browser[2].

[6 Jan 2006] I stopped working on SimBlob 2; see my blog for details.

[14 Aug 2002] I’ve started working on my next game. It’ll probably adopt a lot of ideas from The SimBlob Project. This time I’m using OpenGL (see screenshot), because I got an NVidia graphics card and I want to try it out. :-)

[28 Dec 2002] BlobCity-OS/2 & BlobCity-GTK[3] are now on SourceForge, thanks to Peer Sommerlund!

You can download a ZIP file (800k) with my poorly documented source.

Status

1998: I stopped working on SimBlob 1. It was fun. I learned a lot.

The Past

  1. Screenshots (now with thumbnails)
  2. Old Changes (more than 4 months)

The Present

  1. A description of what’s on the map
  2. How multithreading is used
  3. Frequently asked questions

The Future

  1. What is my goal?
  2. Possible alternatives
  3. Near term plans

Download BlobCity for OS/2

The latest BlobCity can be downloaded from SourceForge - SimBlob[4].

1998 Mar 8 version (379137 bytes)

This version is compiled with EMX, so you may need to download and install the EMX run-time libraries (EMXRT.ZIP) in order to run the game. If you don’t have these libraries, check Hobbes for EMXRT.ZIP. {As of 2017 I no longer know where to find this.}

Other notes:

  1. See SimBlob.txt to see different display options (PM, Fast PM, DIVE, Hybrid, etc.). If you are experiencing a flickering cursor, try using a two-color mouse pointer; most video hardware and/or drivers do not support hardware colored pointers.
  2. The fonts look really awful when you turn off Details.
  3. Please let me know about any crashes you may experience!
  4. If the game crashes, an attempt to run it again may lead to a hard lock-up of OS/2, so don’t run it again.

SimBlob source code (800k)

You will have to make changes to compile this on your system. I use EMX with PGCC, which produces code that is approximately twice as fast as the code I got when I was using Borland C++.

Playing the Game

At present, the game is playable, although it’s not complete. (The main problem is lack of documentation and the inability to save and load games, IMO.) The play in BlobCity is “Blobs vs. Nature” (single player) instead of “Blobs vs. Blobs” (human player vs. computer players), which had been planned for the second SimBlob game. Like SimCity, there is no predetermined goal; instead you set your own goals. You are building a town and seek to conquer the elements. Try to build your towns to withstand floods, yet be near sources of water. Try to build your towns to withstand fires, yet be near forests. Try to achieve 600,000 population without auto-build mode. (My highest population in the old economic system is 653,712; my highest in the new economic system is 1.13million.) Try to have more food than people in your town.

Other things to try:

  1. If you want to create irrigation channels, start at a water source on a mountain. Build a walled channel that slopes gently downwards. Along this channel, build gates. Outside the channel, starting from each gate, build a trench. This trench will receive some water from the main channel, but due to the gate, will not take all of the water. Note: This works better if you can put several water sources inside the walled channel.
  2. To protect against fires, put fire watchtowers in spaces that the blobs aren’t going to build in anyway. For example, a common road pattern is a hexagon with seven spaces inside; with this, only six will be used by the blobs, and the middle hex can be filled with a watchtower.
  3. To protect against floods, either build flood trenches that will catch and divert flooding, or place trenches in open spots that blobs don’t build in. The first solution will keep flooding from occuring; the second solution will drain water away if your town does get flooding.
  4. To get the most from a water source, force the water go go down a gentle slope. On a steep slope, water will flow faster, and your river or channel will be shorter, so fewer farms will benefit.

System Requirements

Controls

I have attempted to make the game use custom mouse settings that you have set in the properties page of the “Mouse Object”. However, I have not extensively tested it, and the notes here assume the default left-handed mouse settings. Let me know if you have problems with the game’s use of the mouse.

World Map

A LMB click changes the view to be centered wherever you clicked. You can also drag with the LMB to move the view, but this may be slow on some systems.

Toolbar

LMB click allows you to choose the tool to use. Most of the tools let you build something, and are collectively called the build tools.

Map View

Build Tools

LMB click or drag draws the currently selected toolbar item. If you are drawing roads, canals, bridges, or walls, you can drag from one point to another, and a line will be drawn between those points. If you are erasing, or drawing trees, fires, or gates, then dragging will draw “freehand”. The item will not be drawn immediately, but instead a black or green hexagon will be drawn at that location, and a blob will go to that location to build whatever you wanted.

Using Ctrl with the LMB will use the Eraser instead of the toolbar selection. Using Shift with the LMB will draw straight instead of freehand, or freehand instead of straight.

RMB click does different things in different versions; it is a convenient place for me to put test code.

Blob Tool

The blob tool lets you create and move blobs. RMB drag moves a blob from one place to another. LMB click creates a blob and sends him to the point at which you clicked.

Select Tool

The select tool (not yet finished) displays information about a selected object. At present, it simply displays information about the object underneath the mouse pointer. In the future, you will be able to click on an object and see information about it in a small window in the corner of the map.

Simulation

Farms, houses, and markets will be created automatically near roads. Markets must be adjacent to a road; houses can be two spaces away; and farms can be three spaces away. Markets make more money in city centers; houses are better near the city center but it’s not as critical as it is for markets; farms prefer being near water and aren’t really interested in paying higher land prices for areas near a city. As a result, farms near cities will be bought by people building markets or houses, and houses near the city center will be replaced by markets.

Anything that needs to be built will be marked with a hexagon, and then a builder blob will go there to build it.

Water will flow downhill. Trenches are 50 feet deep, so water will flow into them. Walls are 120 feet high, so they block most water. Gates are also 120 feet high, but they allow a small amount of water to pass through. You can use gates to build spillways or controlled release points on dams; or you can use them as openings on the sides of an irrigation canal, to let out small amounts of water to side canals.

Economic simulation involves determining how many people are able to get to work and how much food can be delivered to homes. To do this, I am using network flow algorithms to make people “flow” from certain points (houses) to markets to other points (farms). I am using the same algorithms for making food “flow” from farms to houses. (Both workers and food must travel through a market.) For now, workers producing food forms the entire basis for BlobCity’s economy. BlobCity will probably not have any military simulation and is unlikely to have any political simulation; these two are more likely to be in the second SimBlob game.

Email me , or tweet @redblobgames, or comment: