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:
Format: Name frameStart frameStop doesLoop speed Data: 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 Swimming Falling //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 Idle1 IdleVariation1 IdleVariation2
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.
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.
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.)