Fever (Bevy Game Jam 7)
A downloadable game for Windows, macOS, and Linux
Fever
(My Bevy Game Jam 7 entry for the "extremely incoherent fever dream" theme.)
You've had those dreams after eating too much and sweating into the sheets, sending your pitiful attempts to enter REM sleep instead devolving into the repetitive and hypnotic yet irritating and confusing and repetitive and make the score or do it again and again and again!
Controls (all platforms)
* WASD movement, FPS camera, C/Space to go up/down, Button 1 to catch.
* `Pause` key or `Ctrl/Cmd-P` to pause gameplay.
* `Mute` key or `Ctrl/Cmd-M` to mute audio.
* `Esc` to get into or out of a menu.
* Other keys may do other things but are not relevant for gameplay as intended.
* In emergencies `\` to align rotation (there might be remnants of "tilt", where the whole screen rotates on the X-axis, from the base code) .
* NOTE: Only targets keyboard and mouse configuration.
Gameplay
There are four levels with strange machinery. You float through a button and off the "bloopers" go, spawning heavy balls! Catch the expensive-looking ones before they get melted or lost over the sides. Bounce them around as well (but be warned of eventual crowded-simulation FPS drops -- no performance optimization done in Jam time!)
Mechanics
Once you toggle the `Start / Stop` button, balls will emerge from the green generators. Capture the gold ones by having your net extended so it collides with them (using a very lenient sphere collider: ignore the rendered shape!) before they get lost. A loss means the ball rolled into the red pits or fell off the edge of the playfield. The number of balls caught with the net minus those that get "lost" is the score. The score area shows "(score) / (required score)".
If replaying, you can choose the level (and Difficulty) from the `Game` menu. Otherwise the default `Play` option starts at the first level with `Normal` difficulty and proceeds to the end.
Credits
* https://github.com/eswartz/bevy-game-jam-7/blob/main/Cargo.toml in the `[dependencies]` section. You are all doing great work!
* Content attributions: https://github.com/eswartz/bevy-game-jam-7/blob/main/README.md
* I did the rest (coding, modeling, audio), such as it is.
Known Issues (all platforms)
* No settings saved between launches (TBD?)
* Build executables are not signed. Use native builds and security workarounds at your own risk.
The builds are literally archives, with a raw executable and data files inside, straight from the build machine. If it makes you feel safer to know, the project uses the github action builders and upstream recommended workflows with minimal changes (I added docs/licenses to the archives and deepened the extracted .zip directory structure for Windows and Linux.)
That said, I think they're safe and ran them on my own machine without concern. You can always build from source if you prefer (see any Rust and/or Bevy installation/setup tutorial then `cargo run -r`).
* As for networking attack vectors: I believe there are none and did not knowingly develop or enable any. But these are not far from "developer builds" with some features enabled for potential field testing or bug reporting / fixing. That means there are some areas where you may disagree with my networking-related decisions that appear in release version `v0.0.6b`, which I adopted for pragmatic reasons given the in the limited timespan, aiming for for safe defaults and allowing in-the-field debugging assistance:
** `bevy_skein` is enabled in the build and I did not disable its `brp` feature in time. This enables the `bevy_remote` protocol (port 15702, etc.).
** The `bevy_dev_tools` feature is included. I do not know its network impact. Its FPS and frame timer features are enabled but disabled by default less you define an env var `DEBUG=1`.
** `bevy-egui-inspector` is built in, which allows easily reconfiguring the game while playing it, which enables overlapping powers with a Quake-style dev console. It's disabled by default less you define an env var `DEBUG=1` and use the backquote key to toggle during gameplay.
** Otherwise, although you will find the source for this project has files called named `client` and `server` in places, these refer to the original names in another personal project which were indeed using networking, but their variants in this project only record the distinction in header comments. This is a single-player, single-executable, offline game.
* Regarding Bevy Game Jam 7 rules about reuse:
** The rules state: `Submissions must be made during the duration of the jam, explicitly for Bevy Jam. No submitting old work`.
This is a new project but a substantial portion is adapted from unpublished work. The code forming the `src/common` module in this project was adapted from another existing and functioning private project of mine. This module does not implement any specific gameplay elements, just "app frameworks", a simple menu GUI, keyboard/mouse action handlers, camera controllers / KCCs, and the usual patterns. Most of this, still, needed to be refactored, beyond module path and Cargo machinery. So it felt like new work :)
A portion of the aforementioned original `common` code was using a heavily edited private fork of `bevy_kira_audio` and this game jam project was ported to use `bevy_seedling` instead. Happily, this allowed me to delete a lot of that common code, which was a similar ECS-friendly layer to interface with whatever audio library was baked into the build. But `bevy_seedling`'s ECS is better engineered than my attempts so I was able to scrap my layers altogether. The `common` and app code use `bevy_seedling` directly without middle layers. I spent time learning seedling and firewheel and adapting it to the common module.
This game's code is the first public appearance of the `common` code on github. As I understand, since the original project(s) that formed the `common` module of this entry were not public, nor published to the public; and since I spent 3-4 days refactoring it into its present form, this counts (to me) as "new and publically available".
Unknown issues
* As described above this project was also an excuse to refactor some common code (from a codebase recently updated to Bevy 0.18 and friends) into real "production use" by actually making it usable in a new project. tl;dr: feel free to report issues, especially if things fall over. (The wasm build is expected to be less reliable and usable than the desktop builds due to bare minimum porting effort on the day after submission.)
* Limited testing. I primarily tested on Linux/X11 and less frequently smoke tested on macOS M1 Max. I did not test my Win 11 setup in time for the deadline but a friend's computer ran the itch.io desktop builds on one with no installation instructions and with no obvious issues.
Code
https://github.com/eswartz/bevy-game-jam-7
Fever is developed with Bevy 0.18 and friends (see Credits section above).
Special mention to:
* Avian3D, the physics engine, which goes through so many feature-packed and friendlier evolutions, which all mostly just work. This game barely explores its capabilities.
* Bevy Seedling and Firewheel teams for quietly working on this hoped-for replacement for Bevy audio integration. I took this opportunity to port to this from a custom solution. The process was was not perfect but it was learnable and developer-friendly. Never had to touch a debugger.
* Bevy Skein, a Bevy library paired with Blender integration atop the Bevy Remote Protocol. I picked it up and got it working in minutes. Also some issues along the way, but nothing major.
* The Jam project-provided `bevy_ci_github_template`. Its included `ci.yaml` and `release.yaml` and setup instructions were literal "today I learned" moment. I had no idea I was ignoring this easy automated CI service! But I see the limitations of relying on shared computers and will prefer to build and test locally at a much faster clip :)
Tools
* VScode w/o AI and rust-analyzer + cargo extensions
* Blender 5.0.1 + Skein and various non-Bevy extensions
* Ocenaudio 3.17.5 for Debian 13
* Sonic Pi, dev build (e5da6b3f3fde43267b2363efa44360129ffdb26d), distro-provided sox, imagemagick, xnview, openexr-tools,
Me
It's my first game jam... of any sort! I knew my limits but hadn't done anything time-limited since corporate life a few years ago, and somehow got it done! It proves one can make a full game in this platform at a quick clip using the proper tools and liberally reused personal code libraries and assets....
Download
Click download now to get access to the following files:

Leave a comment
Log in with itch.io to leave a comment.