[SoloDev] "LifeDev" My dream game about overcoming CPTSD

Devlog 15

New build is available!

This is the 2nd pass of the 3rd chapter (#02). It’s a bit stub.

Sprint log:

Explanation and demo

----- Game

General

  • New:
    • New feature toggles (environ, music, noises, global illumination, strobes).
    • Change features during gameplay.
    • Added a bunch of Light base classes. With some useful features (like animation, strobe flag, intensity).
    • Base puzzle class with a bunch of util features (story management, rewards, dialogs).
  • Optimization:
    • Re-exported (optimized) some assets.
    • Some managers are AInfo now.
    • Reorganization of assets and code.
  • Settings
    • Added custom checkbox class for features.
    • Improved widgets initialization.
    • Implemented re-load and apply. Also for sounds.
    • Improved menu organization.
  • Fixed cam-shake, quality settings, strobe/animation/flashback flicker, feats reloading on settings, settings resolution scale bar, streetlight flicker.

Art

  • New: Word-cubes used for puzzles and others, Wide cabinet, toilet, mirror, bathtub, curtain, bar, Room02, Living00, street light.
  • New: Sounds for ambiences, noises, and rain. New Music!

Chapter 2

  • New: New music! It’s pretty cool and quite different!!
  • New: new character. exchanged them.
  • New: New puzzle.
  • パラメーター adjustments.

Chapter 0 and 1

  • New: Added some new objects. New puzzle.
  • Improved some interactions. Re exported some assets.

---- Subsystems and plugins

Flashbacks

  • New: AnimSpeed is configurable in config file.
  • Optimization: Fixed issues with de/activating unnecessarily.
  • LD: Added debug feature flag.
  • LD: Fixed setting the correct end value when adding values (as opposed to just setting one).

Dialogs

  • New: Added GetIsShowing, Get.

Story

  • New: Exposing step flags to be editable in the World Outliner.
  • New/LD: Added option to finish after dialogs.
  • Fixes and cleanups. Added logs.
  • Prevented sequences from having recursive dialogs.
  • Greatly improved the flow. Specially with child classes.
  • LD: Fix end step fading in and fading music.

Inventory / Flags

  • New: Added Flags::Instance

Interactions

  • New/LD: Added dialogs for items usage.
  • Re-parent sfx to the base mesh.
  • Improved anim logs, stop callable in editor, trigger begin on reset.
  • Added stub OnTrigger and OnTriggerLocked delegates. Ensure it has no issues with child classes.
  • Fix animator fade using invalid material.
  • Optimization: and fix ticking while deactivated.

Sound

  • New:
    • CSounder: function to set a float param safely.
    • Fade music on level and hold.
    • LD: Added feature flags for music, noise, and environ.
    • LD: Cross-fade music with environ.
    • LD: Handling feature flags for Environ, Music, Noises.
  • MusicManager Fade and SetIntensity are overrideable.
  • LD: Fix music intensity on restart. Environ start.

Utils

  • Optimized QuickMesh WPO evaluation.
  • Moved a couple of functions to utils.
  • Fixed fade material on low quality.

Significance

  • New: (Optionally) Handle occlusion.
  • New: Flag to use concurrent/sequential calculation.
  • New: Debug flag.
  • Fixed issue breaking animations.
1 Like

Devlog 16

New build is available!
New chapter is available!

This is the 1st pass of the 4rd chapter (#03). It’s quite stub.

Try it at : LifeDev by Nande!
Wishlist at: LifeDev on Steam

Sprint log:

Explanation and demo

------ Game

This was a challenging sprint for external reasons. So i got less than the previous sprint. Also most of the work was in improving, refactoring, cleaning, and some for the next chapter. So this chap is a bit more bare-bones than i’d have liked. But in truth i always like more.

General

  • New:
    • Save game is working! (This was a lot of work.) (Please note each release will probably break previous savegames)
    • A lot of preemptive work for next chapter. Not visible yet, sorry.
    • Added custom StoryManager.
  • Settings:
    • Basic key remapping. (Note this sucks atm so use carefully).
  • Optimization:
    • Re exported some optimized assets.
    • Attempt at disabling WPO on meshes.
    • Optimized data layers for objects “Outside” and Chap 01.
  • A ton of minor bugfixes, cleanups, and reorganization. Including plugins.
  • Added helper to set up character poses.

Art

  • New: Piano, plants x2, books, shelves, trashcan, small table.
  • New: a lot of art for the next chapter (not visible yet).
  • Improves to light.

Chapter 3

  • New: The whole chapter. New puzzle.
  • パラメーター adjustments.

Chapter 0, 1, and 2

  • Some tweaks on dialogs, puzzles, items, story flow.

------- Subsystems and plugins

Flashbacks

  • Improvements:
    • Fixed SetMax and SetMin default duration.

Dialogs

Story

  • Optimization:
    • Disable steps’ cameras while not active.
  • New:
    • flag to automatically modify the flashback progressively during dialog sequences.
    • Delegate for DataLayer changed.
  • Improvements:
    • Fading and step switching cycle. Cover blind for level switching (and others).
    • Changing steps, fading, and input enable/disable.
    • Data layer loading is not recursive now.

Inventory / Flags

  • Improved “Clear” function to Inventory and Flags.
  • Improved flags SetAll delegates.

Interactions

  • Improved delegate handling.
  • Improved rewarding, fade, and delegate cycle.
  • Added “IsReversed”. Default one depends on the StateNum.
  • Added “IsOneShot”. Adjusted “DisableWhileAnim”
  • Improved SetMobility, Locked.
  • Puzzle
    • Added ResetOnFail, OnReset, ResetTimer, and other reset utils.
    • Moved a bunch of code to the plugin.
    • Improvements. SetEnabled, DoneActor.

Sound

Utils

  • Added BP async callbacks.
  • Added IsEditor, IsDebug, CameraFade.
  • Improvements and fixes to GroupBox.

Significance

New build is available!
New chapter is available!

This is the 1st pass of the 5th chapter (#04). It’s quite stub.

Sprint log:

Explanation and demo

------ Game

This was a very challenging sprint for external and internal reasons. Since this is the “last” chapter of the story, i decided to do many things differently. That includes changing the scheduling method. So it took way more than usual, but i think it was worth it. So everything is quite bare-bones and possibly confusing. Enjoy!

Important note: The button for erasing a save slot does not ask for confirmation! (That’s on TO-DO)

Important note: Compared to version 0.4.0.4, version 0.4.0.8 has less testing and a couple considerable changes, so it’s deemed more likely to have issues. Yet 0.4.0.8 fixes a couple really important features, and adds some interesting features. So i highly recommend trying 0.4.0.8. But if you were to have issues with that, please try 0.4.0.4.

General

  • New:
    • Data layer for outside houses is now more granular.
    • Added lights and puzzles to the outro.
      • Saved flags to the save.
  • Implemented light flicker based on sound. And a somewhat elaborated sound system.
  • Settings:
    • Improved remapping options.
    • New: Implemented movement and look sensitivity!
    • New: Beta: Implemented different audio submixes (channels), with different volumes and attenuations.
      • This was plenty of work and is still a new feature. Issues might arise.
      • Reworked the attenuations, classes, levels.
  • Tweaks:
    • Interact drag.
    • Sound attenuation.
    • Improved logging. (It’s log log log log, It’s better than bad, it’s good!)
    • Improved movement input.
    • (Created and) Fixed some packaging issues.
    • Improved characters pose utilities, and base classes.
    • Added end of game count for dialogs shown.
  • Fixes:
    • datalayers, hitboxes, sounds, materials, plants, tv interact, cabinet, texts, chapter titles, map dependencies.
    • A bunch of issues related to load a chapter directly from save.
  • パラメーター adjustments.

Art

  • New: Pots, stove, boxes, fridge, egg, pencil, particles, plates, sponge, sink.
  • Optimized a couple of assets.
  • Fixed some missing shadows.
  • Redone char18.

Chapter 4

  • New: New chapter!
    • New room, new flow.
    • New music with new mixing system.

Chapter 0, 1, 2, and 3

  • Some tweaks on dialogs, items, story flow.
    • Improved some dialogs, books.

------- Subsystems and plugins

Flashbacks

  • LifeDev:
    • Improved FlashBack curve animation.
    • Added player movement change based on FlashBack.
  • Fixed issue with rapidly changing the target value.
  • Optimized the tick. Only ticking when needed.
  • Fixed possible crash.

Dialogs

  • Tweaks to styles.

Story

  • LifeDev:
    • Option to automatically increase the flashback based on the dialog. Towards a given target and by a given increment.
    • Improved dialog triggering flow.
    • Added a few options to show, hide, enable, and disable interacts on step.
    • Expanded ability to show/hide actors on step.
    • Added option to automatically handle the rain on a step.
    • Fixed issue of not destroying actors on step unload quickly.
    • Added the FlashBack Randomizer to the step and normalized the usage.
  • A few refactorings.
  • Replaced the camera preview mesh with a better mesh.
  • Fixed the teleport player feature to also set the camera.

Inventory / Flags

  • Reworked the flag functions.
  • Beta: Considerable refactor to how the flags work and the functions provided.

Interactions

  • LifeDev:
    • Added option to enable an interact as reward.
    • Added option to start a new step as reward.
  • Fix an issue with some fades.
  • Fixed issue with SetEnable not working on the constructor.
  • Fixed issue on reward actors.
  • Fixed double usage of items.
  • Dis/Enable interacts on fade.
  • Improved the flow for interactions, rewards, fades, etc.
  • Some refactors.
  • Improved system for interact hover detection. Now with two methods to choose from. As well as some parameters.

Sound

  • LifeFev:
    • Fixed environ playing during intro.
  • Fixed Noiser not activating on certain cases.

Utils

  • Moved GetAnyGameViewportClient here.
  • UI
    • Implemented message box.
    • Implemented base button.

Significance

  • Various fixes and cleanups.
  • Fix for android running on background thread.
  • Added TickWhenPaused

This is some work after 0.4.0 . Life got busy and stuff happened. And it made sense to publish a new DevLog with the bits and pieces i’ve collected. Before starting the new sprint.
There were tons of things going on outside this project. Which made it really hard to make progress (if any progress at all).
Anyway, i tried my best, and decided to at least push to keep momentum. That proved to be hard and even impossible at times.
But i’ve managed to do a bunch of … stuff, which led to a lot of interesting improvements and additions.
So, i’m making this devlog to start the build with from a more stable point.
And also because a lot of time has passed and i feel it’d be nice if i give an update.
The build published won’t have any new content, but it will have all these improvements.

------ Sprint log:

Explanation and demo

------ Game

Important note:
:slight_smile:

General

  • New:
    • PORTED TO 5.4!! :party:
      • This was less work than expected. But still required an effort.
    • Intro logo.
  • Tweaks:
    • Rework character collider size.
    • A lot of rework and refactors.
    • Improved the docs all over the place.
    • Constness, TObjectPtr, likely.
  • Fixes:
    • Settings confirmation dialog.
    • Various fixes on stuff that wasn’t working.
  • パラメーター adjustments.

Settings

  • Reworked the whole settings ui:
    • Ton of work.
    • Ported a bunch of things to cpp.
    • Created base widgets for features and feature groups.
  • Improved graphics settings.
  • Added AntiAlias, Dynamic Resolution, Frame rate, something else?
  • Added confirmation dialog on game load, and slot erase.
  • Audio audio volume preview.
  • Audio filter on pause.
  • Bunch of new feature toggles. (Ghost pool, flashback post process, speed post process, fov).
  • Fixed scroll on qualities.
  • Fixed control sensitivity to only apply on apply.
  • Improved screen resolution scale.
  • Fixed/improved loading and applying.

Art

  • New: Match box.
  • Optimized a couple of assets. Re-exported a bunch.
  • Fixed some outside meshes.
  • Removed unnecessary collisions.
  • Updated text colors.
  • More houses on the outside. Light blockers. And spaced lights.
  • Added speed post process.
  • Animation for the text.

Chapter 0, 1, 2, 3, and 4

  • CH04:
    • Fix char particles
    • Fixed pencil material
  • CH03: Fix lights
    • Added tape03, and batteries. Changed level flow.
    • Improved datalayer.

------- Subsystems and plugins

Flashbacks

  • LifeDev:
    • Animate camera FOV with Flashback.
    • Fixed lights state after fb.
    • Added ghost pool. And feature flag.
  • Added OnTo and OnEnd delegates.
  • LerpStable.

Dialogs

  • LifeDev:
    • Made text color white.
    • Added new dialog material.
      • With performance switch based on quality settings.
    • Fixed animation.

Story

Inventory / Flags

  • LifeDev:
    • Dialog shown count at end of game.
    • Time count at game end.
    • Added foxy flag.
    • Actually removing post processes on features.
    • Improvements on handling feature flags.

Interactions

  • LifeDev:
    • Fixed double enabling.
    • Improvements on fade.
    • Fixed lights starting “off”.
    • Added item use result. Added Error.
  • Made Interactions replicated. !!!
  • CAnimator:
    • Animation and subsystems using lerpStable.
    • Added CAnimatorData to animate primitive data. with HSV.
    • Added CAnimatorMPC. with HSV.
    • Added ::Flip ::Mirror ::PlayMirror ::UseLog.
    • AnimMat: Fixed removing duplicated animations. Added removing for data anims.
  • CAnimatorPID:
    • Improved workflow. Added OnGetVal. Improved docs.
  • Randomizer: Added ::AnimValue ::AnimRandReverse ::AnimMirror.
  • Not grabbable by default.

Sound

  • LifeFev:
    • Base widget for sound slider.

Utils

  • Added JNetUtils.
  • Materials:
    • OKLab Palette Material function
    • Palette with HSV
    • Added: Checker, Alternate, DitherQuant.
    • Added Kawase functions.
  • Pool:
    • Fixed unlikely crash using console commands
  • UI:
    • MsgBox:
      • Fixed MsgBox multiple accept.
      • Reworked style.
  • OctTree:
    • NEW: Oct tree class that handles lots of actors. Works in tandem with the pool.
    • ::Rebuild, ::Update, ::Add, ::Iterate, ::HasLoops, ::Contains, ::Overlaps and many more!
  • QuickMesh: Disable worldpositionoffsetwritesvelocity by default.

Significance

JSceneView

  • Added stub plugin for sceneview.

try it on itch-io Devlog 18 - 0.4.1.0 - Life happens - LifeDev by Nande!

wishlist on steam LifeDev on Steam

support on patreon https://www.patreon.com/posts/lifedev-devlog-0-114229596?utm_medium=clipboard_copy&utm_source=copyLink&utm_campaign=postshare_creator&utm_content=join_link

This is the 2nd pass of the chapter 03. It does not contain a lot of new content, but it does contain a good amount. Also, it contains a lot of improvement all around, including stability and performance. This was the 1st sprint after my forced pause, it was very challenging, but i’ve managed to keep progressing. So, here it is. Enjoy!

------ Sprint log:

Explanation and demo

------ Game

Important note:
If the game has problems, make sure to delete old config files.

General

New:
Tweaks:

  • Improved the docs all over the place.

  • Constness, TObjectPtr, Branch prediction hints (Un/Likely), cleanups.

  • Improved initialization and load flow.

  • Tweaked the interaction distance.
    Fixes:

  • Fixed the music not loading correctly.

  • Fixed Ghost pool being active during intro.

  • Fixed a few collisions (cabinet, wardrobe, shelf).

  • Fixed some foxification initialization.

  • no パラメーター adjustments.

Settings

NEW:

  • Added new default features (Nanite, ghostpool, speed, megalights (not yet working ;))

  • Added new speed post process.

  • Enable LifeDev.ini to be overrideable by the player.

  • Fixed loading the settings during the intro stage.

    • Fixes move sensitivity start at 0 on a rare case.

Art

NEW:

  • Pictures. Not yet in the level: matchbox, knife and fork.

  • Re-exported a bunch of assets for improved performance/space and visuals. (wardrobe, fluorescent, wordcubes, clouts, piano, key, tap)

    • Finally deleted a few deprecated materials.

Chapter 0, 1, 2, 3, and 4

CH04:

  • Tweaks to some interacts.
  • Fixed the matchbox. Added sounds.

CH03:

  • New: New music!
  • Added interacts (picture puzzle, picture, heater, socks, books…)
  • Improved dialogs.

------- Subsystems and plugins

Flashbacks

Dialogs

LifeDev:

  • Improved UI working. Moved some stuff to cpp.

Story

LifeDev:

  • Added functionality to activate and deactivate (separately) interactions on each step.
  • Fix step destroying asset during fadeout.
  • Added ability to query the current chapter.
    Plugin:
  • Fixed logs for dialogs not found.

Inventory / Flags

Plugin:

  • Fixed “hot” items not changing on the ui.

Interactions

LifeDev:

  • Improved collision settings.
  • Interact managing Hidden on fade.
  • Fix fade hidden when not using fade.
    Plugin:
  • Improved default auto activation flow. Added some logs to detect incorrect setup.
  • Puzzle: Improved auto activation.
  • Simplified code.
  • Better support for 0 seconds duration animation.

Sound

LifeDev:

  • NEW: Added a bunch of new sounds.
  • Adjusted a bunch of (loudness) volumes.
  • Fixed an issue with ambience sound volumes.
  • Fixed issue where environ would not fade-in after disabling the music feat., when the fb is >0.
  • Fixed attenuation on the environment.
  • Improved attenuation occlusion.

Utils

NEW:

  • Added ability to use lambdas on DelegateWrapper.

  • Added array shuffle.

  • Added static array length.

  • Added Plot4 material function.

  • JUtilsSys, JUtilsNet.

  • Improved ease of usage for CodeCurve.

  • Added new default to CQuickMesh to improve performance.

Significance

  • Improved header usage.
  • OnChange also notifies the old value.

Play it on itch.io LifeDev by Nande!
Wishlist on steam LifeDev on Steam
Support on patreon Jerónimo Barraco-Mármol | Creating a game to overcome CPTSD and self-improve | Patreon

This is the 2nd pass of the chapter 04. This is a HUGE milestone. Now all chapters contains 2 passes. This can be considered a release point. The Alpha version.
It contains some new content, and also quite a few improvements all around, and a TON of fixes.
This sprint was still very challenging, but i’ve managed to keep progressing. I’m actually quite happy with the amount of work that i’ve managed to achieve.
Thanks so much for everyone following the project and supporting me in one way or another!
My humble appreciation for you :slight_smile:
So i really hope you enjoy this !

------ Sprint log:

Explanation and demo

------ Game

Important note:
If the game has problems, make sure to delete old config files.

General

NEW:

  • Moved to 5.5!!!
  • Added FBUtility editor widget to speed up tests…
  • Added MegaLights support.

Tweaks:

  • Improved the docs all over the place.
  • Constness, TObjectPtr, Branch prediction hints (Un/Likely). And other cleanups docs and fixes.
  • Improved build pipeline for windows.

Fixes:

  • Fixed settings menu on the intro not working well.

  • Fixed crash on hot-reload (yes, hot-reload).

  • Ghost pool flag is saved.

  • no パラメーター adjustments.

Settings

NEW:

  • Added new features.
    • MegaLights are working now :wink:
    • Dialog auto skip, with configurable time.
    • Configurable default flashback duration.
    • Configurable Interact drag.
    • Experimental: Batch ticks & Concurrent tick. (see engine docs).
  • Added Dynamic resolution, FPS cap, AntiAlias mode.
  • Added version number.
  • Added Main Menu button.
  • Revamped ui. Works better.

FIX:

  • Issue with menu interfering with music and flashback on intro level.
  • Fixed issue with speed min/max + foxification.

Art

NEW:

  • Re-exported and adjusted a bunch of assets for improved performance/space and visuals. (bra, clout03, shirt01, clout01, bed, card, fake window, tv00, door00, walkman00, shirt01, ghost03, kitchen, rice box interact size, door collision).
    • Finally deleted a few more deprecated materials.
  • Added more stub assets to the level.

FIX:

  • Fixed a bunch of assets (bed).
  • Removed a bunch of unused assets (char18, char22, test char, snake).
  • Fix TV button’s outline.
  • Improved Flashback post process (a lot, medium rework).
  • Improved Ghosts.
  • Fixed a couple Vertex Interpolators broken from 5.4.
  • Fixed some DataLayer assignment on some assets.
  • itsraresight changed name to Ovlune.

Chapters

CH04:

  • Added card and modified the flow.
  • Added matchbox, knife, fork, pictures.
  • Fixed poem03 look at description. Added patch to allow multi-dialog item description.
  • Added matches and reworked pot interaction, also with stove.
  • Added and improved dialogs.

CH02:

  • Fixed card reward soft-lock.

------- Subsystems and plugins

Flashbacks

LifeDev:

  • Fixed flashback post process with outline.
  • Fix animation duration on multiple triggers.
  • Fix flashback auto increment on dialogs working better with current value.
  • Improved the GhostPool actor and ghost items.
    • Made some stuff on ghost item configurable through Ini files.
  • Experimented with objects only on flashback side.
    • Created a new material and functions.
    • Added FB_Depth, FB_Offset functions.

Dialogs

LifeDev:
Plugin:

  • Removed (unused) dialog type and emotion.

Story

LifeDev:

  • Fix step stopping RandFB at end.
  • Disabled input during camera blends.
  • Disable pointer text on blend.

Plugin:

  • Improved handling wait time (in tandem with camera blends).

Inventory / Flags

Plugin:

Interactions

LifeDev:

  • Improved how interactions can interact with other interactions. (And reworked some instances).
    • Added Interacts to fade out.
    • Added ability to select instances at runtime based on the class.
  • Fixed checking for rewards.
  • Fixed fade and active on failed item reward.

Plugin:

  • Added HoverStencilID property. Configurable by default via Ini file, and also per instance.
  • Updated default config ini.
  • Fixed crash with StateNum==0.
  • Removed network code.
  • Changed some pointers to WeakPointers.
  • Added instigator.

Sound

LifeDev:

  • Added TV noise. Removed unreal engine’s sound.
  • Updated musics’ MetaSound version.
  • Adjusted some sound levels.
  • Fixed certain sound effects not working on windows.

Utils

NEW:

  • Added CamFade function. (fade according to distance to the camera).
  • Added FakeWorldUV function. (something with screen coords to uv).
  • Added Float3ToUV function.
  • Added Equals function (to quickly test for equality).
  • Added CQuickMesh::SetUseCustomDepth.
  • Added GetPIEWorld and IsPIE.
  • Added Hidden material.
  • Removed some old materials. Now voxel material defaults to non-color correction.

Significance

NEW:

  • Added ability to calculate distance based on the origin component.

Links

Play it on itch.io LifeDev by Nande!
Wishlist on steam LifeDev on Steam
Support on patreon Jerónimo Barraco-Mármol | Creating a game to overcome CPTSD and self-improve | Patreon

CTA: I’m looking for people interested in playtesting the game in its current state.
If you’re interested please let me know :slight_smile: Thanks! :pray:

This is the time between time. This sprint was done while i was preparing other things.
I’ve been organizing a couple of playtests, and gathering feedback.
I’m also preparing to tackle the next cycle of the game (a whole horizontal slice that could last another year and a half). So i’d like to have a good idea of where to go.

------ Sprint log:

Explanation and demo

------ Announcement/Important

Playtest

I’m looking for people who would like to playtest the game and give me feedback.
This is truly important for me at this point, and your feedback will shape what the game will become. Please contact me if you’re willing and able.

PLUGINS!

I’ve decided to publish my plugins already.
They are free and open source.
The links are below, under the title of each one.

I haven’t put time on the documentation (since i had other things to do), but the code it’s well documented and easy to understand.
I plan on improving the documentation, as well as cleaning them up as i go.
Then i want to publish them on Fab, though that proved to require more time than what i have available at the moment.

My wish is that someone finds them useful.

------ Game

General

NEW:

  • Started working on a hint system. That works with the card 00.
    • Done a lot of work. It’s working, but barely used.
  • Added on-screen icon while autosaving (top-right).

Improve:

  • Improved and tweaked some dialogs.
  • Enabled PSO precache and other PSO optimizations (less chance to get a stutter).
  • Lots of cleanup. Removed lots of unused stuff.
  • Improved savegame stuff, including startup flow.

Known issue:

  • Timer might reset when reloading from a savestate.

  • no パラメーター adjustments.

Settings

NEW:

  • Added confirmation before going back to menu and quitting.
  • Added feature flags for:
    • Dialog text, Hint (Card Intention),
  • Added work in progress story “Backlog”. Temporarily hosted in the settings window.

Improve:

  • Disabled the “speed” post shader by default.
  • Improved the feature flag for using savegame.

Art

NEW:

  • Redo the toilet.
  • Cleaned up some materials.

FIX:

  • Hover post process after DOF. Changes how it looks. I like it more and works better with the other post processes.
  • Re-exported more assets.
  • A bunch of missing dynamic shadows.
  • Drawer meshes.
  • Windows’ opacity.

Chapters

All:

  • Improved dialogs.

CH04:

  • Matches flow rework.

CH01:

  • Rejig some drawers.

------- Subsystems and plugins

All

  • PUBLISHED FIRST VERSION!!!
  • Added lgpl-3 license (work in progress).
  • Overall cleanup and improvement. Removed old stuff, tobjectptr, branch prediction, constness, crash prevention.

Flashbacks

  • Reworked flashback post process.
  • Added/improved some flashback material functions.

Dialogs

Plugin:

  • Added OnAdd delegate.

Story

Inventory / Flags

LifeDev:

  • Fix on inventory item change.

Plugin:

  • Added field for sound on item’s usage. Also implemented in the game but haven’t added any sound :smiley:
  • Item.Description is now an array.
    • Allow the game to show multiple dialogs for very long descriptions.

Interactions (and animations)

LifeDev:

  • Puzzles: set the cubes to read the current letter on the hover.
  • Piano: show rotating error message on failure.
  • Fix stove’s hitbox.
  • Added a few basic features to support hints easily.

Plugin:

  • Wait for puzzle anims to finish before finishing the puzzle and trigger actions.
  • Fix ItemLogic world creation and BeginPlay.
  • Expose AInteract::HintTime to settings.
  • Big rework on Anim subsystem.
    • Now handles dynamic materials (float, vectors), custom primitive data (float, vector), material parameter collections (float, vectors), actor/component transform, and sound parameters (float) (e.g. metasound).
    • improved the code a lot.
    • improved delegates.
  • Added several features to support hints. (In a custom way).
  • Default config file.
  • Added UseSweep to AnimatorTrans.

Sounds

LifeDev:

  • Moved FB stuff out of generic AMusicMan into the game music man.

Utils

  • Lots of work on material functions. Add and improves.

NEW:

  • Added TWO new dither methods. DitherBayer and DitherHalfTone.
  • Added simple column sprite-sheet (flip book).
  • Added EqualsStencil.

Improves:

  • Improve material functions: Quantizer, QuantizeUV, ShiftRange, Fade, BoundsFade, DitherBayer, DitherHalfTone, Voxel*, others.
  • Cleaned up old voxel materials. Finally deleted old materials.
    • Not using color correction by default.

Significance

  • Avoid printing warning during cook.
  • Other minor improves.

Links

Play it on itch.io LifeDev by Nande!
Wishlist on steam LifeDev on Steam
Support on patreon Jerónimo Barraco-Mármol | Creating a game to overcome CPTSD and self-improve | Patreon
Support on liberapay https://liberapay.com/nande
Interact on the forums [SoloDev] "LifeDev" My dream game about overcoming CPTSD

This is the time between time. This sprint i focused on polish while i was doing other stuff, like waiting for feedback, and other real life things that required my attention. I tried to work a bit on marketing, narrative, and design, but without much progress (though trying is as success, and i did a lot of research). I still wanted to keep progressing with the game, and programming makes me happy, so i did some polish while things settled and i was a bit more in a place to continue with the regular sprints. So the new sprint (the one after this devlog) is the start of the 3rd cycle! Yay! Super amazing. So i hope you get excited about this devlog and the upcoming progress :slight_smile: As always thanks SO SO much for your help and support <3.

------ Sprint log:

Explanation and demo

------ Announcement/Important

Playtest

Play-tests are still open. If you want to help me with your feedback, please contact me :)

New plugin for emergent behavior

I've created a new plugin for emergent behavior gameplay! Read more down below on its section ("Behave").

Plugin now use the MIT license!

So, this is an important change.
I rather LGPL3, but i've decided to change to MIT.
The major reason i prefer LGPL is that it incites people to also release the modifications of the plugin back to the community (AFAIK). That's actually quite important to me. Unfortunately MIT does not enforce that.
The downside with LGPL is that i've had the misfortune to know people who did not understand much about licenses and only used MIT due to being simple to understand.
The only point that i find reasonable to not enforce LGPL though, is a clause that states that you either need to release a relinkable object file or use a dll. A clause that i do not care *at all*.
But since i know how unlikely is that someone will actually take the time to evaluate a license (with a lawyer maybe), an edited lgpl is not useful.
So in the hope that more people can use the plugins and feel at peace, i've decided to use a license that's easy to understand and permissive enough.
I'm sure the people that would like to contribute will do it regardless.

------ Game

General

NEW:

  • Implemented a few modes: New game plus, Kiosk (for expos), and Demo (demo build).
    • Just a stub at the moment.

Improve:

  • Some cleanups and general improves.
  • Improvements to the GhostPool management.
  • Improvements to handling the chapter flow, and improved handling the end of the story.
  • Fixed and improved subsystems and manager initialization flow. For great stability and determinism! Fixes some issues with feature flags.
  • Moved the outro stats to its own screen.
  • Improved packaging flow. Changed a few things to work with the Feature flag system, so it’s set automatically to the correct group (file saves, test data layer, etc.).

Known issue:

  • The boxers have some weird color on a side due to a bug in ue.

Settings

NEW:

  • Show current foxy value.
  • Ability to tweak foxy value on new game plus.
  • Ability to change blur amount.
  • Ability to change the ui scale!
  • Ability to invert Y coords on camera movement B)
  • Attempt to add a debug panel.
  • Added (experimental) flag to disable saving game during runtime.

Improve:

  • Reworked saving
    • Added a saving icon!
    • Improved loading and saving.
    • Improved saving handling.
    • Added experimental version tag to the save game.
    • Fixed saving settings (flags and feats) when changed on the intro menu.
    • Fixed loading settings and feats on game start.
    • Ensure saving new feature flags.

Art

NEW:

  • Light switches (1 base with 3 options).
  • (Shampoo/conditioner) Bottles. Might not be on the build.

Improve:

  • Generalized two ui buttons and replaced them on a bunch of places.
  • Improved the MsgBox.
  • Improved dialog aesthetic. Colors and such.
    • Fixed issue with pop-in animation and different line counts.
  • Basin position.
  • Improved the dithering effect and used it in a few more places. Now everything looks a bit more coherent and nicer.
  • Reworked inventory ui. Items’ Colors, number, logic.
  • Reworked shaders for hint (intention) and hover.
  • Improved a couple of cameras positions.

Chapters

All:

  • Reworked how the walkman/tape/batteries interact/flow (a big work).
  • Tweaked some dialogs.
  • Attempt to add precomputed lights (when disabling lumen). Also, HLODS.
  • Tweaked arrangement of some objects. (Fixes some issues).

CH04:
CH03:

  • Improved interaction with door.
  • Improved piano puzzle.
    CH02:
    CH01:
    CH00:
  • Experimented adding some messages on the flashback side.

------- Subsystems and plugins

All

  • Some plugins got updated.
  • Overall cleanup and improvement. Removed old stuff, tobjectptr, branch prediction, constness, crash prevention.
  • I’ve changed license to MIT!! (see explanation above)

Flashbacks

  • Fixed issue with FB values not changing at the correct speed between chapters.

Dialogs

New:

  • Major rework to the dialogs. More data driven. Easier to add tons of them without the need to code. (Inspired by the GDC talk for Firewatch and Steam’s L4D/Portal/Etc.)
    • This inspired the additional features for ‘dialog conditions’.
    • To support this i’ve also added a bunch of automatic (generic) dialog events, as well as flag tracking.
    • Still experimental, i’m confident i broke something, and i haven’t added many dialogs just yet. Still some technical features missing.

LifeDev:

  • “AutoDialogs”: Item.Look, Item.Fail (not usable, not ready, bad target, no target), Item.Use, Inter.Trigger, Inter.Look, Inter.Unlock, Inter.UseItem, Inter.State, Inter.Activate.
    • Most of these are also automatic flags. So now i can (and super easily) have logic on the dialog, puzzles, and interaction; to check for any of the above things. Via the shiny Eval subsystem and conditions (or directly via flags).
  • Finally removed all \n from items and dialogs. In favor of multiline text fields. Small performance gain.

Plugin:

  • Renamed sequences to groups.
  • Added a Condition field to dialogs and groups. To be evaluated by the new and shiny Eval subsystem.
  • Ditched changing the behavior depending on row names’ postfixes.
  • Added group types. Sequence, Random, Match (pick first matching condition), Pick Loop (pick one using a condition, loop around), Pick Clamp (like PickLoop but clamp instead).
  • Added Comment field to both dialogs and groups.
  • Some other fixes and improves.
  • Cleanup. Removed unused stuff.

Story

LifeDev:

  • Added FlagsFinish. Which allows to finish on certain flags.
  • Reworked some old steps to take advantage of new features, and also work better.
  • Generalized screen shakes for any step.
  • Other improves.

Plugin:

  • Protected against a really unlikely crash.

Inventory / Flags

LifeDev:

  • Added a bunch of “Auto flags”. For stuff happening in the game.
    • Many are the same from “Auto Dialogs”, but also: “Story.Step.Start.xxx”.

Interactions (and animations)

LifeDev:

  • Fixed issues with Puzzle finishing timings.
  • Added text for the current letter on word cube puzzle to help during flashbacks.
  • Added a new puzzle with books (not in the build yet).
  • Added a new puzzle with the shampoo bottle (not in the build yet).
  • Added RewardIntersTrigger, which points to other interacts to trigger as a result of the current interact trigger (yes, it makes sense to have it :))
  • Improved IsOneShot and DisableWhileAnim.
  • Added Interact ULockCondition. Unlocks the Interact using the new Eval subsystem. (Soon to be ported to the Interact Plugin).
  • Added overrideable method for Unlock. (To be ported as well).
  • Spot:
    • Added UseOrder to require items to be used in order.
    • Added UseStateInc to increment state on each usage.
  • Added light switches. This is mostly a test. only added to a couple of rooms.

