Flask? It’s only a roguelike deckbuilding autobattler with art by John Kenn Mortensen. Who wants that? Who would even play the demo on Steam? Who’s Ghost Ship, and why is their Deep Rock Galactic? Who’s Chop Chop Games? Where is Denmark anyway? And finally… can I pet the kitty?
SimEarth: The Living Planet
SimEarth was $70 USD when it dropped in 1990. That’s $180 in 2026 dollars. It was Maxis’s third release. Fortunately, their second had been SimCity. The marketing didn’t even call their applications games, but “software toys.” It was a radically different industry back then. SimEarth was not a major hit, but it’s a reminder that, prior to their long death milking the Sims franchise for EA, there was genuine experimentation at Macintosh-first developer Maxis.

Is SimEarth really a game? Unlike SimCity, you can dial up a random planet and just leave it running. Maybe life will start but get nowhere. Maybe the biosphere will self-destruct, a Venus or a Mars. Or maybe it’ll all go rather Earth-wise with no intervention on your part. (You could even get multiple sentient species developing and blasting off to greener planets, one after the other.) The following year, Maxis would make the metaphor explicit with a virtual ant farm, but in the Danish language sense, SimEarth is lege rather than spil–undirected fun, not goal-based play. In modern parlance, it’s a sandbox.
SimCity famously fits on six pages of readable diagrams, but SimEarth is a geosphere simulation sitting underneath a hydrosphere simulation under an atmosphere simulation, proceeding (with luck or skill) to overlay a flora simulation, fauna simulation, and civilization simulation. It’s dizzying, even if the underlying machinery is essentially the same: Time-sliced agent calculations across multiple interacting tilemaps, with the precision allowed to drop at higher game speeds. Remember, the target platforms for these games were Motorola 68k Macintoshes and 386 DOS PCs.

Play (lege) involves a slowly recharging energy counter, capped lower at increased difficulties. The surface can be raised and lowered. “Disasters” like meteor strikes (often beneficial if used right) can be called down. Biomes can be painted on the land (without being guaranteed to survive). The models can be tweaked, for instance to change solar input or reproduction rates. At the more expensive end, there are scifi geoengineering buildings–even an extremely expensive Monolith, for uplifting species to sentience.
Should you play it? You’re reading a blog in or after 2026, so maybe. Maybe you have the patience. (Not that a planet takes more than an couple hours without extreme micromanagement.) It runs perfectly in SheepShaver, so don’t expect problems in the emulator of your choice.
True randomness means that, sometimes, your world is just plain boring. Nothing is inherently fair. It’s refreshing, in an icy way, compared to our era of silent rubber-banding and 50% chances meaning 65% chances.
The interface is of its time. It tries a lot. Most of it works. Window management can feel a bit cumbersome. Just finding where on the map an event has occurred can be downright annoying.
The choices it makes will give any science nerd a few eye twitches. For instance, here’s the list of taxa:
- Prokaryotes
- Eucaryotes
- Radiata
- Anthropods
- Mollusks
- Fish
- Cetaceans (?)
- Trichordates (!!!)
- Insects
- Amphibians
- Reptiles
- Dinosaurs
- Avians
- Mammals
- Carniferns (hidden)
- Robots (hidden)

