A week of squinting eyes and scratching my head, followed by two days of focused work later, dynamic shadows! #gamedev #enginedev #cpp #vulkan #handmade

a very early preview of how the rotation editor might look (while nothing is hovered)

worried about vertical autosizing of the curves and keeping everything in the frame while keeping it still for editing (might need some state to freeze things while they're being edited)

the discontinuous curves are somewhat trippy but also purely visual since the curves as currently defined can't support discontinuities (rapid changes need two points next to each other)

#enginedev

so as expected, the curve view interface isn't really working for editing the rotation curves

and as expected, the issue is the adding of differences

moving a single point doesn't mean what one would expect

worse still, moving has this weird duality - the results are different depending on which segment of the curve is considered to be edited

so it's impossible to preserve the invariant during/after that operation

now contemplating making a fully custom insanity of a UI

#enginedev

created a first test animation

need to figure out a much better test since this is very axis-aligned and too fast overall

the fancy interpolation ends up being unused for rotation, basic slerps ended up being OK at this speed

also probably could use a time scaling parameter

#gamedev #enginedev #animation

working on the animation editor, only made vec3 curves minimally usable so far

I wish it was easier to line up the velocities of adjacent points when the velocities are small

#gamedev #enginedev

- created the [animated mesh set] component
- fixed the data transfer bugs
- added an [initial pose] feature to the [animated mesh set] component

...one thing led to another...

- created the leaning toilet 🚽

#gamedev #enginedev #art

(re-)added the ability to edit hit volumes

the previous skeleton metadata editor was capable of this so it's largely a matter of copying the code

but now there's a possibility to add more than one shape per bone, which could be useful in cases where one shape isn't quite enough

#gamedev #enginedev

the whiteboard case also showed in what ways calculated, non-destructively edited weights are superior to painting - subdividing the model wouldn't result in needing to repaint the subdivided bits

another interesting side effect of in-engine skinning is that I could combine any mesh generator with skinning at some point, making something animated entirely inside the engine

not that the existing capabilities help with character design but it's something to consider

#gamedev #enginedev

got as far as getting a skeleton editor to a point where it's minimally usable, and starting work on a mesh skin set editor

figuring out the data structures and data flows took a long time but I think that might be largely done at this point

while testing the mesh skin set editor, noticed that the model I was initially testing it with (a movable whiteboard) wasn't sufficiently subdivided to make it bend, so I had to change it

#gamedev #enginedev

Reaching out, maybe someone has had a similar experience. Casey Muratori once suggested to avoid associating methods with data. It feels counterintuitive, since functions process data/state, so why not bundle them logically with said data/state? What does the data oriented design methodology suggest to do instead? Do you know any good materials that go into the specifics of a mental model in comparison to OOP? #programming #gamedev #enginedev