Dark Hollow

Dark Hollow is a 2D multiplayer puzzle game in which you have to communicate with your partner to solve puzzles. The game was made in GameMaker and the programming was done in GML. This was made in a team of 4.

In this project is was mainly responsible for programming the networking of the game, which was the main part. I also programmed the UI, the movement and the keypad. This was the first time using GameMaker and I had to learn it in a short amount of time. Additionally, this was the first time using buffers for networking.

Role

Lead Programmer and UI Designer

Platform

PC/Windows

Port used: 51218

Lobby

The lobby serves as the waiting area for players to join before the game starts. Here's how it works: when you're in the lobby, an object is assigned to each player. The game kicks off when the host, the player who initiated the lobby, sees that all player objects are ready. Once everyone's set, the host can start the game. It's a simple and efficient way to make sure everyone is on board before the game begins.

Lobby

Keypad

Keypad

In the game, the keypad is your ticket to unlocking the door to the corridor. To crack the code, players need to work together. The code is split into two parts, with each player responsible for one part. Communication is key here - players have to collaborate and share information to figure out the complete code. Once the correct code is entered, the door swings open, revealing the next part of the adventure. It adds a cooperative twist, making teamwork essential to progress.

Gameplay

In this online multiplayer game, teamwork is the key to solving the puzzles. Each puzzle is split into two parts, one for each player. To crack the challenges, communication between players is vital. The players need to collaborate and work together to figure out the solutions.

The game operates on a client-hosted system, meaning one player becomes the host and hosts the lobby for the other. This setup enables players to team up and play together. During development, I faced a bit of a challenge with object ownership and buffers. Handling buffers for sending commands to the server was a tricky aspect, but after some tinkering, I managed to work it out. It adds a layer of complexity to the development process but results in a rewarding cooperative gaming experience.