There was no real way to make a comprehensible graphical game in SimEarth’s day without the choices of life and paths of civilization being very Earth-like. They more or less did it with Spore, but that was decades later. (MicroProse’s Civilization itself, released the following year, would have the same issue.) Within its limitations, the amount of weird packed into SimEarth is worth celebrating, but those limitations are omnipresent. When life really gets going, you’ll start to wish for a decidedly bigger world than the target systems of the day could simulate in realtime.
As a middle-aged game developer, it’s the naive boldness of SimEarth that I admire most. As a nerdy tween with a Mac Plus, the appeal is harder to define. I’m sure I didn’t play it as much as SimCity (v1.0) but I sure sunk a LOT of hours in. So many planets lived and died in that cold corner of the living room. Maybe the lack of hand-holding is more appealing at that age. (Doesn’t Minecraft have a similar demographic?) Maybe experimental Earth Science is the best kind to learn. Maybe I just had more time than I could ever know what to do with. There’s value in being bored.
In a few months, my team at Chop Chop drops the full release of Flask, and either starts working on new content, or goes on the dole. No one knows which. I’ve got a little kid, and we’re trying to buy a house. It’s scary. I keep wondering what would have happened if SimCity had done the kind of business SimEarth did. Maxis’s headcount can’t have been much different from ours. At $180 a disk, was a minor success enough to keep the lights on back then? How long could a game software toy development team survive without a hit in 1990? Has it changed? Most importantly, what would games look like now without the era of SimEverything?
Maxis did so much right until they didn’t. SimCity to Spore was 29 years. Both were bold, unique, and successful. Inbetween, and after SimEarth, they played things a bit safer. (Maxis even tried corporate training.) Ironically, it was the slipshod launch of a new SimCity (2014) that ultimately did them in.
For those who were there, SimEarth feels like a blast of Earth Day 1990 optimism. For anyone who grew up afterward, I’m curious. Too slow? Too obtuse? Too klunky? Or is there still an odd pleasure in mastering such a weird, geeky, cool beast?
Maybe in ten years I’ll get my little guy to try it.

FLASK! WE’RE ON THE COVER OF PC GAMER!

Out Now: Lillie is the Keeper 1.5 “Secrets”
The biggest update ever! Besides the lovely new Watch Room models blogged previously, please enjoy:
- Three new secrets to uncover
- New, streamlined AR setup
- Revamped models & textures
- Graphics, audio and performance improvements throughout
All this and it’s free through September 9! Grab your copy — and be sure to give it a star rating on the App Store. (It takes 3 seconds, and really makes a difference with search visibility.)
Edwardian Window Seat Bookshelf
This was supposed to be a quick, low-detail item. But it looked too much like a tv shelf. Two days later…

The everything-is-hand-modelled marathon continues with an assortment of new chairs, cleats, rings, hooks, rain gear, ropes and more. Look for Lillie is the Keeper 1.5 later this week, if all goes well.
1.5 will be titled “Secrets.” You’ll find out why.
Cortland-style Watch Room Desk

Stealing a bit of time to work on the next release of Lillie is the Keeper. I always wanted some sort of hero wall-mounted desk in the watch room (top floor, beneath the lantern). It’s rather a hub, as far as the game is concerned.
The design is inspired by a Victorian-era Cortland desk.
Creating Realistic Cloudy HDR Skyboxes
Each level of “Lillie is the Keeper” features a unique high-definition skybox texture. These Unity cubemaps are rendered in Bforartists, the UI-focused fork of Blender. Here’s how you can create your own.
Create a new scene in Bforartists, and switch the Render Engine to Cycles (camera icon: Render Engine). Add a single Directional Light, to act as the sun. Model a gently curving lenticular piece of geometry, about 5 km in radius, to act as the ground/ocean, and texture it appropriately.
If you’re interested in accuracy, you can enable an add-on called Sun Position to set your sun angle for the date, time, latitude and longitude of your game scene (Preferences menu: Add-ons: Lighting: Sun Position).
Switch to the Shading tab, and select the World (background) shader. Create a Sky Texture node. Set it to Preetham, and link its output to the World Output node’s Surface input.

