For this week, I continued working on the particles from last term. I added impact particles in the arms and reimplemented the damage smoke I added last term.
There were some bugs with the previous implementation that I fixed. I also parented the death explosion animation to the robot's chest to fix visual issues.
This week I started messing around with spawning a city background using Keira's building models. I created a demo scene for testing purposes.
Continuing, I added height variation, an empty center for the fight, and a "generate" button for testing parameters.
To wrap the week up, I created a background city as a prefab and did some manual adjustments to make it look presentable.
Early Test of the city:
This week I created a material for fog which has adjustable parameters and a functional scoreboard which displays number of times hit. This is more of a decoration and unrelated to our actual in game score, we can change it later tho if we wanna display an actual score or maybe health
Semi-Finalized "Fog Dome" and with shader and scoreboard (image from week 8):
This week I created a crowd shader which displays little robots that bob up and down. The shader includes several parameters which can change the speed of the of the bobbing and the amount of audience members. The shader also randomizes the hue of each audience member.
Further notes:
The crowd jumps up and down when a mech gets punched and also made the rotating cameras closer to the mech fight.
This week I added a placeholder ground texture and billboard functionality. The billboards are able to display video files and camera's in the scene. It switches between these with set parameters.
Further tweaked the exterior city.
Billboard showing news broadcast:
This week I further refined our exterior ground texture and added dynamic clouds using a shader.
I also tinkered with decal projectors and made a script for objects to spawn "dents" when hitting something with a large impact.
This week I was assigned to make a few new levels for the mech. I created two new levels (upper and lower left arm). I also made template prefabs for upper and lower left arm with revised collisions to streamline level creation.
Level prototype:
This week I completely overhauled the external city. I started by getting inspiration from real world locations to make the city look more vibrant.
I went back to the drawing board and reworked my city generator to allow for "streets." Then, I generated a few new cities until I found one that I liked. I then created a new ground texture to fit the city streets and scale.
To really sell the idea that this was a real, bustling city, I made some trees models for the scene and dynamic cars that drive to set points around the roads.
Additionally, I created arm decal points which allows for more dynamic mech exteriors.
Silly gif of the finalized external environment with all the dynamic pieces:
This week I went back and retextured trees and added new spotlight models with lights in the scene. I also added smoke stacks in the background of the environment, and added a building shader with a parallax effect.
Gif of the building shader:
This week I added a new repair texture which uses the paralax shader from last week to display the interior working of the mech. I also added the new environment to our main scene. Finally, I added impact particles which show up when a mech punches another mech. This was added last term but due to restructuring of some of the scripts, I had to reimplement it.
Wrapping up the term, I applied building shader to nearby buildings and created a skybox since the fog I implemented in previous weeks was causing issues with the build. The skybox creates the impression of a further city.
For the sky, I created a simple javascript program to create an image of a night sky. It uses noise maps to clump stars together to give the impression of a realistic night sky instead of just a few scattered dots.
The program can be found here and run in the browser: https://openprocessing.org/sketch/2898216
During this week, I attended several small brainstorming meetings. I helped flesh out our game's ideas with other participants and helped clarify some of the more concrete and technical details of the project.
Once I had developed a solid grasp of the base mechanics, I went ahead and started creating my part of the demo for our game. I created a balance of a mix of early level design and programming that allowed for expansion of the project from my partners. First I created an attack class that enables the team to define attacks as ScriptableObjects. That way, each attack is easy to create and manage . Next, I created a prefab for a UI button that queues a set attack, if ammo is available, and a prefab for a physical button that reloads ammo for a set attack. Finally, I added an initial prototype for the timer based combat and pilot UI that only one user can use at a time.
My goal for this week was to provide a solid jumping-off point for our team, and ensure the project can be easily integrated with other mechanics under development, such as multiplayer and character movement.
This week our team was able to nail down a more rigid idea of the mech and engineer gameplay. I focused on implementing the battery system in our mech which allows the movement, placement, and charging/draining of battery objects.
This week I worked on creating the "repair system" in which the player can hold down on broken parts of the mech and they become repaired. I created a framework in which other systems can call on certain repair prefabs to damage them when the mech gets damaged. Unfortunately, this broke some of the input since now holding the interact button triggers the interact constantly. More work needs to be done on the repair system.
In the past weeks, we refactored the battery system in the GDD to only have "charged" and "uncharged" states. This week I reworked the code to more closely cohere to this system. I also added the ability to input multiple batteries at a time, at a charger, they get a full charge after a given amount of time. When depleted, it depletes from left to right. More work is needed to be done with ironing out the details but the system is ready to be connected to other aspects of the game.
Tweaked the battery chargers and repairs to fit into our newer scene.
Added a debug UI that allows the user to adjust the player's public variables in game.
Added a player health station prototype. It consumes a battery or a number of batteries depending on how much health the player has.
Added a location indicator script that works with Hyungwoo's mech manager to find player's location in the mech and display it on the UI. Also added some signage around the mesh.
Added a weld effect for the repairs and added placeholder ui. Added impact particles in the mech view that trigger upon impact.
Added damage particles in the mech fight that appear where the mech/monster has been hit. Also added a "chest camera" in the core that shows the outside view from the perspective of the mech's chest.
Added a smoke effect for the mech and monster for when they get low. Lower health = higher emission. Added explosion death particles for when the mech and monster's health reach 0. Fixed some issues with repairs not displaying properly.