Here’s what I’ve been working on for the past 18 months with artist Paul Blackford and composer Ryan Ike.

Glittermitten Grove is a game where you build your perfect faerie village in the treetops of an ever-growing forest. Every plant competes with each other for the sunlight it needs to grow and there are a range of unusual species for you to discover.

Glittermitten.com, if you wanna tell your friends. You can get it on Steam:

The game now has ramps, as I mentioned in the last post. Still have a few sorting issues with the visuals.

I’ve redone the multi-level table, which is the one to play if you want to try out the ramps. It’s lit and rendered now, and this time in a glowy, emissive style rather than shiny look I used in table 1.

I’ve made some colours inherently more valuable than others (Later in the rainbow is higher). This means the top half should be much higher scoring than the lower half. It also gives me the capability to give higher rewards for harder shots. Unfortunately it adds another multiplier to explain and at present the UI isn’t doing a good job of explaining how it arrives at the score. I’ve also made some internal preparations for the goal system.

I’m prompting to user to hit a go button before launching the ball. My hope is that it gives people a chance to familiarise themselves with the flipper controls before being under pressure to keep the ball in play.

I’ve tweaked the trajectory hint visuals so it’s clearer that you’re seeing an angle range available at that flipper position, and also the angle you’ll get if you flip right now.

If you are in a private house, you must first ask the owner for permission before you can sleep. If a commoner is blocking you from entering his home, use the [s] key to crawl under his legs, and then the same key to stand back up.

Conversations

In the starting location there’s another character. I say hello to them. Crash to desktop. This is v0.40.01, the first release after 2 years of feature development, and no QA.

This time I skip the greeting and get this menu:

Bring up a specific incident or rumor

Spread rumor of Sunkenbear the Misty Root’s presence in Glacialpelts the Sea of Panting.

I have no idea what the procedural rumours relate to. Did I walk past these people?

Me: (Ask about the surrounding area)

Her: “Ask me when I’ve returned to my home!”

Me: (Tell me about the local ruler)

Her: “The Firey Poet rules Lordbear. I am chieftainess. We are in the right in all matters.”

Me: “Are there patrols or guards?”

Her: “You sound like a troublemaker.”

I try the trade option but apparently that’s only for shopkeepers. Exchange brings up a bartering interface. I successfully trade loincloths with the chieftainess.

Me: (Claim this site for myself) “I’m in charge of Lordbear now.”

Her: “This must be stopped by any means at our disposal.”

Her: “Just now, (player character) claimed Lordbear in the name of (player character)”

I get a menu allowing me to react to this startling news:

Ask for the whereabouts of (player character)

Ask for directions to Lordbear

State opinion that it must be stopped with violent force

State opinion that it is not your problem

State opinion that it was inevitable

State opinion that it is terrifying

State opinion that you don’t know anything about it

State that it is for the best

State that you don’t care

State opinion that it is sad but not unexpected

State opinion that it is terrible

State opinion that it is terrific

Change the subject

I ask for more information about myself, in the hope that maybe it’ll lead to a self-assassination quest. It doesn’t have any effect. Nor does asking her to join me on my adventures or accept me as her lord. I accuse her of being a night creature but she just tells me to calm down. At no point does she turn hostile.

Combat

Having exhausted the charms of the conversation system, I set off into the wilderness. I meet a flock of peacocks that are mingling with a herd of stray cats. Lots of messages appear in the console. The stray cats affectionately head-bump the peacocks. The peacocks eat bugs. I am informed of this bug by bug.

I decide that I need some food and find the attack command. I attack a peacock and get a menu where I choose the target body part, the attack method and the manner of attack (fast, precise, multi-attack…). I bite the peacock in the belly. “You latch on firmly.” I attack again, and this time have an extra option: “Wrestle using upper front teeth.” “You bit the stray blue peacock in the guts from the side, tearing it. The stray blue peacock looks sick!” I bite the peacock some more, and manage to get multiple simultaneous wrestling holds using my upper front teeth, my lower front teeth and my upper right front teeth.

Before I can press my molars into action, the peacock dies of blood loss. I pick up the corpse and check my inventory. Sure enough the peacock corpse is there, along with quantities of peacock blood contained inside each item of clothing I’m wearing. The peacock guts are still in my clenched teeth. I try to interact with them in an advanced way.

I’ve been pitching a concept for a tree-top city builder game, that’s too large for me to self fund.

I shifted house.

I added ramps to Pinballesque. This turned out to be circuitous. I figured that moving from a 2D to a 3D physics engine would be the simplest way to achieve it, and might get me more realism.

After the reimplementation I wasn’t very impressed with PhysX. It had trouble with really fast rotation which I ended hacking by making the ball slide instead of roll (And yes, I did crank the max angular velocity). The continuous collision detection in the version I was using wasn’t reliable, which is bad news for something as fast as a pinball. Initially I tried to implement habitrails as extruded tubes of collision, but a mess of thin collision geo seemed like a far worse solution that just hacking it with a spline.

After I wrote my custom physics for rolling along a spline, I went back to Box2D. Now I have a 2D table surface with 3D ramps and rails, and rail visuals courtesy of Curvy. It works well.

I’ll have a new build up after I’ve built a table that does a decent job of showing off ramps.

A new table: a proof of concept for multi-level tables. It’s a rough cut to try out two sets of flippers. The idea is that there’s a high risk/high reward upper table with really wide set flippers, and if you lose the ball, you can still recover it on the easier, narrower table.

In an attempt to shorten the aiming learning curve, I’m displaying a prediction line when the ball is resting on a flipper. I also show the full range of angles that can result from the flipper position.

Simplified gamepad controls to moving flippers in sync with each other, instead of each stick moving a flipper independently. It didn’t add much and made it much harder to learn. You can use both thumbsticks in unison to move the flippers faster.

The gap between the flippers is now constant. I used to keep one flipper near the centre to make juggling from flipper to flipper easier, but it’s kind of redundant now that the ball has more friction force from flipper movement.

I changed the GUI from ImGUI to NGUI in preparation to do the bulk of the UI screens. (I’m thinking Jetpack Joyride-style minigoals). NGUI is frustrating the hell out of me. Anchored objects work fine for a little while, then freak out and go walkies later on, and I still haven’t been able to identify why. The featureset of NGUI sounds awesome, but I wonder how much of it is riddled with bugs?

I’ve redone the flipper physics so that they no longer glide frictionlessly under the ball. (Setting a Box2D rigidbody’s velocity directly is more respectable than teleporting its position. Using forces was simply too laggy)

The flipper bases now have nubbins on the end opposite the flipper to stop the ball from rolling off.

Added gamepad controls. I’ve only tested them on a 360 controller so far. Gamepads give you the ability to move the two flippers independently.

Flippers can now cross the center-line by a smidge, to help out when you lunge with the wrong flipper.

Mouse sensitivity is now consistent between different resolutions.

Visuals:

The combo blocks now have symbols associated with them to make it easier for colour blind folks.

I animated the combo blocks entering the combo stack. I use a depth mask above and below the stack and suspect it may cause compatibility problems. Let me know if you see blocks poking out the end.