Clouds
Next, model your clouds (as ordinary geometry) in rough form. Hide them from rendering. Create a Volume object (Add menu: Volume: Empty). Go to the Volume’s Modifiers tab (wrench icon), and add a Mesh to Volume modifier. Set the Modifier’s Object to your hidden cloud geometry object. What you’ll get is a Minecraft-like blocky cloud. Increase the Voxel Amount to reduce this blockiness somewhat–try 1024.
To fully remove the blockiness and get cloudier edges, go back to the Modifiers tab, and add a Volume Displace modifier. Go to the Texture tab (checkerboard icon). Create a new texture, and set its type to Clouds. Go back to your Modifiers, and assign the cloud texture to your Volume Displace modifier. Adjust the Texture and Modifier settings until you like the results.
Go to the Material tab (crash test dummy head icon), create a new material, and assign it the Principled Volume shader. Adjust the material properties to your desired cloud appearance. (This can take a while. Start with a Density of .001-.005. You’re welcome.)
Rendering
Finally, set up your camera to render the six faces of the cubemap. In the Data tab (camera icon) set the Field of View to 90 degrees. In the Output tab (printer icon) set the Resolution to a power-of-two square, like 1024 or 2048. Set the Frame Range to 0-5. Select a folder and filename to render to, setting the File Format to OpenEXR (.exr), in order to save HDR color values. Go to the Animation tab, and animate your camera to be rotated as follows on frames 0-5 (x,y,z):
- 0: 90, 0, 270
- 1: 90, 0, 90
- 2: 180, 0, 0
- 3: 0, 0, 0
- 4: 90, 0, 0
- 5: 90, 0, 180
Render all six frames (Render menu: Render Animation). This would be a good time to take a walk around the block. Notice the blackbirds.
Building the Skybox
When you get the renders looking how you want, open your frames in an image editor and arrange them in one big vertical strip. Frame 0 should be at the top, and 5 at the bottom. Save this, again, as an OpenEXR file.
In Unity, import the strip image. Click on the texture to see its Import Settings in the Inspector. Set the Texture Type to Default, the Texture Shape to Cube, and check Fixup Edge Seams.
Finally, create a material. Set the Shader to Skybox/Cubemap, and under Cubemap (HDR), select your texture. In your Scene, open the Lighting panel (Window menu: Rendering: Lighting). Click the Environment tab, and assign your material to Skybox Material.
Bonus
Download my .blend file for LitK level 5: Light right here.
Get LitK

Lillie is the Keeper 1.5 is now available for iPhone & iPad!
App Store (iPhone & iPad)
Out Now: Lillie is the Keeper v1.4 “Life”
New in this BIG update:
- Seagulls
- New Secret to find: Dreams of Flying
- Streamlined setup and tutorial
- Seafoam, wave staining, living space improvements, new music, and dozens more improvements
- Engine upgrade to Unity 2022, for new features & improved performance
- Bug fixes
And to celebrate 1 year on the App Store, LitK is on sale this weekend through January 15.
Fix Missing Materials in Blender FBX Exports to Unity

There’s a bug in the FBX exporter for Blender 3.x (and now 4.x) that doesn’t export materials on instanced meshes. While the original mesh imports into Unity just fine (and remaps materials correctly under the importer’s Materials tab) duplicate instances of the same mesh import with only the default Lit material. If you’re (perhaps oldschool) like me, and use a lot of instancing to save disk space, this is a problem.
Here’s a Unity Editor script to fix things: FBXFixerScripts.zip
It supports Undo, regular and skinned meshes, and will walk down the hierarchy as far as it needs to. Can take a few seconds to grind through big hierarchies. Works on my ultra-complex Lighthouse prefab, and all the others I’ve thus far thrown at it. If you find a bug, let me know!
Here’s how to use it:
- Download & unzip the files.
- Add FixFBXImportMatsUI.cs to your project’s Editor folder. (If your project doesn’t currently have one, add a folder named “Editor” to your Assets folder.)
- Add FixFBXImportMats.cs to your project, wherever makes the most sense.
- After importing an FBX with missing Materials, open the Prefab or drag it into a Scene, and add a FixFBXImportMats Component to the root of the import’s hierarchy.
- Assign the Default Material you need replaced to the Component’s slot.
- The default Material will vary depending on your render pipeline and import settings.
- If using URP, it’s usually the Lit material, located in Packages: Universal RP: Runtime: Materials.
- A quick way to find it is the select an instanced mesh in the hierarchy, and click on the Material shown in the Editor.
- Leave Clean Up After checked to have the Component remove itself after running.
- Click Fix Materials.




