[October 2020] - 6 Week Project

Engine: Unity 2019.4.12f1 (LTS)

About

The game was made during the first Game project at Futuregames SkellefteƄ. We got the task to develop a game in 3D that had multiplayer. The game should have at least two levels with 3 puzzles each.

Project made width:

  • 2 Game/UX Designers
  • 3 Programmers
  • 2 Project Managers

What did I do

My main task during the project was to develop the Input system. Early in the development we saw that there was a new Input system in Unity. This was news to me and took some time to figure out how to use it. But with A PlayerController class I managed to get it working quite smoothly together with callbacks.

So for each action the player could do we needed a wrapper function to call the correct function in the correct class

public class PlayerController : MonoBehaviour
{
    MasterInput controls;
    PlayerMove mover;
    SwapAnimal swapper;

    void Awake()
    {
        mover = GetComponent<PlayerMove>();
        swapper = GetComponent<SwapAnimal>();
        controls = new MasterInput();
    }

    void OnEnable() => controls.Enable();
    void OnDisable() => controls.Disable();

    public void OnMove(InputAction.CallbackContext ctx)
    {
        if (!GameManager.Instance.isPaused)
        {
            mover.OnMove(ctx.ReadValue<Vector2>());
        }
    }

    public void OnSwap(InputAction.CallbackContext ctx)
    {
        if (!GameManager.Instance.isPaused)
        {
            if (ctx.started && mover.Movement == Vector3.zero)
                swapper.Swap();
        }
    }
    ...

I also setup a system to give the player some checkpoints along the levels. I setup some simple trigger scripts to let the player respawn when he fell of the level or change level when the end of the level was reached.

Other then that I spent quite a lot of time dealing with the source control since I was the only one in the group that had any prior knowledge in how to work with it.

Try the game

If you wanna try the game you can find Cubimals on Github. Just remember that you need a controller in addition to the keyboard to be able to play.

Gameplay Trailer

Conclusion

Since this is my first game in quite a while I am quite happy with it. The game in of itself is not that great and could use some redesigning to find what makes it fun to play.

During the project I did learn some new things, mainly about the new input system. I also got more comfortable reading documentation and understand the importance of doing some testing and designing my code before diving head first into writing a new piece of code.

Next project I will try to focus on the big picture of the project before diving in too the actual coding.