Posts

Fourteenth and Fifteenth Weeks - Finalizing The Game

Image
 Towards the end of the project, I started to work on it 8-12 hours a day for 2 weeks. I've implemented, fixed and refactored a lot of systems and features during this time. I will mention the most important ones. The first big addition is the main menu. We now have the main menu completed and polished. Everything works as expected and players now can also customize their characters. The following gif shows how it looks like as of now: I am going to leave this part of the game like this, the quality we have achieved here is satisfactory enough. The next addition is the camera panning at the start of the game. A small event happens at the start of the game showcasing the map. It can be seen in the following gif down below. This happens for everyone and then the game starts. We also now have the chat box completely functional. In the bottom left side of the screen, you can see the chat box and the text messages in it. The following gif shows both functionalities:  I will also qu...

Thirteenth Week - Spectating System and Powerups

Image
One of the bigger additions of this week is the spectating system. In the main playground of the game where the actual game takes place on a timer, Runners can now start spectating other players when they either get eliminated or qualify for the next round. In the following gif, the player that is located on the right side of the screen finished the round by crossing the finish line and is currently spectating the right side player. Because the screen space was limited it the screens occlude each other but the functionality can still be seen.  A few key things to mention about the system: The list on the right side (which is not too visible but the the top part of it is still visible) of the left player is the panel where the name of the other players are shown. That list is currently being updated with a callback what is called whenever someone crosses a finish line or gets eliminated.  Players are able to switch back to a wider bird-eye view by pressing 'M' while they are sp...

Twelfth Week - Ragdoll improvements, Polishing & UI button additions

Image
We as a team started the twelfth week of with a dreaded merge conflict. It costed us some time to fix what was wrong but in the end we managed to get both our versions up to date without losing any progress (this was a big relief, I am not going to lie). After spending two days on the merge conflict problem, I thought it would be nice to polish the game some more to get away from all the stress I had suffered. Mixamo was my first stop in my pursuit to polish the animations a little bit. I quickly grabbed a "getting up" animation from Mixamo and hooked that up to the system I had at hand. Characters now play a getting up animation after they complete their ragdoll phase. This immediately made the whole animation pipeline look better. The following gif shows how the whole animation pipeline looks right now. There are multiple things happening in here: First the animator gets disabled as soon as the contact is made with the pendulum, then the character turns into a rag doll, aft...

Eleventh Week - Outlines & Maintenance

Image
We now have stamina bar added to the game along with its mechanics. The bar drains whenever the player uses its 'Q' ability which is either a dive or a roll depending on which team the player plays on. The draining and filling up processes of the bar is being done with a handy coroutine. This coroutine slowly animates the bar to create a smooth looking UI. Some small additions that deserve mentioning but not an in-depth explanation are as follows: Nickname of the players are now visible above their heads. Depending on which team a player is on, they'll get an outline. Bulldogs get a red outline while the Runners get a blue one. Disappearing platforms have been added to the game. These platforms disappear after being stepped on and reappear after a few seconds.   Outlines looks like this: Other than the small changes that have been added this week, most of work has gone into bug fixing, code refactoring and maintenance in general. The main target points were as follows: A bu...

Tenth Week - Ragdolls & Physics

Image
This week I started working on the ragdoll physics and general mass, gravity and collision adjustments. I slowly started building up Jammo's rig by giving him 11 colliders for his different parts of body. The following image shows how Jammo looked like after the initial adjustments of his ragdoll colliders had been placed.  The idea here is that, whenever something happens that requires Jammo to transition into ragdoll phase, the animator which is attached to him will get disabled through code. By doing this I am giving the control of animating the character to Jammo's limbs and physics. That is how the randomness of the ragdoll was achieved.  The joints are also attached to each other with customizable joints. The following image shows at which points the joints were placed. The main stabilizer here is the hip collider. That is the parent of all other colliders and is the root game object.  After the ragdolls had been created I needed a source to make characters go flyin...

Ninth week - Animations & Jammo

Image
Today marks the date I finished working on the animations and setting up the player characters for the game.  We decided to use a famous YouTube channel character called Jammo which has a free to use license. After setting him up, I started importing animations for the little guy from a handy website called Mixamo. He now has several animations and all of them are functional too: 1) A movement locomotion animation set that came already prepared with Jammo. 2) Jumping up (Ascending) and jumping down (Descending). At this point in time I had recieved a level design from my designer for the pre game lobby. After merging our two separate projects, I integrated the level and started to slowly convert the level into a network-proof one. I started to identify the objects that needed to be synced among all players. These would be moving obstacles like: pendulums, hammers, rotators, flat platform rotators, push rotators and etc.

Eight Week (Project is continued after submitting the other course)

Image
  The project was continued after a long break because I had to work on another university course. The topic of this week is spawn points. The figure below shows how the spawns will look like at the beginning of a round. The bulldogs(red) will be spawned at one side of the map and the runners(white) on the opposite side. When the countdown ends the round begins.  We now have a sophisticated spawning system. The game will spawn players depending on the number of the players in a match. The spawning algorithm will start to number both runners and bulldogs. It will then spread out the players depending on their assigned numbers on each side of the map.  The image below illustrates how the algorithm would spawn a team of 3 bulldogs and a team of 6 runners. The grey 'X' illustrates the point zero  of value Vector3(0,0,0) . There will be no players spawned on the 'X' (point zero). The first odd numbered player (1) will be spawned 1(meter) * spacing constant   (C) to ...