AI storyteller choices

Posted September 12th, 2013 by Tynan Sylvester

Here’s just a quick shot of the title screen as it stands. I still need to get an artist to do a real logo treatment for the title. Though straight Tahoma has its charm, I suppose.

titlescreen

I’ve been working on this screen as well as the selection of AI storyteller and starting colonists.

Now you can actually choose your AI storyteller. The starting options are Cassandra Consistent, who tries to keep you on a pre-defined tension curve, Randy Random, who just does crazy stuff, and Phoebe Friendly, who basically makes sure nothing bad happens. Possibilities for expansion are Harry High-Population, who gives you lots of colonists, Negative Nancy, who just starves you, and many others.

The AI storytellers have some new events to play with too: passing travelers, and animal-goes-psychotic. The travelers are cool because you can ignore them, capture them, enslave them, recruit them, or sell them into slavery. Or just kill them and take their stuff (it is still a video game, I suppose). The psychotic animal is more amusing than anything – especially when it’s a squirrel or a boomrat (that is, a weaponized genetically engineered rat that explodes and ignites fires on death).

Starting colonists won’t be created by players any more. The number of options available is becoming too much; it slows down the start of the game to an unacceptable degree. Instead, you’ll just roll up characters until you get one you like. Some of their traits may be hidden, too. Your only direct control over them will be in changing their names.

RimWorld name change

Posted September 11th, 2013 by Tynan Sylvester

The game previously known as Eclipse Colony is now known as RimWorld. It turned out eclipses weren’t a big part of the game, and the frontier edge-of-civilization thing is.

The muffalo! They burn!

Posted September 9th, 2013 by Tynan Sylvester

Just a quick post here to show you a fun screenshot. I resurrected the ancient (dating back to when this was a zombie tactics game) fire system, rebalanced and redesigned it, and tightened up the graphics. It turns out that the muffalo, with their shaggy coats, burn rather well! I wonder how much damage a herd of burning muffalo could do to your colonists… or any pirate raiders unfortunate enough to meet them.

FireTest

Ludeon Studios Inc.

Posted September 5th, 2013 by Tynan Sylvester

I’m happy to announce that Ludeon Studios is now a federally registered corporation in my home country of Canada! This new ephemeral paperwork status should allow us to actually manage money properly to make deals with contractors and such, avoid some taxes, and learn entirely new kinds of paperwork.

Work on the game continues. Recently I’ve added a whole ecosystem of plants and animals, enhanced various graphical features, and made colonist behaviors even more robust so they’ll sleep and eat outside if needed.

I decided to remove the old breathability system. For a long time, various actions couldn’t be undertaken outdoors because the air wasn’t breathable. This system was a holdover from when the game was called Starship Architect and was basically a mix of Dwarf Fortress and FTL.

The original idea was that being left without air would kill colonists, as it does in FTL. Later, the game was moved to a planet’s surface and became about exploring and going outside to do things. So I weakened the air system so that lacking air merely prevented eating and sleeping and made people unhappy.

Unfortunately, this arrangement proved to be rather annoying. It wasn’t dramatic like vacuum deaths in FTL. It wasn’t interesting to work with or construct. It was mostly just an obstruction and a chore. Players would pressurize their rooms and then forget about them. When a wall was damaged or destroyed, colonists would become unable to sleep in their rooms and players had trouble understanding why. And it created really brutal failure spirals where a colony would be damaged in a fight or something and the lack of pressurization would leave them unable to eat, leading to their insanity or starvation. I’d rather colonies be able to recover from hits and soldier on – the game makes much more interesting stories this way.

I’m working on weather next.

Sun shadows

Posted August 8th, 2013 by Tynan Sylvester

There are now shadows from the sun in the game. They fade in and out based on time of day, move across the ground, don’t shade indoors, come from people and small objects as well as large structures, project to varying heights, and change color slightly to complement the color of the sky.

This involved creating a whole system for roofing as well – it tracks which areas are roofed, shows you when you create a new roof, and collapses unsupported sections.

It’s always amazing how many times one simple system demands that you model something that seems almost unrelated. The logic of the world is very interconnected; it’s tough to simulate one thing without simulating the things it interacts with.

