This is the repo for my game "A Memory Assessment" (live), built using three.js for rendering, cannon.js for physics, and howler.js for audio. This project was built in Typescript (with Typescript-relevant forks of the previously mentioned libraries), with a directory structure scaffolded by following some of the three.js Typescript tutorials at sbcode.net.
By entering window.DEV_COMMANDS()
into the console of your browser, you can enable dev commands by pressing some new keys. These commands are as follows:
m
- Load the menu
[
- Show cannon.js
bodies
]
- Move the camera outside of the room (only when viewing the menu)
t
- Trigger the slide-out animation
y
- Trigger the fade-in animation
z
- Show three.js
stats panel
1, 2, etc...
- Load the level for the given number (timers may get misconfigured by forcibly loading levels in quick succession)
All assets used in this project are used under the CC0 license, and attributed here:
Calacatta Cremo Marble, from cc-0-textures.com
Fabric 111, from cc-0-textures.com
Decorative Wallpaper 17, from cc-0-textures.com
Wallpaper 12, from cc-0-textures.com
Wallpaper 9, from cc-0-textures.com
Many textures from the Tiny Texture Pack 2, by Screaming Brain Studios
Red Carpet, from purepng.com
Blue Carpet, from purepng.com
Fruit Models, by styloo
Minotaur Bust Statue, a scan of a statue found in Plaka, Athens. Scanned by the group "Scan The World."
Armchair, by CreativeTrio
Couch, by CreativeTrio
Dresser, by CreativeTrio
Grandfathers Clock, by CreativeTrio
Chandelier, by CreativeTrio
Night Stand, by Quaternius
Light Stand, by Quaternius
Jersey Bounce Cover, by New York Lounge Quartett (this does not fall under the CC0 license)
Various sound effects from The Essential Retro Video Game Sound Effects Collection, by Juhani Junkala
Character Animations, by DANI MACCARI (for use in the "How to Play" menu)
Fruit Icons, by Jordan Irwin (for use in the "How to Play" menu)
To build and edit this game locally, first make sure to have npm and a Node.js runtime installed. You will probably also need Typescript globally installed in npm. Then clone this repository and run npm install
in the root directory.
Run npm run dev
to host the game at http://localhost:8080/
, and files will be live-reloaded upon saving.
Run npm run build
to build a minified bundle.js
of the game in the dist
directory.