SO: Why is your player just a capsule?
Me: It's a first person game, so you never actually see the player.
SO: But why not make it like a clown face or something?
Me: I don't know anything about texture mapping.
SO: So?
...
Ship it
@superspective-dev
Developer for Superspective, a mind-bending first person abstract puzzle game set in a seamless impossible world. Wishlist on Steam! https://store.steampowered.com/app/2239490/Superspective/
SO: Why is your player just a capsule?
Me: It's a first person game, so you never actually see the player.
SO: But why not make it like a clown face or something?
Me: I don't know anything about texture mapping.
SO: So?
...
Ship it
The Art of Reflection is now available on Steam! Thank you everyone so much for all the support throughout development, I'm so excited everyone can finally get their hands on the game. Happy puzzling ๐ช store.steampowered.com/app/2290770/...
๐ฆ๐๐ฝ๐ฒ๐ฟ๐๐ฝ๐ฒ๐ฐ๐๐ถ๐๐ฒ ๐ฌ.๐ฏ.๐ฌ ๐ถ๐ ๐ฎ๐๐ฎ๐ถ๐น๐ฎ๐ฏ๐น๐ฒ ๐ณ๐ผ๐ฟ ๐ฑ๐ผ๐๐ป๐น๐ผ๐ฎ๐ฑ ๐ผ๐ป ๐ฆ๐๐ฒ๐ฎ๐บ!
Version 0.3.0:
- New tutorial area before A Fork in the Road
- Small existing level tweaks and bugfixes
- Backend systems improvements/rewrites
What's next:
- Followup from playtesters feedback
- More polish/bugfixes
- More new content
Iโve just released a substantial video essay:
โHow Music Mirrors Game Design in Taiji, Trifoil, Braid, Patrickโs Parabox & Other Gamesโ
LINK IN THE REPLIES!
vital code and fix the bug.
Hope you enjoyed this short novel about a programming shortcut coming back to bite me in the butt. This has been one of the more exhausting bugs to track down and fix that I've seen in my time working on Superspective!
important initialization code would have NEVER run on the object, which led to buggy behavior when a save file was loaded and the object had to reset its state. Whenever I started investigating this issue, one of the first steps I would do is open the script in the inspector, which would run the (9)
the inspector (side window). Most of the time, when you create an object and add a script to it, you will have opened this menu immediately after creating it. However, in some cases, I would be duplicating scripted objects without ever opening them in the inspector. In only this case, the very (8)
I looked up the initialization code that I had determined was somehow responsible for the bug, and found that for some reason, past me had thought it would be a good idea to have this run in a hook for OnInspectorGUI. If you don't know Unity, this means basically any time the object is open in (7)
to see the bug in action and observe it closely, it just doesn't happen? This was Schrรถdinger's bug. And that's when the realization hit me. It truly WAS Schrรถdinger's bug, this was a consistent pattern that EVERY time I tried to investigate this bug, it would stop happening. This was the clue! (6)
Until I opened up the trigger zone that was bugging out in the editor, turned on some debug flags to include some vital logging in the console, and tried again. No bug! The trigger zone was working correctly. What the fuck is going on? Am I just horribly unlucky that every time I am in position (5)
game, followed the steps in the video EXACTLY and sure enough, the bug happened: the gravity rotate zone trigger wasn't activating! I tried it again, and it happened again. Once more for good measure, and the bug happened a third time. Great, I finally have a consistent repro for this! (4)
trying to fix. Every time I spent hours looking into it and coming up unable to make the bug happen again. So frustrating! Well thanks to one particular playtester (@Dubious Duckling) getting me a video of minimal repro steps, I was able to once again try investigating the issue. I booted up the (3)
Every time I tried to investigate the issue, I could often reproduce it once or twice, but as soon as I tried to investigate further the bug would seemingly stop occurring. I figured maybe it was a race condition bug or something leading to transiently reproducible behavior, which I was dreading (2)
Finally fixed a very annoying bug that has been plaguing me for months!
Here's the story:
Playtesters have been reporting that loading a save file sometimes leads to buggy behavior, like objects disappearing or trigger zones not activating. (1)
This is much, much easier to reason about and keep track of my streaming level layout than what I had before, which was just a list of levels in my LevelManager:
Working on some tooling to help visualize the world graph in Superspective, here's my progress! I have dynamically-sized level nodes, with Rect edge-to-edge directional (or bidirectional) arrows indicating the levels that should be loaded from each active scene.
Superspective 0.2.2 is now live! This patch is largely stability-focused, with a complete rewrite of some of the fundamental physics of the game to more consistently handle the non-Euclidean geometry in Superspective. There's a new secret to find as well...
// I'm not confident about this logic at all, but it seems to work for the current use case
Investigating a bug with portals in Superspective, stepping through the code in my debugger, and it leads me to a bit of code I wrote -- with this comment written above it.
Welp. I guess that tracks lol
๐กI think I finally fixed the "portal wiggling" bug that existed in Superspective, where players could rapidly cross over the portal threshold and back again to sneak onto the backsides of portals. This would often leave them either stuck behind the portal, or falling out of the world. No more!
Working on some fake volumetric light effects for Superspective, what do you think?
Here's a peak at the new level Locus Maximus, available to be explored now on Steam!
store.steampowered.com/app/2239490/...
๐ฆ๐๐ฝ๐ฒ๐ฟ๐๐ฝ๐ฒ๐ฐ๐๐ถ๐๐ฒ ๐ฌ.๐ฎ.๐ฌ ๐ถ๐ ๐ฎ๐๐ฎ๐ถ๐น๐ฎ๐ฏ๐น๐ฒ ๐ณ๐ผ๐ฟ ๐ฑ๐ผ๐๐ป๐น๐ผ๐ฎ๐ฑ ๐ผ๐ป ๐ฆ๐๐ฒ๐ฎ๐บ!
Version 0.2.0:
- New level Locus Maximus added
- Invert Y-axis controls added
- Various performance improvements
- Too many bugfixes to list, some visual and some related to save files
What's next:
- Perf improvements followup
- More bugfixes
Made some improvements to the glow around interactable objects. New version handles corners of objects much better and is a bit thicker and easier to see in general. This was something minor that's bothered me for a bit but never felt important enough to prioritize, I'm glad I finally did!
Superspective Steam store page is live! Please wishlist it if you're interested, and share it with anyone you think may be interested as well. Thank you!!
store.steampowered.com/app/2239490/...
Proud to show off the new official art + logo for Superspective! Thanks to the wonderful artists at Red Potion Studios for helping give a professional touch to the game๐
redpotionstudios.net#team
Just uploaded Superspective Playtest 0.0.10 to the itch page! Mostly contains bugfixes for some really bad crashes and softlocks that many people were experiencing, and a link to the Discord on the menu.
Someone made a video on my game! And encountered lots of bugs lol
www.youtube.com/watch?v=ERx4...
Still working out the kinks in the new system, but I eagerly look forward to the days where I don't have to write so much manual code to support my save system. Also should hopefully lead to a lot less silly save/load bugs caused by me changing a script and forgetting to update how it's saved.
The only time I need to modify my scripts to accommodate being saved is by specifying explicit save/load instructions (such as calling a function), and marking fields in classes as [DoNotSave] and a couple other handy attributes to modify how they are saved.
Here's what it looks like afterwards:
Instead, fields on scripts which represent saveable state are now introspected by reflection and automatically serialized/deserialized from runtime types <-> serialized types without any manual boilerplate code.