This is the Taxman Engine running in your browser.
The purpose of this project is to help me learn Wasm, as well as allow me to join game jams with Playdate games all the while allowing everyone to play even if they do not own the console.
Online demo is available here.
- For compiling, Emscripten needs to be installed and in
PATH
make
is used as the build tool- The example uses Python 3 for serving the page locally. Any other means of setting up a server is equally adequate
- To update the image assets, the Pillow library for python is required
Make sure you have the submodule checked out.
Run in command line:
make
cd docs && python -m http.server
Then open a browser and head to http://localhost:8000
When developing a game, new assets and code directories can be added to the project using the provided scripts.
To update the makefile with the new code directories, run
make project
To build the game, run
make
This requires python
and the Pillow library, which can be installed by running
python -m pip install pillow
Building the game will move all required files into the ´docs´ directory, which can then be served e.g. using the example method shown in the example.
The gecko demo that comes with the repository should be directly runnable by itself.
- Runs games built with Taxman Engine in browser
- Rendering the display
- Mapping of keys
- Crank controls mapped to keys
- Load asset files from server
- Amazing console visualisation
- Works on most mobile devices (i.e. smartphones)
- Audio effects using howler.js
All game code is in the game
directory. Custom scenes, game objects and game object components are added there. The first scene is creted in main.c
, and passed to the game_init
function. Examples of loading assets, creating game objects, changing scenes, and more can be found in loading_scene.c
and gecko_scene.c
.
Assets live in the assets
directory and are moved to docs
from there. Subdirectories of assets
will be automatically turned into sprite sheets which the engine can read.
- Migrate to SDL2 if it can be made more performant than SDL1
All contributions, especially issues, comments, and pull request are warmly welcome. This repository is maintained as a side project, and as such, it is unfortunately not possible to guarantee frequent updates.
If you happen to build any game-like experience with this, please send me a tweet.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.