Coder Social home page Coder Social logo

dembanakh / themaze Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dominik1999w/themaze

0.0 1.0 0.0 28.66 MB

Team project for university course. Android online multiplayer 2D shooter with a single-bullet mechanic

Java 100.00%
android java libgdx grpc online-multiplayer-game 2d-shooter physics-2d netcode game

themaze's Introduction

The Maze

Team project for university course.

Online multiplayer game for Android.

InGame

Players are spawned in a maze-like map generated on the fly. Before each round of game, one bullet is given to a random player (the rest have 0 bullets), and nobody knows who posesses the bullet. The round ends either when that single bullet hits somebody (in which case the player with the bullet gains points, and the dead player loses points) or when the round timer expires (in which case the player with the bullet loses points). Players can use mics in order to develop more elaborate strategies to the game.

Shooting

Technical Details

The game consists of Android client and authoritative Java server, both built with Gradle. Client utilizes Android Studio, Java and LibGDX library for game front-end. Server utilized Amazon Web Services during the development (obviously, one can host the server on any machine). GRPC framework was exploited to communicate between clients and server.

Features:

  1. 3 different map generation algorithms (RANDOM, CAVES and DUNGEON) RandomMap CavesMap DungeonMap
  2. Server-side physics (for limiting cheating attempts)
  3. Client-side prediction, Server reconciliation and Entity interpolation (for smooth and ping-robust user experience)
  4. Manually implemented collision detection algorithms (circle-circle, circle-walls)
  5. Voice Chat (based on small library by EpicGuru: VoiceChat)

How To Build

  1. Paste server machine IP address into "host" field in server.properties
  2. Modify "port-main" and "port-voice" fields in server.properties if the default ports (50051 and 50052) are in use by other processes.
  3. In server machine command-line: ./gradlew :run:server
  4. In Android Studio install the app on the physical device or emulator (or bundle an apk executable)

Team

themaze's People

Contributors

dembanakh avatar dominik1999w avatar onchao avatar ssalabura avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.