Plugin:

  • Improved fading material handling.
  • Interact:
    • Fixes on Interact::DisableWhileAnim and !UseAnim.
    • Added HintCondition. Enables hint using the new Eval subsystem.
    • Added UseStateLoop to loop states when triggering past the last state.
    • Added SetActive to control whether it’s enabled to be interacted with.
    • Added SetState to control the current state. Also fixed an issue with the state count.
    • Moved Texts from Anim to base Interact.
    • Added OnHint.
  • A big rework on Puzzles to be Interacts.
    • removed DisableOnInter.
    • Added a Type Condition, that uses the new Eval subsystem to unlock/complete a puzzle.
    • Fixed sequence always locking.

Sounds

LifeDev:

  • Added a new song, that plays on the main menu when new game plus is available.
  • Fixed issue of music initialization on the main menu.
  • Fixed outro music.
  • Re-enable optimization (Auto manage attachment).
  • Fixed music playing twice.
  • Fixed music volume levels on intro/outro screens.

Utils

New:

  • Added JUtilsMath. Moved two functions there. Added a few more.
  • Added MathEval. A function that evaluates simple math expressions. Super useful.
  • Added ToggleDataLayers.
  • Important: Added Eval a subsystem for advanced math evaluations.
    • With many operators of my own.
    • Allows to use user defined variables.
    • Helps decouple the system and plugins.
    • Uses pure UE c++ code. No external dependency. Uses optimized UE classes. I can extend it in the future quite easily.
    • I’ve started experimenting with this to add conditions to the dialogs, interactions, and other things :slight_smile:

