- Download and install node (https://nodejs.org/en/)
sudo npm install -g gulpsudo npm install -g nodemon- Open terminal and cd to project root folder (trace-italienne/):
npm install- This should install all the packages you need to run the
gulpbuilder (next step) and to run the local server. - See
package.jsonin the root folder for more details.
- This should install all the packages you need to run the
gulp build- This runs the JS linter/minifier. It concatenates all javascript and CSS files in client/editor, minifies them, and puts them each one file:
dist/all.min.jsanddist/all.min.css - If you want to run/test the project while you are writing code, just type
gulpinstead ofgulp build, and then leave it running in the terminal.gulp buildbuilds the dist files and quits, butgulpbuilds the files, and then rebuilds them whenever it detects a change in your code. - For more details, look at
gulpfile.jsin the root folder.
- This runs the JS linter/minifier. It concatenates all javascript and CSS files in client/editor, minifies them, and puts them each one file:
- Type
npm startto spin up the editor server - To play the game, go to
localhost:2000/ - To customize levels, enemies, and weapons with the editor, go to
localhost:2000/editor
Video demo: [https://monosnap.com/file/5qDuYLjbWlmR67HePtFWu4UNGYvuPC]
Notes:
- Images are uploaded to ~/uploads/ within the project.
- Levels are saved to ~/stages/
- The Enemy editor takes png files. We should only be using png's anyway, because they support transparency
- I didn't bullet-proof input, so don't QA this thing. Just run some basic tests to check functionality, watch the console to make sure you're not getting any errors, etc.
^ ^
/ \ //\
|\___/| / \// .\
/O O \__ / // | \ \
/ / \/_/ // | \ \
@___@' \/_ // | \ \
| \/_ // | \ \
| \/// | \ \
_|_ / ) // | \ _\
'/,_ _ _/ ( ; -. | _ _\.-~ .-~~~^-.
,-{ _ `-.|.-~-. .~ `.
'/\ / ~-. _ .-~ .-~^-. \
`. { } / \ \
.----~-.\ \-' .~ \ `. \^-.
///.----..> c \ _ -~ `. ^-` ^-_
///-._ _ _ _ _ _ _}^ - - - - ~ ~--, .-~
- Implement AI for a simple enemy (prototype in sandbox)
- Design and implement enemy editor
- Save and load enemies within enemy editor
- Load enemies made with editor into game and level-editor
General:
- Name
- Class: Infantry, Marksman, Scout (?)
- Description
- Portrait (?)
Movement:
- Speed (px per frame)
- Follow, Avoid, or March
- Flinch when hit? (bool)
Attack:
- Attack Speed (frames per cooldown)
- Melee or Ranged
- Melee options: Regular or Suicide
- Ranged options:
- Pattern: Straight, Burst (forward), Fan, Radius, Horizontal Double, Vertical Double, X
- Bullet Type: Firearm, Arrow, Ice, Fire
Sprites:
- For each animation:
- Dimensions
- Number of frames
- Animations (separate files):
- Advance
- Die
- Take Damage
- Attack (Either Melee or Ranged)
- Melee: Duration of animation == duration of attack
- Ranged: Each animation spawns one "shot" of bullet/bullets
Stats:
- Movement Speed (px per frame)
- Attack Cooldown (frames per cooldown)
- Damage
- Health
- XP