Sign in to follow this  
  • entries
  • comments
  • views

About this blog

An ending an a new beginning

Entries in this blog


So.  I've been away for a while.  I had promised some people to take a vacation with them. It was fine. Problem is, though, that I get bored when I don't develop for a while. So I made sure my short vacation was active enough to occupy my mind.

The good thing about breaks is that you get a chance of perspective. I got a lot of new ideas that I made sure to write down. 

I started animating the Tiger-Hawk-hybrid ( which I still need a good name for ) and it took me a couple of days. I still need a few animations. They are: Swimming and Diving, Otherwise I think I am there!
The animation list looks as follows:

Name     frameStart    frameStop    doesLoop    speed

Idle1            40    60    1    0.5
Idle2            65    110    0    0.5
Idle3            115    185    0    0.5

//Layer Base
WalkSlow        195    215    1    0.5
WalkNormal        195    215    1    0.5
Run            220    240    1    1.0
Sprint            245    270    1    ~1.8
Break            285    300    1    ~0.6
Sneak            305    325    1    0.25
IdleLowSneaking        330    350    1    1
Sit            355    375    1    0.5
LieDown            380    395    1    0.5

RightPawAttack        400    413    0    2.0
LeftPawAttack        415    423    0    2.0
BiteAttact        430    440    0    1.0    

BraceLanding        445    460    1    0.5
Hover            465    480    1    0.5
VerticalHang        485    505    1    0.5
VerticalCrawl        510    530    1    1.0
FlyingPose        540    550    1    1.0
Landing            555    566    0    0.8
Jump            680    685    0    0.5
//Layer Wing
FoldedFull        575    580    1    0.1
FoldedSemi        585    590    1    0.1    
FoldedTip        595    600    1    0.1
Spread            570    572    1    0.1
LandingFlapping        445    460    1    0.5
Flapping        605    625    1    1.0
flying            630    670    1    0.7
StillFlyingPose        670    675    1    0.1

//Layer Head


I know - Quite the handful.  As you can see, I planned the layering a bit in advance.
There's a bit of coded animations done real-time as well. Fx. I wanted the wings and feather bones to bend correctly when turning while flying. :

Here - the red lines being the normal direction of the feather-bones and the blue lines being the coded, extra turning of the bones. This is applied when yawing and pitching to give and extra effect of control and it looks really smooth. There's a link to a demo video of the controls at the bottom of this post.

So I spend some time coding the controls and flying physics, and I really think I've hit some sweet spots.

A big game-play relevant topic for me is the limits you are presented with and forced to abide in a game. I'm talking about the mechanics that make a game fun and forces you to act a specific way. I want to talk a bit about this. 
An example of a simple game where the entire game-play is decided by mechanics is Counter-Strike.   Very simple game. The game essentially consists of the player knowing the different weapons( bullet amount, reload time, spread by recoil, projectile power, move speed with specific weapons ) and the levels and how to act in each situation (which varies because you often play against humans, who adapt to other players style). This makes a simple game very dynamic, with very simple game mechanics.  The entire game relies on the player feeling like he's getting better at the game, which is up to his/hers brains capacity to create synapses and reducing reaction time - developing hand-eye coordination. So the player is limited by his weapon and all of these parameters that makes the game-play are actually hidden! - except for bullet count. the game-play is made fun by adding damage depending on where you are hit and bullet force. When you are out of HP - you die.  

Many players keep coming back to this game because the player level essentially is decided by the ability of the actual player. In contrast - lets look at almost every MMORPG ever. In most of these games - you get in higher level by just investing enough time and pushing the same button a million times. I'm not saying that is a bad thing - but it is very different from a game where being good is actually caused by the player being better at the game.

