Happy late New Year! GEngine v0.0.9 is here!
This release enables progression up to Day 3, 2AM (two additional timeblocks). This required implementing a lot of the Sidney computer interface - it's now possible to make IDs and progress far into the map analysis puzzle.
This release also adds Linux support! Only Ubuntu has been tested thus far, and performance is pretty poor. Please let me know how it goes - I hope to continue to improve this in future releases.
See below for a more detailed changelog. And keep in mind: if you'd like to test certain locations or timeblocks, it's possible to use the SetTime or SetLocation commands from the in-game console (~ key) to "warp" to different timeblocks or locations.
Engine
- Added support for Linux.
- Sheep Compilers are now local/temporary objects rather than global/reused objects. One major benefit is that Sheep code can now be compiled on multiple threads at the same time.
- Assets were refactored to separate creation of the instance from loading of the data. This enables some interesting use cases, such as creating/returning an asset before it has been fully loaded on a background thread.
- Moved all OpenGL calls behind a "Graphics API" (GAPI) interface. This is an early step towards enabling support for other rendering backends.
- Shadow textures are implemented. Static shadows below certain objects will now render correctly.
- Billboard textures are implemented. Flat 2D textures that are meant to simulate volumetric objects (such as trees) will now rotate to to face the camera.
- The in-game console now supports copying/pasting the text input area with Ctrl+C and Ctrl+V.
- The game's FPS is now calculated and output to the window title bar in debug mode.
- Scene loading and unloading was moved to a global SceneManager class.
- Added UI anchor/pivot presets, which cuts down on the boilerplate required to configure UIs.
- Video files triggered from Sheepscript are now skippable and do not crash the game.
- A very basic IMGUI hierarchy tool has been added. It's mostly a proof of concept at this point, but the idea would be to enable visualizing the scene hierachy and allow modifying properties at runtime to improve iteration speed and debugging capabilities.
- Converted chunks of code to use the standard C++ atomic types (e.g. uint32_t, uint8_t, etc). This'll be the approach moving forward.
- Enabled a lot more warnings by default, and resolved a fair amount of them too.
- Added clang-tidy support, fixed a number of highlighted issues.
Game
- Day 2, 2PM & 5PM are now completable.
- Implemented the Sidney "Make ID" screen.
- The Sidney "Analyze Image" screen is implemented in a basic state, to enable analyzing parchment files required for game progression.
- The Sidney "Analyze Map" screen is mostly implemented! This allows you to progress pretty far in the Le Serpent Rouge puzzle.
- A custom "inventory closeup" view for the Le Serpent Rouge documents was added. This allows you to click on each stanza separately, and either darkens or highlights stanzas based on your progress.
Bug Fixes
- Updated how topic counts are tracked and incremented. This now more closely matches the original game, and was required to resolve a soft lock near the end of Day 2, 2PM.
- Fixed several bugs that made the Devil's Armchair segment incompletable.
- Fixed the last line of the in-game console sometimes overlapping the horizontal rule.
- Fixed an LZO decompression bug that broke Mac release builds for v0.0.8.
- Added logic to have Gabe/Grace park the motorcycle inside the Chateau de Serras parking lot when the front gate is opened.
- Improved resiliency of INI parsing, which was necessary to avoid a crash when loading Devil's Armchair.
- Improved resiliency of font file parsing, which fixes a crash when loading certain font files containing typos.
- Fixed a bug where entering the map screen after you had previously followed someone would soft lock the game.
Known Issues
- The game may crash if you play it from the beginning all the way to Day 2, 12PM. I suspect this is a memory issue, but need to investigate more. It also highlights how it'd sure be nice to have a way to save your game!
- Characters sometimes walk too close to walls or obstacles, clipping into them. And in general walk paths chosen are sometimes questionable.
- Positions/headings of characters are sometimes incorrect during cutscenes, especially if Action Skip is used.
- Raycasts are sometimes inaccurate, with the game thinking you clicked on something you didn't.
- Reading LSR in inventory closeup doesn't play the correct number of lines. LSR passages also don't show all the correct verb icons yet.
- Sidney's Analyze UI is still quite rough and WIP - you'll see a lot of issues, such as unformatted text or message popups that are too big.
- Completing steps of Le Serpent Rouge on Sidney does not yet trigger score increases in most cases.