Saturday, 9 September 2017

The Long Night: Mecahnics

In this port I am hoping to show you the items in my project that I call mechanics. To me mechanics (remember I have no education, let alone in game development) are distinct frameworks used to fulfill a given job, so, for example, a terrain renderer, it's scripts and shaders would, for me, fall under the umbrella, Terrain mechanics, the various game play UI elements and associated scripts would fall under the umbrella of HUD (Heads Up Display) mechanics and so on. In some cases multiple set's of mechanics can be used to describe a given mechanic, so for example, my Ship Mechanics embodies the Ship Flight Mechanics as well as the HUD that goes with it and so on.

I am going to try and describe the mechanics I currently have in the project and maybe some that are on my wish list...

Ship Mechanics

Our protagonist, with the use of the ancient books they have acquired, has created a basic flyer, the flying ship. It's a sort of hover craft some ant-gravity car (grav car),  


As you can see, it's all pretty basic looking, the ship model I "crafted" out of Unity primitives, it's effectively a set of scaled cubes, pretty much everything at the moment is a place holder, so don't be too harsh on me, don't forget I warned you in my first post that I have no artistic talents :P The HUD for the ship holds quite a bit of information, so, other than the obvious, altitude, velocity and fuel, we have a vertical meter on the left that gives you lots more info, Ill cover that in the HUD mechanics.

Flight Mechanics

The ship itself is controlled with vertical thrust, both positive and negative (you can go up and down) and horizontal thrust, positive only (you can go forward), you can also rotate the ship left and right (you can turn too). This enables you to navigate round the world and visit the various villages to gather more story elements, or to make money running errands. 



Control of the altitude is done by setting your desired altitude and the ship then attempts to get to that set level, this gives the impression that the ship is floating along on a cushion of air, almost like a hover craft. As you can see in the first image, you have to doc on designated areas, once you have docked fuel consumption stops and you are able to enter the village the dock is for. Once you have took off from a pad, fuel will be used until you land again.

Naturally, landing too hard, or hitting the terrain will result in you damaging the flyer, in some cases, even destroying it...

HUD Mechanics

As you can see in the previous two images, we have a HUD, this gives the player quite a bit of information, as mentioned before, their altitude, speed and fuel levels, but also information about their surroundings.


The bar far to the left gives lots of extra information, from the sea level, to the current level of the deck (Terrain) to your altitude and target altitude.


So, on this screens shot we have the image above:-

SL  = Sea LEvel
DK = Deck Level
AL  = Altitude
TA = Target Altitude, where you want the ship to be.

So, in this screen shot the player must be accelerating up as the TA is higher than the AL, they are well above the deck and the sea level, as can be seen.

Terrain Mechanics

At the moment I am using the stock Unity terrain engine combined with my own script to populate the terrain splat map and to auto populate the trees and grass. I am also using my own terrain shader, a version of a terrain shader I have in the asset store called Distingo, this version has a few enhancements added to it, mainly tessellation and texture height blending.



Ill cover these in more detail in later posts. The clouds you can see in the scene above are animated, they are simple perlin noise textures that change over time.

Story Mechanics

This is still a work in progress, not that the other bits aren't WIP, it all is, just that this is not as far along and it's hard to show this in screen shots :P Ill try and describe it, or what I intend it to be here.

So, the story is going to be quite linear, you will need x,y and z before you can progress to the next bit and so on, but the mechanism used to find these things are driven by the Rumor Mechanic.

Rumor Mechanics

