Monday, 8 April 2013

Another Change

In attempting to prototype Tied, I ran into a problem that have made the project thoroughly nonviable: creation of a chain, or tying two players together requires knowledge of rigid-body physics and joint constraints and how to program these in. This I could not do in time.

First I attempted to find other solutions to the problem. I discovered that Game Maker allows for the inclusion of Dynamic Link Libraries (DLLs) to enhance functionality of the engine. If I could find someone who had programmed the joint constraints and rigid body functionality I needed, I could move forward.

Unfortunately I found no such viable option. With the engine being in a near constant state of flux and updating, most DLL's were outdated, incompatible with my version or both. Any that were both up-to-date, in the same version of Game Maker as me and functional, did not offer the function I required.

Next I tried to program in such function myself and learn how this effect could be achieved. I learned about physics sockets, joints and joint restraints, motors, axles and rigid bodies. Another problem occurred within the engine itself which I could not remedy: Implementation of real-time physics, using the in-built Game Maker physics engine functions differently than the standard Game Maker world.

This means that positioning things manually in Game Maker (i.e. incrementing the X location of an object to have it move to the right.) is impossible. In order to have an object move, there must be a defined force acting upon it.

So I learned about the use and application of forces. I learned how to use local forces to move objects, this caused another issue: Local forces applied to individual objects affect other touching objects.

This was the final point at which I admitted defeat. I could not solve this. Normally this would not be an issue in a platformer, most objects that exist in the world are either solid and immobile, move only on a fixed path or do not interact with the avatar.

However because I had two characters in the game, it would be impossible for one to act in the vicinity of the other without interference. For example: If one character was on top of the other and tried to jump, the character below would be shifted first, causing the jumping character to jump off at an unpredictable angle.

This was not acceptable and I could not find a solution. I had to change my project to produce something more viable without wasting any more time.

So here is my new project: Sugar Mine.

 An illustration of the words Sugar Mine spelled out in chocolate.
Sugar Mine is a one-player running game, created in Game Maker Studio. In it the player controls a large drill, boring its way through the ground in a fictional land of candy. The player must avoid hard candies as they will damage the drill and stop the player from progressing

Sugar Mine is influenced by games such as Jetpack Joyride and Robot Unicorn attack. Sugar Mine is intended for mobile platforms, but can be played just as easily on a PC.

Currently Sugar Mine is still partially functioning. There exists a player, obstacles and a termination condition for the game. I am currently creating visuals for the core gameplay and shell gameplay (the menu system).

I intend to implement a set of accessibility controls, such as in-depth gameplay customization and a high visibility mode.

No comments:

Post a Comment