So since the resources I can provide into this project are limited ( I can't spend thousands of hours building beautiful levels and rich dialogue), I am going to try and aim my focus on building something where the player level is decided by his reaction time and skill in using the game-mechanics he has at hand. This means I have to come up with some intuitive game mechanics. I am still developing ideas and this is definitely one of the fun parts about being a game developer. 
The most obvious mechanics are obviously something like Life/Health and Energy/Stamina. Since I am not a fan of numbers in graphical experiences, I am toying with some different ways to represent these internal numbers without doing it explicitly.  The one I have come up with so far is having a heart-icon for health. As the health deteriorates, so does the heart. image.png.2bd86e18a1b816545662e0e2aeb16466.png

I placed this in the lower right corner. 

To denote the energy level, I created an indicator that let the heart beat. When the energy is very low, the heart beats very fast. When the energy is high, the heart beats slowly. By doing this, I combined two indicators into one icon.  Also - to emphasize the energy-level, I added a sound of a single beat to the heart. This gives the player some audio-feedback. This, I feel, is necessary to give the player a chance to become good at a game.  Like counter-strike - many players skills rely somewhat on his decision to spend time reloading. Doing this strategically time-wise gives the player an advantage. Knowing when to reload relies on the players knowledge about how many rounds are still in the clip. Good players will know this by knowing the type of gun and how many rounds he has already fired. Here - by taking breaks at the right time when hunting could decide between failure or victory.


Other topics I debated with myself is the terrain. Naturally the vision in my mind is a picture of a mix of a beautiful jungle and a vast savanna, both rich with rich foliage and vegetation. This is a priority, but not so much as getting a running game.   What I have made so far is a spatially partitioned terrain with two Levels of detail each. There's a script on each of them deactivating the collision detection from the rigid-body whenever there's no living entity in it. This is just an optimization, but it is necessary if trees and other landmarks should ever have to find their way into the physical world of this simulation. Also, while Unity is a nice and neat engine, that provides so much functionality that it feels like not moving a finger compared to the shit one has to set up and code if creating your own engine from bottom up, Unity does have its performance issues. I definitely have to develop a shader to render the grass and other foliage. Normally, I would go with Unity's own Terrain editor using height-maps. But there are some disadvantages of this. The built-in terrain suffers from a limit in scaling. Furthermore, it does not render foliage fast enough for this project. it has to update very fast because the player can move very fast over the terrain. So I'm designing other algorithms, but it will take time - especially when it's not in the main-development time. 


Coming Objectives

The next objective is to implement the hunting-aspect of the game.

Firstly, this requires the AI aspect for all prey of learning and evolving. So this means that I have to sit down and program some evolution-algorithms for all these creatures. I think I want to try and use Neural evolution (or Neural Evolution of Augmented Topololies(NEAT) invented by Kenneth O. Stanley) , even though I predict that the learning curve is too mild for use in this application, but in return, if I can get it to work, I get a map of the development of the different brains, which is worth it, I think.

Another thing is functionality for camouflage and tracking of specific prey. This could be smell, night-vision or heat-vision/infrared vision when hunting at night.  Also - I want to implement the auditory aspect of the hunting as much as the visual.  So I'm looking forward to all of this.




Even though I would like to spend all my time on this project - there are a lot of things I need to take care of too. Currently, I'm looking for a new place to live, and I have to do so by the 15th of November at latest. I have to keep a job so that I can live and even though I want to keep that at a minimum so I can develop this, I have to earn some money for moving and to get by. The next update may be a little delayed - but what the heck. 

I hope you enjoy this little video (there's not much to show yet, apart from the general flying and animations. As you can see, the ragdoll mode needs some serious work as it just spazzes extremely, but the idea is just that when the player hits something very hard, he  looses life and becomes numb for a short period of time.)


One thing I want to redo or renovate is the player model and it's animations.  The first model was on a time limit and was mostly for showing off skills in modelling and character design. The assignment I handed in looks like this in a mandatory position to show that it is skinned:






The body model and skinning I am fine with. It has enough bones and links to be flexible enough for what I want. What I absolutely hated (but got very good grades for anyway) is the wings.
Notice how sloppy the wings are made. The main problem for me is the look, but actually, the look is not the only problem.  Let me show you an x-ray of how I built this model:





Notice the bones going from the wings. For every feather there's a bone controlling it. That means approximately 30 bones, which is not so bad since there's not necessarily a need for every feather to be skinned, but it is a hell to animate. The only good thing about having every feather controlled individually is that you can have 3-5 different feather textures and make them very hi-res without so much memory cost. A good engine would batch the rendering and good performance would not be a problem. 
But. No feathered wing looks like this. If an ornithologist saw this, he would rip my guts out or castrate me on the spot, everyone know how vicious they are.  So to be safe, I wanna change this.

Every bird wing has a number of layers and approximately 90 different feather types and shapes. So to make the wing look more real and voluminous, I wanted to do it "right". 

For reference, here's a drawing of the wing anatomy of a beautiful little bird called a "wall-creeper" (Tichodroma Muraria) 



There are many different feather types and wing shapes custom for the requirements of the specific bird. As you can see, there are the feathers that lift (the secondaries and the primaries) and some covering feathers that help micromanage the flight. 

So I wanted to try and model something that I liked the look of and matched more what a real wing looked like. Here's an initial model:


Here you can see what it looks like in viewport (don't mind the depth errors of the secondaries on the right wing). Here, I have two bones to control the spread of the primaries(the outer-most feathers) and two bones to control the secondaries. The Coverts are controlled by the wing inner bones. There's also an alula on each wing to make it look more like real wings.

These feathers were taken from a reference picture of feathers from a red-tailed hawk, since they have some more camouflage in their colouring. Since most of the hunting is gonna be in desert/Savannah/jungle environment, I wanted something that could blend in when sneaking around in tall grass. 

Please note that I am not an artist and I don't pretend to be. But I mostly know what I want.

Here's a rendering so that you can get a feel without the depth errors in the viewport:

In my eyes, this is much more pleasing to look at and if I were playing this character, I'd be less irritated. 

So the next few steps for me now is animating the thing and then coding some solid but fluent controls for it in a  suitable test-scene. So I'm gonna do that now.
The Next step is implementing a learning system for the creatures using a neural evolution algorithm.
After that I think I'll continue on the world design. More on that later.


Thanks for reading.




So -  the last couple of weeks I have been working on building a framework for some AI.

In a game like the one I'm building, this is rather important. I estimate 40% of my time is gonna go into the AI.  What I want is a hunting game, where the AI learns from the players behaviour. This is actually what is gonna make the game fun to play.  This will require some learning from the creatures that the player hunt and some collective intelligence per species.  Since I am not going to spend oceans of Time creating dialogue, tons of cut-scenes and an epic story-line and multiple levels (I can't make something interesting enough to make it worth the time - I need more man-power for that), what I can do, is create some interesting AI and the feeling of being an actual hunter, that has to depend on analysis of the animals and experimentation on where to attack from.     SO.. To make it as generic as possible, I mediated everything, using as many interfaces a possible for the system.  You can see the general system here in the UML diagram. I customized it for Unity so that it is required to add all the scripts to GameObjects in the game world.   This gives a better overview, but requires some setup - not that bothersome. 

If you add some simple Game Objects and some colors, it could look like this in Unity3D: 






Now, this system works beautifully. The abstraction of the Animation Controller and Movement Controller assumes some standard stuff that applies for all creatures. For example that they all can move, have eating-, sleeping and drinking animations, and have a PathFinder script attached somewhere in the hierarchy.  It's very generic and easy to customize.  At some point I'll upload a video of the flocking behavior and general behavior of this creature.  For now, I'm gonna concentrate on finishing the Player model, creating a partitioned terrain for everything to exist in. Finally and equally important, I have to design a learning system for all the creatures. This will be integrated into the Brain of all the creatures, but I might separate the  collective intelligence between the species. 

It's taking shape, but I still have a lot of modelling to do, generating terrain and modelling/generating trees and vegetation. 

Thanks for reading,

UML AI.jpg


Through my adventures of Computer Science and my voyage through learning about electrical engineering, software architecture, modelling, and animation, I have been testing everything in various real-time engines to satisfy my curiosity. One of the bigger test scenarios have become so interesting that I decided to make a game out of it.

The idea sprang from nothing more than a character model that I was required to do for the Game Institute (tm). It was just a model with some skinning, but I wanted to try and animate it and put it into a real-time engine. The model is a tiger-bird hybrid, and the idea of flying and hunting interested me, so I started programming some effects and controls for flying. Everything of course got pushed aside because of other courses and I forgot about it for a while. I have so many ideas sometimes, it is a bit hard to keep track of them all. I write them down and then they are forgotten.

A year later and I'm sat with more time on my hands now. This project is small but requires good programming on the controls and the AI. The work, that has to be done, is affordable enough that I can produce it myself. The world requires vegetation and terrain, and some wild-life. Everything requires sound-effects and atmosphere. I need some very solid controls on the actual character and some good collision handling/animations ( falls, crashes , catches and take-downs ). Last, but not least, I need some cut-scenes to lead the player in and immerse them (All my fav games have some good cut-scenes!). Story is everything, and even though I can't afford voice-actors or mo-cap animations, I can definitely create lively cut-scenes using the graphics and sound I can muster up for my requirements.

I have everything planned out and half the assets done. The rest should come swiftly as I get into routine, and I look forward to the first tests!

I will keep posts here on GameDev, partly as a diary and partly as a way to get critique and new ideas. Test-versions might also come up for better feed-back, but I'm still green and, I must admit, shy to what the internet might spout in my face about my baby ( why should it matter, though? The point is to have fun ).

It's not gonna be 50 hours a week, 30 is more likely. I have a full-time job to attend, a search for a new job to keep up and pheromones to apply to a hungry female of my species. Time-frame is about 2 months of work and I intend to keep as close to the deadline as my head will allow.


Sign in to follow this