On the gameplay side, I’ve been working on the power system. So look forward to solar and geothermal plants, power surge and explosions, power cables, battery stacks, and solar flares to shut down your machines.

Daylight Twilight

Rimworld on IndieDB

Posted July 30th, 2013 by Tynan Sylvester

I’ve created the IndieDB page for Rimworld. Take a look.

Electricity and screenshots

Posted July 30th, 2013 by Tynan Sylvester

First, some new screenshots from a game I played last night. Raiders attack:

Shot4

The fight’s aftermath, with raiders buried.

Shot5

The base:

Shot3Shot2And a pseudo-3D shot of what the game looks like in the editor, just for fun.
Pseudo3D

I’ve been working on the electrical system recently. Now, various machines including doors, air generators, gun turrets, lights, and food dispensers require power to work. You can generate power via  couple means including solar panels and geothermal plants. But each generation system has downsides – solar panels are large and don’t work at night (requiring power storage), and geothermal requires you to have a plant on top of a geothermal vent, which may be far from your main colony and tough to defend.

Without power, machines don’t work. Lights turn off, doors must be opened and closed manually (which is slow) and food doesn’t dispense.

 

Moddability

Posted July 25th, 2013 by Tynan Sylvester

Long ago, I got my start in game design modding games like Unreal Tournament. So I’ve been setting up Eclipse Colony to be moddable for others as well.

For the most part, this just means keeping game data in text files instead of locked up in code. For example, here’s a short section of XML describing a couple of the character histories that people can have in the game.

WritingCharHistories

You can see the titles, written history (which adjusts for character name and sex in-game), skill bonuses and demerits, work disables, and so on here. I’m going to use a similar method to describe animals, buildings, and many other things in the game.

Adding data to the game is as easy as writing an XML file and putting it in the appropriate folder. On startup, the game just reads out all the data from these folders into the databases it uses during play. So, if you write your persona history as a character background, you’ll be in the game’s library, and you might spawn in as a pirate or slave or visitor.

You can also put in images. So, you could make a special animal with a weird diet and a custom graphic, just by putting the appropriate files in the right folders.

It should be pretty simple to come up with a basic interface for switching between or layering on different mods. That way, people can create their own file structures in parallel with the game, distribute them, and then players could enable and disable different combinations of mods.

All this is pretty far in the future, of course, but I’m pretty excited about it. It’ll feel good to be the one enabling others to try their hand at game design, after having started out on the other side of the equation so long ago.

Light and dark

Posted July 24th, 2013 by Tynan Sylvester

I’ve been working hard on improving the look of the game.

Here’s a shot before the latest improvements. This is tester screeching_goat fighting hard to survive a tough raider attack (she failed). This shot one has an early version of edge shadowing in it – see if you can tell the difference from later shots.

ToughFight

The graphical improvements have come in four subsystems.

Character graphics

Previously, every character was represented by a colored dot. Now, each person has a body model that corresponds to their key adulthood history item. So, an ex-farmer oaf will be a big fat dude. An ex-scientist is a thin figure wearing a suggestion of a lab coat. A noble wears purple. These characters have three frames of animation (front/side/back) that they switch between as them move around to give a sense of interactivity to their movements.

Heads are tracked separately and chosen randomly for each character based on their sex. So the overall identity of a person decodes visually as: Body shape indicates archetype, head indicates individual identity.

I hope players will be able to get to know their characters more easily this way. I think people respond well to classical archetypical characters and I want your colonists and enemies to express these. It’s as much about expressing personality as it is about telling characters apart or looking pretty. Because this game really revolves around character.

Edge shadows

This was a straightforward system, but worth mentioning. Edge shadows now wrap around the base of every tall object in the game. To do this, the game generates a mesh that wraps around the edges of tall objects every time the world changes. The vertex colors of the mesh are set to be dark near the object, fading to transparent, so it creates a nice subtle shadow over the background. Since it only uses vertex colors, it can be updated quickly without any texture maps ever being involved. It fakes a bit of the global shadowing effect that tall objects have on the ground around them and makes things feel a lot more grounded.

Lighting overlay

This one was a bit of a project, and it’s still ongoing. The game now tracks the light level of every square in the game, and how much of that light is contributed by on-the-ground lighting instead of from the sky. As the day progresses, the color of the skylight shifts from daytime white through twilight orange into midnight blue. In the day, you can’t see your ground lights because the whole world is fully lit anyway. But at night, they become points of light in the darkness.

