Preamble
I'm holidaying at home this week; spending lots of time with Kate and Naomi (Felix is in Folkestone with his Grandparents). There are snatches of downtime (like now) where Naomi is off to sleep, it's a bit early for lunch and Kate is pinned down. There's not enough time to get out to a field to fly the quads but there is enough time to bimble on the computer.
I wanted to avoid the Minecraft trap. I do love the game still; I do look on the things I have built and think "WOW" but it is the easy fix for time and there are other things I want to do. So, I've decided to teach myself how to build games with Unity3D (and get to 90% complete on Icar version 5 rewrite). I can code a bit, I understand 3D a bit and I love games, so
Cloudship
The aim of the game is to survive and build up your Cloudship until you are the greatest Cloudship over Terrafirma! No doubt you know about the RPG and subsequent Minecraft Obsession.
Here's the design in my trusty moleskine notebook:
It's going to be a sort of base-building-exploration-tactical shooter where you take everything with you. The fun bit will be navigating your Cloudship through weather systems and using them to get an advantage on AI Cloudships. Later on you'll be able to upgrade your Cloudship by pilfering the wreckage of your enemies.
I also want to include Nobles and Humbles as resources, perhaps even being rendered but that's way off. Multiplayer would be cool too but I am not sure in what form that would take. Would you each have your own Cloudship and bump/fight together or would you all work on the same one. Probably the former.
Setup
First I downloaded Unity3D (for free) and Visual Studio Code, set up a new GitHub repository (yadda yadda) and began building a backlog in the handy "Projects" feature of GitHub. I've not automated releases and there is no Continuous Integration but I can live without that as the Unity Build is all done offline. I'm bunging everything on the master branch for now, but I'll change that when I start implementing any feedback. I've been putting together a Unity 3D YouTube Playlist if useful stuff I stumble upon.
Release 0.1 - The Ellipse Driving around a blueprint
For Release 0.1 (download and try if you like!) I wanted to be able to drive an ellipse around a blueprint with WASD. I wanted to use the inbuilt physics engine. It was quite easy. I watched some great Unity tutorials (Roll a Ball and Tanks) and wrote a bit of code and voila! I didn't need to write much code at all. Most of the learning I've done is where things are in the UI, and I'm pleased to say that it's quite well laid out and that it acts how you would expect: lots of dragging and dropping.
I don't love the way that the Cloudship moves but I need more stuff in the game before I spend too much time on that.
Next up
Is to add the weather pressure systems of Cyclones. This will require some vector maths! You can keep track of me on the Project page.
Comments
Unity is impressive with how much you can do with so little code. It's no wonder that it's basically ubiquitous on steam
Cgcookie.com has a load of unity tutorials which are pretty good some of them are free. Youtube also has some great series on how to use the engine but a lot are unfinished or old.
Thanks for the tip on cgcookie. I've bookmarked that. I'm making good progress, even if I had to re-invent centripetal acceleration by accident and then realise it was wrong!
It's late but here's a little snap before bed. Top one is a "scene" view, bottom one is the current camera, which I'll change later.
The disc shows the limit of a single storm cell and I've drawn on black arrows for direction. The blue arrow sticking out of the Cloudship is forward. The power of the storm is at its height at 70% from the centre. If you're on the edge that it'll drag you slowly. It's a simple hat function. As I'm doing with vectors, I can now add more in and where they overlap, you can have some interesting effects.
Next up is algorithm to create multiple weather systems with a deterministic algorithm - prob using perlin noise. I'll need a Game Manager object to add and remove them as I move around.