I’m currently three weeks into this years major project for AIE, with industry presentations commencing this Thursday I thought it’d be a good idea to do a write up of the progress so far!
Firstly the project, CardBound is a 3D Platformer set in the imagination of a child. Players will navigate their way through a world of various arts and crafts such as Popsicle sticks, pipe cleaners and cardboard. Collecting a multitude of items out of place in this world such as batteries, screws, coins and tools, as well as discovering the reason behind their sudden appearance. CardBound is influenced by Mario64, Crash Bandicoot and Ratchet and Clank. The team aims to complete a small tutorial hub scene, and one level.
Here’s an example of the art style.
My main contribution to CardBound is in the custom character controller that will be needed. Currently I’ve set up the character to use Unity’s CharacterController component for the industry presentations. I’ve done this because of the complexity required for the proper character controller that is needed. This is some of the functionality that’s required by the custom character controller:
- Single jump height
- Single jump height speed
- Double jump height
- Double jump height speed
- Fall speed from single jump
- Fall speed from double jump
- Fall speed from super jump
- Air movement speeds in both jump states
- Super jump that can only be activated while being crouched
- Gliding if the player holds jump after double jumping
- Sliding along the ground if the player runs fast enough and presses crouch
- Keyboard and mouse controls
- Joystick (Xbox360/PS4) support
- Player movement and rotation on one joystick (Character always runs in forward direction)
- While character in-air, change from above movement setup to directions being raw, so not dependent on where Character is facing
While majority of the above functionality isn’t overly difficult to implement, having the character be paper thin (as seen on the right) makes it difficult in having accurate collision detection.
Two of the programming teachers at AIE and myself have been talking about solutions to this problem. One of the solutions theorized was because we have the skeleton, being a rigged character, we could raycast between all the joints, and check collisions that way. A few problems arise with this solution, the main two being how to do you move around a collection of raycast accurately, and how to do you handle collision resolution with that system. The final solution hasn’t been decided on yet, I would like to do some more research first.
The other programmer (Remus Jones)on the project may be leaving due to other work. I may be the solo programmer for this project which should really test my planning, time management and organization skills! We’ll have to wait and see how that works out.
There will be blog posts on CardBound throughout the development cycle.
Thanks for reading.