Note : Scroll to the bottom to see the latest updates and changes
Project started : 6th Jan 2019
Deadline : 31st Jan 2019
Follow the adventures of a tiny Red Blood Cell into the amazing city of PlasmaVille!
"PlasmaVille : The city of Heart" is a story oriented game that aims to narrate the story of an immature Red Blood Cell, as it travels through the busy planet "Human". After a tiresome journey around the planet, delivering Oxygen and taking moving Carbondioxide, it is awed by the elegant way in which the planet works and decides to keep a keen eye whenever something interesting pops up!
The inspiration of this project can be credited to many.
The main source of motivation for this kind of projects were mainly the educational animated Youtube channels which told amazing tales and facts of history, science and computing to relatively new viewers who might or not be too familiar with that subjects. Their terrific animations and illustrations always made the topics look fun even though knowledge in that field didn't concern the audience.
Thus, I myself aspired to be like them and choose a topic out of my comfort zone. In the end, I decided to take some insights and inspirations from one of the Anime I had watched once about body Cells, and thus, choose Biology as my topic instead of Computer Science, the subject I am majoring in. This way, I was never disappointed about my content as all I researched about was new and interesting to me.
This is my very first competition ever and I am so hyped about it! :)
The game is based in the right chambers of the human heart, turned into a busy and bursting city full of activities.
The cells of a human body have been depicted as humans themselves, living in a city so that the working of a city can imitate how our body works in a childish way, as everyone can make a similar connection to workings of a city.
It features interactive objects which can be in plain sight or lying around to be found as the story goes. The story is relatively short but full of amazing facts and great illustrations to mimic and describe the working of a human body. The game features three small mini games which are key elements to understanding the 3 key components of human blood - RBC, WBC and Platelets.
The story is short and fun to play, so we would love for the player to roam about and discover the amazing facts to be found in PlasmaVille.
Tools and Execution
The primary tools used to make the game include the followings :
Blender (3D Modelling and editing)
GIMP (Photo editing and UI design)
Mixamo (Animations, Adobe Family)
Ezgif.com (Quick gifs)
OBS Screen Recorder
Details about license and permitted use are given at the end of the documentation.
Due to late realization about the competition and a short time of 25 days, we decided to use some assets from Unity Asset Store, modify some of them after getting consent and get the work done quick, but efficiently.
Hoping to share the results and progress as soon as decent screenshots and materials are recorded! Cheers!
We have decided on the following layout of the map as of now and might be subject to changes. We'll post the rough layout of the Scene View once we get the buildings placed.
I would like to thank all the asset contributors (mentioned later), for their consent to allow us to use some terrific assets and modify some of them according to our need. I have used Blender as the tool to edit and modify the required structures and add some features to them such as railings, doors and simple decorations.
We spent some time modelling the layout of the map and checking the animation transitions. Simple animation transitions used 1 dimensional Blend Trees to get quick animations done. More complex animations such as those achieved using WASD used 2D blend tress to achieve some smooth transitions between different animations. I am looking forward to edit the buildings and make them look more industrial and set some animation triggers on the benches to make the player open notes when he is close. Other small improvements as well as Post Processing is still on the to do list! This has been fun so far!
Spent the last 2 days making a overview of the city and keeping it as close as possible to that of a structure of heart. Here's the final preview of the map and it'll be subjected just to minor changes. The discussed and final model of the map differed drastically as we tested the size and ease of traversal for the player. Overall, I am happy with what we ended up with.
We got some slow progress going, but now it's weekends and I can finally get my time off college! I've spent the past day adding subtle features, improving the Nav Mesh and getting started with the actual layout of the notes that will be shown to the player.
We're currently working on Cinemachine to get some cool scripted scenes and add the three mini games which will add to user experience. Weekends are a boon!
We spent some a good amount of work on Cinematics and I am pretty happy with how simple and cute they look. I'll get some clips as soon as possible. We altered the controls for each mini-game as we wanted each mini game to feel different.
1st Mini Game : We got a much refined down Top Down shooter control for the first mini-game in which the peaceful town gets invaded by germs.
2nd Mini Game : We got the traditional point and click movement which is default in the game.
3rd Mini Game : We got a time oriented Tower Defense mechanism set for the last mini-game. It incorporates Machine Learning to make the placing of turrets challenging for the player. This mini-game was added after a suggestion in the comments to expand the game beyond roaming and collecting notes.
We are working fast and quick to implement all the mini games and polish the game in the last few days that'll be left. I am so excited!
23rd Jan : We got a new Member! We are now a team of three people!
We spent a good amount of time thinking as to how the city should look. I looked at some SimCity screenshots for inspiration. In the end, a screenshot of City:Skylines gave me the idea of making my own city and see how good it looked. I came up with a pretty good map idea. The map design was essential as it helped the user in experiencing the second mini game. Overall, I am happy as to how far we came since the initial map design. Things do change a lot during implementation; they don't stay the way you expect at start.
That's something I learnt today. Ironically in the process of making something to teach others, this competition is teaching me too. It's a great feeling.
Machine Learning Germs - 3rd Mini Game
We went on to lay the foundation for our first user feedback based mission, which is a simple tower defense game. We decided to add a twist to the game. But instead of getting points from killing enemies (germs), the player answers questions to get the points. This specific mini-game asks simple MCQ questions in a rapid fire round to award the user Experience points, which can be used to build WBC Turrets. We decided to let the user play this game only after the player has explored to enough all the notes. Personally, I am excited to see it work in the final build!
I started off by setting up waypoints for the germ to walk till the end-line, but after putting in sometime the result didn't really look good. So I decided to use Unity's Navmesh again and I wasn't disappointed. It just made the rotation, dampening, stooping distance and every other possibility available to me. I explicitly set the radius huge so that the germs will stick more to the middle and not to the sides of the road due to Navmesh.
The Tower Defense game uses Machine Learning Agents along with NavMesh AI to find a suitable path to the final end-point while, themselves evolving to evade the lane that would have more WBC turrets. We got 2 scripts; one to control the actions of our enemy such as it's animation, speed, destination as well as other attributes. The other instantiates a new generation of germs ( in waves ) after every germ has been either destroyed or detected at its destination.
The new wave which will come will be more advanced than the previous. Genetic machine learning algorithm first sorts the germs by their individual survival time; for the new wave offspring, we sort the enemies of previous wave in increasing order of their survival time then we only take 1/2 of the that previous population which survived the most, breeding them two at a time using a simple static function accepting two Gameobjects in its parameter. Breeding can occur in two ways; either they will mutate or they will combine the attributes of the two Gameobjects passed to it. Mutation occurs 100 in a 1000 times and combination occurs rest of the time. This way the enemy will choose the path where they have better individual survival chances.
The user will be asked questions from all the notes that are collectible in PlasmaVille, and made to go under an intense rapid fire MCQ. Correct answers awards the user with Expereince that he/she can use to place the WBCs on the platforms to shoot the germs. Wrong questions immediately take away a life, which if reduced to 0 makes the player lose the mini-game. Any germ reaching the end takes away 1 experience point, which if reduced to 0, makes the germ deadly as it would then start to take away Lives instead of experience. Each WBC turret lasts 10 seconds after which it needs to be replaced with another WBC. All of this hurry and the need for experience points pushes the user to answer and use his/her experience points in active way, instead of just collecting and never using them, ensuring a dynamic play.
Baking was the foremost important factor that me and my teammates needed to learn in order to make our game *smooth and optimized*. We had never tried baking before but thankfully we got good enough tutorials.
We added some water dynamics and refractive color to make the water look a bit red and give an expression of blood. Although Plasma is yellow ( the river is supposed to be Plasma-River ), presence of RBC in them make them red so, red seemed a good choice. We are content and happy with the way water surface looks.
Baking the scene was one of the best decisions we chose. Not only did it reduce the batches, but also helped us we realize our mistake of leaving multiple Cameras setActive to true. The baking process initially took hours but after realizing our mistake I went ahead to handle different camera activation which saved both batches, tris count and of course, baking time.
Now that we have most of the core gameplay and sequence done, ( still needs some refinement and tuning ), we decided to spend a day polishing things so that we could get our hands off the scripting and tools and just spend some time making this world a better place for our beloved Red Blood Cell. We went on adding two camera view options for in-game, perspective as well as orthographic. Orthographic Camera allows the player the feature of zoom in and zoom out using mouse scroll.
A major time was dedicated in making the scene look better, despite the short days. We avoided the NPCs for now but they'll surely make things better and we see no reason why we shouldn't add it. The town was filled with props. As a fun mechanic we took the liberty of giving the city a little realism by adding a day night mechanism. We look forward to adding some great Unity Post Processing and better Camera angles. Today was fun!
I never knew making buttons or UI were this fun. This was a rather relaxing day making UI and having fun. I really enjoyed the amount of polish we did today and the game feels completely different from where we started. But we still have a long way to go and I look forward to scripting again the next day.
For some reason, I couldn't write a para with an image set at right justified but it seems to work now. This was rather an abrupt part of the documentation but everything can't go on being serious every time.
It's good to be relaxed and enjoy a satire sometimes. This lead me to have the idea of adding some jokes and harmless mocking content in the game just to ease the user off.
All in all, every time is a time you learn and get something new. It's good to relax and let your mind feel free for a while.
It's terrific feeling. So, to ease myself and the reader I decided to add some random screenshots. These just go on to show not everything is perfect and how often we fall into blunders before improving on everything. This is a part of development all of us go through and sometimes, it just lightens up the mood seeing the struggles we go through. What matters is not giving up. The feeling I get when the annoying problem is solved is worth every effort you put in.
I hope Unity won't mind us posting our mistakes in documentations and make an exception out of this. I felt that these mistakes should be openly shared and not be something to feel ashamed about. If we have never made a mistake, we are clearly doing things wrong.
We decided to add a human Statue in the middle of our game so that we could get the city to look filled. At first, we decided on putting a high poly model of a human but then decided to put something a bit creative so we went with making a Unity 3d Model. It signifies symbolically that all the humans ( cells ) are actually living inside human ( Unity ), inside which they are living beings.
We covered the logo with a holographic like projection to make it look better than a plane cube floating. It is featured in our main menu screen.
Now that our project has almost come to an end, we decided to spend a bit of time to make a dedicated "Credit Lane". thanking all the asset contributors and people who inspired us. Without them. this project wouldn't have been possible. I would like to especially give a shoutout to Michal Karbowiak (karboosx) and his friend Bundleman for allowing us to edit and use their terrific assets on asset store. They (and others like them) deserve every bit of respect from every independent game developers because they provide us with amazing models and assets and when asked, replied humbly that he didn't need any credit for his mammoth handwork. He has all his assets free on asset store, and I couldn't help but take this decision to add a credit Lane for not just him, but everyone else.
The game allows you to go to Credit lane and meet with each one of these amazing artists, turned into simple intractable NPC characters. We tend to polish this lane quick and give their contribution a proper credit.