Repository navigation
1.1.0
This update makes Frog Hopper more reliable. You can now play again straight from the win or lose screen instead of being stuck there. The frog no longer keeps drifting after you let go of a key, and the game starts from any folder. There is also a new browser version with on-screen arrows for touch screens and a fastest-crossing leaderboard with achievements. The desktop game now sends one anonymous startup event per launch, and you can turn it off.
Changes
Gameplay and controls
- Releasing any key on the win or lose screen now starts a new attempt. Closing the window quits. Before, the end screens could not be left (#16, #22).
- The frog's movement now follows the arrow keys you are holding, so it no longer keeps drifting after a key is let go, for example a key held through an end screen (#25).
- Closing the window at the moment the frog is hit no longer shows the lose screen first (#33).
Starting the game
- The game finds its images next to the program, so it starts correctly from any folder or shortcut (#15).
- If the game cannot start or load its images, it now prints a clear error message and exits instead of failing silently (#15, #31).
Browser version
- Frog Hopper can now be played in a web browser. On touch screens it shows on-screen arrow buttons (#26).
- In the browser, signed-in players can post their crossing times to a fastest-crossing leaderboard and unlock two achievements: a first win and a crossing in under five seconds. The timer starts on the frog's first actual move (#27, #38).
Usage reporting
- Each time the desktop game starts, it sends one startup event to trace.danielstephenson.dev with the program name, its version and a random installation ID, and nothing about you or your machine. The first launch prints a notice and creates a
usage-reporting.confsettings file in your config folder. The installation ID is kept in a separate file. To turn reporting off, setenabled=falsein that settings file, or setTRACE_USAGE_REPORTING=offorDO_NOT_TRACK=1in your environment (#20, #23, #29).
Version
v1.0 → 1.1.0 — MINOR. Mechanical floor from the save format, the released save fixtures, the command-line flags, the save code and new files: MINOR.
Judgment: The game has no save files, so no player data from v1.0 can stop loading or be rewritten. The arrow-key controls mean the same thing as before. The end screens now return to play when a key is released, where pressing a key used to make the game unresponsive, so this fixes broken behaviour rather than changing a control that worked. New content comes from the browser version, its touch controls, leaderboard and achievements, and from usage reporting, which writes a new settings file and installation-ID file, so the minor floor stands and nothing here is breaking.
- minor: new source file: src/Frog.cpp
- minor: new source file: src/FrogHopper.cpp
- minor: new source file: src/Vehicle.cpp
- minor: new source file: src/header/Frog.h
- minor: new source file: src/header/FrogHopper.h
- minor: new source file: src/header/Vehicle.h
- minor: new source file: src/header/trace_client.hpp
- minor: new source file: src/header/usageReporting.h
Verification
Verified before publication; this tag points at the exact commit that was verified, and the downloads below were built from it.
- CI checks on this exact commit, all green: build, browser.
- Packaging dry run: every download was built from this commit and checked before the tag was made.
drafted by Claude on behalf of Daniel Stephenson
What's Changed
- Reorganized the project and broke up the program into multiple classes. by @dmccoystephenson in #1
- Fix the Makefile so the project builds from a clean clone by @dmccoystephenson in #14
- Load assets from the executable's directory and report SDL failures by @dmccoystephenson in #15
- Exit the win and lose screens, initialize all members, and document build and run by @dmccoystephenson in #16
- Name the lane geometry constants instead of repeating raw literals by @dmccoystephenson in #19
- Report usage to trace by @dmccoystephenson in #20
- Give Frog its own speed, set from FrogHopper::frogSpeed by @dmccoystephenson in #21
- Share one end-screen loop between the win and lose screens by @dmccoystephenson in #22
- Tag every trace event with the program version (trace-client-cpp 0.2.0) by @dmccoystephenson in #23
- Set the frog's velocity from the arrow keys currently held by @dmccoystephenson in #25
- Build a browser version with Emscripten by @dmccoystephenson in #26
- Report crossing times and two achievements to arcade-social by @dmccoystephenson in #27
- README: add a Play in your browser link to the arcade portal by @dmccoystephenson in #28
- Send a random installation ID with the startup event (trace-client-cpp 0.3.0) by @dmccoystephenson in #29
- Write startup and asset-load errors to stderr by @dmccoystephenson in #31
- Skip the lose screen when the window was closed this frame by @dmccoystephenson in #33
- Indent gameScreen()'s collision check inside the game loop by @dmccoystephenson in #35
- Document that releasing a held key dismisses an end screen by @dmccoystephenson in #36
- Document the settings file's endpoint key and build.sh's fifth output by @dmccoystephenson in #37
- Start the crossing timer on the frog's first actual move by @dmccoystephenson in #38
- Document where play resumes after an end screen by @dmccoystephenson in #39
- Document when the browser build is deployed by @dmccoystephenson in #40
- Add a release workflow that builds Linux and Windows downloads by @dmccoystephenson in #42
- chore: release 1.1.0 by @dmccoystephenson in #43
New Contributors
- @dmccoystephenson made their first contribution in #1
Full Changelog: v1.0...v1.1.0