# ------ Announcements
This sprint i've focused again on a chapter. Like usual.
This is the 1st sprint after the first alpha.
The previous cycle was composed of 2 passes on each chapter.
So it could be considered 2 horizontal slices (and 2 cycles in one).
That was a super important milestone, because it meant the game was playable on all chapters in its minimum expression.
This is the 1st sprint of the 3rd cycle. The third horizontal slice.
My plan for this and the next sprints in this cycle is to focus on improving the quality of the content,
without adding much more content, and avoiding moving more features, while also improving the narrative and dialogs.
So, ideally, it will be more focused on narrative design, than technical features.
Still i tend to work on new features and technical stuff, because i love it.
Play-tests are still open. If you want to help me with your feedback, please contact me :)
**Explanation and demo**
[previewyoutube=7QuaFYXYKo4;full][/previewyoutube]
# ------ Game
## General
NEW:
* Added a feedback form, that opens when the game is closed. To make much clearer the intention of the build, as well as making it much easier for play testers.
* Added ability to load datatables from external jsons. In the future it will allow to load fan-translations during runtime. (As well as adding/removing dialogs.)
* * If you're interested in helping translate (without chatgpt or other AIs), please contact me.
* Added ability to change the language. But since i only have english at the moment, it's not showing.
* Make the demo have 2 chapters. Demo is now available at Steam.
* Added some features for captures (e.g. trailers). Show/hide pointer, text, etc.
Improve:
* Fixed light count stats.
* Added a DataLayers for each room. This allows me to organize/load assets based on location. Previously i did it only based on the chapter.
* * Chapter DataLayers do still exists, and they work together.
* * This is a work in progress. I've only organized the chapter 00. The rest will be done later.
* Some improvements to the GhostPool.
* Limited camera pitch movement to avoid gimbal lock.
Known issue:
## Settings
NEW:
* Now showing: Time (for speed running?), Build version, Engine version.
* Ability to change the foxify value on new game plus.
Improve:
* Reworked pausing the game. Now a bit more animated (time dilation), and better timings.
* Fixed `FeatsGroup` scrolling.
* Added a button to delete the current game config (in case something went wrong on an update).
* * Reworked where the config is stored.
## Art
NEW:
* Dustpan, Broom, Screw driver ...
* Started working on a new room. (Not finished/added yet.)
* New spark particles.
Improve:
* Reworked the `Flashback` material (again).
* Improved Ghost materials. For the particle ones and the GhostPool.
* * Now with fading on distance to camera and other objects.
* * And proper particle color and alpha fades.
* Fixed some shadows.
* Reworked the `Range` scan effect for the "Hints" (Card0).
* Done quite some work exploring dynamic lights. But removed them for now.
* Reworked the intro menu. Improved the logo animation, and other stuff.
* "Fixed" stereo z-fight on windows.
## Chapters
All:
* Fixed a bunch of texts that weren't localized (into being localized).
* Reimported and optimized a bit a couple of rooms (Hall).
* Optimized room 01 and 03 walls loading.
* Fixed issues with the radio.
CH00:
* Added some dialogs, and hints (card 0 (intention)).
* Added some new interactions. Specially books, a toilet, a shelf, some light switches.
* Added a couple puzzles (phone, bottles).
* Started working on a book-based puzzle, but could not finish it. So it's not added.
CH01:
* Fixed small issue with a tape that was not properly occluded.
* Fixed wait on C1S5
CH02:
* Fixed poem's dialog being truncated.
CH03:
CH04:
# ------- Subsystems and plugins
## All
> Note that usually i update the repo for the plugins a few days after the devlog (if i have extra time).
## Flashbacks
* Added some texts on the walls.
## Dialogs
https://codeberg.org/jerobarraco/Diags
New:
LifeDev:
* Moved one of the old dialogs to the new auto dialogs (Unlock Dialogs).
* * This was a low-hanging fruit, the next ones are going to be much harder.
* Improved a lot of dialogs. Including card pickup.
* Added some dialogs.
Plugin:
## Story
https://codeberg.org/jerobarraco/Story
LifeDev:
* Fixed step activating interactions on Start. `IntersActive`.
* Added ability to animate the camera's transform dynamically with the FlashBack. `UseFBAnim`.
* * Works in tandem with the Dialogs automatic flashback change. Used on Chapter 0's end.
* Added ability to end a step when one or more flags are set. `FlagsFinish`.
Plugin:
## Inventory / Flags
https://codeberg.org/jerobarraco/Inventory
LifeDev:
* Added item usage animation.
* * Did some extra work on item usage on code.
* Improved how items look. Colors, icon for item cooling down, etc.
## Interactions (and animations)
https://codeberg.org/jerobarraco/Interact
LifeDev:
* Added ability to activate an interact only if it has not been triggered before. This is persisted to SaveState. `UseActiveOnce`.
* TV now follows `Flashing lights` feature flag.
* Fixed puzzle to clear on reset with `IsOnShot`.
* Fixed (auto) label generation on init and runtime. (Used for auto dialogs and auto flags).
* Added light switches.
Plugin:
* Added `Label`. Used for auto-dialogs and other features.
* * Updates automatically from the actual label in the outliner. Can be used, and changed, at runtime.
* Added ability to start/stop particles for each state on an Interact. `Particles`.
* Added ability to start sounds for each state on an Interact. `SFXs`.
* Rework how the interacts initialize their Active state.
* * Added a function for setting the state on constructor. This was quite some work. `SetStateNow`.
* * Fixes some issues behind the scene with initialization and triggering events on object begin play (on spawn and chapter load). So now it's much cleaner, and deterministic.
* * Added a flag for `UseAutoActivate`. Which can be toggled on the Outliner.
* * * So that i can easily set up instances without having to create new classes.
* * Rework how the `CAnimatorTransform` initializes its transforms. Added `CopyTStart`.
* Added ability to remove hint on Trigger (`UseTriggerDeHint`).
* Fixed issue with `Unlock`.
* * Reworked the unlock flow, and unlock overrideable.
* * Added `ShouldUnlock` overrideable.
* * Added `UnlockCondition`.
Puzzles:
* Fixed `CPuzzle` `OnDone` delegate for Sequences, to only trigger at the end.
* Fixed bug on `OnUpdate` delegate.
* Added `GetCurrents`.
* Added `OnUpdate` auto-dialog.
CAnimator:
* Made `CAnimator` default to 60fps. (Affects all types/children of `CAnimators`.)
* * This improves a lot the fluidity of animations. 30fps can lead to the impression of the game being less performant.
* * While this requires technically more processing power than the previous 30 fps. I've decided that 30 is just too little for transformations.
* * They also CAP at 60, (means they don't go over that). And most of them are also hooked to the `Significance` subsystem, so they adjust their fps dynamically.
* * Some animators have been optimized to run at 30. Like the one for Sounds and some used for Lights.
* Added ability to selectively not be affected by the World Time Dilation. `UseTimeDilation`.
* Added `CAnimatorTime` to animate time dilation (super fun to use).
* Reimplemented bounce functionality without modifying the `IsBouncing` flag. More re-trigger-able.
* `Update` is public. Since that's super useful.
Anim subsystem:
* Added loop, bounce, and reversed.
* Reworked fades' parameters to use a structure.
* Added faders for a Generic fader. Has a curve, loop, bounce, reverse, duration, etc. But you can use your own code.
## Sounds
https://codeberg.org/jerobarraco/Sounds
LifeDev:
* Sounds for toilet, switches, radio.
## Utils
https://codeberg.org/jerobarraco/JUtils
New:
* Added `LoadJSONTable` and `LoadCSVTable`. To load a data table from a json/csv file at runtime.
* Added `SetLocale`, `SetCulture`, `GetCulture`, `GetAllCultures`.
* Added `GetUsername`.
Improves:
* Removed game pause from `ShowUI` and indirectly from `BaseUI`.
* Fixed `ArrayShuffle`.
## Significance
https://codeberg.org/jerobarraco/JSig
* Avoid register on editor non-play. That is, avoid triggering a distracting, but harmless, warning.
## Behave
https://codeberg.org/jerobarraco/Behave
* Added priorities to tasks.
* Added `TaskGet` and `TaskRem`.
* Added task `Wait`, `Pick`, `Random`, and maybe others.
* Added `PlanSpread`, and cost fuzzing.
* Added looping.
* Fixed plan triggering multiple times.
* Improved cost calculation.
* * Recalculate plan on running task.
* Implemented parallel (multithreaded) plan on pick.
* Some optimizations.
* Reworked the flow a bit.
* Reworking loading, creating, adding, and removing actions.
* * Removing actions is new.
* * Now more data driven.
# ------ Links
Play it on itch.io https://jerobarraco.itch.io/lifedev
Wishlist on steam https://store.steampowered.com/app/2450230/LifeDev/
Forums https://forums.unrealengine.com/t/solodev-lifedev-my-game-about-overcoming-cptsd/
Twitter: https://twitter.com/jerobarraco
Mastodon: https://mastodon.gamedev.place/@jerobarraco
Support on patreon (one time available) https://www.patreon.com/c/jerobarraco
Support on liberapay https://liberapay.com/nande
Support on Ko-fi https://ko-fi.com/jerobarraco
[ 2025-04-16 08:03:24 CET ] [ Original post ]