Saturday, 17 December 2016

LudumDare 37 - One Step Back



LudumDare 37

Is a game jam event that is run 3 times a year. With both a 72 hour jam and a 48 hour compo. Myself and a friend who does programming. We created a game last year in December, however, we ran into some problems. i.e. our programmer slept through the submission period with the latest build of the game in his hands.

This year, learning from our mistakes we decided we'd enter again. I proposed we use 3D software as I was started to get more into Maya, confident I could create all the assets we needed for the game. Because of this we spent the week before LudumDare dabbling in Unity. At least initially it was just my programmer, but he suggested I get the program so I could put assets into the game. I noticed a collaborate feature, this gave us the ability to easily synchronise the same project across multiple computers, allowing me to add and reference objects into the software while he simultaneously adds scripts and code. Having never used Unity, I found it fairly simple after just one tutorial about implementing animation into Unity and some practice. Having to Bake my animation and export just the rig so that once in Unity will pull the skin from the master file, taking into account UVs and skin weights etc. Definitely useful if I ever plan to update the character and also gives me the ability to use the same skeleton on a new skin and still use the same animations. Great for character customisation with different outfits or multiple characters i.e. gender.

In our preperation stages we looked into creating a game similar to that of Banjo Kazooie and we drew mechanical inspiration from that of World of Warcraft. Opening the game myself to see how interactions work and how animations worked. I chose to look into this game as it is something I've enjoyed playing for years and the game demonstrates the use of fairly low poly and clunky animation in such a way that it feels smooth and satisfies millions.

DAY 1 - Theme Release

The event starts and the theme is released. One Room. We spend the first 3 hours or so, brainstorming through conversation, essentially pitching ideas to each other and building on one another's ideas. Starting out we were planning to create a game based on what we tailored our testing to. though as the brainstorming continued we decided on the idea to create the One Room in isometric controlling the character in a point and click manner. We were both happy with the idea and proceeded. This is the time when I start doing sketches to how the game may look and I can build an idea in my mind as to what the game will feel like to play.

 

Using Maya, I was able to create a test concept for how the rooms may transition. Though easy to Animate create in Maya, much more difficult to program into Unity.

The first part I wanted to get done was a a basic character. Reason for this is because it was likely to be the longest aspect of the creation and I also see this as the most important. A character that feels good to play can work in almost any environment. The audience can project themselves onto the character. I jumped into modelling the basic character shape.



UV Unwrapping

 
 

Rigging & Paint Weighting

Painting the weights on the character took a long time as I am still getting used to the process. Once I had finished and was ready to export him into an FBX ready for Unity I encountered an issue that stopped Maya from exporting the joint hierarchy as it was unable to find the bind pose for one of the joints. This baffled me as the bind pose button worked fine and I struggled to find a solution, that wouldn't require rebinding the character. Luckily, however, I was previously aware that I could copy skin weights and did some research into how I might do this. It took a few attempts to get it right. Duplicating Alex and his skin, unbinding him and proceeding to rebind and copy the skin weights. It worked! I was so relieved as I thought I may have to spend another 2 hours skinning him.

 

Using Alex in his bind pose I can now export a .FBX file with the mesh, textures and skeleton in the T-pose which will serve as Unity's reference file for all the animation. Seeing Alex in game instead of the previously used cube, is very exciting! The character is starting to come alive.
#IAmNowFrankenstein

To make the animation process easier for myself. I also hooked the legs up to Inverse Kinematics. Something I had done previously without feet. I did some research and found I needed to use Chain based Kinematics for the foot and I bound those to NURBs circles to help with selection and to move the leg and feet IK's together.




Applying my knowledge from 2D I can now create a walk cycle for my character. From my previous experiences each time I create a walk I further try to add a new element of motion to make the animation more believable and add weight to the character.



Because of Unity's referencing system I can easily update the reference rig file at a later date with these files serving as a basis for my programmer to start adding the character animations. This gives me the time to block in other assets for the game. I started by then creating the room that I had designed. I create my models and UV unwrap them ready for texturing, but as texturing can take time I left them like this so that we could start blocking out the game.

 

