Overview
Details
Spark & Kling was our second school arranged group project, with the theme being ‘Symbiosis’, which received such good feedback that we continued working on it as a small side-project.
Spark & Kling is a split-screen co-op puzzle platforming game where the players take advantage of their unique elemental abilities and surroundings to escape the laboratory of a mad scientist. Whilst the game is mainly designed for co-operative play, it has no shortage of opportunities for the players to trick one another into their doom.
One player plays as Spark, the excited and swift yellow spider. Spark has the ability to power up batteries using their tiny Sparklings, but they are also able to interface with electric machines and toys left throughout the lab. The second player plays as Kling, the gray amorphous blob creature. Kling is conductive yet viscous, and is able to throw out their body mass to interact with the environment and act as a bridge for their companion, Spark.
Team
We were a team of 10 people, 2 for programming, 3 for art, and 5 for design and audio. Our product owner was Eleanor Ahlberg, one of the designers and a strong yet gentle lead, who was able to use their past experience with designing similar puzzle games with unique mechanics tied to distinct elements to push this project forward.
We had weekly sprints and would review tasks we needed done on Trello. Our Scrum Master was Saheel Husain, another game designer who is also very humble and professional.
I ended up being the lead programmer for this project, the other one was Anton Vassepov. Since this was only our second game project, there was still a lot for us to learn and it was definitely hard for me to figure out how much work I needed to delegate to others and how thorough I had to be about coding conventions and quality.
Ultimately, I am very glad to have had this team and the knowledge I took away from this project as a lead is invaluable to me and it is something that I will be carrying with me.
Responsibilities
Gameplay Programmer
I worked closely with the game designers to develop and iterate over gameplay tech such as the movement system and character abilities in order to make them feel good. I was also in charge of developing flexible systems such as Kling’s ability to shoot metal gel orbs that can animate objects depending on the weight the metal gel orbs add.
Technical Artist
Throughout the project I was able to give advise and help improve and create bespoke shaders according to what the artists described. I made the player visibility shader that creates a silhouette around the players if they’re occluded such that they can find each other. I also ended up improving the transparent gel shader we used in order to make it possible to animate certain properties. I remember our artists had thrown together a pretty nice looking viscous chemical fluid shader, but it was visibly clipping into objects that would intersect it, so I quickly went in and added surface depth fading and asked the artists if it’s something we should keep, and I was told it was exactly what they wanted.
Technical Animator
Whilst we had an artists dedicated to making animations for the game, we didn’t have anyone to stitch those together, so I ended up in charge of setting up the character animation state machines. Early on in the design process I realized that in order to keep my systems modular and flexible for our designers, I decided to take advantage of how Unity animations work by developing a workflow that would let you animate the states of objects, materials or anything if depending on the state of puzzles.
Builds
One thing I ended up helping with was making sure that the build process went well for our product owner. I’d usually accompany our PO over Discord or physically on-site during the build process to immediately patch any potential errors that cropped up during the building process. And we made sure to always do this well before our deadlines, as ensuring we had a proper and working build by the end of the day was more important than being able to squeeze in every feature we wanted.