week 8 post ggc

5SD037

Hello

Now GGC is over, it went well even though we did not win any awards. In hindsight i think we should have focused on making a fun game to play on the ggc floor rather than overscoping the game and falling short. Also should have created a better tutorial so we did not have to stand there and explain to everyone how to play our game.

Now off to write my report !

week 7 preperations before GGC

5SD037

This week is the last production week before GGC and i’ve been working on the cloud. I ditched the idea of using particle effects for the cloud instead we used a mesh. This meant i had to modify the code to accommodate for that change. They also wanted the cloud to change color when hit by fire and water. I did this by change the emission value of the material when the cloud is hit by the fire or water. Other than that not much new, just bugfixes.pd6dnyx

week 6

5SD037

This week has been all about lumi colliding with the water.

When Lumi simply walks into water, i reused the same effect as when lumi collides with a thorn. It’s a simple knockback and damage. But when lumi jumps into the water, lumis position gets saved and when lumi then touches the water,l lumi is transported back to its pre-jump position and takes damage.

I also wrote a script that is used on both lumi and terra when they take damage. The script modifies the material on them so that they flash red three times when they take damage to indicate more that they are taking damage.3abjviq

Week 5

5SD037

Hello

This week I’ve been hard at work on our game Symbiosis. My tasks this week were to create a script for the thorns so that our leveldesigner could place them where ever he wanted without any problems.

To do this I saved the downward direction of the thorn, and then when snlight hit the thorn i did not make thorn just go down. Instead i made the thorn move in the direction that i saved at the beginnin, the downward direction in relation to the object.

The amount that the thorns move is the same length as the thorns hitbox, so it always goes underground when hit by the sun

That was the main thing i’ve been working on during this week, i’ve also been doing various bugfixes.wv9wxcf

week 4

5SD037

This work I’ve been working on a lot of bugfixing. We noticed that the cloud was really buggy during the testing last week. So for me the highest priority was trying to fix this.

One of the bugs i found was that we used a rigidbody so that the cloud could collide with diagonally alligned platforms. We decided to disable it to fix a lot of these bugs. The only bug after this was that the cloud didn’t collide with platforms. I fixed this with raycasts, three raycast above the cloud and if they collided with an object tagged correctly it would no longer go up and three other raycasts but in the down direction.

Another thing i did this week was so Lumi could drop down platforms when the player presses down on the stick while pressing the jump button. I achieved this by checking if Lumi collides with a platform then it checks for the inputs. If those statements are true it disables the platforms hitbox for 1 second allowing Lumi to fall through it

.448mzya

week 3

5SD037

Hello

This week i’ve been working on animations for our lumi character. The specific animations i’ve been working on are the walking and running animations and idle animations. The first thing i was tasked to do was to blend the walking and running animations. For this i used the unity blend state in its animator window. I used the absolute value of the axis value of the left stick to decide the float value of the blend.el7w51t

For the idle animations i didn’t want to blend between them, but i still used blend states to decide what animation was active. The idle animation is decided randomly but on of the animation has a much higher chance of being chosen.

Symbiosis week 2

5SD037

This week I’ve been doing several things for this game. First I started coding the interaction between terra’s water and Lumi’s fire. When those things collide its meant to create a cloud that lumi can walk on and raise while terra can’t walk on it but can lower it with her water canon.

2g7nhn8

What the script that i coded does is that it first of all checks if Lumis fire collides with terra’s water. If that’s the case it takes the premade invisible cloud object and makes it visible and moves to the position between Terra and Lumi. If the player then holds those hitboxes together the scale in the x axis of the cloud increases making it longer. I therefore made a max limit so that the cloud couldn’t become too large.

When the player has created the cloud and the two characters projectiles are no longer colliding is when i allow for the cloud to go up and down. It goes up when it’s hit with Lumi’s fire and it goes down when it’s hit with Terra’s Water.

The second thing i did this week was a lightdetector that it’s going to be used later in the game. It’s function is to set a bool to true when it’s hit by a spotlight. The way i did it was to combine a spotlight together with a cone hitbox. If the LightDetector object is inside one of these cones it send five linecasts with different origin points towards the light it’s colliding with. If one of these don’t collide with an object that is tagged with either ground or cloud the bool inlight is set to true.

sgpzzc4

That’s it for this week.

Symbiosis week 1

5SD037

This is the first week in production on our game Symbiosis. In our first week i had the task of creating the movement for one of our two characters Lumi.

ulwqhcy

This is my first time working in Unity and i had a bit of a learning curve on the first day. But it didn’t take me long to understand how script worked with gameobjects in unity. And how you could make scripts interact with other scripts. The jump activated when it found an input on the assigned button and increased the velocity with a certain amount. The gameobject always has a gravity force applied to it to force it down after a jump.

