Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gonnavis/annihilate
js action game
https://github.com/gonnavis/annihilate
action-game cannonjs ecsy game javascript state-machine threejs webgl xstate
Last synced: 22 days ago
JSON representation
js action game
- Host: GitHub
- URL: https://github.com/gonnavis/annihilate
- Owner: gonnavis
- License: mit
- Created: 2021-05-14T17:43:10.000Z (over 3 years ago)
- Default Branch: dev
- Last Pushed: 2023-01-04T14:50:30.000Z (almost 2 years ago)
- Last Synced: 2024-07-30T16:45:44.326Z (5 months ago)
- Topics: action-game, cannonjs, ecsy, game, javascript, state-machine, threejs, webgl, xstate
- Language: JavaScript
- Homepage: https://raw.githack.com/gonnavis/annihilate/dev/index.html
- Size: 30.8 MB
- Stars: 58
- Watchers: 2
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Annihilate - js action game
## Play online
[ dev ](https://raw.githack.com/gonnavis/annihilate/dev/index.html)
[ Maria and Paladin ](https://raw.githack.com/gonnavis/annihilate/MariaAndPaladin/index.html)
[ use mixamo Mutant model ](https://raw.githack.com/gonnavis/annihilate/MutantModel/index.html)
[ use mixamo Paladin model ](https://raw.githack.com/gonnavis/annihilate/PaladinModel/index.html)
[ use mixamo Maria model ](https://raw.githack.com/gonnavis/annihilate/MariaModel/index.html)
[ use self rig-and-animated naive model ](https://raw.githack.com/gonnavis/annihilate/main/index.html)
## Brief
An action game prototype made in 2018.
Now open-sourced and:
1. Switched from state-machine.js to XState.
state diagram of role: https://stately.ai/viz/f8c7eb66-db73-4bc4-b3ca-7e1ef2276923
state diagram of role mutant: https://stately.ai/viz/8817b66b-7cdd-4035-9c50-d86d03f54eb7state diagram of enemy: https://stately.ai/viz/92f4cb2a-6e1a-4607-9a6c-5006490edd62
2. Switched from [cannon.js](https://github.com/schteppe/cannon.js) to [cannon-es](https://github.com/pmndrs/cannon-es).
3. Try to make a parallel [ammo.js](https://github.com/kripken/ammo.js/) version, at [branch: AmmoJS](https://github.com/gonnavis/annihilate/tree/AmmoJS) ([demo](https://raw.githack.com/gonnavis/annihilate/AmmoJS/index.html)).
4. Try to use ecsy.js at [branch: ecsy](https://github.com/gonnavis/annihilate/tree/ecsy).![image](https://user-images.githubusercontent.com/10785634/118347405-b6f14b80-b575-11eb-9269-38ef89051949.png)
![image](https://user-images.githubusercontent.com/10785634/143771469-d2d15fc5-ed7e-4843-9854-42384e32e915.png)
![image](https://user-images.githubusercontent.com/10785634/145292224-41be4668-acc8-45aa-b284-f14819a3529e.png)
![image](https://user-images.githubusercontent.com/10785634/145850577-61d34fcc-8647-400c-aade-e52c242e8012.png)Videos:
[Mutant](https://twitter.com/gonnavis/status/1434951076365561859),
[Paladin Shiled](https://twitter.com/gonnavis/status/1461371351197880325),
[Maria](https://twitter.com/gonnavis/status/1462649045298532356/video/1),
[Whirlwind](https://twitter.com/gonnavis/status/1462820086054412291/video/1),
[SwordBlaster](https://twitter.com/gonnavis/status/1463220288468905987),
[MoveList, Hadouken Shoryuken](https://twitter.com/gonnavis/status/1465219502199562243/video/1),
[Rebound](https://twitter.com/gonnavis/status/1466799541764517888/video/1),
[Cloud & BirdFlock](https://twitter.com/gonnavis/status/1468695103640260609/video/1),
[Boss](https://twitter.com/gonnavis/status/1470434848925896706).## Key Map:
[Video](https://twitter.com/gonnavis/status/1465219502199562243)
J = Attack
J + J + J = Combo
J hold charge1 + J + J = Fast Combo
J hold charge2 + J + J = Sword Blaster
J & K & L = Pop
K = Jump
K + K = Double Jump
K + U = Jump Bash Attack
K + U hold = Earthquake
L hold = Block
L hold + S + D + J = Hadouken
L hold + D + S + D + J = Shoryuken.
L hold + S + A + K = Tatsumaki Senpukyaku.
U hold = Whirlwind
I = Dash
I + J = Dash Attack
O = Launch
O hold = Launch with Jump
touch wall = climb ( currently only support +-X axis wall, todo: +-Z axis )
when climb J = fall
## Ref and Goal:
Action: **DMC**, **Guilty Gear** ...
Level design: **Super Mario 3D Land**, **Rolling Sky** ...Both: **Prince of Persia**, **Shadow Blade: Reload**, **The Super Shinobi 2**, **STREETS OF RAGE 3**, **Hades** ...
Strategy: **Into the Breach**, **StarCraft**, **曹操传** ...Audio: **Geometry Dash** ...
Art: **Divinity Original Sin 2** ...
Code: [three-pathfinding](https://github.com/donmccurdy/three-pathfinding), [Sketchbook](https://discourse.threejs.org/t/vehicle-physics-with-cannon-js/11769) ...
[Other](https://twitter.com/gonnavis):
[1](https://twitter.com/gonnavis/status/1442426877390385153)
[2](https://twitter.com/FluidNinjaLIVE/status/1445897813020196869)
[3](https://twitter.com/80Level/status/1450084674307600387)
[4](https://twitter.com/TempleDoorGames/status/1460624431802249219)
[5](https://twitter.com/riotgames/status/1462201413195350018)
[6](https://twitter.com/JesseMiettinen/status/1302319385034489857)
[7](https://twitter.com/KyeonghoonM/status/1464870220636438535)
[8](https://twitter.com/80Level/status/1452543350381367296)
[9](https://twitter.com/Assault_Spy/status/1436881155542831111)
...## Todo:
Paladin do not hit by pop when shielded.
Boss Fight map.✔️
Combat puzzle map.
Tower Defence map.
Parkour and combat map.
Challenge map where only rebound attacks can deal damage to enemies.
Parrot/PhenixBoss: There's a bird's egg on the aerial platform. After breaking it, flies out of ParrotBoss. Magma rises from the ground to the platform, so player can't go down. Skills are firing barrage bullets, continuously throwing many grenades, and firebird forward charge/dash attack.
Map: Drive sheepFlock/birdFlock into the fold, as fast as possible. And prevent enemies from killing the flock, as little as possible.
chargeAttack✔️, dashAttack✔️, chargeDash, kick, jumpKick, air attacks✔️, walk, aoe✔️, skill✔️, vfx ...
Fix: Do not inflict damage at the start and end of an attack.✔️
Integrate common state, like `air`.✔️
`dash` can force change orientation.✔️
Switch to ES6 module and use [cannon-es](https://github.com/pmndrs/cannon-es).✔️
...