I’ve decided to start on a personal developer diary for an indie project that I’ve started working on, and I wanted to log all the work that I do right from day zero. My obvious reason for this is to get feedback from you guys, but also to organize a timeline of what’s going on with the project.
The idea struck me a while ago, I am a big fan of the film “How to Train Your Dragon” and those 3D infinite runner games, so I think you know where I’m going with this
The lore behind the game
“Every seventh year our peaceful and flourishing kingdom is under attack by a number of menacing dragons, they ravage the streets, kidnap the villagers to feast upon, and set fire to their houses. And every seventh year, a group of heroes (you) rise to face these dragons, and lure them out into the wilds and away from the people.”
I have the connection of the lore now with the game-play, and it will influence it in quite a few interesting ways, but I prefer to save all the juicy info for later when I can present it visually.
Would love to hear opinions from you guys, tips and tricks are -very- welcomed
Let’s begin then
Day 1 -
Prototyping the core of the game, starting with infinite forward generated terrain. Using simple prefab instancing and destroying based on player position seems to work perfectly, tested on a sub par android device and has no hickups (Need to test when I have tens of assets though)
Going to use an awesome trick to getting the terrain that is being generated behind what the player sees that a lot of other “endless runner” titles use. A custom shader that bends vertexes in the world based on their distance from the camera, achieving a curved view. I was lucky enough to find the shader a few days ago while I was doing my research and modify it to my needs (bend on 2 axis), you can see a preview below:
As you can see this greatly simplifies the asset production, and any future problem like physics, the whole world is linear within unity, it only looks curved to the end user.
Managed to get the first three character concepts done before calling it a day:
Thanks gavin
The player will always keep going forward having the ability to pick one of the 3 zones on the path (left, middle, right), unlike “Temple Run” per say where you have to take turns, however I do need to test out animating the curvature to give the illusion of taking a left/right turn or up/down hill, in my head it sounds good but I really don’t know till I run the test.
Great, sounds interesting. I do like playing endless runners and other “short attention” games whilst waiting for my kids after school and various clubs so will be interested to see how this progresses
First character model done, complete with UV’s and a temporary texture (it still needs work). Separated the hair into two layers of polygon strands so I can animate it as well without going too expensive on poligons (currently @ 2k poly)
Tested the look in unity and I’ll be going for a simple specular material for the metal parts, and will have to write a curvature shader that has specularity as well. Yes the curve shader needs to be applied to every material in the scene otherwise meshes will appear out of place.
Can see the mesh of the chest piece is slightly translated to the right in the image below because the current specular material doesn’t apply the curving, the result is even more proeminent the further objects are from the camera
The character has a full set of control animations
The fight between the character controller and rigidbody controller has ended. The victor is rigid body, using forces to drive the character motion seems far better. Realized it after wasting a whole day trying to make it work with the unity character controller and failing at the switching lanes over and over. The character controller was designed for full directional control, and using a point to point navigation, as was the case for switching between the 3 lanes, was very imprecise, at least to my current knowledge and experiments.
Tests, tests, and more performance tests followed. Built a first environment asset, a small cottage (approx 900 poly/1800 triangles including some small objects around it) mapped with a 1024x1024 ambient occlusion, and set it to instantiate as well. So far so good, running at a decent framerate on my sub par android device. Decided to go for 100% baked lighting for better performance, but I still need to find the soft spot between draw distance, environment fog and shader curvature.
Indeed, I’ve been preoccupied with tweaking the obstacles that you must defeat, working with placeholders until I get a good feel for the gameplay, and afterwards I shall build the assets to replace them.
The game will have different level themes that will load as you progress through the level, like the streets of the town, the back alleys, the defense wall. Each with a different set of extra mechanics, obviously to break the monotony that the other endless runners seem to have.
Still working on the textures, the character needs to stand out more from the ground texture, and I only have one building to instantiate atm.
Just saw this. Looks interesting -
I like the concepts.
Don’t know if you’ve considered this, but I could see shadows playing a big roll in the game play. Seeing a dragon shadow swoop in and getting larger (sets up anticipation for a dodge). Maybe the dragons breath fire and the player character has to dodge. There are some real interesting possibilities there.
Wanted to mention also - the bear looks cross eyed. Also on the other characters watch out for mirroring the reflective white highlights in the eyes - it makes the eyes look crossed.
Could you explain “how” that shader is making the environment look curved? - non coder here.
It almost looks like a camera distortion post effect.
Looking at the character and environment - it seems like the environment textures are more realistic looking than the textures and model of the character. I think a more cartoon look would fit nicely, compared to more realistic, to fit in the ‘How To Train Your Dragon’ style/theme.