Improves:

  • Improvement to the MsgBox class.
    • Buttons creations. Hide on done.
  • Pool
    • Fixed issue with reducing pool on ItemMax < Current.
    • Ensure pool empty on destroy.

Significance

Behave

NEW:

  • New plugin for emergent behavior. It’s pretty nice. Aims to allow mechanics like the Sims, or Slime rancher, (Or FEAR/TombRaider/Others).
  • I’ve made this after watching the Slime rancher and sims talk. So it’s a bit inspired by it (thanks so much GDC for the talks). But the design is my own idea. Later on, i’ve found about GOAP and StateTrees and i’ve included some of it. It can behave as any of those.
  • This plugin is on a beta stage (experimental).
  • The architecture/design is pretty stub/prototype. And has not undergone much optimization.
  • I’m still testing whether it’s going to be useful for this project or not. It’s quite possible i won’t add it, since it detracts a bit from the current scope, i don’t really feel the emergent behavior mechanic fits with the feeling/idea i want to transmit, and could add a ton of extra work for no real value (real value would be a mechanic that reinforces the narrative and tells the story). In any case i’m pretty sure i’ll add some sort of emergent narrative in some way. The work with the Dialog/Flags/Eval systems already provides a great deal of power for emergent narrative.
  • I haven’t published it just yet. But i plan to do so sometime soon (when i get some free time, energy, and motivation). Even though it’s beta and the code quite not up to my standards, i will publish it anyway in case someone wants to try it out, or help with, or have fun, or learn.

