Venturi DevLog #5 Our First Boss: Harec the Junkyard Caretaker, Concept to Creation
follow us at @VenturiGame and Like us on Facebook! And Vote for us here on IndieDB!
Harec is one of the first enemy characters we've worked on, and he will be the main antagonist that the player battles during Venturi's Junkyard demo mission. He is the caretaker of the Junkyard, commanding a drone army that dismantles and processes the dead ships and equipment that get dumped into the Junkyard. The drones also guard Harec and his massive ship, which the player must face at the end of the warp drive mission. Harec is a mad engineer and tinkerer, and has built a massive multi-armed craft that can quickly disassemble derelict ships or any trespassers. The ship and its arms vaguely resemble a mechanical crab, with limbs and the main body being a sort of patchwork of other ships and parts.
Taking Harec from a written concept to a fully rendered and animated model has been a very long process, and it's taught us a lot about the development pipeline. Our writers and designers started the process with a brainstorming session, coming up with many ideas for enemy types that would fit well in the Junkyard. We wanted the character to pilot a mechanical craft that would work well with the environment. Magnets, claws, grinders, lasers, and welders would all make for fitting attacks. After working back and forth we decided to go with a multi-legged creature that could attach to and move around the derelict ships that floated around the Junkyard, and came up with the idea of a mechanical creature that resembled a crab. It was versatile enough to let us mount the weapons and attacks we wanted, and also had an aggressive look. We were also going for a “busted and worn construction equipment” look with beat up yellow paint, full of scratches and dents and wear. One of our concept artists, Josh Durham was tasked with taking our ideas and putting them on to paper. He started with drafting four different images, experimenting with a few body styles and shapes.
While they were all pretty awesome looking we unanimously decided on option D and requested it in more detail. A few days later Josh presented this image, showing how Harec moves, his different features, and multiple views of his craft. His claws were embedded with magnets that could attract the player's ship, or bring in debris from the world to use as a projectile. Grinders underneath devour the toughest metal alloys. Missile launchers mounted on top could fire salvos to blow up any obstacle, including our hero! It was incredibly detailed and made everyone excited to get the character into the game! But oh no, what happened to our yellow construction vehicle? I completely overlooked that detail in the initial image—blinded by my excitement! We could have him recolor the whole thing but of course that would cost extra time and money. We accepted the work as is, knowing that once we hit the modeling phase I could pass the instructions on then.
Our resident modeler, Richard Lee, took on the daunting task of creating Harec for us to import into Unity. He had quite the challenge ahead of him! Fortunately being a mechanical creature worked to our advantage—each piece could be created separately. Breaking down any problem into bite sized chunks can make it much more bearable and achievable. Richard started with the legs and worked his way up to the body, giving us the first glimpse of his creation.
It took a couple weeks, but Richard eventually had the legs and body roughed out and assembled. He sent me the screenshot of his progress and I could see the light at the end of the tunnel. Harec was finally coming together like we planned!
The last pieces were the claws. While the whole model was very detailed, nothing on the ship seemed proportional at the moment. The legs were huge, the claws were tiny, and the whole craft looked slow and heavy. Fortunately since every piece was modeled as separate objects we could easily scale the pieces and make it look much better.
After creating the high poly model in Z-Brush, Richard created a low poly version of the model by hand and unwrapped the model for texturing. It was quite a laborious process, as you can tell by the next image. This is the diffuse (color) map for a single leg! There were additional maps for the claws and body, as well as normal (bump) maps for every part. This image alone gave me a lot more respect for the time and effort modelers and texture artists put into their art. Thanks for being awesome guys :)
We got the images in of the textured model and it looked astounding. Now this would make for a fierce battle! We loved the little details thrown in and thought the ship had tons of character. There's still some tweaking to do with the proportions, but it's definitely a step in the right direction.
From here, the next step would be to get this beast moving. We decided from the beginning to use IK solvers to rig and animate the mesh. It seemed much more flexible for walking on rough terrain (or in our case, over and around the hulls of ruined space ships!) and the procedural animations meant it would look very smooth. I looked for a good IK solution for the Unity engine and found Final IK. It looked pretty simple and powerful, and then I saw this video which solidified my choice. That looked fantastic! I bought it (fortunately on sale at the time) and set to work rigging one of the legs. It took me a couple of hours of reading their documentation and tutorials, experimenting with the bone structures, and tweaking constraints, but I got one of the legs rigged!
Pro-tip: each bone needs to be its own mesh, and the pivot point for the bone is at the transform pivot point. I had to have Richard slice up the whole mesh for animation which wasn't that big of a deal, but the pivot points were all over the place. To fix this I created a GameObject at the correct point and put the Rotation Limit Hinge scripts in there, then added the mesh piece as a child. That let me finely tune where I put my mesh.
Here it is in action once I enabled the rest of the mesh objects.
The IK solver will do its best to move the end point to the target transform.
Hah, that's so cool! I just duplicated the leg a few times and tried moving the body around.
Here's what I got:
Dance dance dance!!
I stole the mechanical spider's scripts from Final IK and re-purposed it for Harec. There were many undocumented values that took a buttload of tweaking to figure out, but I eventually get a realistic looking mechanical walk! Mission accomplished!
I learned so much about game development from just this one piece. It took several weeks to go from a brainstorming session to where I am now, due to the amount of people involved and the inevitable delay of working online. My next step for Harec will be to add and animate the claws and give the rocket launchers up on top of his noggin some firepower. Hopefully I can fit that in over the next couple of weeks as we work on our UI and Level Editor.
We hope you enjoyed everything in this news post! Please follow us at @VenturiGame and Like us on Facebook! And of course, leave us some feedback below. We'd love to hear what you think of the game -- thank you!
P.S. It looks like IndieDB is doing a contest! If you like what we're doing please give us a vote! It would mean so much to us if we were able to be recognized by IndieDB and the community!
P.P.S - Our Trello board is public and full of a bunch of stuff. Take a look if you're interested!