https://github.com/fredrik-hjarner/schmupinator
js shmup. shoot em up maker.
https://github.com/fredrik-hjarner/schmupinator
divs game-engine shmup
Last synced: about 1 year ago
JSON representation
js shmup. shoot em up maker.
- Host: GitHub
- URL: https://github.com/fredrik-hjarner/schmupinator
- Owner: fredrik-hjarner
- License: gpl-3.0
- Created: 2022-06-09T16:23:17.000Z (about 4 years ago)
- Default Branch: vite-master-safe-always-working-not-broken
- Last Pushed: 2023-10-31T19:34:12.000Z (over 2 years ago)
- Last Synced: 2023-10-31T20:27:33.428Z (over 2 years ago)
- Topics: divs, game-engine, shmup
- Language: TypeScript
- Homepage:
- Size: 2.39 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README





**Work in progress! Code will most likely not stabilize before ~~2023~~ ~~2024~~ 2025, if I even get it to a stable state at all.**
> The ambition is to make a shoot 'em up maker with the ability for users to create their own shoot 'em up stages.
You can try version 0.7.1 here: https://fredrik-hjarner.github.io/schmupinator/
~~You can try version 0.6.0 here: https://fredrik-hjarner.github.io/schmupinator-0.6.0/~~
~~You can try version 0.5.0 here: https://fredrik-hjarner.github.io/schmupinator-0.5.0/~~
## Teasers
| | | |
|-|-|-|
| |  | |
## Current state
* You can play 4 simple games
* vertical shmup
* horizontal shmup
* asteroids
* snake
* Highscore, separate for each level, that saves in localStorage.
* You can theoretically build your own stages and enemies with JS/TS files, but really, you will need a tutorial or be pretty smart (~~200 IQ~~ 150 IQ) to figure out how to do it.
## Preliminary goals for the game/maker
1. Make it able to do everything that the game *Truxton* can do. *Truxton* is an old shoot 'em up game that is relatively primitive so is easy to *mimic*.
2. Make it *not too hard* to create enemies and stages. A good tutorial and documentation is needed.
3. A dream goal is to create a stage and enemy editor, but in order for that to be feasible the code must first have stabilized.
4. Server that stores highscores and custom stages.
## Preliminary goals for the code
* Robust code that never breaks.
* Every file edit starts a test that runs a stage (with pre-recorded inputs) from start to finish to assert that behavior is exactly as expected.
* As few dependencies as possible. Fewer dependencies can increase the life span of a project since it will not rely on 1 000 dependences that ~~can~~ *will* break.
* **The code currently has zero *runtime* dependencies.**
* No canvas or OpenGL. Every enemy, bullet, etc. is a div!
## How to clone, build and run *Schmupinator* locally?
1. Install the requirements if you don't have them.
- Install `node` (usually lastest version, but use version 18 if you have problems).
- Install `git` (**optional**).
2. Download repository.
- Alt 1 - with git
- Create a directory for *Schmupinator*. Open the created directory in a terminal.
- Clone repository by running `git clone https://github.com/fredrik-hjarner/schmupinator.git .` in terminal.
- Alt 2 - without git
- If you dont want to use git, then download zip-file [here](https://github.com/fredrik-hjarner/schmupinator/archive/refs/heads/vite-master-safe-always-working-not-broken.zip). Extract and open terminal in the extracted directory.
3. Run `npm install` in terminal.
4. Run `npm run dev` in terminal.
- This should open `http://localhost:3000/` in a web browser, if not then open it manually.
## License
Open source except assets.
## Credits
* **Fredrik Hjärner**: Game engine/maker, stage, enemies, "graphics" ~~and also all bugs~~.
## Acknowledgments and attributions
* [**SpicyGame**](https://spicygame.itch.io/sg-pixel-font-package): For creating the `Micro Pixel` font that is used extensively in *Schmupinator*.
* [**Will Tice**](https://untiedgames.itch.io/five-free-pixel-explosions): For creating free sample explosion animations.
* [**NYKNCK**](https://nyknck.itch.io/explosion): For creating free explosion animations.