Unhaunter v0.1.1 released

· 6min · deavidsedice

The game is now kind of playable! The MVP is roughly done!

This release focuses on adding the Sanity mechanic, improving map loading performance, adding a new School map, and numerous bug fixes and smaller improvements.

✨ Features

  • (Sanity) Implemented a new player Sanity system. (c901757)
  • (UI) Added average sanity display to the end-of-mission summary screen. (5704829)
  • (UI) Player sanity level is now displayed in the truck UI. (c901757)
  • (Maps) Added map selection screen, allowing players to choose from available maps. (f7a5cb3)
  • (Maps) Added a new map: School. (c930ad5)
  • (Maps) Added a second house map. (ce47bbc)
  • (Pathfinding) Implemented hierarchical pathfinding for potential AI improvements. (e49aa26)
  • (Evidence) Added UV light, Red light, and Night Vision as evidence mechanics/tools. (4f6d226)
  • (Gear) Added Geiger Counter gear for ghost identification. (2f30d7c)
  • (Gear) Enabled EMF Meter, Recorder, and Spirit Box to contribute to classifying the ghost type. (3736364)
  • (Gameplay) Implemented functionality for the repellent item to "unhaunt" or affect the ghost. (919eaaa)
  • (Gameplay) Added a pause screen accessible during gameplay. (1a6bd70)
  • (Gameplay) Added an initial version of the mission summary screen with scoring logic. (f3ca521, bc53292, 90039d5)
  • (Gameplay) Implemented basic behavior for the ghost repellent item. (675d8dd, 145b193)
  • (Gameplay) Implemented freezing temperatures as evidence for specific ghost types. (0e2a348)
  • (Gameplay) Added internal representation of ghost types for game logic. (8ca1600)
  • (UI) Implemented logic for filtering possible ghost types based on collected evidence in the truck UI. (1040445, f53694e)
  • (UI) Added a visual indicator in the truck UI to show the currently selected ghost guess. (4b6c4e7)
  • (UI) Added UI elements in the truck for displaying collected evidence and selecting ghost types. (59ab002)
  • (UI) Developed initial drafts and proof-of-concept for the Truck/Van user interface. (6cb2ace, 114981e, 9d601c2)
  • (Interaction) Made elements within the van/truck interactable. (2da80e2)
  • (Interaction) Implemented collision detection for the van/truck area. (68b049a)
  • (Gear) Implemented functionality for the audio recorder gear. (45af529)
  • (Gear) Added different torch types (UV, Red Light) besides the standard flashlight. (6825a51)
  • (Gear) Added an initial functional version of the EMF Meter gear, including sound effects. (3ef381c)
  • (Gameplay) Implemented the mechanic where ghosts actively lower the temperature in rooms they inhabit. (e7f82b2)
  • (Gear) Developed the thermometer gear, enabling it to measure room temperatures based on ghost presence/activity. (72ffdec, 49c3073, 84d9716, e7f82b2)
  • (Gear) Added customization options or behaviors for the flashlight. (38b3993)
  • (Gear) Connected flashlight state/information to relevant game systems (e.g., UI, lighting). (51ed352)
  • (Gear) Created initial placeholder implementations for all planned gear types. (a379786)
  • (Gear) Implemented the first fully usable gear item (likely flashlight or EMF). (0119c18)
  • (UI) Added on-screen reminders for key bindings or controls. (9ff233b)
  • (Gear) Implemented the ability to cycle through available gear in the inventory. (2d519eb)
  • (UI) Added UI elements to display the player's current gear on the main game screen. (c9ebe51)
  • (Gear) Created the initial implementation and assets for the player's gear inventory system. (7863758)
  • (Gameplay) Implemented basic ghost movement AI/behavior. (d1935ba)
  • (Gameplay) Added a basic ghost entity to the game world. (c93eac2)
  • (Gear) Implemented the ability to turn the flashlight/torch on and off. (6949476)
  • (Interaction) Implemented interaction logic for doors (opening/closing) and lights (turning on/off). (53762e3)
  • (Interaction) Added the ability for doors to be opened and closed by the player. (519d784)
  • (Map Loading) Implemented system for parsing entity behaviors from Tiled map data. (14c6dbf, ede10c3)
  • (Map Loading) Implemented a basic visibility/fog-of-war system. (15d7047)
  • (Gameplay) Re-implemented basic collision and lighting after Tiled map loading refactor. (8ea2a49)
  • (Map Loading) Implemented the initial system for loading maps directly from Tiled .tmx files, including layers, tilesets, objects, and sprite flipping. (565711d, bf2d936, b6dcbd4, 7a4e44f, 4f3a184, etc.)

