June 17, 2025
A loooot of visual tweaks for INTERMISSION. Like the finale chase, both sections are in the same scene, so rendering setttings / fog / camera / compositing / audio has to be carefully tweaks to make the two areas have their own distinctive atmosphere.
Experimented with lightmapping, but raytraced lightmap cant really replicate the stylized environment I wanted, esp. for the house of leaves section.
Btw, the floor is a long planar reflector! Used the addon version of my planar reflecto since the ACEDIA version currently in project is somewhat outdated.
Going to put this scene in the game. Probably not all of it, going to section off the rest with some props or something.
Yes both the building and the house of leaves reference is going in
Too bad I didn't plan to include this from the start, gonna lose 8 hours of dev time ;-;
But anyways this will look great in engine after planar reflections are added
Added mouse and stick look sensitivity settings, which were much requested! ;)
one of the lots of qol features and tweaks thats going to be part of 1.2!
qol things will be considered the unreleased 1.1 version of acedia, and the new content will be technically 1.2. But since work for both parts are ongoing together, so I'm just going to skip 1.1 and release all the new stuff under the 1.2 update.
Devlog's mostly to reset whatever funky thing was happening with time tracking with the last devlog.
Mostly worked on promotion materials (not tracked ;o;) Commited some of my filming setup and refined some readmes and itchio pages. Finished some EARLY work of extracting stuff from my other unreleased project to prepare it for transferring it to ACEDIA. Tbh I started the preparations a loong time ago, but I was never sure abt whether i should link my projects together. But maybe it would be kinda cool, maybe it can work as some sort of teaser? Yes the previous is a house of leaves reference :3
Extracted the assets from ACEDIA and turned it into a standalone plugin! Added readmes, tooltips and everything.
This is the first time making a godot plugin so hope everything's working haha
I didn't expect to take this long to make this plugin standalone so didn't make any devlogs haha ;-;
Currently waiting for verification by Godot~!
A simple-to-use and performant 3D planar reflector plugin for Godot that provides crystal-clear reflections in complex environments. (Includes a video demo in the asset library. For an interactive demo, create an empty Godot project, install the plugin from the asset library, then check the addons/smart_planar_reflector/DEMO folder!)
A suite of FOSS apps that allow anyone to easily 3d scan and texture building interiors for projects of any size, using just a Meta Quest’s 3(s).
ACEDIA is published!
All supporting pages are finished, and the github repo is now live!
Spent a lot of time wrestling with Git LFS, but hackatime doesn't track that ¯_(ツ)_/¯
Check it out!
https://kip.gay/acedia
Finished music production! Unfortunately not tracked since its done on iOS :(
Full soundtrack is published noww
YouTube: https://youtube.com/playlist?list=PLerme6EePpdE4NGK1pCkN5AA0sxJJn0jp&si=B2sjhdxzUvClAwYf
Soundcloud: https://soundcloud.com/kip_music/sets/acedia-original-soundtrack
Also here's one of the songs, [Runner].
Working on music production!
Originally wanted to learn ableton for this project, but if I did that this project is probably gonna get delayed for another month again ;-;
So I'm using garageband instead haha
Since nothing's finished yet, here's the album art I made when I was borrrrrred
The finale animation is done!
The finale scene is scrapped, it's going together with this scene instead.
Very happy with the camera work in this shot.
There's a lot of juggling between different animation handlers, had to wrangle controls away from the player and put them back multiple times haha
Current testing doesn't show any situations where the animation chain will get decoupled and result in the bag sibling getting stuck in place (i hope not)
All the peeps are moved by hand cause I'm a idiot and did all the animation manually in Godot instead of Blender ;-;
The chase is complete!
Still some sound work needs to be done, but I'll put that off until I made the music for this project.
All that's left is to take control away from the player and show them the finale cutscene (I may make this interactive, not sure yet)
Here's the full(ish) chase!
(Invisible upload requirements requires me to compress the video a lot ;-; I'll probably make a trailer when everything's done)
Architecture for the finale chase is now complete.
All the peeps and level geometry has been placed, all now to do is to finish the animations.
On schedule for a june release (at lease on schedule for now haha ;-;)
There's around 1000 peeps, which has quite a huge performance hit but occlusion culling + a modern pc should be able to handle it ;-;
Finished building the finale chase cityscape mesh!
The camera's going to zoom out from the player into a top-down view of the whole city.
This is probably the MOST expensive scene in the project, with 400 buildings and hundreds of people (not sure yet if people should be placed via Blender or Godot.)
Hopefully occlusion culling will handle most of this, however it will be hell to enable culling for all these meshes.
With the office chase done, the entire chase sequence is now complete.
The player can actually outrun the bag sibling sometimes, so a few peeps has to be artificially moved around to block the player when they get too close. It's annoying, but I can't figure out a better solution than slowing the player down, which itself would be annoying and weird.
Finished the train chase sequence. It's basically the same as the hallway chase so here's how the mirror works instead.
For planar reflections I added a camera that reflects the player camera's pose. The rendered image is mapped onto the reflector's surface using screenspace UVs.
I'm using perspective projection instead of frustum projection, mainly because perspective has optimal pixel density (1:1 to the screen opposed to the inverse square law), and there's no issues with anti-aliasing.
However perspective has one big issue which is near plane culling. If an object is behind the mirror in just the right way, it could obstruct the reflector camera. Since Godot doesn't support custom near plane matrix yet, I made a system where the reflector tries to find the optimal near plane based on its pose.
The system (dynamic near plane) tries to find the closest near plane to the reflection surface where none of the near plane exceeds the surface. However planes outside the reflector or camera frustum boundary is allowed to exceed the plane.
Conviniently, this also creates a quite optimal camera culling system for the reflectors, so it can be immediately paused when out of view. Unfortunately occlusion culling is nontrivial as that's done on the GPU, so I used manually placed activation areas to mimic occlusion culling for now.
The performance isn't perfect, and there's situations where it's impossible to get a perfect near plane, but combined with render layers it's okay for this project.
Finished the chase intro animation. The bag sibling's walk animation is procedurally driven by their velocity, this makes authoring animations way much easier. Some additional tweaks was done to the player controller so that changing the fov and tracking wouldn't freak out the input handler.
Also tweaked the controller support so that there are now haptics for each footstep. Frustratingly, Godot doesn't support dualsense haptics yet, so a dualshock has to be emulated using something like DualsenseY first.
Working on the finale chase scene. You can have three planar reflectors in view simultaneously in this part so the performance hit is pretty substantial (oh yeah gotta make the planar reflection deep dive soon(TM))
Godot's occlusion system is pretty seamless, though. Keeps the drawcalls down at least.
First devlog! gonna post more backlogged stuff later.
Office scene, one of the earliest (and most unoptimized) scenes finished. Really pleased with the ambience audio I did for the hallway.
Reflections are from a custom planar reflection script, I need to document how it worked soon cause its soo janky
You are not alone. ACEDIA is a game about being queer. A 3D first-person immersive game made in Godot, with a focus on atmospheric environments and soundscapes. The project is fully open-sourced and in the creative commons. All original assets and code are personally handcrafted for this project, including a custom dynamic near perspective-based planar reflection rendering system for Godot. GAME IS OUT NOW!
An unofficial Android client app for the Reykunyu Na'vi dictionary, with Material design
An Android app that helps you manage your OPNSense firewall's WireGuard VPN.
This was widely regarded as a great move by everyone.