When making Mechropolis, it was very important for us to create open-ended challenges that invite to exploration and have a natural presence in the game environment.
So what makes a challenge open ended? For Mechropolis, we defined an open-ended challenge as one that can be solved in several ways, giving the player a new experience each time the game is played.
When working with challenge design for Mechropolis, I found that the best way for me to reach this goal was to approach it from a narrative perspective. What is this thing that makes up the puzzle? How does it fit into the environment? How can I problematize it? By posing questions such as these, the parameters of the challenge can be defined. How does the player interact with the challenge? What is the win condition? How is the state of the puzzle conveyed to the player? (more…)
During the development of Mechropolis, our level designer came to me requesting the ability to limit the area in which the Stationary Thrower robot could turn to keep it’s arms from clipping into walls and to give the level designer more control when creating challenges.
The robot in the image above is the Stationary Thrower. It turns toward the player and throws her into the air when she steps onto it’s plate, kind of like a robotic jump pad.
Limiting the angles allowed for the robot was not a problem, but smoothly turning toward it’s target angle while avoiding the restricted segment proved to be a bit more of a challenge than I had anticipated. I had previously used Unity’s built in
Quaternion.RotateTowards function for this, but that function always does the shortest rotation possible which would cause the robot to rotate through obstacles if that was the shortest route.
I decided to approach the problem by manually rotating the robot towards it target on a plane with support for my own angular limits. I’ve tried keeping things as general as possible and while my use for this is limited to the xz-plane, this approach should work on any plane. (more…)
Today it’s a little more than one week since Mechropolis was shown alongside several other fantastic games made by fellow students here at Campus Gotland at the annual Gotland Game Conference.
It has been a while since my last post and a lot has happened since then. The team has been working very hard on the demo for GGC. We had to cut some of the planned content because of time constraints, but in the end we’re all very happy with what we’ve managed to put together in only 10 weeks.
The demo was well received at the conference and received a nomination for best 2nd year project. We got some great feedback on what is working and where improvement is needed, the bottom line being that the concept of fusing robots and making use of their abilities is an interesting one, but we need to work on how we teach the player how to play the game as well as how we communicate the game space to make sure that the player is always aware of all the pieces that make up a challenge.
Below are a few screenshots from the demo as well as the trailer we made for the conference.
We call this cute little thing the Grabber. It’s able to fire it’s claw at a distance and grab onto things. A clever player might lure it into pulling a lever that is out of reach, or fuse it with a Controller (a robot that enables a fusion to be controlled by the player) and hookshot over a chasm.
One thing about this robot that we knew would be a challenge when we designed it is it’s ability to fire the claw around corners by bouncing it off a Shield robot’s shield. This meant having the chain bend around corners in the environment. Mathias, another member of the team had already done some great work on creating a path for the chain that wraps around environment geometry and I took over where he left off, putting it to use in the game. (more…)
Work on Mechropolis has steadily been moving forward. I’ve been doing a lot of under-the-hood work lately, iterating on the systems already in place. But I have also done a few animations for some of the robots that I can actually show you. And so I give you these two robots doing their thing:
I made the small one shake it’s bucket a little just before striking in order to announce the attack to the player. Note that the movement of the large robot’s bucket is not well synched with the physical influence of the throw and will need to be iterated on.
I’ve recently started working with the talented folks at Digital Tuna (creators of CoBots) on a new project for the course Big Game, the grand finale of our second year here at Campus Gotland. The game’s name is Mechropolis. It’s a first person action puzzle game in which the player is invited to explore a long lost underground civilization. The only remaining inhabitants in this derelict world are the robot servants still carrying out the orders of their vanished masters, blindly digging deeper into the planet.
Mechropolis’ core mechanic is something we’ve dubbed “Fusion”. The player is able to stun a robot, pick it up, and throw it into another robot, fusing them into a single entity that combines the characteristics of the other two. By exploiting these fused robots’ unique traits, the player is then able to progress through the environment.
My main task so far has been to implement the robot AI and fusion system. The AI system is a simple but flexible state machine with single purpose states (e.g. “chase”, “flee”, “attack”) that are tied together and transitioned between when certain conditions are met.
I’d like to tell you about one such state that proved to be an interesting little challenge: the “Flee” state. (more…)