Dreaming of Ambienome

Lately, I've been having visions of a game I've been wanting to make for years, which I call Ambienome, a pseudo-portmanteau of Ambient (as in ambient music) and Anemone (the tendrilled sea creature). Both the concept and the name are inspired by Toshio Iwai's Electroplankton. Like Electroplankton, Ambienome would be more of a musical toy than a game; the purpose of it is to have fun and express your creativity, not to "win".

The basic concept of Ambienome is that there are underwater creatures that emit sounds and interact with each other and with the player. But unlike Electroplankton, these creatures are heavily modifiable, by combining and connecting "parts". Each creature has a shape (built out of polygons, curves, and circles), some input/output sockets for connecting with body parts or other creatures, and a collection of parts or other creatures in its belly, like internal organs. So, the creatures are essentially zoomorphised node groups with connections to other nodes and groups of nodes. Much like Blender's compositing nodes, but more adorable.

So, it works like this: There are body parts, which define basic functionality (e.g. "play a sound when you receive a signal", or "send a signal when you collide with something"). Body parts have sockets, so they can be connected to each other by wires (or tendrils) to make more complex functionality (e.g. "play a sound when you collide with something"). Body parts can be grouped together to make a creature, and a creature can also contain other creatures (thus, arbitrarily deep nested node groups). Creatures also have a shape (and color, etc.), and perhaps some sockets of its own, so that its internal parts can be connected to other creatures or parts. So, creatures function as reusable, customizable templates for behavior.

To make things even more customizable, players can even create new body parts, which are simply Ruby code wrapped in a visual shape. They can have input and output sockets to receive and send events, and can use an API to perform actions like playing sounds, adjusting their volume, changing their shape, and applying physics forces to move or spin itself or its parent. The API would grow with each version, enabling more and more kinds of creations.

"Gameplay" (if you can call it that) would consist of creating, interacting with, and watching/listening to the creatures in the scene. Body parts, creatures, and even whole scenes could be saved locally or shared online — ideally, I'd like to set up an online service like the Sporepedia, integrated into the game, where players can share, download, rate, and comment on creations. And of course, there would need to be realtime multiplayer collaboration over the network!

That's the dream, anyway. Only time will tell whether I'll actually attempt it, or just let it brew in my mind some more.

Previous post: Migrated from Mephisto to WordPress Next post: Snippet: ls_r (recursively list and process directories)