Gravity Wing

Gravity Wing is a working title for the game I’m building. This isn’t supposed to be a AAA game with a fantastic story and quests that take you to the edges of the world; it’s supposed to just give me a space to be putting together some of the techniques I’ve been learning.

Features added this sprint

  • Added in your ship!
  • Added a spacey background, so that your ship is clearly moving.
  • Added some space trash that you can click on, see a tooltip for, and then pick up.
  • Added an Inventory screen with 3 “bays”.
  • Fooled around with the camera angles.

I’m actually still miles behind even the tutorials which covered spaceship games, even so whilst the above isn’t objectively impressive, I’m quite pleased with how this is coming along. I did initially toy with the idea of just copy and pasting the tutorial space shooter but I have learnt a whole bunch in making something non-prescriptively.

I don’t actually have a gameplay idea for the game yet: no story, no mechanics. The only inspiration so far is Rey’s (Star Wars) home world job, where she’s collecting space trash and selling it. Even there, I’ve not decided if this is a “shoot through the monsters to get to the loot” or “adventure around for the loot” game. At the moment I’m following where the features I need to make will take me.

The entire game right now consists of clicking some loot, collecting it, and then checking your inventory to see that you picked it up. As you can’t close your inventory yet, that’s your end-game success screen too!

The messy first commit is actually over on Github. You can even download the game right now, if you’re on a Mac. (I only know how to build for a Mac.)


I’ve not decided that the camera will stay like this.

I started off with a simple top-down view. However, I think this view gives a bit more life to the 3d of everything.

There’s still work to be done around decided how much the camera should follow the ship. I can imagine it getting frustrating to have it flicking all over the place as you move around. Maybe separate controls for the camera? (Like the right joystick in most games.)

Bugs fixed

Constant rotation. The player should mostly always be parallel to the ground. I wrote no code to change this. However, when I decided to rotate that piece of space trash to give it a bit of a “stuck in the sand” feel, some problems arose.

Unity tries to keep the physics of an object bumping into another object quite real, which includes the fact that if you run head first into a sloped object then you’ll be pushed down (or up) a little. This made the ship go spinning like crazy.

The fix here was just to apply Infinite angular drag, so that it could spin at all like that. I’m sure this’ll come back to bit me, but I’m not sure how else to fix it until it does.

Sliding under the floor. I’ve gone ahead and constrained the player’s vertical movement, as the above bug also paused the movement to change.

3 Principles of the Game I Want

In my last post I referred to a game that I wanted to build and had to learn Blender and 3d modelling to get started on it. I don’t have a huge success ratio of projects started to projects finished, so I’d like to walk you through the three key things that I want the game to have so that maybe someone reading this will one day make the game of my dreams.

The Principle of Finite Resources

There is X iron in the world. Once it’s all been dug up and turned into swords, you need to start melting down swords if you want to build something else.

Or, more interestingly, say you come across a beehive. You bet that you’ll find some tasty honey in there! Be aware that if you loot all of the honey, the bees will probably starve to death. Without the bees, who’s gonna pollenate those apple trees? Then what will the squirrels eat?

I love this kind of mechanic because it immediately starts to get away from the developer and change the world in ways they never wrote. Those squirrels had to move further north to find food, which the wolves there are pretty thankful for. Now there’s more wolves. That northern part of the map is now a more difficult area to travel through, all because a few in-game months ago you took too much honey.

Dwarf Fortress’s famous cat story shows this off pretty well.

The Principle of Finite Stories

I started playing Elder Scrolls: Online the other day and have been quite enjoying it. I was super pleased with having saved a living god from someone sapping away his powers. I walked around town with my head held high knowing that the Warrior-Poet himself gave me his blessing.

I can’t say I was modest about this. I told everyone. At some point someone said, “oh, yeah, I remember that quest. I did it on my other character a few weeks ago.”

Well that sucks. Either Vivvec is really clumsy or my achievement is down to nothing. No one on the other side of the city is thinking “gosh, there’s that guy that saved the Warrior-Poet.” They’re thinking, “bloody hell, so many people wearing that unique gift from a man that can’t keep his powers to himself.”

This principle bleeds from Finite Resources: only one player can ever have the reward for that quest. Only one player can ever save a city from its 12 year siege. You can’t allow bloody everyone do it.

I’d still like the game to have people within the world though. I acknowledge that it’ll be very tricky to do this as an MMO. I’m imagining that the population for player characters in a world like this might be 100 people, rather than thousands you’d find in WoW. Of those 100 people, just one will be known as the guy that saved the world from The Big Angry Lizard.

Hopefully the reason for this is clear from my example scenario: players should be making the history of the world with their actions. If you see someone with a fancy axe that glimmers with the cold energy of the Mountain Giants, you know it’s because they were the first to adventure through that particular area of the world. They were pioneers.

The Principle of Persistent Life

