Robin's Rescue is an example point and click adventure game made using the LGPL licenced SLUDGE engine. This game was made over the course of several days and has a number of rough edges. Wear gloves when handling!
Big thanks to Mim for character designs and animations, and a special thank you to all my Patreon supporters (see SUPPORTERS.md for details).
In this file, you can find:
- Licence information for code, assets and third party assets
- Instructions for playing the game
- Instructions for compiling and/or running the game
- Notes on how to navigate the game's codebase and resources
- Some helpful/related URLs
I hope you find something useful from playing Robin's Rescue and exploring its code!
All source code within this repository is licenced under the GNU Lesser General Public Licence 3.0, allowing you to use, share, and modify any or all parts of the codebase so long as they retain this licence and that you make source changes available to anybody you distribute modified versions to. See the file COPYING for the full licence. Yay!
Excluding the files noted below, all images and audio within this repository are licenced under Creative Commons Attribution 3.0 Unported, copyright and created by Josh "Cheeseness" Bush and Miriam "Mimness" Roser. Under these terms, you are free to use, share, make derivatives from the assets in this repository (the items noted below are subject to their own licence requirements), so long as they include a link to the above licence, credit us and indicate any changes that were made. Yay!
Third Party Sound Effects
The timing and volume of these samples has been modified to suit Robin's Rescue and they have been reencoded as OGG Vorbis audio.
- "door hinge squeak creak o,c.aiff" (doorOpen.ogg) kyles, licenced under Creative Commons: Creative Commons 0
- "crash.wav" (guardCrash.ogg) sagetyrtle, licenced under Creative Commons: Creative Commons 0
- "KeyPickup.wav" (pickUp.ogg) wildweasel, licensed under Creative Commons: By Attribution 3.0
- "bridge.wav" (gate.ogg) Sergenious, licensed under Creative Commons: By Attribution 3.0
Third Party Music Tracks
These music tracks have been reencoded as OGG Vorbis audio.
- "Thatched Villagers" Kevin MacLeod (incompetech.com), licensed under Creative Commons: By Attribution 3.0
- "Pippin the Hunchback" Kevin MacLeod (incompetech.com), licensed under Creative Commons: By Attribution 3.0
Third Party Fonts
This font has been rendered to a bitmap font and then converted to SLUDGE's DUC spritebank format.
- Medieval Sharp wmk69, licenced under SIL Open Font Licence (see sprite_sources/medieval_sharp for TTF, sources and licence)
Play as Maid Marian and rescue Robin from Sherrif Nottingham's castle.
- Left click to move and interact.
- Right click to open inventory.
- . (period) to skip dialogue.
- F to show floor region outlines (for debugging).
- B to show hotspot outlines (for debugging)
Running The Game
If you are using one of the packaged versions of this game available from the Robin's Rescue repository, double check the following platform specific notes:
If you want to run the game without the bundled libraries, be sure to set the SLUDGE_DATADIR environment variable to point to the bin/shaders folder. This environment variable is not a part of vanilla SLUDGE. A diff of source changes can be found in the sludge folder.
If you'd rather run the game with your distro's SLUDGE packages or with a copy of the SLUDGE engine that you've compiled yourself, call the sludge-engine executable with data/robins_rescue.slg as its last argument and it should run swimmingly (ho ho ho).
Double click SLUDGEEngine.exe, or drag and drop Gamedata.slg onto SLUDGEEngine.exe.
Compiling The Game
If you have downloaded the game's source to compile yourself, you can open robins_rescue.slu in the SLUDGE Project Manager and select Compile from the Project menu to compile the game.
Once compiled, you can select Run Game from the Project menu to start the game.
Understanding The Source Code
Robin's Rescue has very few code comments (this may change in the future!). Here are some notes to help you navigate the codebase and resources.
- robins_rescue.slp is the SLUDGE project file for the game. It is generated by the SLUDGE Project Manager application and contains details on files that are a part of the project, and game specific settings.
- init.slu includes game initialisation, UI logic code and scene transition code.
- functions.slu includes code for generic functions that aren't implementation specific.
- inventory.slu includes inventory specific rendering and logic code.
- audio.slu includes logic for switching and fading between music tracks as well as variables pointing to audio assets.
- scenes.slu includes functions that represent scenes, containing scene specific configurations (loading backgrounds, floor regions, etc.) as well as hotspots for scene exits.
- objects.slu includes objectTypes that represent in-game objects (interactive and non-interactive). Each object includes a getDefaultCostume() function for accessing a visual representation. objects may also include. actionuse and actionInventoryUse events for handling user interaction logic and addtional events getting inventory specific visual representations.
- hotspots.slu includes objectTypes that represent non-visual regions of interactivity (or regions which are represented by part of a background image). Each object includes an actionUse and/or actionUseInventory event for handling user interaction logic, and most include an isComplete() function for determining whether the puzzle or task it represents is completed.
- The audio folder contains all audio (sound effects and music) assets in OGG format.
- The backgrounds folder contains all background images in PNG format, as well as all floor region filed in SLUDGE's FLO format.
- The sprites folder contains all compiled spritesheets in SLUDGE's DUC format.
- The sprite_sources folder contains TGA sources for all sprites and sprite animations. These are not necessary to compile the game.
- The sludge folder contains information on SLUDGE licencing and Linux specific engine code changes for creating portable builds.