An open API service indexing awesome lists of open source software.

https://github.com/jsolly/georoids

A multiplayer Asteroids game
https://github.com/jsolly/georoids

asteroids game typescript

Last synced: 8 months ago
JSON representation

A multiplayer Asteroids game

Awesome Lists containing this project

README

          

# GeoAsteroids

[![GeoAsteroids](https://github.com/jsolly/GeoAsteroids/actions/workflows/onMain.yml/badge.svg)](https://github.com/jsolly/GeoAsteroids/actions/workflows/onMain.yml)
[![License](http://img.shields.io/:license-mit-blue.svg?style=flat-square)](http://badges.mit-license.org)

A 2D spaceship game, Geoasteroids.com

---

## Table of Contents

- [Installation](#installation)
- [Features](#features)
- [Contributing](#contributing)
- [Support](#support)
- [License](#license)

## Installation

1. (Install Node.js)
2. (Install MongoDB) (Or use a cloud service like MongoDB Atlas)

```shell
$ git clone git@github.com:jsolly/GeoAsteroids.git
$ cd GeoAsteroids
$ npm install
```

## Setup

```shell
$ cd /bin
# Start MongoDB Server Locally (Or use a cloud service like MongoDB Atlas)
$ ./mongod --dbpath
$ mongo # Or use a GUI like MongoDB Compass
$ use geoasteroids
$ db.createCollection("highscores")
# Check src/database.ts for connection string
$ vercel dev # Allows us to mock serverless functions locally
```

## Development

### Multiplayer Development Setup

For local multiplayer development, use the following commands:

```shell
# Run all development servers (Vite + WebSocket)
npm run dev:full

# Run individual servers
npm run dev # Vite dev server (port 5173)
npm run dev:multiplayer # WebSocket server (port 3001)
```

## Tests, Linting

### Test

```shell
npm run test
```

### Linting (with Biome)

```shell
npm run lint
```

- Biome is now configured using `biome.jsonc` for fast, reliable linting and formatting.
- The old ESLint configuration has been removed in favor of Biome's unified approach.
- To update rules or configuration, edit `biome.jsonc`.

---

## Contributing

Want to work on this with me? DM me on X `@_jsolly`

### Step 1

- **Option 1**
- 🍴 Fork this repo!

- **Option 2**
- 👯 Clone to your local machine using `git@github.com:jsolly/GeoAsteroids.git`

### Step 2

- **HACK AWAY!** 🔨🔨🔨

### Step 3

- 🔃 Create a new pull request using `https://github.com/jsolly/GeoAsteroids/compare`.

---

## UML Diagram

GeoAsteroids UML diagram

---

## License

[![License](http://img.shields.io/:license-mit-blue.svg?style=flat-square)](http://badges.mit-license.org)

- **[MIT license](http://opensource.org/licenses/mit-license.php)**