Code Monkey home page Code Monkey logo

soccershooter's Introduction

Soccer Shooter

An online multiplayer FPS game where players shoot bullets at a ball to "kick" the ball into their goal. Here are two playable links:

  1. Play on PlayCanvas
  2. Play on IONIS Website

Installation

Prerequisites: node, yarn, and Typescript

Development:

yarn
yarn start

Production:

yarn
yarn build
yarn start-prod

How this Works

The frontend is made with PlayCanvas and the project link on PlayCanvas is here. Current frontend build was downloaded to the "public" folder in this repository.

Usually, the physics of the game is run on the frontend handled by Ammo, the physics engine that PlayCanvas is using. However, in multiplayer mode, the physics needed to be run on the backend. Currently, PlayCanvas could not be run on the backend unless with some hacks with mock canvas and disabling WebGL. I decided to use cannon.js as the physics engine running on NodeJS + Typescript backend, as I think it is more clear and easier to implement than the headless PlayCanvas hack. I ported the scenes objects from PlayCanvas to cannon.js. Player's movement physics is still handled on the frontend, but the ball and bullets are handled in the back, and are synced to the front using Socket.io.

The current method for handling physics is more of a "proof of concept" implementation. Ideally, the backend can be upgrade to a more powerful language or library like using C++. Feel free to contribute or even contact me.

Some backstory about this game

This idea came to me when I was doing some Unreal Engine tutorials, and I thought it will be fun if multiple people can play together. Actual implementation didn't come until I discovered PlayCanvas through my friend. We started working on together but it was sporadic throughout the years. As I learn more about web development, the game has also come to a playable state. This is also the first game I ever made, and also the first time making a multiplayer game as well.


This project is also listed on my website, ionis-hg.com

soccershooter's People

Contributors

liaro0903 avatar dependabot[bot] avatar

Watchers

James Cloos avatar  avatar

Forkers

jsihuang

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.