Lumi was also required to be able to float in the air after the jump button is pressed again while already in the air. If the character is in the air while the player presses the button again the float bool variable is activated. The float doesn’t truly activate until lumi is on its way down. I did it this way to prevent a bug where the player could press the jump button twice to gain a lot of height. When the float is truly activated the gravity on lumi is cut in 8. This effect might have to increase later on.

The second thing i did this week was lumi’s fire breath attack. The fire breath would shoot out i cone form and would increase in size the further the player pushed the trigger. To make this easy on me i decided to only use three different hitboxes for this. And different hitboxes activate depending on how pushed in the trigger is. The fire effect will the be put on the cube collider later. In the mean time i use a simple cube mesh to visually represent the fire.  To hide the mesh when it isn’t active i use meshrenderer.enable = false.

ljs2ko4

To fix so that the fire could penetrate platforms i created a script to check if the individual colliders on the fire collided with a platform. Then i used that data to deactivate the fire if it collided with a platform.

The last thing i did this week was implementation of Lumi’s animations. The model and animations were imported together in an fbx file. That i could use to get all data from and then create animation clip that i could use in the unity animator controll feature. I the implemented the animation flowchart in the animator controller so that the animations would flow into each other correctly.

That’s all for this week.

 

 

 

 

 

Last Fixes

5SD033

As we tried to make the game as finished as possible last week, we did not actually have that much things to do this week. At least nothing major, like a mechanic that had to be implemented. The tasks that i were tasked with this week were the following:

Fixing the player firing mechanic, before i fixed this, firing with the warden felt a bit pathetic. It was so bad and because the way that the attack speed affected everything it made it feel very unresponsive. If you quickly tapped one of the four fire buttons too fast the projectile would not fire. I fixed this by simple lowering the attack speed. This also meant that the powerup that makes the player do more damage and fire faster feels a lot stronger than it previously did. But the gamedesigner and i agreed that it only made the game feel better. And it made the strength powerup feel worthwhile and made the player want to have it.

I also fixed a bug where the player could “plant” a tower even thou the combine seed static method was returning 0, to fix this i added a simple check that checked what value that seed combiner returned, if that value was 0 it would’t plant a tower.

Our game designer also wanted to have a game timer at the bottom of the screen as a way to measure how well the player was doing. I also thought this was a good idea as our game is endless and the only way to measure how well you are doing is by how long you have been surviving.

The biggest thing i implemented this week was our defeat state. The player gets to this state if the player loses and the lifetree is destroyed. A problem that i quickly noticed was that the game state still existed in the memory. That meant that when the player presses the restart button the game state would be the exact same way as it was when the player lost. Because the life tree was already destroyed in the state the player goes to the defeat state again. This was sort of a pain to fix, but i fixed this by adding an overload variable to the defeatstate that takes an StateManager pointer.

The last thing i fixed was an old bug where only one of the three spawnpoints were being activated. The bug was that there was only one variable for three spawnpoints. To fix this I implemented a vector.

fSQVFcc

Final Beta Week

5SD033

This week me and my team have been hard at work finishing most of the things that need to be done before the beta presentations. At the start of the week we created a document that everyone filled in with things that we thought had to be done before the presentations. We programmers already sort of knew what had to be done, so we just filled in and divided the tasks between us. The tasks that i had were the following: the GUI, that means both the hud and the main menu in this case. And also the seed combiner.

In our game you can collect three different types of seed, you need these seeds to build towers. depending on what types of seeds you currently have, you can build different kinds of towers. I built the seed combiner, the player can select the seeds that they have and then press space and depending on the players selection a different tower will be planted. This seemed really easy to me until i realized the player had too be able too select two of the same type. As i felt i had very little time, i didn’t take the long route and create some great code that looks good. Instead i created six variables, one for each selection (we have three different seed types). When the player presses space it calls the Combine seed class, (which I made static). The class takes in all the mentioned variables as overload variables and here I hardcoded all possible selections. If the selection is all three selected at the same time or if none is selected the method returns with 0 and no tower is planted. When the player has pressed space all the variables are turned to false and the selections are in that way cleared.

I also created a piece of hud for this mechanic. The hud shows how many of each seed you have and which seeds are selected at the time.

I also got a new graphic for the main menu from one of our artists, which i implemented. This one had a couple of more options to chose from, as it had controls and credits and sound options. I don’t know if these will actually be in the final version of the build.

We still have some crashes that hopefully won’t affect our beta presentation on friday, i think we can fix them until then.