I have a script that generates rumors based on a given seed, and so, should you change the seed (I want to use the procedural here, but fear it's not quite right) and so alter the location and rumor order giving you a different game experience each time you play it

Rumor Manager

Each time the player docks at a village they will pick up rumors, these rumors will have some errands in them, some general things about the game world, and some rumors that will move the story on. As I say above, this can be altered with each new game by generating a new seed on game start, may even let the players enter a seed if they really want to.

Name Generator

Again, based off the same seed, this generator will generate "random" names to be used in rumors or in any other part of the game engine really.

Location Generator

Yep, you guessed it, this will pick a location, again based on the given seed.

VLOG?

I love blogs, writing and reading them, but I feel they are hard to get visual effects across, so in my next post, I am hoping to add a vlog post, my next blog post will be short and sweet, ill use it to just hold the vlog post in.

OH, WOE IS ME!

So, as ever, this weeks gripes are around me finding time to work on my project, again. As a hobby games developer, I think that's the most frustrating thing, time and the lack of it. This week I have had no time at all, this weekend, I am writing this post and I am hoping that next week, when I come to do the Vlog post, I will have progressed the project a little more.

[I think I am going to have this section at the end of every post...]

Sunday, 3 September 2017

The Long Night: The Beginning...

A bit about me...

So, I do game and graphics development as a hobby, trying to fit it all in during the very sparse spare time that I have. Back in the days of XNA I was even an DirectX/XNA MVP for about 4 years, I have helped (I like to think) a fair few people in the indie game development community, even have my name on a few credits, some for the use of my technical blog posts, others as I was lucky enough to help out on the games development. I even have a few assets on the Unity3D asset store.

I had been in a bit of a bad patch as far as my hobby goes, sort of lost my mojo a little, lacked a bit of direction. I have so many projects that I have started on my own and pretty much all of them unfinished. Then Dream.Build.Play 2017 came along in July, but typically I was on a long (4 weeks) family holiday in Australia at the time, by the time I got back and had adjusted to being home again, it was almost September, so I thought that I was way too far behind the curve to get anything together in time for the December deadline. Then I saw a post by Tarh Ik, someone I have know online since the days of XNA, then followed a post by, again someone I have known online for a number of years, again, from the time of XNA (it was such a great community) Simon Jackson, both of these posts as well as the fact that DBP (Dream.Build.Play) has been around for a long time, again starting out around the time of XNA, has got me wanting to write a game again, and so I have entered DBP with my title "The Long Night"

My skills are very much in the programming and shaders worlds of games development. I am about as artistic as a stick when it comes to 2D, 3D art and/or Audio, so my game will not have awesome art and models, but I am hoping that the game play and story might be enough to get others interested in it, and maybe have some collaborators. The idea, in the long term is not to have a single game, but a series of games where with each "episode" the story unfolds a little more, but I am getting a head of my self....

My Entry: The Long Night

I have never really done a story driven game before, my other WIP's tend to be platformers, shooters or exploration games, this is really the first time I have attempted anything like this, and I find that quite exciting :) 

The story is an old Sci-fi trope really, Humanity once ruled the stars, traveling at will between them, then something terrible happened, no one knows exactly what it was, but it all started to break down, worlds became less and less visited, the knowledge to maintain technologies was slowly lost, worlds degenerated into feudal realms having no contact with other planets anymore and losing the knowledge and even the desire to make contact with other civilizations. Many now do not even know that Humanity had such technology, indeed, some worlds think they are the only human worlds, and look to the stars as we once did, thinking they are alone in the vast expanse of space, their world, a blue marble floating in the velvet blackness of space is the only world, the cradle of humanity that exists.

Tools I'll Use

I use Google Docs quite a bit, Unity3D (2017), a very old copy of Photoshop (CS2?), Trello (good for planning if you have not used it before)  For my source control Ill be using Visual studio Online and of course, Visual Studio :)

How is it going?

Slow lol, At the moment I have my story (most of it) on docs, I have the past few weeks been re appropriating some of my terrain generators in Unity for the game as well as integrating a new terrain shader I am working on. Last week I created code and classes to handles generic rumor generation, as well as NPC name generation, this now all needs to come into the rumor manager so I can then start laying the story out in code.

Had a bit of a set back this weekend, and is why I am writing this blog post, my laptop seems to be having a few issues, and may even be on it's last legs (I hope not) so as I have been writing this I have been updating drives and backing up what I have on here :/ 

Going forward, I am hoping to do a few more blog posts, but also to do some Vlog posts on my Youtube channel.

Anyway, hope you have found this first post interesting enough that you would want to follow my progress.