I’m aware I’m going to lose a few of you with this one.

Your character should never “log off”. Never should you close the game and your avatar disappears from the world, taking all of the Finite Resources and Finite Story loot with it.

This raises two opportunities in the form of mechanics: the Logic system and complex crafting.

I did not invent the Logic system, but I hope you’ll forgive me for giving it a name I can write around. Dragon Age was the first game where I saw this kind of thing. There’s a rather complicated and well-loved part of the game where you set up lots of conditions and actions. Handsome Templar should always rush first into a fight and trigger his Big Swing ability if there’s two people in range. If there’s only one person in range, use Little Stab. In Dragon Age you do this because combat happens in real time and you are controlling a team of four people. In this game, you do it because you won’t always be at the controller.

As your avatar never disappears, it may as well be doing something.

That takes me onto the complex crafting system. In Minecraft it takes half a second to make a turn some iron bars and a stick into a pickaxe. At worst, the iron bars took a couple minutes to smelt. The reason it takes such little time is because it’s boring as hell to sit around and wait. There are also many steps between ingredients and completed pickaxe.

In a game with the Logic system and Persistent Life, all the crafting can be done in “real time” (read: not actually real time) whilst you’re offline. Maybe you just have the game running on a monitor that’s hanging from your kitchen wall to watch your guy painstakingly making two hundred clay bricks. However, you watch it – or don’t – your avatar is doing the tasks that you’ve predefined it should be doing.

That doesn’t have to be crafting. Hopefully the system will be smart enough that you can send your adventurer off on a big journey towards that smoke cloud that appears every two weeks. You can set the Logic system to keep an eye out for food, fighting off bad guys, and run away if needed.

Your “Log of interesting things” will catch you up when you get back.


All these things together add up to a world that can change and grow on its own, with butterfly affects changing it entirely with each act. New servers maybe created identically, but as soon as your avatar starts killing blades of grass by walking on them, the world starts rapidly changing into a unique one no one else has been in.

Economies can emerge naturally. Magic can be truly rare (since not everyone has the same quest rewards). Careers can develop. Alliances forged. It’ll be a world your avatar can have a real impact on.

Stories can still be told within the possibilities of the principles, but for the first time your experience the stories will happen around you. No one will be waiting for you to kick off a story line. The moment you start a new server The Siege of Capbelly Castle is already underway. The Lord there will send off a man through the hidden tunnel exit to try and find aid. Will he get to an ally in time? Or will he (due to the randomness of combat) be killed by a passing bear? Without the allies’ aid (which could happen either way, entirely out of your hands whilst you’re on the other side of the map) Capbelly will fall. By the time you get to it, it’ll be a ruin.

But if you so choose to go towards it first, maybe you’ll be there in time.

Say you want to help Capbelly; what can you do? Well, they need more weapons. Maybe you can smuggle some in. With enough armaments they might just be able to push back the aggressors. You could spoil their food or disrupt their supply chain – remember persistent resources means they can’t summon food from nowhere. There’s a caravan out there on its way with their supplies. You could kite a hoard of wolves to the battlefield, and then let them do their thing.

None of this would be in a quest description box anywhere. With the three principles the restrictions and reactions should be obvious to an action you do. Make your own mind up.

3D Modelling

Hey, team.

If you scroll back far enough, you’ll notice that I don’t exclusively blog about D&D here. I’ve talked about other projects too, like ideas for card games and whatnot. Today is one of those days where I’m blogging about something that has little to do with D&D: video game development, specifically modelling.

I recently had this idea for a game which I was hoping to make using my normal web development tools (Ruby, HTML, etc). That didn’t seem likely after I got a few thousand words into what I’d loosely calls the spec for the game; I’d need a 3d world with depth – literally – that you could dig through to get to lower layers of minerals and ores. Think Minecraft and other block-based games. The webstack doesn’t seem like the right tool for the job.

I did a tutorial for Unity, but then quickly realised that my blocker is actually going to be making 3d objects. I’m not an artist by any means. I’m bad at drawing. In the 3d world though, I’ve been a fan of ThinMatrix for a long time and his uncomplicated geometric animals seem like something I could pick up.

I picked up a udemy course on Blender. I’m so thankful that it goes through rather slowly. It only drips new features on you at a speed that I’m really pleased with. I started with building simple objects like this set of stairs. You can see the crudeness of the transformations here: it’s just a cylinder with some rectangles rotated around it.

Then I learnt how to add colour to each of the meshes (shapes).

And most recently I’m really proud with this little scene I put together, making use of light and a better rendering engine.

Today I’ve been working on editing vertices, faces, and edges. This is where I can start to break away from simple primitive shapes and get into more complex wedge shapes and whatnot.

I tried making a 3d model of my house, but very quickly got annoyed by trying to replicate the ramp of our driveway. Maybe tomorrow I’ll be more patient with it.