Devlog 23 - 0.5.0 - Chapter 00 Pass 02


—— 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

—— 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

Files

0.5.0 Linux 496 MB
2 days ago
0.5.0 Windows 480 MB
2 days ago

Get LifeDev

Buy Now$4.50 USD or more

Leave a comment

Log in with itch.io to leave a comment.