Eldritch 2 is coming to Steam! Please wishlist it here.
Short update today; I’m still in the infinite abyss of building dungeon rooms. There are so many dungeon rooms, and the procedurally generated levels are so large, it was becoming difficult for me to find any given room in a level. And that was becoming a problem when I’m in the middle of building a room and need to evaluate it in-game.
There are a few things I could’ve done to solve this—maybe make a test level that is guaranteed to spawn the desired room, or tweak the level generation to force the use of that room wherever it could fit—but instead I did the silly, easy thing, and just made the engine draw a big box around the desired room so I can quickly find it and zoom over there.
Eldritch 2 is coming to Steam! Please wishlist it here.
Instead of building out more dungeon rooms, I spent most of last weekend working on a couple of fun and interesting side quests: improved bug reporting, and glass rendering.
I’ve had a simple bug reporter system built into the game for a little while; it can be accessed from the pause menu, and simply opens a link to a Google Forms page for the user to write up an issue. I thought it would be more useful if the game could automatically provide some information about where the player was, and I realized I could pass that as an parameter in the URL to pre-fill a special field in the form. Then I realized I could also use an exception handler to open this form if the game crashed, and populate that field with the exception code and the app’s callstack.
While trying to intentionally cause crashes to test this, I found a few cases where a Windows “fail fast exception” would bypass exception handlers. (For example, trying to fread from a null FILE* will cause the program to terminate immediately.) That makes this automatic bug reporter somewhat less useful than it could be, but hopefully I can identify those cases if they ever occur for real, and throw exceptions earlier.
My other side quest last weekend is less useful for Eldritch 2, but it’s something that I’ve wanted to do for a while: glass rendering. Back in 2015 when I rewrote my engine to use deferred lighting, I implemented transparent materials with a stippled “screen-door” effect. I only had a few use cases and it was Good Enough for the time.
Stippled “screen-door” transparency on window panes in Slayer Shock (2016).
Since then, I’ve largely avoided making games that needed transparent materials, and Eldritch 2 is no exception. But I keep hoping I might make a NEON STRUCT remake or sequel someday, and I’d really need better transparency support for its concrete-and-glass world. So I took most of last weekend and finally made an attempt.
I added a forward rendering pass (after G-buffer-based lighting) to render glass materials, sorted from far to near, using a very simplified and slightly non-physical lighting model. All relevant lights for each glass mesh are approximated into a single directional light. And because my primary use case was NEON STRUCT-style reflective windows, I artificially increased the F0 reflectance term to 0.5 (halfway between dielectric and metallic) and used a very small exponent on the Fresnel term.
I also sample the environment cubemap three times: once for ordinary reflections, then again reflecting the reverse view angle for a faked refraction effect, and finally in the view direction to add a bit more blurred transmission lighting. There’s no physical basis for that, but it was important to me to get as much light in the glass as possible, to make windows visible from almost any angle. It’s all a bit of a hack, but it works well enough for my purposes.
I usually try to keep my day job separate from this blog, but I’ll make an exception whenever there is big news.
The demo for The Killing Stone—the folk horror card strategy game that I’ve been helping to build at Question—is available now in Steam Next Fest!
It’s a pretty substantial demo, and shows off a lot of what makes this game so good: excellent writing and voice acting (in your choice of modern English or period-appropriate 17th century English), beautiful art and animation, and fiendishly challenging strategy gameplay. Please check it out, and wishlist the game and leave a review if you enjoy it!
Eldritch 2 is coming to Steam! Please wishlist it here.
After taking some time off last weekend to recover from a bit of real life-related burnout, I’m back to work on the remaining Innsmouth dungeon room set. And I’m having fun doing it!
I’m focusing on cave rooms today. I’d worried those might be the dullest rooms to build, so I didn’t want to leave them for last. But they’re actually a nice change of pace to work on (and to play): very open spaces with angular lines, in contrast to the more claustrophobic and bulky designs of the temple rooms.
I wrote earlier this year about how I was giving each dungeon room a proper name (internally), to help me recall and find them more easily. As I mentioned in that post, these names are also useful as room concepts, helping me to avoid the blank page problem when opening the editor to build the next room. But concepting 20 unique and interesting rooms for a given theme is its own blank page problem, and is part of why I’d struggled to get started for the past few weeks. In any case, I’ve finally got a list of 20 cave room concepts, and actually building them feels like the easy part now.
Eldritch 2 is coming to Steam! Please wishlist it here.
Oh no, it’s already October?! I’m mostly taking today off after another intense week at my real job. Planning to get back to work tomorrow on the docks and caves dungeon rooms for Innsmouth.
Eldritch 2 is coming to Steam! Please wishlist it here.
Having solved some problems around the macro structure of the game last weekend, I’m back to work making dungeon rooms, with a clearer understanding of how certain critical parts of the levels will fit together.
I’m running behind schedule for my goal of finishing the Innsmouth world by Halloween. I expect I can get all the dungeon rooms done by then, but I’d also hoped to finish a lot of placeholder content, and that’s likely to slip past October.