All textures are hand painted in Photoshop. Looking back on some of the textures I notice it may have been possible to UV some of the objects into the same space so that I could use the same texture for multiple materials to save on memory. Though being such a small game is not a huge detriment. Some of the textures however, are much higher resolution than what may have been necessary.
Although all the assets exist in this one scene I am able to select the assets individually and use the "Export Selected" option to export them as separate files which allows for fine tuning their position in Unity. This also allows us to use the assets in different ways and apply code to them individually for unique interactions.

    
I started copy and pasting the texture I had painted for the fireplace wood as it worked well for the other wood and saved time. Considering the limited time we had.
Day 1 comes to a close. We managed to get a LOT of the basis for the game done in this first day and for myself the rest came down to polishing and adding extra assets for more interesting game-play.

Day 2 - Extra assets and finishing Alex.

Alex has been running around with base colours for a while and its about time we gave him some extra texture. During this day I experimented with recording my progress and creating a time-lapse of the work I had done.



 


I decided I would look into using Sketchfab so, heres a 3D viewable version of Alex, fully textured. On top of being able to present my work in an interactive manner I have also looked at other peoples work to get inspiration.




I updated the reference rig with hair and eyes separately from the rig I used for animation. This was because of the IK's and various other parts that I added to the animation rig that the reference does not have. My animations once exported work as intended with the updated model.

To further build on the game play my programmer often asks for assets that serve a particular function. In this case he asked for a box, with the setting on the game I thought it would make sense to use a cardboard box. Though we could also use different storage furniture in other situations.

 

This was a nice little test as I wasn't sure if I would do this in a different way so I used the same method as the character. This made me realise that I can rig anything to make it move. Maintaining the ability to update the master reference file for the animations also. I can now make this box do anything. Perhaps when the character walks near to open it, it just flies away, flapping its ... Wings(?).

Towards the end of the day 2 Time-lapse you can see that I started adjusting the lighting in Unity to affect the mood of the scene. Went through many iterations but in the end I decided I wanted to emphasise the fireplace. For this I made the lamps either side cyan to bring out the orange further. The global lighting in the scene is also a light magenta to add just a little extra colour variation.

Day 3 - Everything is, done?

Well no, most of the important parts of the game are done but I have time left, so I need to give myself things to work on, asking my programmer if there's any other assets he'd like in the game. I also have a Uni lecture and a meeting on this day. I was up early in the morning and started with creating the basis for some extra requested models that I then sent to him via the collaborate system. UV unwrapped Book, Bookcase & Table as I didn't have the time to texture them in the morning.
Building them in the same scene for reference on the scale. Because of the amount of time I had left I copy and pasted the same texture across the new assets if I was able too. I did the same for the chair.




Finally, I built a button. I spent a lot of time on this doing some experimental designs. Sadly though, the final button ended up far too detailed and out of style to add to the final prototype. I guess I tunnel visioned during the process and designed it more for up close viewing as though it may be for first-person. The button is separated into 2 objects using 2 different materials. One material is used for the accent colour, this is the neutral grey colour running through the stand and the colour of the button itself, this allows me to tint the material in Unity to colour code the buttons. Both materials also pull from the same texture.




This was a really long weekend. I honestly can't believe how much work I am capable of doing in such a short period of time. I've probably missed some things in this post. Absolutely loved doing this. I've made many mistakes and learned a lot through those mistakes. I've also gained so well needed practice.

Time to Submit

Because Unity is a game engine, the rendering system is not as powerful as what Arnold has to offer. So I used Arnold to create an image for the promotion of the game. Using Mesh lights and various other aspects for the parts that we had yet to implement into the game such as the candle and fire light.






We submitted the game to LudumDare 37
The voting process has finished and here is our score.
Overall place out of #1489. Average rating out of 5.



Using Itch.io to host the game and to give us the ability embed the game in Web.
We hope to develop the game further and eventually release a full edition, until then. Here's the current prototype.

One Step Back - Prototype Build

No comments:

Post a Comment