Florant

Project Information

  1. Dev team & Development environment
  2. Development Process
  3. Gameplay
  4. Post Mortem

Game mechanics showcase

  1. Enemy
  2. Player
  3. Environment
  4. Level building
  5. UI

Project Information

This project was a bit more complex, in our first week we went to the Stedelijk museum amsterdam to look at the works of Hito Steyerl, then brainstorm an idea for a game. we had 8 weeks to make a complete product to showcase in the museum and have other people, teachers and people from the game industry play it. we didnt have any requirements on what should be in the game just that it needs to be a complete product we worked with trello & scrum as usual and this time had to make the trello board more agile and we also had to make a bunch of documents that were not really necessary. Our game idea was to make a 2d platformer game inspired by a flower art, unf

We had a pretty decent team this time around, we had 4 artists but only 2 devs and 4 Spatial designers. but as usual i did 90% of the work dev wise. we didnt want to make our game very big and we wanted a small 2d game so we went with unity. the artists worked with photoshop and adobe animate. we worked with trello for product & sprint backlogs The spacial designers were tasked to take ideas from our game and make props to showcase alongside the game in the museum, we eventually went for a chair inspired by one of the enemies and a bunch of toxic barrels and flora Here is the credit to the other people who worked on this project:
    Artists

    Eliza van Bokhoven(No website available)

    Eloise Werkhoven(No website available)

    Mauran Peters(No website available)

    Lisa Rijke(No website available)

    Spacial designers

    Lina Rebel(No website available)

    Somine Prins(No website available)

    Claudia Wielheesen(No website available)

At the time of the project starting i was pretty burned out from alot of projects and didnt really care about the idea of the game or the ideas of the mechanics, i would have only said no if the scope was too large or unachievable. the artists did most of the documentation on the project and got the idea for the game and the theme. like i said in the previous card, development wise i did most of the work besides enemy movement and afk input check (checks if the player is afk and if true it will return to the main menu). at first and during the first to fourth week i was happy about the amount of progress we made and the tempo we worked as, altough my other dev didnt do much the artists worked hard. then after that it was mostly adding in more animations and couple of features, most of the enemies were done by 1 artist while 1 other artists did animations for 2 enemies, but kept exporting it wrong or had issues with the assets so due to time constraints i was not able to put it in the game with the amount of bugs and broken things the end build still had alot of bugs that were too big to fix in a couple of days or a week so i eventually was not super happy about it having bugs

The game is supposed to be played with controller so it would be most comfortable for the person in the museum. You can walk around with the left stick jump with X, attack with O, Block to avoid taking damage with □ , and use the camera with △, when a enemy dies you can use the camera while facing the enemy to turn the enemy into a flower and gain +5 health You can pause with the select button (ps4 controller) and use the Dpad up and down to select ui items

The goal of the game is to go through the level and defeat any enemies you face on your way, then you can enter the lab to win, here you can see the player entering the lab and the win screen showing up

Overal decent project, i definitely got to do alot and code a bit more complex stuff but i had to rush alot and didnt get alot of time to fix some crucial bugs, we got to showcase the game in the museum with the awesome mushroom chair and all the decorations around it. Here you can see the picture i took of our stand, we got a laptop to borrow where we had to upload our build on and have it connected to a external monitor, because we decided to use a controller the entire laptop could be hidden away.

Game Mechanics

Everything about the enemy was done in 1 object and in 1 script, my script was build with the open-closed principle in mind because usually its the laziest and fastest way to do something personally. each enemy has their prefab were you can change the values like health and movement speed. here you can see the different colliders the enemy uses, the biggest one is for when the player comes in range, if so the enemy will start to move towards the player, the smaller ones are for either collision or attacking

I worked alot with the unity animator and decided to instead of doing everything in the animator just trigger everything via script, since then i have more control over when to play an animation but since everything was done on 1 object you can see that just this one object has a ton of animations, best approach to fix this would be to use an abstract enemy class then make all the different enemy types derived classes. this is then just for the scripting part. we can abstract the gameobject using prefab variants

Here you can see some gifs of how the enemies look in game, as you can see they walk towards the player and they can attack and then have a death animation, then after they have died you can use the camera to trigger a special morphing animation and transform into a flower

The player needs to be able to walk, have health and die and use his abilities like the camera, blocking and attacking. i seperated some of the scripts but some things were stil done poorly, the player movement script handles movement/input, player state, animation and camera ability. here you can see a image of what it looks like in the inspector and a video of all the things the player can do

This project i got to learn how to work with sprite shape tool, most of the level is made with the sprite shape tool, so here you can see i can easily change the level platforms, we initially wanted to have more verticle platforming but we didnt have enough time to plan alot

Here you can see another sprite shape object but this time it has a simple shader i got from a shader graph tutorial, this is poison/radioactive death barrier that we wanted to stop the player from going out of the map, it also has the death barrier script which makes it so the player dies if he jumps into it. also if you are asking, the reason the shader is so big is so that it doesnt look streched for the player

Here you can see the lab that is placed at the end of the level that acts as the win condition, i pulled some little tricks to make it work so smoothly, firstly there is a trigger collider used to trigger the win screen and such, then behind that is a normal collider to make sure the player doesnt more anymore to the right, then to create the effect of the player entering i used a image mask to have 2 layers of the lab: 1 behind the player and 1 infront and used the image mask to cut out the front part so it only overlaps the player from a certain point

The approach i took to making the background was to make it paralax but i didnt know alot how it worked so i just did this: The background has layers and the first layer always follows the player, then the next layer follows the previous layer with an offset, then the next layer does the same and so on. here you can see a gif of very early development where i was got it to work with just some squares to test it

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

private void Update() { MoveBackground(); } public void MoveBackground() { this.backgrounds[0].transform.position = player.transform.position; float cur_lerp_time = lerp_time; foreach (GameObject current_bg in this.backgrounds) { if (System.Array.IndexOf(this.backgrounds, current_bg) == 0) { continue; } else { int previous = System.Array.IndexOf(this.backgrounds, current_bg) - 1; float c = lerp_time -= offset; current_bg.transform.position = Vector3.LerpUnclamped(this.transform.position, backgrounds[previous].transform.position, c); } } lerp_time = cur_lerp_time; }

Here you can see the UI. theres 4 different types of menus the player can access: the main menu, pause menu and the death & win screen. all the buttons can be access like normal by clicking it with a mouse but it also has controller support so you can use the up & down arrows on the Dpad to go through the UI buttons