|March 02, 2014||Tagged Flatom, Games|
Here's a first look at some in-game video footage of Flatom!
Here's a first look at some in-game video footage of Flatom!
When two atoms are right next to each other you can't see whether they are connected by a spring or not. In thinking about this problem I looked at real chemical models for inspiration. Here's a typical 3D model of a water molecule next to my 2D representation:
The straight edge between the circles indicate their connectedness without having to clutter the visuals with criss-crossing spring lines everywhere.
As you can see I'm going for a flat monochrome shading, which I hope will give the game a modern clean and minimalistic look. To test this out I reconstructed the machine sketches in-game:
None of these machines actually work yet. My next task will be to implement the atomic circuit idea and build working nano machines!
A big unknown in the last post's sketches was how to control the vehicles. It occurred to me that spring bonds could also works as "electrical" wires between atoms. For example, a touch sensor atom could activate a connected rocket engine atom. In this sketch the regular springs are grey and the wires are red:
The beauty of this solution to the control problem is that it stays squarely within the same atoms+springs model that would be used to construct the vehicles themselves. It's also WYSIWYG in the sense that you see the entire object and all its "scripting" at a glance.
This contrasts with the control scripts in Blocksworld, which use ordered rows of 2D icons that are entirely separate from the 3D building blocks. In addition, I can only show you half of this Blocksworld rocket ship's controls because only the selected block's scripts are visible:
The Flatom rocket ship sketch illustrates a direct coupling from sensor atoms (L and R button) to action atoms (the rocket engines). A third type of logic gate atoms could be introduced in-between sensors and actions to construct more complex functionality.
Here's a flasher circuit that could be used to drive a blinking light. Feeding the buffer's inverted signal back into itself with a delay will toggle the signal on and off with a period that equals the delay:
Here's a flip flop circuit I found on Google. It's bistable and will work as a memory of which of the L and R button you pushed last:
Of course, this will need some kind of spreading activation to be implemented on top of the physics simulation. But, seeing as these circuits feature NOR gates, such an addition should result in Turing completeness :)
This is where all the Flatom development happens.
To the right you can glimpse my small kitchen.
Behind me is a couch and a bed. That's pretty much it!
I've done a lot of sketching on what you could build using a 2D atom simulation!
Some of my inspiration comes from The Planiverse. The book describes a physically plausible 2D universe, the creatures that inhabit it, and the machines and vehicles they build. The protagonist meets an inventor who's trying to build a wheeled vehicle, but there's no practical way of attaching a 2D wheel to the vehicle's chassis while still allowing it to rotate freely.
I think I can get around that difficulty by extending my particle simulation with simple spring forces. You can view these springs as atomic bonds that keep an atom in place relative to its bonded neighbours. By ignoring springs during collision detection you could fix a wheel's center to the chassis while still allowing the atoms that make up the tire to rotate freely:
It should be a simple matter to give some atoms negative weight so you can build balloons:
This rocket ship uses the light gray atoms as rocket engines, though I don't yet know how that would work:
The spring bonds have a fixed length. If that length could somehow be varied dynamically then you could conceivably build walking creatures! I'm on a horse:
I don't see why you couldn't even make tracked vehicles. This excavator would move about on its track and control the scoop by varying spring lengths:
Finally, here's a mockup of a touchscreen user interface being used to build a windmill:
After working two years non-stop on Blocksworld I decided it was time to invent something new! But what?
More than 100 games are added to the App Store each day! For a game developer that's both humbling and terrifying. Mostly terrifying. Making yet another game seems like a recipe for failure.
Most games I play myself are on my iPad. The touchscreen still feels almost magical. However 3D games, like Blocksworld, will always suffer from a disconnect between the 2D touchscreen and the 3D world. In essence you're pointing at objects in a 3D space behind a glass window through which you cannot reach.
This disconnect creates all sorts of interface problems. Actions that would be trivially easy if you held the objects in your hand become frustrating exercises in indirect manipulation. I observed this myself when looking at novice players trying to place and rotate Blocksworld blocks.
For ease of reference I'll call the experiment Flatom, a contraction of flat atom. Could something simple like this be a basis for a game? I'm betting it can. Now I'll stop writing and start brainstorm game ideas!
This forest is a short walk from my apartment in Åtvidaberg.
We'd all like to be free to do whatever we want. But most dismiss that dream with "If only I were rich..."
Well, I made some money by selling Blocksworld. I then made some more money by working at Linden Lab. It certainly didn't make me rich, but it gave me a comfortable "runway" for launching my next project.
Computing your runway is a standard business practice. You simply divide your assets with your monthly spending. That's how many months you have to develop the product you dreamt up before it needs to become profitable. And that's the computation I did.
Then I found earlyretirementextreme.com. It was one of those aha moments! I'd heard Earl Nightingale say that "the quickest way to get rich is to make more and spend less," or something to that effect. But the latter part of that expression never really sunk in, until I read the early retirement blog.
So I reversed the calculation. Suppose I stretch my runway all the way to retirement. How much would I have to live on each month? Well, I'm 35 years old and in Sweden you can retire at 61. (People keep telling me the retirement age is 65, but that's simply not true.) That means I only have 26 years left! After the initial shock of realizing how old I am, I also realized I might just be able to stretch my runway, indefinitely.
I decided to go for it! I have sold my car, payed off my debts, and moved to a one room appartment in a small town where rent is cheap. I don't travel, don't eat out, and don't buy needless gadgets and clothes. I no longer have an office, a gym membership, or a TV.
What I do have is a computer, Internet, and complete freedom to do whatever I want. I could spend the rest of my life reading books on the couch, make games, or research AI. And that, is priceless.
If you've ever thought "If only I were rich..." I encourage you to open your favorite calculator app and compute exactly what rich means. I bet it means less than you would have guessed.
These cars contain few new blocks. Most notable are the rounded wedge, used on the hoods, and its inverse, used as fenders.
I'm thrilled to announce that Linden Lab acquires Blocksworld and all other Boldai products!
Our team will start a new Swedish Linden Lab office in central Linköping. We'll continue developing Blocksworld in preparation for a global launch.