top of page

Alpha Log #2

  • Squidwink
  • Aug 6, 2017
  • 6 min read

Progress

Safa’s New Form!

Safa’s new model has been put into the game - scarf cloth physics and nice hair included!

Her new look comes with many gameplay and quality of life changes too. For example, she can now put the hammer away, resting it on her back.

Safa now has a dedicated button to interact with blocks, which she can hold when facing them to push and pull them!

Climbing improvements are also coming along. The system (and parts of the level’s layout) have been adjusted to take into account the new Safa’s height!

Water Cannons

Water cannon turrets have been added! These turrets can rotate, or stay still. And they push forward a constant stream of water that blocks Safa’s progress. Jump over them!

Certain turrets will be too difficult for Safa to maneuver around. Thankfully, she has Mohaj and her hammer! She will be able to smash these turrets to create a vertical stream of water, clearing up her path.

More Environment Assets

The team continued creating more environmental assets. Trees, rocks, and grass assets, as well as puzzle elements like water turrets, floating blocks and pillar assets.

The Artists

Aidan

This week was spent making water effects for the sake of readability as well as environment asset creation. Two batches of four large rocks were put through the process of sculpting high poly, retopologising low poly and baking normals. The process behind the water effects was mainly trial and error as it is an area that I am unfamiliar with - I am somewhat happy with the outcome, but I may improve on it during the next milestone.

Connor

This week I created more environmental assets. I made the other two tree variants to be painted around the environment, and changed the first one once I had gathered reference on proper 3D tree leaf creation. After showing them to David, I got feedback based on how unity lighting reacts with planes on top of planes. I the made new tree tops with a main mesh body and several planes scattered around it. I them went on and created the high poly for each tree trunk and baked on the normal and ambient occlusion maps for each. After making the trees I moved onto creating two variation in the water turret being created for a set of puzzles, one whole and one broken into several pieces but maintaining the original shape. This allows the programmers to use their shatter script on the broken ones, making them explode into shrapnel on contact with the hammer swing. I also went through and made the high poly versions of each one to bake on the normal and ambient occlusion maps. After the turret I went back to some of my other concepts and made a wooden palette to replace the stone bricks in the floating puzzles. On top of these can either be a stone brick or a stack of wooden planks. I also created a cylinder stone pillar for players to use in crossing the water in the temple.

David

Week 3 consisted of building up more of the exterior level while designing more areas for the player to traverse through adding some verticality and objectives to add more playtime. A first pass of ground textures was created and painted on the terrain.

The Programmers

Hadley

This 3rd week was spent refining the character controller to utilize the rigidbody physics that was implemented in the previous week. Things that we took for granted using the character controller component such as the step up feature needed to be implemented. On top of slope detection for movement around slopes without the character ‘thinking’ it was falling and playing the incorrect animations.

Jumping was another key feature that needed to have work put into it, the way the jump “feels” is integral to the success of a platformer game, and required quite a decent amount of attention. The main issue now with the jump is trying to cater it to the animation, and unfortunately not the other way around.

Further development of the camera was put into place, allowing for better collision detection for the ground, and smoother “feel” when rotating or using it in anyway, play testers consistently came back that the inverted camera setup and sensitivity of the camera was hindering their experience of the game.

Other than that, bug fixing is the name of the game. As Jose redeveloped climbing, a huge amount of bugs surfaced and required attention as a lot of these bugs completely broke the game. Things such as getting stuck in climbing walls, or a particular state. Flow of logic stuff in the player’s controller script. As well as any issues that arose while Izzy was implementing the new animations as well.

Jose

I have to come out and say it: We finally fixed that bug where the jumping animation would restart when Safa touched the ground.

Now, why did it take so long to fix? How did it elude us so?

In a small corner of our code - behind many commented lines, in the most innocent of functions, our GetInput function was being called twice.

Over half of the bugs in our game were a result of this small accident. The relief that spread across my being when we erased the duplicate still lingers, positively impacting my life.

That aside, I did have to remake some things to account for the new Safa’s proportions, mostly some parts of the level (the initial climb section) and the climbing.

Controls were remapped, adding consistency to all of Safa’s actions and getting rid of some overlapping functions.

Pushing has its own dedicated button now! No more sliding into cubes and getting really mad! It even detects when Safa is pulling into an Abyss, making her stop pulling preemptively! I also added a little push of force into the cube when it’s pushed over the edge, making it feel nicer.

Now that we are using rigidbody, I rewrote the water torrent scripts to properly apply force to Safa.

I also made the hammer explode a turret and rearrange its geyser. That was another highlight.

In the future, I want to begin working on the game’s readability, as many elements in the game are hard to make out for people inexperience with the controls.

Izzy

Now the rig is now finalised, I have created 3 basic animations for it; idle, walk and run. For the idle, I have included some blinking animations from the facial rig I have created. Now it’s time to import it into the game engine. It worked well if the rig is under “generic” but when I switched it to “humanoid” it didn’t read the extra facial joints that my character had. So I went and researched why this happened but it didn’t give me any answers, in doing so, I have tried to create a mask and created another animation layer in unity’s mecanim. Hoping that this would work, it should be able to read only the facial animations on top of the base animation layer. Unfortunately it didn’t. Realising this has consumed a lot of my time, I have decided to carry on and import the run and walk animations. I have encountered another problem during this process, the engine seems to unable to read the translation of the hip joint of the rig so the character looks strange as it doesn’t do the up and down motion. Another large portion of my time has been taken from this so I have decided to carry on and not create custom animations and just use our old animations from mixamo. I also consulted my team mates about this and explained to them that it is a lot of work and if I do custom animations for every movement it will consume all of my time and will not give me enough time to do programming for the game. After resolving the animation problems, I have proceeded to implement the equip and unequip when Safa is holding the hammer. I also re-implemented the mechanic where Safa puts the hammer in the pole as it didn’t make it in the vertical slice. On top of this, I created animations that show these movements. I also re implemented hitting destructible objects with the hammer and applying precise collisions to enhance user experience. I also revisited the rest of the mechanics that involved the hammer, to make sure it all works for the playable build ; lever pulling and crank interaction. While revising the hammer functionalities, I have spotted a lot bugs that was caused by code, so when I showed my fellow programmers, their bugs has also been solved. This week has been very hectic but overall productive as well.

 
 
 

ความคิดเห็น


bottom of page