Making all this work was a fun exercise in shader writing and mesh generation. As with the edge shadows, the whole system is driven by changing vertex colors. These vertex colors are fed into a shader that overlays a light color over the map. The light color is determined by the vertex colors (which are driven by ground lights) and the sky light color (which updates every frame based on time of day).

Figuring out how ground lights spread was a fun challenge. I actually ended up using a pathfinding routine called Dijkstra’s Algorithm to make the light spill around corners properly. This simulates a sort of radiosity in a 2D tile-based world, and looks far better than just doing everything by straight line of sight.

Lighting isn’t just a visual effect. It affects gameplay.

  • Characters don’t like to be in the dark
  • Darkness affects their ability to do things.
  • Plants need light to grow.

I’m hoping we’ll see things like:

  • Players building over-brightly-lit hydroponic grow ops like something from a pot dealer’s basement.
  • Players setting up combat-field floodlights to illuminate the enemies they want to shoot.
  • Players freaking out when an electrical storm knocks out their power in the middle of a medical operation (causing critical mistakes) or an attack (depriving the defenders of light to shoot by).
  • EMP weapons could create these effects deliberately.
  • Some characters could be afraid of the dark and have extreme reactions to it.

Here’s some lighting shots from a simple base I made. The first is at night, the second at dawn, the third is a detail of the first.

Dark SunsetDarkZoom

Terrain modification

Whereas before terrain was basically just a big fake alpha-blended map that meant nothing, now each square has a specific terrain type.

The visual challenge here was figuring out a way to get every kind of terrain to blend properly with every other kind in arbitrary combinations. This is actually a bit of an open problem in game coding, ad you’ll see if you try googling it.

The system I’m working with now involves giving each terrain type a layering precedence, filling each square with its appropriate terrain type, and then blending neighboring squares in when their precedence is greater than your own. As with the lighting, this is all driven by a set of layered generated meshes that I update when the terrain changes. This way, sand will spill over a concrete walkway a little bit at its edge, while concrete will but up against bricks in a hard edge.

But terrain modification is really as much of a gameplay improvement as anything else. With unambiguous knowledge of terrain, we can do things like:

  • Have terrain affect what can be built where. E.g. you can only farm on soft earth, but you can’t build some kinds of heavy constructions there until you dig them out and change them to concrete.
  • Have terrain affect movement speeds (e.g. you want to build a road to your mining operation)
  • Have terrain affect people psychologically

Hope you enjoyed the update. Work continues at about as fast a pace as is possible without me going insane. I’m loving it.

Big Big Mountains

Posted July 10th, 2013 by Tynan Sylvester

I had one of those stupidly-obvious-but-massively-valuable insights that make me smack myself on the head and wonder why I didn’t do it sooner. The mountain.

MountainBaseThe map no longer generates with random little rock outcroppings here and there. Now, one side of the map (could be any cardinal direction) is randomly filled with rock. This makes the mining-driven basebuilding strategy viable. Tonight I built the first mountain colony. Instead of spending time mining minerals to build metal structures in the open, I just mined into the rock. It’s good to see the game growing new strategies and offering new choices on the kinds of places you want to build.

In addition, since I finally solved our reachability problems, I’ve been able to push map sizes up. Even the modest jump from 200×200 to 250×250 creates a huge amount of extra space (just over 50% more). The world starts to feel damn big when a character takes more than a minute to walk across it. As map sizes increased, I’ve had to solve other problems. The game no longer saves every block of rock as an individual object, but compresses them into a single bitmap. This brought save game times and filesizes down by 20-fold, so now the game saves so fast that it’s hard to notice the “autosaving” popup.

This is the entire map of that mountain fortress (the above shot is at max zoom-out in game; I took this one in the editor)

MountainBaseBigMap

To flesh out mining I brought back my old cut fog of war system. Only now, it only fogs the insides of rocks. Exploratory mining, hooray.

And there have been other new features, not all of which I want to give away here.

PS: Just to see if I could, I tried a 500×500 map. In the middle of the mountain edge you can see I designated several medium-sized rooms off a hallway in the mountain. These environments can get big.

MountainBaseHugeMap