🚀 Performance

  • Improved performance of map preloading. (5b741b4)
  • Included various optimizations alongside the new school map. (c930ad5)
  • Implemented additional performance optimizations. (2d831f0)
  • Addressed various performance issues across the game. (651598f)
  • Prevented invisible tiles from being rendered. (099489f)
  • Implemented rendering optimizations. (b3af601)

🐛 Bug Fixes

  • Fixed rendering issues in the top-left corner of maps. (ba47b19)
  • Fixed issues with gear display in the user interface. (0cd082d)
  • Corrected issues with the player's spritesheet atlas. (7abe7e9)
  • Fixed problems with displaying gear statistics accurately. (bb6b7ec, 20e0b25)
  • Fixed a rendering bug related to the wgpu backend. (fbe6db6)
  • Ensured only one ghost type can be selected as the guess at a time in the truck UI. (c21b4fa)
  • Fixed an issue with improper camera initialization. (ca0cbad)
  • Included a small visual fix related to the van. (2da80e2)
  • Ensured the player character remains visually discernible in dark areas. (4e2bd47)
  • Addressed several other minor bugs alongside van collision implementation. (68b049a)
  • Implemented various minor bug fixes. (6343a83)
  • Fixed issues related to sound playback and ghost temperature mechanics. (6c5ee3b)
  • Fixed issues related to the lighting system, ensuring all light sources function correctly. (7d7f20d)
  • Improved alpha blending for transparent sprites/materials. (81b4b90)
  • Corrected sprite Z-ordering (depth) and visibility issues related to the new Tiled map loader. (5fa7cbf)
  • Minor fixes related to rendering and shaders. (3bd67da)
  • Addressed various visual glitches. (b3af601)

📈 Improvements

  • Adjusted sanity mechanics/values. (4625deb)
  • Made revisions and improvements to the second house map. (d0869bf)
  • Improved the visual displays for various gear items (EMF, flashlight, etc.). (7634f55)
  • Adjusted and tuned the game's lighting system. (901244a)
  • Adjusted the color output/filter for the video camera. (193c58d)
  • Made minor adjustments to the EMF meter's behavior or readings. (81b39f8)
  • Tuned temperature parameters, potentially making temperature readings easier to interpret. (ab5cb17, d03d81f)
  • Made adjustments to visibility calculations or rendering. (88a914f)

🔊 Audio

  • Added background music to the main menu. (037a428)
  • Added sound effects for the Spirit Box gear. (666a404)
  • Added sound effects for opening and closing doors. (823a51b)
  • Added various ambient background sounds (house noises, birds, etc.). (4a5617a)

♻️ Refactoring & Chores

  • Refactored code by splitting player-specific logic from game.rs into player.rs. (8e778dd)
  • Renamed ghosts.rs to ghost_definitions.rs for clarity. (6619fa6)
  • Started migration to Bevy engine version 0.13. (36a405d)
  • Created a dedicated module (ghosts.rs, later ghost_definitions.rs) for ghost definitions and logic. (64cf080)
  • Performed significant refactoring of the gear system and individual gear implementations. (c78d167, eab5b13, 32484dd, 38b3993)
  • Removed an unused/outdated dependency related to XCF (GIMP image format) loading. (d02b897)
  • Refactored collision detection logic using Bevy's SystemParam. (e4f0643)
  • Changed loading order to ensure sprites are loaded before the map attempts to use them. (1da12eb)
  • Performed extensive code cleanup and refactoring across multiple modules. (2e7446f, 2b2a037, 0bc882c, cc8fc28, e01695e, 3b5b110)
  • Cleaned up compiler warnings. (70e4610)
  • Switched map/sprite rendering to use a custom Bevy material/shader for more control. (a3c217b)
  • Added debugging tools to investigate rendering performance. (4af42a1)
  • Changed the application window title. (6fb4a7e)
  • Removed debug print statements (dbg!). (0fa7868)
  • Updated various project dependencies (Cargo.lock, Cargo.toml). (acb0bd4, 870c6c0, d4f7220, cfb7552, 4543b93, 452d9c9, 2a740c6, etc.)

📚 Documentation

  • Added instructions for profiling the game to README. (2f8f56d)
  • Made significant updates and improvements to the README file. (1c0bc2e, b9ebabb, 76d6732, 3609ced, f54466e)

🎨 Assets

  • Added new monospaced fonts (Kode Mono, Victor Mono) for UI elements. (eb2f7ec)
  • Added several new fonts (Chakra Petch, Overlock, Syne, Titillium Web) for UI and text rendering. (16f43a1)
  • Made various updates to game assets (sprites, maps). (6063ee4, e47607d, 8ff0eacc)