In any case i think i might just move to use StateTrees by UE. (which i discovered after doing this plugin). I think it’s much more mature, and also a good skill to learn for my professional career. Though i’m certain that being able to create my own GOAP/StateTree improves my skills more (and require more skills) than knowing how to use a StateTree. So i think of this was a great exercise and learning experience for me. Though maybe i use it in another project just for fun, specially if i discover it’s more flexible or performant than state trees. One cool thing about this plugin is that it’s compatible with the Significance subsystem, planning happens on a background thread, And the tree is totally dynamic at runtime.

Slime rancher emergent storytelling.

See this one. It’s loosely based on the first person’s talk. And the comment about Layered GOAP.

Also look at state tree. it can do very similar stuff. and it’s much cooler.

good video in bt, with good ideas for decorators

non combat ai

Links

Play it on itch.io LifeDev by Nande!

Wishlist on steam LifeDev on Steam

Support on patreon Jerónimo Barraco-Mármol | Creating a game to overcome CPTSD and self-improve | Patreon

Support on liberapay https://liberapay.com/nande

Interact on the forums [SoloDev] "LifeDev" My dream game about overcoming CPTSD

screenshots:





New Ko-Fi page if you want to support the development. https://ko-fi.com/jerobarraco

Patreon also has one time donations

New trailer !