Releases: kromenak/gengine
Release list
v0.5.1
This is a patch release that addresses a couple bugs identified in the last release. Please see the previous release for more detailed release notes.
- Fixed a crash when saving the game or opening Sidney while playing in a non-English language.
- Fixed a crash if the "Un-link File" menu option is pressed in Sidney Suspects when the suspect has no linked files.
v0.5.0
G-Engine v0.5.0 is here!
A major focus of this release was addressing a few requests from players. First, texture loading has been optimized, so load times should be much better when using a "high-res" texture pack. Second, some effort has been put into ensuring that UI scales at higher resolutions, which should make the game more playable at 2K or 4K resolutions.
Another big focus was improving the save game system. Previously, saves were functional, but they would not save the state of the current scene (things like character placement, camera position, whether you had seen the scene enter cutscene, etc). Save games are now more similar to the original game, allowing you to save at pretty much any time and load back to that exact spot.
Finally, this release fixes a variety of bugs ranging from inconvenient to game breaking. See below for more details!
Game Improvements
New Features
- Save games now include current scene state. This means that things like camera position/rotation, character and prop positions/rotations, and other state changes within a single scene are now part of a save game. In many cases, this is merely convenient, while in other cases it resolves bugs and soft locks that could occur if you saved at the wrong time.
- UIs across the game now scale up when playing at high resolutions. This should make the game more playable at 2K or 4K resolutions.
- UI scaling logic from the original game has been implemented on the Title Screen, Finished Screen, Death Screen, GPS View, Binoculars View, Sidney View, and Driving Screen. Particularly for the Binoculars, these changes make the binocular cutout area scale up at higher resolutions.
- Added an "Extended Options" menu that exposes options that weren't present (or weren't relevant) in the original game. This can be accessed via the developer menu (Tab key) or via the Option Bar (when "Advanced Options" are expanded, click the gear icon in the bottom-right corner of the game window).
- Exposed several UI scaling options on the "Extended Options" menu. If you aren't liking how the game's UI looks at higher resolutions, try modifying these settings.
Inventory
- Fixed clicking the "Scan into Sidney" button on the Inventory Close-Up Screen not scanning the item into Sidney.
- Fixed a soft lock if you clicked the "active inventory item" button on the Option Bar when already in the Inventory Close-Up Screen for some other inventory item.
- Fixed Action Skip not working in Inventory if you had the Sidney Search Screen opened in the background.
- Fixed the Inventory Close-Up Screen automatically closing if you performed an action on pages 2 or 3 of the Church Pamphlet inventory item.
Sidney
- Analyze: Fixed successfully placing map points for Scorpio errantly showing an "invalid points" popup.
- Analyze: Fixed the file list dialog not closing if you leave this subscreen when it is open.
- Files: Added missing logic to open the most relevant Sidney subscreen if you click on a file in the main Sidney file list.
- Search: Fixed bug where adding a new choice to the menu bar dropdown could errantly activate the dropdown if your mouse was in a certain position.
- Search: Fixed a bug where Sidney Search history would not display correctly in some cases.
- Search: Fixed a bug where the game could crash if open a web page with images in it, leave Gabe's Room, and then come back later.
- Search: Added some extra space to the bottom of web pages, so you can more easily scroll to see everything.
- Suspects: Fixed oversight where Gabe could access the "Match Analysis" menu. As in the original game, he now remarks about how "that's Grace's thing."
- Translate: Fixed UI being briefly incorrectly positioned right after translating the "SUM" text.
Action Bar
- Action Bar positioning now mirrors the original game more closely. To be more specific, the Action Bar now only appears at the mouse position if it appears as a direct result of a mouse click.
- Fixed hitting ESC to close the Action Bar also causing the current walk or action to be skipped. When the Action Bar is up, hitting ESC should only close the Action Bar.
- Fixed being able to quick save when the Action Bar was up.
- Fixed an oversight where actions executed due to a background timer would errantly close the Action Bar. From the player's perspective, it would appear that the Action Bar would suddenly close itself for no reason.
Option Bar
- Added an "Extended Options" button that only appears when "Advanced Options" is expanded. This allows players to access the "Extended Options" menu in a player-friendly way.
- Fixed a bug where having no active inventory item (such as at the start of the game) would errantly increase the size of the Option Bar. This was noticeable if you dragged the Option Bar to the bottom of the screen.
- Fixed being able to summon the Option Bar when a non-dismissable Action Bar was up.
Pathfinding & Walking
- Characters are now aware of one another when pathfinding. As a result, it's less likely that a character will walk through another character - they will usually avoid one another.
- Fixed several instances where characters face the wrong way at the end of a walk, before starting an animation.
- When the player character performs a "skip to view" (skipping walk path that is not visible on-screen), several edge cases were resolved where the game would think the character wasn't visible on-screen when they actually were. This avoids characters suddenly appearing on-screen in some cases.
- Skipped walks now detect if the walk would have entered a trigger region, and activates the appropriate action as a result.
- Pressing ESC to skip the player character's walk will now also cause non-player characters to skip their walks. This behavior is more consistent with how the original game worked.
- Fixed characters not correctly turning to face an interacted with object, due to a math error.
- Improved behavior when a character is walking to see an interacted with object. These changes make it more likely that the character will walk intelligently to a location to view the object, and will properly detect that the object is in view.
- Experimented with having characters turn more quickly in certain cases. While this may still need some tuning, it helps ensure characters don't walk through walls or other obstacles in some cases.
Video Playback
- Improved video playback synchronization logic. For example, the Sierra logo audio/video are now better synchronized than they were previously.
- Fixed a single frame of the 3D scene rendering after a video finishes playing and before the next scene is loaded.
- Fixed hitting ESC to skip a video also errantly activating an action skip, if an in-game cutscene occurred right after the video.
- Fixed hitting ESC to skip a video before the Timeblock Screen errantly also causing the Timeblock Screen to be skipped.
Misc
- Fixed a bug where the button press SFX for the "Restore" button on the Title Screen would not play correctly.
- Captions are now modified to remove excess spaces. Double spaces or triple spaces are now condensed to a single space.
- Fixed oversight where Timeblock Screen shortcut keys would still be active when the Save Screen was displayed. This was pretty bad, because it meant hitting the "C" key on the Save Screen would errantly cause the scene to load, resulting in a messed up game state.
Day 1, 10AM
- Fixed a soft lock that could occur when eavesdropping on Lady Howard & Estelle in the Museum.
Day 1, 2PM
- Fixed a soft lock if you spy on Buthane with the binoculars at Chateau de Blanchefort.
- Fixed camera angle not changing when you start a conversation with Marcie at the Train Station.
Day 2, 12PM
- Fixed an incorrect bounding box for the closet door in the Attic, which in turn made it possible to errantly click on the robes in the closet when you meant to click on the closet. This also made it possible for Grace to walk through the closet door when it was opened.
Day 2, 2PM
- Fixed Gabe being positioned incorrectly during cutscene when entering Devil's Armchair.
- Fixed Action Bar not closing when the Cancel button was pressed when interacting with Mosely at Devil's Armchair.
- Fixed not being able to talk to Mosely about who the killer might be at Devil's Armchair.
- Fixed Mosley playing the wrong animations when leaving Devil's Armchair.
Day 2, 5PM
- If an additional point is placed on the map at Rennes-le-Chateau during Pisces, the game will now remove it when Pisces is solved, rather than leaving it there indefinitely.
Day 3, 7AM
- Fixed one of the popups during Teniers postcard analysis errantly having an "OK" button present.
Day 3, 10AM
- Fixed Gabe being able to access Sidney subscreens he shouldn't be able to if the final actions of the previous Timeblock involved a map analysis action.
- Fixed Mosely walking through a wall when Gabe surprises him as he leaves Room 25.
Day 3, 12PM
- Fixed Grace walking into the Room 25 door if you enter it right after seeing Buchelli walking with a newspaper in the Hallway.
Day 3, 3PM
- Fixed a potential crash when loading a save game at the beginning of this Timeblock.
Day 3, 9PM
- Fixed Gabe's shadow being turned on during the final cutscene in the Pendulum Puzzle room.
- Improved Gabe's positioning when jumping between tiles in the Bridge Puzzle room.
- Fixed Gabe dying immediately if you skip the Demon cutscene right after hitting the "Retry" button on the Game Over Screen.
Engine Improvements
Assets
- Added a new
GK3.inifield called "Custom Barns." This allows players to specify custom Barn asset archives that the game will load at a higher priority than normal Barn archives.
Graphics
- Improved performance of texture loader, which should reduce load times when using a hig...
v0.4.0
G-Engine v0.4.0 is here!
This release focuses heavily on bug fixing and polish. Since v0.3.0 achieved game complete-ability, the goal of this release was to go back and smooth out some rough edges. This release also adds some missing screens/features that continue to move the game towards a more complete state.
Here's a detailed breakdown of what's changed since the last version. The organization of this changelog is different from past releases to hopefully categorize things in a more helpful way.
Game Improvements
New Features
- Added the Hint System! When on the Driving Screen, select "Hint" from the Option Bar. This will highlight locations that still have tasks to be completed during the current timeblock.
- Added "Quit Confirm" popup.
- Added missing "Pause" screen (press P to toggle).
- Added Help Screen (accessible from Option Bar).
Save/Load
- Added Quick Save and Quick Load with F5/F6 respectively.
- Save game list is now ordered with oldest save at the top and newest save at the bottom.
- Added missing scrollbar to Save/Load Screen. You'll need this if you have a lot of saves!
- Added missing "Are you sure?" popup when attempting to overwrite a save game.
- Added Save/Load Progress Bars. But to be honest, they are purely aesthetic at this point!
- Fixed incorrect day/time being displayed on saves in the save game list.
- Game Timers are now included as part of save game state. This is required for certain parts of Day 2, 2PM and Day 3, 6PM to function correctly if you load a save during one of those timeblocks.
- Fixed loading saves on Timeblock Screen playing text animation and "tick-tock" SFX.
- Fixed "Restore" button being interactive on the Load Screen if no saves were present.
Inventory
- Added missing scrollbar to Inventory Screen. This is most necessary when playing on a low resolution.
- Fixed Grace starting the game with the wrong R25 Key (so interacting with it in inventory would use Gabe's voice overs).
- Fixed interacting with Le Serpent Rouge stanzas in Inventory Closeup not showing all expected verbs.
- Fixed "Pickup" verb not appearing in Inventory Closeup views.
- Fixed "Pickup" and "Scan into Sidney" verb icons appearing in Inventory Closeup when looking at an item that isn't actually in your inventory (such as Wilkes' letter or the panels in the Museum).
Sidney
- General: Added missing room imagery when viewing Sidney on a higher resolution than 640x480.
- General: UI under a popup is no longer interactive until the popup is dismissed.
- General: Improved spacing between Sidney menu bar items and added missing "empty space" between certain menu items.
- General: Fixed two Sidney fonts that were missing a glyph, which would result in certain characters rendering incorrectly.
- Files Window: Added missing scrollbar. You need this if you scan a lot of files during your playthrough!
- Files Window: Fixed preview images being the wrong size, resulting in some visual artifacts.
- Files Window: Fixed files window staying opened if Sidney is closed.
- Files Window: Fixed window position when selecting grid fill/size options.
- Files Window: Fixed audio tapes not having correct preview images.
- Email: Added missing custom layouts for the "Temple of Solomon" and "Hermetical Symbols" emails.
- Analyze: Added "Analyze" button behavior for audio tapes.
- Analyze: Analysis cutscenes are now non-interactive, matching the original game.
- Analyze: Map points now render as circles instead of squares.
- Analyze: Fixed Map rotation being slightly off from original game - the tilted square rotation angle was incorrect.
- Analyze: Fixed exiting Anagram Parser not re-showing the text being analyzed.
- Search: Fixed being able to type search queries when the "no results for search" popup was present.
- Suspects: Fixed Sidney Suspects screen using wrong images for fingerprints.
- Translate: Fixed translating certain items with missing words not re-prompting you to choose the missing word after the first attempt.
Pathfinding & Walking
- When attempting to walk someplace that can't be walked to, the game now attempts to walk as close as possible ("best effort") without walking into invalid areas. This generally seems to give correct pathing behavior that's consistent with the original game.
- Characters now make a lot more effort to stop walking at the exact spot they were told to walk to. This is often important so that characters "hit their marks" for various animations, and so predefined camera angles are correctly pointing at the characters.
- When most of a walk path is off-screen, characters skip to the nearest path position that isn't on-screen. This behavior has been fixed (after being accidentally broken in v0.3), and the logic has been improved.
- Shoe thickness is now taken into account for floor positioning, which should make characters stand "on the floor" a bit better.
- When interacting with objects, characters will often "walk to see" the object before interacting with it. Fixed a bug where scene geometry would often be ignored for this, resulting in characters commenting on objects that are not visible to them.
- Detection of when a "walk to see" object can be seen has been improved. For example, looking at Jean/Simone would previously cause Gabe/Grace to walk behind the desk before playing VO. Now, they can "see" Jean/Simone above the desk as expected.
- Fixed skipping a walk when walking to a "walk to see" object putting Gabe/Grace in an awkward spot right next to the object. Now, Gabe/Grace will skip to the first position along their path when the object can be seen from their perspective.
In-Game Camera
- Increased rotation speed of camera when using keyboard keys to move.
- Fixed camera pitch not being clamped. No more backflips!
- Added "Inspect" behavior for scene objects that don't have dedicated inspect cameras defined.
- Increased near clip plane distance to avoid characters obscuring the scene in certain camera positions (Gabe tracing the tilted square in the Church is an example - previously, Gabe would render in front of the camera, obscuring the view).
Action Bar
- Fixed Action Bar buttons sometimes not having the correct tooltip.
- Fixed rare case where multiple "Cancel" buttons could appear on the Action Bar.
- Fixed edge case where "Inspect" and "Uninspect" verbs could be shown on the Action Bar at the same time.
- Fixed character performing an action after walking to destination if the Action Bar was opened during the walk.
- Fixed instances where the Action Bar should close automatically (on scene change, if a non-user-initiated action occurs).
- Fixed a few instances where certain dialogue topics would never disappear, which allowed you to repeat dialogue cutscenes infinitely (asking Jean about Treasure as Grace for example).
- Fixed hiding Action Bar by right-clicking not triggering "cancel" action. This fixes some character conversation behavior.
Option Bar
- Option Bar now stays on screen if you reduce the window resolution.
- Option Bar is now always interactive, even if opened during a non-interactive cutscene.
- Added missing Option Bar buttons for "Exit Inventory" and "Exit Current Screen." These buttons appear on the Option Bar when in the inventory and when on certain screens respectively.
- Fixed being able to errantly open the Option Bar on certain subscreens.
Characters
- Fixed some instances where characters continue to play their talk/listen animations after a conversation has ended.
- Fixed Buthane's face having a line of pixels drawn on it.
- Fixed floor shadow still being visible if a character has been hidden.
- Fixed floor shadows floating in the air in some cases.
Misc
- Fixed jittery cursor when using Fingerprint Interface.
- Fixed invalid location name on Status Overlay when on the map.
- Fixed scene animations still updating when the scene was paused (such as when on inventory screen).
- Fixed foliage textures having a floating opaque pixel in their upper-left corner.
- Fixed Binoculars zoom area for Chateau de Blanchefort from Tour Magdala.
Day 1, 10AM
- Fixed being unable to "Inspect" Lady Howard and Estelle in Museum.
Day 1, 12PM
- Fixed odd animation behavior when Gabe is sitting on Mosely's bed and attempts to interact with things in the room.
Day 1, 2PM
- Fixed timeblock completion conditions not being triggered if you talk to Marcie at the train station instead of "thinking" about the arrivals board. Both are supposed to be valid actions for fulfilling the "investigate train station" requirement to complete the timeblock.
- Fixed timeblock completing prematurely if the last thing you do is follow Buthane's van.
Day 1, 6PM
- Fixed lights not turning on in Abbe's Office when he is making his phone call.
- Fixed Mallory and MacDougall body doubles appearing when they are entering their vehicle.
Day 2, 10AM
- Fixed the Maid's cart SFX continuing to play after the cart has stopped moving.
Day 2, 12PM
- Fixed Buthane not being interactive in the Winery Tasting Room.
- Fixed Bartender's mouth not moving when talking.
- Fixed odd animation behavior when climbing up/down from the chair in Montreaux's Office.
- Fixed Grace being unable to close the desk drawer in Montreaux's Office.
- Fixed "Laser Rotate" SFX in Montreaux's Office not playing.
- Added missing "Grace rotates laser head" animations/SFX in Montreaux's Office.
Day 2, 2PM
- Fixed 5-minute timer at start of timeblock never expiring. For example, Buchelli would never leave the Phone Booth if you wait around in the Lobby.
- Fixed Ambulance SFX not stopping when you leave the Devil's Armchair.
- Fixed Emilio's walk behavior during cutscene with Estelle in Lobby.
- Fixed Montreaux walking through solid door when greeting Gabriel.
Day 2, 5PM
- Fixed Grace not being at corr...
v0.3.0
G-Engine v0.3.0 is here!
This is an exciting release, as the game is now completable, and all 965 points are obtainable! There are still plenty of bugs, wonky behavior, and missing polish. However, the "broad strokes" of implementing gameplay logic for all timeblocks is finally complete. It represents a huge milestone for the project - I hope you enjoy!
Here's a more detailed breakdown of what's changed since the last version:
Game
- All timeblocks are completable, and it is now possible to obtain all 965 points.
- Added Anagram Parser interface to Sidney. It can be used to solve part of the LSR puzzle.
- Added various missing logic and score events when performing actions in Sidney.
- Added logic to complete remaining LSR map steps.
- Added logic for showing some new Driving Map locations during Day 3 timeblocks.
- Added "Match Analysis" logic for matching unknown fingerprints to suspects.
- Binocs system is a lot more polished. Scenes can be zoomed to, they look as expected, and characters in the scenes animate and act pretty similarly to the original game.
- Added GPS system. On occasion, Grace can use the GPS to help pinpoint a location of interest.
- Improved Fingerprint interface, including adding support for retrieving the three fingerprints from the manuscript during Day 3, 12PM timeblock.
- Added custom logic for the various death trap puzzles in Day 3, 9PM: Giant Chessboard, Pendulum, Hexagram Room, and Invisible Bridge.
- Added "Radio Grace" button to the Options Bar, which is only used during the Day 3, 9PM timeblock.
- Improved skyboxes; added skybox rotation (azimuth) in some scenes. Added skybox raycasting, which allows you to interact with the skybox in some scenes.
- Added missing blob shadows under characters.
- Added caption support for videos.
- Added Death Screen, with retry support.
- Made some decent improvements to pathfinding and walking logic. Pathfinding is now more efficient, and paths are usually more intelligent.
- Improved "turn to model" and "walk to see" walk approaches. This makes Gabe/Grace act a bit more intelligently when approaching objects in the scene before interacting with them.
Engine
- Added a "LateUpdate" callback to Actors. This is used occasionally where an Actor/Component needs to do some update work after all other Actor/Components have updated. One notable use is to ensure parented animated objects (such as Gabe's Mic in Day 3, 9PM) are positioned correctly after all animations have been sampled for the current frame.
- Game timers now persist across scenes. It appears that the Day 3, 6PM timeblock actually relies on this logic to function correctly.
- Added support for Animation files running at a different FPS. This is rarely used, but is needed in a few key instances (such as video subtitles).
- Added additional texture manipulation functions (flip horizontal, rotate clockwise or counter-clockwise).
- Improved logic for detecting glyph sizes in fonts, which fixes a few fonts that previously wouldn't load correctly.
- The Action system now allows starting/ending "manual" actions. This is for when you don't have a concrete action to execute, but you still want the game to act like a hands-off cutscene is occurring.
- Added helper to UIText to resize its RectTransform to fit the current text.
- When a ScrollRect calculates its size, it will now ignore inactive children.
- Raycasts against MeshRenderers now ignore transparent pixels.
- Added automatic type ID generation (based on class name hash) for reflection system.
- Identified and resolved a fairly massive memory leak. This should enable completion of much more (or even all) of the game in a single sitting.
Tools
- Fleshed out the Assets Tool: you can now see a full accounting of which Assets are loaded at what times while playing the game. This is most helpful to identify Assets that may be errantly loaded in memory when they aren't needed.
- Fixed a crash when viewing an Actor in the Scene Hierarchy that has an Asset hookup exposed.
- Added names to a number of Actors throughout the game, which helps to more easily identify specific Actors in the Scene Hierarchy Tool.
- When the tools menu is opened, you can now always move the in-game camera, even if the game is otherwise in hands-off mode. This provides a way to investigate the scene state when bugs occur, even if the game is otherwise in a non-interactive state.
- In addition to providing a full save file path, saves can now be loaded by name too.
Bug Fixes
- Fixed scenes rendering with incorrect textures for a single frame on scene load.
- Fixed actors/props rendering with incorrect lighting for a single frame on scene load.
- Fixed billboard props (such as trees) facing the wrong direction for a single frame on scene load.
- Fixed a possible crash if you spam-click the floor, causing the Walker system to recalculate walk paths in rapid succession.
- Fixed a possible softlock when multiple overlapping dialogues have finish callbacks defined. Only one of the dialogue callbacks would be called.
- Fixed button hover states still rendering when buttons were not interactive (such as when loading icon is up).
- Fixed possibility to spam-click Sidney buttons, sometimes causing some buggy results.
- Fixed tooltips appearing when hovered button is not interactive, or has disappeared.
- Fixed in-game console not rendering over videos.
- Fixed a softlock when pressing ESC to skip a playing video.
- Fixed playing a video not actually showing the video UI for one frame, causing the underlying 3D scene to be visible briefly.
- Fixed in-game actions with "talkto" attribute defined not opening the topic bar once the action completed.
- Fixed parsing INI file float values with leading decimals. Something like "0.95" would be errantly interpreted as "95".
- Fixed a bug where internal audio settings were causing some SFX to play too quietly.
- Fixed several instances where UIs were not layered correctly. The most notable instance was Sidney's menu bar appearing above inventory screens.
- Fixed instances where the game's internal logic evaluation for whether an action is allowed was incorrect. This fixes various instances where you should be able to perform an action, but couldn't. A good example is knocking on Mosely's door during Day 1, 2PM: you should be able to, but the game might errantly choose the default "I don't have anything to say to him" option instead.
- Fixed a bug where "exit region" code would cause characters to move, even if they already weren't in the affected region. In practice, this would cause Gabe/Grace to walk to random spots at seemly random moments in some scenes.
- Action bar now stays in the same spot when it reappears after a cutscene, rather than always jumping to your cursor's current position. This more closely matches the behavior in the original game.
- Fixed PDB files being accidentally included in Windows build distribution zip file.
Known Issues
- Though pathfinding and walking have been improved in this release, there's still a lot of work to do. Characters still walk too close to objects in some cases, or clip into level geometry. They don't always stop walking at the exact right spot. Some walkers still barely work.
- The "skip walk path before view frustum" logic is currently too aggressive, so you'll get some moments where Gabe/Grace suddenly "pop in" to view when you tell them to walk somewhere in the scene.
- Text in UIs, especially scroll lists in Sidney, may appear blurry at certain screen positions.
- The cursor may act "jittery" in the Fingerprint screen. Some logic related to how cursors display needs to be overhauled.
- Custom UI layouts required for a few emails in Sidney haven't yet been implemented.
- The demon in the final scene of the game acts very erratically. However, if you know what to do, and fiddle with it a bit, you can get through it.
- The LSR map is slightly incorrect compared to the original game.
- Madeline is sporting some under-eye face paint due to some recent changes to how eyes are added to face textures. This'll be fixed in the next release.
- Linux builds still have pretty terrible FPS and some graphical artifacts/glitches. Apologies again, and this will become more of a priority to review/resolve after cross-platform bugs have been resolved.
v0.2.0
G-Engine v0.2.0 has been released!
One major focus of this release was implementing missing screens and functionality that weren't required for the game's critical path, but were necessary for 100% completion. This includes implementing Sidney's Search, Translate, and Suspect screens. This also includes adding the Fingerprint and Binocular systems the game.
Another major focus was to go back and make the game as completable as possible. It should now be possible to obtain all points up to Day 3, 2AM. If you play the following timeblock (Day 3, 7AM) or later, you'll start to notice a lot of missing things.
Here's a detailed breakdown of what's changed since the last version:
Engine
- Added libpng library for Linux, Mac, and Windows.
- Added support for taking screenshots by pressing F11. Screenshots are saved in the user directory (see https://wiki.libsdl.org/SDL2/SDL_GetPrefPath#remarks).
- Added save game version numbering to (hopefully) ensure backwards compatibility.
- Added thumbnails to save games. These let you see a visual snapshot of the game when it was saved.
- It is now possible to run the game in other official localizations such as French. Thank you to contributor @marvins67 for adding this!
- Added support for BSP raycasts where the polygon has alpha pixels. This allows a raycast to go through an interactive BSP surface if the pixel on the surface is transparent. This is important for certain hit test surfaces, such as the four angels in the church.
- Added the ability to play video files on any UI image. Beyond fullscreen video playback, this now allows videos to play on any UI surface.
- Added UI Scroll Areas, which is a maskable scroll area in the UI. This is primarily used for scrollable window areas in Sidney.
- UI Text Input now supports a max length for input. The caret also now works correctly in more scenarios. Also fixed a bug where the caret may render at the wrong spot for one frame.
- UI Buttons can now be triggered programmatically, showing the "down" button state for a moment beforehand.
Tools
- Changes to transforms in the Scene Hierarchy tool are now immediately reflected in the game.
Game
- It has been verified that you can play through Day 3, 2AM while obtaining ALL points up to that time.
- The Sidney "Search" screen is fully implemented. You can search for all supported terms and see the search results content fully rendered. Points are also granted for certain search queries performed throughout the game.
- The Sidney "Translate" screen is implemented. You can translate all translatable items in the game and obtain the associated points up to Day 3, 7AM.
- The Sidney "Email" screen is implemented. You can view emails, and emails received later in the game should appear (though this still needs to be thoroughly tested).
- The Sidney "Suspects" screen is implemented. You can view all suspects, link evidence to suspects, and even perform fingerprint match analysis. All score events and flags related to linking evidence are implemented up to Day 3, 7AM.
- Added missing video files when you analyze certain documents to extract shapes and text in Sidney.
- Improved the presentation of previously implemented Sidney UI (e.g. added borders and localizations to "Add Data" flow).
- The Fingerprint interface is implemented and functional up to Day 3, 7AM. Throughout the game, you can take fingerprints from various objects, scan them into Sidney, and link them to suspects for points.
- Implemented the foundations of the Binoculars system. You can at least use the Binoculars to view far-away locations, see cutscenes, and receive associated points/progression. That being said, the experience is still VERY rough!
- Added logic for puzzle involving taking and identifying Wilkes' and Buchelli's fingerprints during the Day 2, 2PM timeblock.
- Added logic for analyzing Hermetic Symbols in Sidney.
- Added logic for extracting anomalies from the two parchments as Grace in Day 2, 5PM timeblock.
- Added logic for tracing the "Tilted Square" on the angels in the Church as both Gabriel and Grace.
- Added tooltips to all existing UI throughout the game.
- It is now possible to save your game on the Timeblock Screen.
- Added missing score increase when successfully making an ID in Sidney.
- Added missing tutorial VO if you visit Sidney Files page when it is empty.
- Added missing special music that plays on the driving screen during the Day 3, 2AM timeblock.
- Added missing dialogue after Gabriel sees the black sedan in Day 3, 2AM timeblock.
- Added keyboard shortcuts to most screens throughout the game. For example, you can press "C" to press the "Continue" button on the Timeblock Screen. Or you can press "ESC" to back out of most screens.
- Added Windows app icon.
Bug Fixes
- Fixed a bug where the last file stored in a Barn asset archive could not be read. This could lead the game to believe an asset was missing when it was present.
- Fixed a lot of incorrect behavior with scene raycasts. This fixes some scenarios where clicking on the floor would not trigger the character to walk. This also fixes some scenarios where you could click on objects even though something else was in the way.
- Fixed a bug where chatting with people would not increase chat counters, which caused some game logic to fail.
- Fixed a bug where "Chat" and "Talk" verbs could appear at the same time - "Chat" should only appear when "Talk" is not an option.
- Fixed a bug where "1ST_TIME", "2ND_TIME", and "3RD_TIME" case statements did not factor in chat counters.
- Fixed a bug where audio sliders would not show the correct state if you changed them and then came back to the options screen later.
- Fixed a bug where loading a save game from the title screen wouldn't hide the title screen, resulting in a soft lock.
- Fixed some bugs where Action Bar & Options Bar could show at the same time or conflict with one another. It should only be possible to have one opened at a time now.
- Fixed a bug where masked UI elements were still interactable/clickable.
- Fixed several bugs where removing UI widgets from a canvas could cause a crash.
- Fixed a bug where text fields weren't unfocused when leaving a screen, which could cause action skip to stop working.
- Fixed a bug where the player's position on the driving screen could be incorrect.
- Fixed some buggy behavior when a timeblock change occurred when you were entering the driving screen.
- Fixed a bug where certain locations would not appear on the driving map during the Day 3, 2AM timeblock.
- Fixed not being able to interact with Wilkes & Buchelli at the bar during Day 1, 6PM timeblock.
- Fixed not being able to click on the two men when following them during Day 1, 6PM timeblock.
- Fixed a bug where the music would continue to play over other music after you left the Kitchen during the Day 2, 10AM timeblock.
- Fixed music change not occurring in Montreaux's office, after pressing the button, if you used action skip.
- Fixed bug where "RL2" wasn't considered a valid location due to a typo.
- Fixed a bug where hit test actors would sometimes be errantly made visible, resulting in some odd graphical artifacts.
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. Consider making save games occasionally to guard against this.
- 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.
- The Binoculars system is nominally functional, but in a very rough state. This will be improved upon for the next release.
- If you look closely, you may notice a single frame when entering a new scene where surfaces are not properly textured.
- The cursor may act "jittery" in the Fingerprint screen. Some logic related to how cursors display needs to be overhauled. Also, it may be harder than desired to uncover fingerprints on the Fingerprint screen - this needs a bit more work.
- Linux performance is very poor in some cases. Further investigation and TLC is needed!
v0.1.0
Hello all, happy 2025! G-Engine v0.1.0 is here!
It's been nearly a year since the last release - I DO hope to release updates a bit more frequently this year! The delay was caused by two things. First, wrapping my head around the best way to add save/load support took a long time. Second, I now live in a different US state, which took a lot of time and energy in late 2024.
This release adds EARLY/ALPHA support for save games. I deemed this to be necessary and valuable since it's now possible to progress far into the game, but the engine itself isn't entirely stable. This allows you to play up to Day 3, 7AM without worrying that the game will crash and you'll lose all your progress.
Note that save games ARE NOT GUARANTEED to be compatible with later versions of the engine! In fact, it's very likely they will not be compatible. I'll make efforts in the future to enable compatibility, but it seems like a lower-priority than getting the full game functional and stable.
This release also enables progression further into the game, adds a few developer tools, and fixes a few bugs. Here's a more detailed breakdown of what's changed since the last version:
Engine
- Implemented a C++ runtime reflection system. This feature allows engine classes to keep track what functions and variables they contain at runtime. Not user-facing, but important for other systems, such as in-game data inspectors.
- Localized text now supports control characters (such as tabs and line breaks). This improves the formatting of certain text in the game, especially in Sidney.
- Fixed compile/link failing on Apple Silicon Macs.
- FPS calculation now uses a weighted average calculation that seems to give better results.
Tools
- Added a scene hierarchy inspection tool. Press
Tabto access the tools menu. Then selectWindow > Scene Hierarchy. This tool allows you to see all the objects in the current scene, and even inspect or modify the data for many objects. - Added an asset inspection tool. Press
Tabto access the tools menu. Then selectWindow > Assetsto view a list of assets currently loaded and in-memory. You can even select assets to view and modify attributes about the asset. This tool is in early development, and only currently supports Textures.
Game
- Day 3, 2AM timeblock can now be completed.
- Save/load are now functional. Note that save files ARE NOT compatible with the original game. Also note that this feature is in early development, and it is VERY UNLIKELY that save files created with this version of the game will be compatible with future versions of the game.
- Improved some Sidney UI (such as analyze message popups) to look closer to the original game.
- Sidney dropdown menus now look and act more like they did in the original game.
- Sidney "Analyze Text" feature and "Translate" screens are implemented in an initial state; still some work to do here.
Bug Fixes
- Fixed crash if game shuts down before
Rendereris fully initialized. - Fixed an occasional crash on shutdown due to
SceneManagerdestroying all objects before unloading the scene; whoops. - Fixed incorrect LSR verses being highlighted during Day 3, 7AM timeblock.
- Fixed some voice-overs with multiple lines only playing the first line of dialogue.
- Fixed some instances where UI might appear blurry because UI elements were not perfectly aligned with screen pixels.
- Fixed Linux release zip file being invalid due to files not being in correct folders.
Known Issues
- The game may crash if you play it from the beginning all the way passed Day 2, 12PM. I suspect this is a memory issue, but need to investigate more. Consider making save games occasionally to guard against this.
- 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. Raycasting code for BSP needs to be updated to fix this.
- Completing steps of Le Serpent Rouge on Sidney does not yet trigger score increases in most cases.
v0.0.9
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.
v0.0.8
GEngine v0.0.8 is here!
This release enables progression up to Day 2, 2PM. Work has also gone into improving stability, adding missing functionality, and fixing bugs.
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
- Support for the GK3 demo has been added! GEngine can now detect when the demo data file is present and run the demo instead of the full game - see the updated README for details.
- Asset manager now tracks scopes of assets (global vs. per-scene) and unloads assets when they are no longer needed. This greatly reduces memory pressure as you play the game.
- Inventory manager now lazy-loads inventory item images, which speeds up initial launch time by several seconds.
- Added support for "Scene Functions", which are scene-specific custom code. This is used by the Laser puzzle in Montreaux's library.
- Adjusted how quickly 3D sound volumes decrease when moving away from the audio source.
- Added missing Camera Sheep API functions: CameraBoundaryBlockModel, CameraBoundaryUnblockModel, ClearForcedCameraCuts, GetCameraClipFront, SetCameraClipFront, GetCameraClipBack, SetCameraClipBack.
- Mesh color data is now parsed and used for rendering models. In particular, this fixes some issues with Lady Howard's scarf/hat/shoes not displaying correctly.
- Added new visualizations in construction mode: regions, triggers, and walker paths.
- Updated FMOD. The primary benefit is support for audio output source changing on-the-fly. For example, adding/removing headphones or changing audio output from the taskbar will now work correctly.
- Added looping audio support at the FMOD level. Previously, anyone wanting looping audio would have to play the sound again when the previous instance finished.
- Music audio data is now streamed from the hard drive, which improves performance when loading music files.
Game
- Day 2, 12PM timeblock can now be completed.
- GK3 demo is now supported. If "Gk3demo.brn" is present in the data directory, the game will launch in demo mode.
- The "Cinematic Cameras" preference can now be toggled from the option bar. This allows you to play the game with most cinematic cameras disabled. This option is saved between sessions.
- Character animation and walk logic has been overhauled, resulting in more accurate and less janky animation behavior overall.
- Added "Finished Screen" along with FinishedScreen Sheep API function. This can currently be seen at the end of the demo.
- Implemented missing "Mood" and "Expression" animation nodes. Animations that change character facial expressions are now functional.
- Implemented missing "near model" approach, which is used to move characters near models. Fixes some bugs, such as Gabe/Grace not walking to R25 door before entering.
- Camera field-of-view settings are now applied when changing camera angles. This improves the focus of the camera during certain cutscenes, and more closely matches the original game's behavior.
- Implemented "glide" style cameras during cutscenes.
- Implemented soundtrack "follow" mode, which enables a 3D sound to follow a 3D model as it moves through the scene. Used by Buthane's van SFX, for example.
- Game timers now pause when the scene is paused (when in inventory, for example).
Bug Fixes
- Audited dynamic memory allocations; discovered and fixed several memory leaks.
- Fixed an oversight in audio code causing music to play too loudly.
- Fixed status overlay not appearing if you earned points, but skipped the action using the ESC key.
- Fixed incorrect footstep/footscuff sounds in some cases. Also fixed footsteps playing too loudly based on distance from the camera.
- Fixed characters sinking into the floor in some locations (such as Chateau de Blanchfort) due to an oversight when calculating floor heights.
- Fixed issues where start or end of timeblock movies would not display correctly in some cases, such as when doing action skips.
- Fixed captions sometimes not wrapping text correctly.
- Improved performance of scene raycasts by changing how BSP is checked.
- Fixed sounds with lower volumes playing their first frames at full volumes.
- Improved resiliency of INI and animation data parsing. Fixes several crashes/bugs due to data file typos, missing fields, or inconsistent formatting.
- Fixed "walk to see" approach using the wrong position if the 3D model is offset from the origin of the local coordinate system.
- Fixed a bug where Jean's "walk around the lobby" logic would restart prematurely.
- Fixed an infrequent crash when loading shaders during game launch.
- Console commands now execute at the "global" Sheep layer, which fixes crashes if the console command causes a layer to be popped from the layer stack.
- Fixed actions being logged to the console twice in some cases.
Known Issues
- 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.
- Raycasts are occasionally inaccurate, with the game thinking you clicked on something you didn't. Raycasting code for BSP needs to be updated to fix this.
- Day 2, 2PM can't be completed yet due to a crash when entering The Devil's Armchair.
- While testing this build for upload, I encountered some performance issues that seemed related to the optimization level of the build. As a result, the Windows build has optimizations turned off temporarily. I will investigate this more closely for the next release.
v0.0.7
GEngine v0.0.7 is here!
This release primarily focuses on enabling further advancement into the game. Additionally, various support systems have been worked on to various levels of completeness.
It is now possible to complete up to Day 2, 10AM timeblock. However, a new problem has arisen: you can now play the game long enough to run out of memory! Up to this point, I haven't focused at all on unloading assets once they're no longer used; that'll have to be a focus of an upcoming release.
Keep in mind: if you'd like to test certain locations or timeblocks, it's possible to use the SetTime or SetLocation commands in the in-game console to "warp" to different timeblocks or locations.
Engine
- Added IMGUI integration to help with implementing developer tools/UI.
- Press Tab to show "Construct" mode. Currently allows visualizing camera bounds, walker boundaries, and scene AABBs.
- SheepScript decompiler now properly writes out labels and gotos. The decompiler should now be fully functional.
- Added "debug flag" system from the original game. This is used to enable/disable certain debug and development tools.
- Added support for writing out RGBA Textures to BMP image files (only RGB was supported previously).
- Added ability to write out Audio data as WAV files.
- UI widgets now add themselves to canvases in their transform hierarchies (reduces boilerplate code when building UIs).
- Window management code has been separated from the Renderer (early step towards supporting other rendering APIs).
Game
- Day 1, 6PM can now be completed.
- Day 2, 7AM can now be completed.
- Day 2, 10AM can now be completed.
- Inspect/Uninspect buttons on the Action Bar are now functional.
- "Camera Glide" is implemented. This is used when you Inspect/Uninspect, as well as via the Sheep API for various cutscenes. This can be enabled/disabled via the options menu, and the preference is saved between runs of the game.
- Basic Sidney "Search" screen is implemented. Terms can be searched (which is required to complete Day 2, 7AM), but articles do not yet render.
- Basic Sidney "Email" screen exists.
- Sidney "Add Data" option is functional.
- Basic Sidney "Files" popup is implemented.
- Implemented different walk sound effects based on shoe type and walk surface.
- Added "animation parenting," which is occasionally used to have characters hold objects during animations.
- Implemented "SetWalkAnims" Sheep API function, which are used during maid sequence.
- Implemented GameTimer Sheep API functions (allow setting a timer and executing an Action when the timer expires).
- Added support for allowing/disallowing cancelling and dismissing the Action Bar (used during handshake segment).
- Added support for "ClearRegion" Sheep API function, which is used to get characters to move out of the paths of certain objects.
- Added support for blocking certain sections of the walk boundaries. Stops characters from walking through dynamic objects, for example.
- Added custom logic to disallow traveling to Larry's Place during Day 1, 6PM (to match original game).
Bug Fixes
- Fixed bug that stopped Day 1, 6PM from being completable. A cutscene would previously not complete. This was fixed by updating how SheepScript callbacks work when scene changes occur.
- Fixed captions sometimes using incorrect colors for the person who is speaking.
- Fixed captions sometimes disappearing too quickly.
- Fixed crash if Debug::DrawScreenRect is called before a Camera is assigned to the Renderer.
- Fixed issue with multi-line Fonts errantly detecting glyphs at ends of lines that didn't exist.
- Fixed issue with some Fonts not displaying correctly because alpha channels weren't being properly applied.
- Fixed bug that stopped textures from loading/displaying correctly if they had dots in their names.
- Fixed certain inventory items not having valid verbs (which made it impossible to "use" them).
- Fixed incorrect raycasting logic causing some scene objects to be unclickable.
- Fixed bug where objects meant to be stationary would move slightly during animations due to incorrect interpolation logic.
- Fixed bug where inactive/hidden objects would have their animations desynchronized when they were activated/unhidden.
- Fixed bug where 3D SFX would sometimes play at the wrong position, which made it seem like they were not playing at all.
- Fixed logic errantly detecting a location change due to case difference (e.g. locations "R25" and "r25" were not considered equal).
- Fixed bug where "init anims" would errantly change the state of unrelated models, rather than just initializing the specific model.
- Fixed bug where spamming walk actions would cause the walk animation to glitch out a bit or double up footstep sounds.
- Fixed crash when loading Chateau de Serras during Day 2, 12PM due to a SIF typo that wasn't accounted for by the parsing code.
Known Issues
- Various animations still act glitchy or weird. Walk animations are sometimes quite erratic. Not ideal, but makes for some funny situations.
- Captions sometimes do no wrap correctly, resulting in them going off-screen.
- It finally happened: you can play the game long enough for it to run out of memory! This happens because assets are loaded on demand, but never currently removed from memory. The original game appears to use some sort of reference counting scheme, which is probably the route I'll go too.
v0.0.6
GEngine v0.0.6 has been released!
This release is primarily focused on fixing bugs and implementing functionality that is required to proceed further into the game. It is now possible to complete the first four timeblocks.
Engine
- Split Sheep API into separate .h/.cpp files based on category. This is primarily an internal organization change (it's nice to not edit one giant thousand-line file), but it does also prove out how the base SheepScript API system could be extended for other games or purposes by adding more APIs outside the core library.
- Scene loading is now more resilient to missing assets. It is now possible to load scenes that have few or no assets available (this would crash previously).
- Scene loading now provides a callback for when the scene is loaded.
- UI buttons can now play sound effects when hovered.
- Various systems were updated to use case-insensitive maps/sets where possible. This is less error-prone to capitalization discrepancies, and also a bit more efficient.
- Initial game load time was decreased by reducing amount of file reading/seeking being done. Some data (like compressed asset size) is now only read when the asset itself is needed at runtime.
- Executing SheepScripts can now be associated with tags that control the lifetime of the script's execution. A concrete use of this is to stop executing SheepScripts when changing a scene.
- Blocked/waiting SheepScripts now use a "NotifyLink" system, which resolves a problem: if a blocked SheepScript is stopped prematurely, how do you stop the wait callback from executing? This seems to be how this problem was solved in the original game.
- Fixed some syntax issues with decompiled SheepScript.
- Added single pixel buffer between lines of the in-game console. Makes it easier to read.
- AABBs can now be visualized at runtime by pressing F5.
Game
- The Driving Screen is now implemented! It is possible to use this screen to travel to new locations on the motorcycle. You can also follow NPCs in some cases.
- The Caption/Subtitle overlay is now implemented. This can be toggled on in the options, and the preference will be saved between runs of the game.
- "Action Skip" (pressing ESC to skip a cutscene or dialogue) is now a lot faster. Also fixed some edge cases that could cause Action Skip to soft crash the game.
- Overhauled how Actions from NVC files are evaluated for display at runtime. This causes the action/topic bars to behave much more closely to how they did in the original game. This fixes a bunch of interaction issues.
- Calculations for character height/feet positioning has been updated. The new logic seems to work a lot better, and fixes a bunch of issues where characters would sink into the ground in strange ways.
- "Walk To See" behavior is less buggy. Characters will actually stop walking when an object comes into clear view of their line-of-sight, and headings when approaching such objects look more natural.
- Changed how Character Configs & Face Configs are loaded. This fixes some issues with faces not animating in some cases (Lady Howard, for example).
- If an inventory item is added while the inventory is visible, the screen now refreshes to show the new item right away.
- The last added inventory item now automatically becomes the "active" inventory item for the character.
- Draw orders of various UIs have been modified to more closely match the original game.
- Location of the player's motorcycle is now tracked/updated internally. Fixes issues where the motorcycle was missing in the scene in some cases.
- Players can now proceed up to (Day 1, 6PM) before encountering an unavoidable showstopper.
Bug Fixes
- Fixed some animation bugs. For example, Gabriel can now actually walk up the steps to the museum in Rennes-le-Chateau.
- Fixed a bug where "move" animations were not properly flagged as such, resulting in some weird behavior.
- Fixed a bug where generating a Heading from a Quaternion would not always give the correct result.
- Some GK3 INI files actually have typos in them. Associated parsing code has been tweaked to still work despite this problem.
- Fixed a bug where a disabled button would still cause the cursor highlight to change.
- Fixed a bug where very large meshes with more than 64 submeshes would cause the game to crash. The code making this assumption (related to submesh visibility) will now assume any mesh beyond this limit is always visible.
- Fixed a bug where the game would crash if the console's scrollback buffer got larger than 1000 lines.
- Fixed a bug where inventory items with no associated Actions (such as the Spray Bottle) would cause an index out-of-bounds crash.
- Fixed a bug where scene interaction raycasts would sometimes report the wrong object.
- Fixed a bug where absolute positions in init-anims were not being applied.
Known Issues
- Decompiled SheepScript does not properly insert labels and gotos yet. I think this is the last thing to do before SheepScripts can be fully decompiled.
- Animations continue to be problematic. A lot of them work correctly, but you'll still see plenty of scenarios where animations are glitchy or weird.