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
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
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
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.)
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
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.
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
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
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
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
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.
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
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
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.