Table of contents


    The Game

    The people of Clifftown perform a yearly ritual where they just pop out of nowhere and start running for their gods.

    Cliffual is a fun and simple social multiplayer game. The main game is meant to be displayed onto a shared screen that everyone can see. The way people control their character in the game is by connecting to the game via a bot that is made for Telegram.

    When a user connects, a new character pops up on the screen with their Telegram username above it. A large button that says “JUMP” appears on the mobile screen.

    My Contributions

    For this game jam I decided to go solo, so I did all of the programming and some of the art.

    The server

    The server was made in Node.js using socket.io

    The server can handle multiple games at once, it keeps track of everyone who connects and makes sure they get sent to the correct game server using the gameID.

    The bot

    The server for the bot was also programmed in Node.js, in the same file as the socket server actually. This let the socket and the bot communicate very easily.

    As you can see below, when the bot receives a message from a player, it sends that command to the correct game which will then be handled by that game.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    bot.onText(/JUMP/, function(aMsg){
    	var chatID = aMsg.chat.id;
    
    	if(!ValidateGameConnection(chatID)) return;
    
    	var gameID = chats[chatID];
    	var user = aMsg.from;
    	games[gameID].emit('jump', user);
    });

    After the message has been sent to the game, it will find the correct player, if this player exists, and make it jump.

    1
    2
    3
    4
    5
    6
    7
    
    server.on('jump', function(aUser){
    	if(!users.hasOwnProperty(aUser.id))return;
    	var player = users[aUser.id];
    	if(!player.canJump)return;
    	player.body.velocity.y = -200;
    	player.canJump = false;
    });

    The main game

    The game itself is an extremely simple little game that was made using Phaser on the HTML5 canvas. It’s a couple of scrolling cliffs that get reset every time they go out of the screen.

    When the player input is received, the corresponding player jumps and your goal is to get as far ahead of the others as you can.

    On the screen, there will also be a leader board displayed that shows which player has gotten the furthest.

    The Team

    Hussein Taher - Programming, Graphics

    Vanessa Nilsson - Graphics, Audio

    Global Game Jam entry page