feely_pona/readme.md

77 lines
2.7 KiB
Markdown
Raw Normal View History

2023-10-25 10:55:19 +00:00
# Feely Pona (aka. Terry Cherry)
This is the repository for the game Terry Cherry that was developed as part of
an impromptu game-jam in September 2023 over 4 weekends to make a hero
+ tower-defense mashup combination game. The game was developed in C++ using
Raylib 4.5.0 as the base framework for the game.
This game was developed with 3 people
- Doyle: Engine & gameplay programmer
- Joshalosh: Game designer, sound, gameplay programmer
- Tom: Art
This game is currently available online at [Terry
Cherry](https://game.doylet.dev/terry_cherry).
## Building
We target Windows and the web via WASM using Emscripten. The game is built
using our C++ meta build program (which generates command invocations and
forwards them to the command line).
### Windows
You must ensure you have MSVC's `cl.exe` on your path to build. This game was
tested on MSVC 2023 (v14.34.31933).
For most intents and purposes you may simply execute `build.bat` on Windows
which bootstraps the build program and automatically calls the meta-build
program. With fast computers nowadays our default is to build all targets by
default (except web due to extra toolchain requirements).
### Web
A web ready version using WASM can be built by passing `--web` to the meta build
program/script. You must have the EMSDK toolchain activated and in your path
from [Emscripten SDK](https://github.com/emscripten-core/emsdk). This repository
provides a slimmed down version of EMSDK in the `Tools` folder zipped up and
served over Git LFS.
The slimmed down EMSDK is the official download with a bunch of unused binaries
and directories removed that aren't strictly necessary for building the web
target (e.g. provide a stub Java version file to skip it, delete unused clang
binaries).
Unzip the slimmed down EMSDK `Tools/2023-10-10_emsdk_40e9cd8f.7z` or install
from Github and download the latest SDK. A full build for the web target can
then be done by
```
# Run EMSDK's script to add the toolchain to the path
Tools\emsdk\emsdk.bat activate latest
# Build the game
build --web
```
This will produce at `Build\Terry_Cherry_Emscripten` a HTML and WASM file ready
to be served by the browser. To test it locally you may start up a local server
for that directory, e.g.
```
cd Build\Terry_Cherry_Emscripten
python -m http.server
```
2023-10-25 10:59:06 +00:00
## Asset Packaging
Assets are stored in the `Data` folder. In particular, textures are stored as
individual sprites and combined using a utility program to pack them into
a sprite sheet with their positions annotated into a specification file that is
loaded at runtime.
Textures are specified in the `sprite_spec.txt` file and given to the sprite
packer tool from this repository. The sprite packer will generate a the sprite
sheet.