Full notes
Full LifeDev update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Gameplay
- Balance
- Performance
- UI and audio
- Events
- Fixes
# ------ Announcements
## Sprint
2nd sprint, of the 3rd cycle. Chapter 01/Pass 02. This sprint was challenging too. My aim was to do more on narrative, and i did manage to do some. I also made a ton of refactors, which were difficult, but also important.
## Moving to Steam
Huge news. Time and effort are extremely critical aspect for me (not by choice). In order to optimize my time, and make the most of it: I've decided to move fully to steam. For that i've just *released my game on steam*. So: * You can now buy it on steam (please don't buy it on itch.io unless this is the only place you can get it). * I'm not going to update itch.io anymore (though i truly love it). * Also, i've opened the community on steam, and closed the one on itch.io.
The game is not finished yet, it's on early access. I've made a mistake setting up the game, and now steam won't allow me to set it as EA. I know that will be confusing, but i can't change it now.
I will keep improving the game, and the price will keep increasing, just like on itch.io.
Play-tests are always welcome open. If you want to help me with your feedback, please contact me :)
**Explanation and demo**
# ------ Game
## General
This build contains massive amounts of refactorization: * I've decided to change the mechanic for using items with interactions. This impacted the flow considerably. * Refactored data-layers to have layers per room, and per chapter. * * Helps to manage assets much more flexibly. Improving load. * Refactored to use `SoftObjectPointers` on several classes. * * I did not need it before. But now it helps me to set up some references by code, as well as improving memory and load a bit. * * It was a considerable amount of work. * Dialogs support multiple data tables now. * 731 commits vs 637 on previous sprint. Not the type of metric i care about, but still a ton of work.
NEW * I've also added a new system for small prompts (hints) on how to use the game. "Teach" (See Inventory). * * It's called "Teach" instead of "Hint", since the hint system is another thing. * I've also integrated Sentry. This is a service that reports crashes and bugs to me. * * Sentry and the new "Teach" was fairly quick, but took a considerable amount of work. * Added support for SM5 shader model on linux. As well as SM6. * The feedback form is show upon closing the game. Feedback is welcome :) * Added `Thanks` file :) * New feature flags, mostly for debug.
Improve: * Lots of optimizations and bugfixes. A more than usual. * * One of them is the `Garbage Collector` async performance. * * Improved build sizes. * * Implemented some new micro-optimization technique. * Improved spawn/init cycle.
Known issues:
## Settings
NEW: * Added toggle for `Auto Exposure`. Off by default. * Added toggle for `Status` screen message. Off by default. * * Useful for debug and speedruns. * Added a feedback box right on the settings!
Improve: * Reworked how the settings ui is activated. * Show play time on save slot.
## Art
NEW: * Have been working on a room. Not yet in the usable. * New assets: Phone, Clock, Scissors, Notebook, Screwer. Not yet in usable. * Switch spark particles. * Started working on a new entity, with nice shaders. * * I've put a lot of work in this. (Not yet visible, though :P)
Improve: * Improved the shoes of one of the characters. * Optimized reflection method. * Removed camera aspect ratio change. * Improved material memory usage a bit. * Improved the necessary permutations a bit. (Space, load time, memory usage, build times). * Improved PSO cache settings. * Reworked all light values. So that it works better with baked lights, and Lumen. * Improved the ghost post-process.
## Chapters
All: * Implemented the effect for the Card 0 (intention). When i say "hint", i refer to this. * Added new mechanic/effect for Card 1 (What works). Took quite some work. Though it's not noticeable yet. * I've done a ton of rework on the flow to: * * Accommodate for the new item usage flow. * * The cards are not used as items anymore. You can still use them by themselves. * Implemented camera animation for *some* of the chapters. This is a work in progress. * Fixed a lot of text that was not localized. So that from now on everything can be localized if it needs to. * Added some decorative assets (pencil, screwer, pictures, books, etc.). * Added interactions: Notebook, screwer. Not yet usable. * Added phone puzzle and interactions. * Improved a bunch of collisions, and audio sources. * Text on walls. Improved the visuals too. * Have added and improved a bunch of dialogs.
CH00: CH01: * Added a bunch of `Hints` (Card 0).
CH02: CH03: CH04:
# ------- Subsystems and plugins
## All
> Public repos for the plugins are updated on a later date, when i have the time to.
## Flashbacks
## Dialogs
https://codeberg.org/jerobarraco/Diags
LifeDev: * Did a TON of refactor of dialog variables. * * And, I've moved many of the dialogs to the new "auto-dialog" system. * Improved some item descriptions and other text like that.
Plugin: * Added ability to have multiple data-tables at the same time. * * For both, groups and dialogs. * * This allows to have data-tables per chapter, and also more general ones. * Improved flag for printing warnings on missing dialogs. * Improved flow for adding dialogs and groups.
## Interactions (and animations)
https://codeberg.org/jerobarraco/Interact
I've done a TON of work and refactor with interacts.
LifeDev: * Added `UseActiveOnce`. Manages an item to be activated only once. Regardless of chapter. Using the savegame. Useful for items in multiple chapters. * Refactor: Moved the functionality from the "Spot" to the LInteract. Fixed some bugs. Still work in progress. * Refactor to consume items on unlock. For the new item usage flow. Work in progress. * Fix hide interact prompt on reward. * Improved puzzles so that: * * They can be `Hinted`. * * They can manage the puzzle pieces `SetActive`. * Removed `RewardStep`, as it was redundant with the step.
Plugin: * Added ability to set particles to use for each state. * Added `CInteractor::OnTrigger`. * Added `Interact::TriggerForced`, so force trigger even if locked. * Improved sound playing. For looping sounds. * Refactored the activation and auto-activation flow. * * This was a big piece of work. It improved much more how interacts are initialized and set-up. * * Added a flag `UseAutoActivate` that can be set on the editor. * Fix interactor triggering `OnHover` on a destroyed actor. (Took some effort). * Fixed/Improved hiding, deactivating, fade, etc. And their flow. * Improved flow for unlocking. Now using condition. * Hints * * Refactored the collision settings, to allow objects to be hint-able but not active. * * * Work in progress that i might refactor in a different way, on the next sprint. * * Fix ensure to hide stencils on deactivate.
CAnimator: * Added `UseDilation` option. To ignore/compensate time dilation. * Added a `CAnimatorTime` to animate global time dilation.
Anim subsystem: * Added `TimeFade`, global time dilation animation (here too).
## Inventory / Flags
https://codeberg.org/jerobarraco/Inventory
LifeDev: * Fixed inventory refresh on item usage.
Plugin: * Fixed `Mod` and `Use` with `Consumable`. * Added `OnlyConsume` on `Mod`.
Teach: * Added a system, to prompt the user with hints. Called "Teach". * * It's the typical "you can use an item with the mouse". (Also known as New User Experience (NUX)). * Has plenty of work on it. Interacts with the `Flag` subsystem.
## JSignificance
https://codeberg.org/jerobarraco/JSig
## JUtils
https://codeberg.org/jerobarraco/JUtils
New: * Added `SoundSheet` to audio. (To be moved to the Sounds plugin) * Added `FakeLight` material function. A material based quick and cheap dynamic light. * Added `KawaseBlur` for post-process. * Added `SphereNormal` and some materials to work with pseudo water. * Added `FastMod`. A micro-optimized modulo function. * Eval: * * Added a list expression. With "random pick" and indexing. * * Added round function.
Improves: * Improved `QuickMesh` collisions. * Fixed `ReadTable`, `LoadCSVTable` and `LoadJsonTable`. * Improved material functions for water, and `Choose`.
## Sounds
https://codeberg.org/jerobarraco/Sounds
LifeDev: * Upgraded some meta-sounds' versions. * Added a bunch of sounds. * Refactored sounds to use the interact plugin's sfx-state functionality. * Fixed location of some sounds. * Adjusted audio volumes.
Plugin: * Have a way to specify the sound of each state of the Interact.
## Story
https://codeberg.org/jerobarraco/Story
LifeDev: * Fixed step `FBDlgAuto` with manual dialogs. * Added/Improved finish a step with flags and or items. Made them a list. * Fix possible crash due to flags.
Plugin: * Implemented ability to tween camera positions in sync with flashback and dialogs. * Improved camera tween on steps. * Fixed loading on steps. Made step transition to wait for data-layers and other async load. * Improved avoid unload and load the same datalayer. * Improved advancing step on interact trigger, and flags.
# ------ Links
Play on Steam https://store.steampowered.com/app/2450230/LifeDev/
Forums https://forums.unrealengine.com/t/solodev-lifedev-my-game-about-overcoming-cptsd/1172122
Twitter: https://twitter.com/jerobarraco
Mastodon: https://mastodon.gamedev.place/@jerobarraco
Support on patreon ("one time" also available) https://www.patreon.com/c/jerobarraco
Support on liberapay https://liberapay.com/nande
Support on Ko-fi https://ko-fi.com/jerobarraco
Source
Changelog.gg summarizes and formats this update. How we read updates.
