Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/im-rises/space-invaders-arcade-emulator-website

Space Invaders Arcade Game Emulator made in Rust 🦀 ported to WebAssembly WebGL and WebAudio
https://github.com/im-rises/space-invaders-arcade-emulator-website

arcade-game emulator game npm package rust webassembly webgl website

Last synced: 26 days ago
JSON representation

Space Invaders Arcade Game Emulator made in Rust 🦀 ported to WebAssembly WebGL and WebAudio

Awesome Lists containing this project

README

        

# space-invaders-arcade-emulator-website


rustLogo
javascriptLogo
reactLogo
scssLogo
cssLogo

## Description

Space Invaders arcade game emulator package demo written in Rust for the web.

Complete Emulator of the Intel 8080, the app is implemented to run the Space Invaders Arcade game.

## 🚀🚀[You can try it online from your browser](https://im-rises.github.io/space-invaders-arcade-emulator-website/) 🚀🚀

The demo source code is available in this repository.

## 🚀🚀 The package source code is available in the [space-invaders-arcade-emulator](https://github.com/Im-Rises/space-invaders-arcade-emulator/tree/main) repository. 🚀🚀

The game is implemented with all the 10 sounds of the original game and can be played in black and white or in color (
SV), normal screen mode (TV) or in colored mode (CV).

# 🚀🚀 [The package is available on npm](https://www.npmjs.com/package/space-invaders-arcade-emulator) 🚀🚀

## Images

### Without background

| SV version | TV version | CV version |
|:---------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------:|
| ![NOBG_BW](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/96276b2a-d75c-4eef-ae76-74624960ba19) | ![NOBG_Color](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/32bc3e25-7883-4229-bab3-7bbfae745e9e) | ![NOBG_Geeen](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/4ec1df0d-98e5-4327-b25c-da80e6a44470) |

### Using background 1

| SV version | TV version | CV version |
|------------|------------|------------|
| ![BG2_Green](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/433a9da2-cdb8-48f8-85b8-9e615766bdf9) | ![BG2_BW](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/7a5c9618-9fd6-48a5-81eb-81d5964aa98e) | ![BG2_Color](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/39adf0b0-2fe9-488d-a10f-b390c4c1141a) |

### Using background 2

| SV version | TV version | CV version |
|----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
| ![BG1_BW](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/d0a903f4-b92f-48a2-b4d2-f4173be2ce3d) | ![BG1_Green](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/7a31f2f5-38ba-4881-894c-bfacc2faf659) | ![BG1_Color](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/563ab206-1382-4311-b0b5-76d34b41a0aa) |

## Videos

https://user-images.githubusercontent.com/59691442/183045566-0a3df947-06e7-4c46-9fc6-9d2b8f7d9a46.mp4

## Controls

You can use the keyboard to play the game.

| Arcade buttons | Emulator/Keyboard |
|----------------|-------------------|
| Insert coin | C |
| P1 start | Space |
| P1 shoot | ↑ |
| P1 ← | ← |
| P1 → | → |
| P2 start | G |
| P2 shoot | E |
| P2 ← | S |
| P2 → | F |

The original game is mapped with some inputs that allow the constructor to choose the difficulty. This allows you to
increase the numer of lives and change the extra ship necessity points. To change those settings check the checkboxes
before starting the game.

## GitHub Actions

[![Node.js CI](https://github.com/Im-Rises/space-invaders-arcade-emulator-website/actions/workflows/node.js.yml/badge.svg)](https://github.com/Im-Rises/space-invaders-arcade-emulator-website/actions/workflows/node.js.yml)
[![ESLint](https://github.com/Im-Rises/space-invaders-arcade-emulator-website/actions/workflows/eslint.yml/badge.svg)](https://github.com/Im-Rises/space-invaders-arcade-emulator-website/actions/workflows/eslint.yml)
[![CodeQL](https://github.com/Im-Rises/space-invaders-arcade-emulator-website/actions/workflows/codeql.yml/badge.svg)](https://github.com/Im-Rises/space-invaders-arcade-emulator-website/actions/workflows/codeql.yml)
[![pages-build-deployment](https://github.com/Im-Rises/space-invaders-arcade-emulator-website/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/Im-Rises/space-invaders-arcade-emulator-website/actions/workflows/pages/pages-build-deployment)

The project is set up to run the following actions:

- node.js.yml : Runs the tests for the Node.js project.
- eslint.yml : Runs the ESLint linter on the project.
- codeql.yml : Runs the CodeQL linter on the project.
- pages-build-deployment : Publish the website

## Libraries

React:

Xo:

ESLint:

GitHub gh-pages:

P5.js:

react-device-detect:

## Links

Check the source code
on [![github](https://user-images.githubusercontent.com/59691442/223556058-6244e346-8117-43cd-97c6-bf68611bf286.svg)](https://github.com/im-rises/space-invaders-arcade-emulator)

Check the demo
on [![github](https://user-images.githubusercontent.com/59691442/223556058-6244e346-8117-43cd-97c6-bf68611bf286.svg)](https://github.com/im-rises/space-invaders-arcade-emulator-website)

Check the package
on [![npm](https://user-images.githubusercontent.com/59691442/223556055-4e9ef014-79d4-4136-ac07-b837b49066c8.svg)](https://www.npmjs.com/package/space-invaders-arcade-emulator)

## Contributors

Quentin MOREL :

- @Im-Rises
-

[![GitHub contributors](https://contrib.rocks/image?repo=Im-Rises/particle-simulator-react-p5-website)](https://github.com/Im-Rises/particle-simulator-react-p5-website/graphs/contributors)