Master Kenth

Personal portfolio site

CoBots

 

Be sure to check out CoBotsGame.com filled with historical blog posts and links to purchasing CoBots!

CoBots is a two-player co-op game where each player controls a robot. Both robots are tethered together making movement impossible if both players can’t agree on where to go. In addition to simply traversing through the levels the players also face a series of puzzles and challenges that they have to overcome together. This emphasizes the true meaning of a co-op game, which in more recent times has lost its value.

The story is that it is the far future, and humans have left Earth in pursuit of another habitable planet. However time went on without a suitable planet presenting itself, and the humans on board the giant ship decided to go into into stasis by cryogenically freeze themselves and let the ship notify them once a planet had been found. So the ship went into auto-navigation and time past, until the ship faced a sudden power loss, which caused the navigation to fail. The ship then went into collision course with a large star and the emergency system went online, dispatching two maintenance bots to restore the power and save all of humankind.

Throughout the various levels this is manifested by picking up energy cores and placing them in the corresponding receptor sockets. The energy core is quite unstable and so the robots have to work together to make sure that it does not get damaged. They will navigate the various sections and rooms of the ship that are designed for the human lifestyle, such as a mess hall and a park.

History

The game was the final project of the first year in university and was made by myself together with five other students, plus a freelancer to do the music. It was the first time any of us had ever attempted to do any major work in 3D (since 3D courses didn’t start until the second year, year one focused on 2D) and we had to carefully pitch our project to get it approved. One of the two major factors in reducing the learning curve and workload was that the game should technically be 2D (or 2.5D if you insist) so that we didn’t have to handle the overhead of an entire new dimension in gameplay logic. The other factors was the simplistic artstyle; almost no mesh uses any textures. All major assets only have a simple fresnel shader with a basic color, and the lights do the rest. This allowed the artists to skip creating the various maps (such as normal maps) and mesh UV usually needed for 3D assets.

At the annual Gotland Game Conference of ’13 the game was presented and was very well received. It was awarded the best first year project as well as the “Pwnage Award” and people liked it so much we decided to work on it the following summer. It suffered from major performance issues caused by our inexperience with 3D development (what does “occlusion culling” mean?) so we had to worked on improving that. It was later released commercially for purchase (via Desura and Humble Bundle Store) during late October 2013! We also worked on a mobile prototype, and sent a demo to a interested party, though we never heard much more from that.

My Contribution

During the project I worked mostly on player input and movement. Part of the first year projects’ loose requirement was that it should have a novel and arcady input method. Having dabbled with electronics beforehand I set out to create an intricate input controller composed of a pair of rotary encoders and sliders to control speed. In hindsight it was an ambitious but badly design idea as the controllers frequently broke during the conference. Nonetheless I spend most of my time building controller as well as coding and adjusting the character movement in relation to that. Other than that I coded miscellaneous aspects such as level transitions. The game in its whole doesn’t actually require too much code as its simple movement and puzzle mechanics. No intricate inventory system, enchanced dialog options or any of that kind. All in all a great experience and I learned quite a lot during this project.

Last updated: 2016-01-15 00:10