← appaday

Fruitland, a hundred islands later

On 11 October Fruitland was a phone game with six islands, which an agent had built overnight from one line in my idea list. A day later it stopped being a phone game:

ok never mind. fruitland is also a full-on VR game. […] let's convert this all into a VR / MR game. […] it was SO much more fun in VR than on mobile.

In the Quest 3 the island is a diorama standing a step in front of you, and Pip is about as tall as your hand. The reason I gave that evening still holds:

there is something about platformers that is perfect for VR cause there's usually no dungeons, no hidden areas, all is in plain sight.

Seen from above and behind: Pip, a small brown seed with a green sprout and a turquoise scarf, on a red carpet running down a black-and-white checkerboard floor between two rows of white marble columns with gold capitals. Silver fruit sculptures stand on gold plinths, candelabras line the carpet, a lit chandelier hangs over pillars topped with cherries, and purple juice swirls around the hall
The Marble Palace. Asked for on the evening of 17 October (“checkerboard marble, roman greek pillars etc... that's what I see”) and open forty minutes later, built by a builder agent.

Quality through quantity

The next day I stopped asking for polish:

ok let's just keep building levels for now... explore different designs etc... quality through quantity.

From 16 October, builder agents worked in parallel, each in its own copy of the repo, and more than twenty of their branches have been merged. Each island got one new mechanic or one new place. Some islands are labs: an open field for testing a single idea, with no route to follow. The first lab came from me:

next island idea: pip pulls out a giant hammer like in a comic. he can do some massive damage.

A flat square grass island floating on blue water, seen from above. Pip stands in the middle. Around Pip: stacks of wooden crates, a brick tower, burger-shaped springs, a cartoon tree, a ring of small dark beetles, and an angry purple stone block with red eyes behind a brick wall. Watermelons and limes sit on rocks in the sea behind
The Hammer Lab, built from Kenney's free platformer kit. Pip is tiny, and the hammer is many times Pip's size.

A few didn't work and were replaced (“crystals growing in realtime just didnt make sense”). To keep track of everything else, the pause menu gained a heart for a great level and a bin for one to delete. I laid one screenshot per island out on a board and sorted them by hand into eight rough worlds. The title screen now looks like this:

The Fruitland title screen: the word Fruitland in rainbow letters over a sea of orange juice with grapefruit and lemon halves. Under a big orange Play button, tabs read Worlds, Newest, Changed lately, With music, Your marks, Not played yet. Numbered tiles 1 to 52 are grouped by world: Citrus Coast, Pink Lagoon, Banana Heights, The Countryside, some tagged Town, Puzzle, Lab, Boss or New, many with a small note symbol. A card on the right shows island 1, Orange Landing, with a thumbnail and a line about its Grieg recording
The first 52 of 121 islands. A note symbol means the island plays a recording.

The design interview

Just after one in the morning on 17 October I asked to be interviewed:

now it's time for the coaching. e.g. one of my favorite mechanics is the one spontaneous idea I had with the hammer. so... just interview me about the game and let's design it together.

The interview has run 22 rounds so far. Each round is a few numbered questions; I answer them between play sessions, and the answers go into the project's notes and usually into the next build. Some answers turned into rules:

I personally love short indie games because I can play them without having to spend hours learning the game first. let's aim for 2 to 6 hours of gameplay

Some changed the hero:

no one knows what a strawberry seed looks like. But watermelon seeds everyone knows and they are kinda annoying so it would be fun to anthropomorphize them

And some were simply about how it feels:

it feels great doing a great drop from a Pusteblume scoring 5 or 6 fruits at once and you can literally feel your stomach sink as if you were really that high up.

I think the best levels have a great mechanic, a great world, a great little narrative with NPCs (mochi, sushi), and one small cutscene.

A winter village on a round island of snow-covered biscuit: gingerbread houses with frosted roofs, market stalls with striped awnings, a decorated fir tree, and fruit villagers standing about. Snowflakes fall. Stepping stones lead over a frozen blue lake to a tiered cake tower, and the whole scene sits inside a round wooden wall
The Snow Globe, in Winter Wonderland. It plays the Dance of the Sugar Plum Fairy.

A score from the public domain

On 15 October, in the middle of a round, I wrote that I was listening to Rachmaninoff's Prelude in C sharp minor and wanted a boss fight to feel that epic. Three nights later:

are there any old classical orchestra recordings that have entered pubic domain? I mean there must have been recordings in the 20s and 30s that are public domain now, right?

There are. In the US, recordings published before 1926 are public domain. So is anything recorded by a US military band, and some modern orchestras put their concerts on YouTube under a Creative Commons licence. An agent searched Wikimedia Commons, the Internet Archive, IMSLP and YouTube, checked each licence, levelled the files and logged the source of every one. One of the finds:

woooow die 4 jahreszeiten as public domain? that is GOLD! […] the rachmaninov fits like a glove again... the crackly sound makes it even better

The Rachmaninoff on the island called the Mould is Rachmaninoff himself, at the piano for Edison on 24 April 1919. The opening storm plays the Ride of the Valkyries, and the morning after it plays Grieg. A recording can also be dropped for a single cough: “someone coughs in the recording so it's a no-no”.

A round arena of chocolate in a sea of melted chocolate, with walnuts and a lit red candle around it. A giant walnut with a moustache, a grin and a blue soldier's cap stands in the middle between a red sentry box and a crate. Pip stands on a chocolate drum at the end of a wafer bridge, next to a small hazelnut. Snowflakes drift
The Nutcracker, a boss lab. Its Trepak plays faster as the fight goes on. I called it “a huge step up” from the other bosses.
islands
121: nine worlds, from Citrus Coast to The Darkness, plus Boss Labs, Experiments and an archive of five
recordings
44, of which 29 play somewhere in the game; every source and licence is listed in the repo
made of
plain JavaScript and WebGL 2 with WebXR, 39,647 lines (3,626 on 11 October), no engine, no build step
since the first post
258 commits, version 2.106.0
my first runs
80 minutes over 60 islands, timed by the game; the target is an hour and a half for the campaign
runs on
the Quest 3's browser, at 120 Hz

Frames before graphics

Since 19 October the headset has been sending its frame rate back to a small log after each island. On 18 October I wrote:

I feel that 120fps and full res should be prioritized over fancy graphics, because I think basic graphics at high fps and resolution will look better than fancy graphics at default res and 60hz

The first readings held 120 frames a second on every island I had played. Turning up the resolution dropped that to about 95, so the graphics card is the limit. Profiling found every frame being drawn as two passes; fixing that took Cocoa Lake from 13 to 8 milliseconds a frame. The verdict that night:

when it's full 120fps it DOES actually feel amazing because it's a rare experience on any device really.

Pale green platforms with craters, floating over the curved surface of a honeydew-melon moon against a dark night sky. Pip floats in mid-jump between them, casting a long shadow. A glowing star fruit hangs in the air, and a ring-shaped crater wall holds cherries and blueberries
The Honeydew Moon, in Experiments: low gravity, lychee moon rabbits, and Clair de lune.

Still rough

It's a headset game now and nothing else. On 20 October I asked to remove “all remnants of desktop or mobile play”, and mixed reality went with them. On a laptop the page still opens and the islands can be walked with the keyboard, but that's the test bench. All figures here were taken that way, flat in a desktop browser: none is the view in the headset.

Most of the 121 islands were built by agents. I said on 17 October that I hadn't gotten to testing all of them, and I'm still behind. The game froze three times in the headset on 20 October; a fix is deployed but hasn't been tested over a long session yet. The faster frames came at a cost: the shadows got too pixelated and the edges of the picture too blurry, so those are next. The story is half there. The siblings, the seals and a small love thread are written down, but the ending still only plays a march. A native shell for the Quest is planned and doesn't exist yet.