home.social

#enginedev — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #enginedev, aggregated by home.social.

fetched live
  1. mastodon.gamedev.place/@archo/

    so with this it seems I've reached feature parity in terms of engine features

    though not design/editor features compared to e.g. blender - the animation editor doesn't support IK (which would also require rotation sampling and subsequent curve optimization)

    idk if I'll bother considering that I want my touchpoint anims to be predominantly (if not completely) procedural anyway for level design adaptability

    #gamedev #enginedev #animation

  2. The GUI "API" is fine enough I can do *this*!

    The choppy framerate is Windows's another screen capture feature that doesn't work as well as the Game DVR, I assure you it's smooth as butter.

    #enginedev #gamedev

  3. first human animation made using the animation editor

    there are still bugs but I finally figured out what rotation format should be used

    also figuring out design principles that work with the QLIF splines, particularly in terms of rotation (due to the weird broken up curves)

    namely, keypoints should be at locations where either velocity or acceleration is ~0, then plausible tangents should be chosen, then transition points are added to cover discontinuities

    #gamedev #enginedev #animation

  4. the more I think about materials, the more it feels like they shouldn't be either a one-per-file thing (like unity/unreal) or an embedded object thing (like godot)

    instead there should be a big database-like pile/table (or several - one per package) where it's cheap to do all sorts of operations on them without having to do a complex file system scan

    tho I haven't figured out the whole thing yet

    #gamedev #enginedev

  5. implemented autogenerated materials but ran into an issue

    the materials also store the aspect ratio used for generating UVs

    when they were generated at asset processing time, this aspect ratio was transferred during the generation step

    now the generated materials are being set up prior to the textures being loaded

    sometimes material data is even loaded without the textures (though usually the textures are still loaded by something else)

    #gamedev #enginedev

  6. thinking about trying to use single-texture autogenerated materials in the engine

    not that materials are some huge bottleneck to design but they still seem to get in the way quite a lot

    and when several different variations are needed depending on the circumstances (at least opaque + alpha cutout + decal), pregenerating all of them no longer seems like a reasonable option

    #gamedev #enginedev

  7. created a terrain test

    the result mostly seems fine, except for the weird overlap in the middle

    turned out that the convex polygon check wasn't detecting 180 degree turns

    #gamedev #enginedev

  8. moved to triangle check (#verts <= 3) for determining the validity of the initially generated areas as the old angle check was failing

    this required fixing issues with link generation so that it's much closer to 100% correct
    - issue 1: forgot to check vertical overlap in parallel-intersect cases
    - issue 2: midpoint checks too strict (this one might return later, should rethink it)

    also fixed my flood fill code to find all connected areas, as it was generating duplicates

    #gamedev #enginedev

  9. added a 135 degree corner link merge
    (first image = new/after)
    it results in links being created that are rotated in 22.5 degree increments
    it also apparently results in a more simple navmesh

    #gamedev #enginedev

  10. finally the spiral platform navmesh builds correctly

    had a bug with some link intersections not being detected

    also had a bug with the traversable link check not checking correctly whether the reached endpoint is on the same level (elevation) as the desired endpoint

    #gamedev #enginedev

  11. was using only a slope angle check for adjacency data, which was favoring diagonals
    now also added a step height check
    not entirely sure what's the best approach here but this works for now; can revisit later

    #gamedev #enginedev

  12. created a spiral platform test
    it rasterizes and detects features seemingly correctly but the edge connecting step is currently broken here for some reason

    #gamedev #enginedev

  13. started testing overlapping platforms
    untraversable links were being created

    added a traversal to check if the link is walkable (cse.yorku.ca/~amana/research/g but with known adjacent tile selection instead of stepX/stepY)

    #gamedev #enginedev

  14. reenabled area finding code (link walking on either side) and joined areas across redundant links

    #gamedev #enginedev

  15. added a type to each link
    adding more connections between points
    the result is similar to triangulation

    #gamedev #enginedev

  16. filtering of inner links
    merging of straight link chains (ported some old code)

    #gamedev #enginedev

  17. looking for elevation corners
    (H/V only for now, could do diagonal later)

    #gamedev #enginedev

  18. rebuilding nav mesh building code, this time with full 3D support

    this is step 1 (raycast + space checks -> multilevel heightmap)

    #gamedev #enginedev

  19. so this is where the "spline" part of the "spline mesh" finally appears

    every edge can be turned into a cubic spline

    there's still a bunch of things that don't work yet (e.g. tangent visualization and editing, spline-aware edge picking and face previews)

    but at least the intermediate positions are being generated, the spline edges are rendered correctly and they also appear in the exported polygons

    #gamedev #enginedev #graphics

  20. making some progress with rig processing

    - added conditional tagging
    for now there's only face count for vertices/edges and part count for faces, so it's possible to find outlines and inner vertices/edges

    - added conversion to polygons/polylines
    from there it's possible to make fill/edge meshes etc. from that

    could in theory add materials and other metadata to the rig directly but idk, will try to make upgrades as I proceed and see what's needed/helpful

    #gamedev #enginedev #graphics

  21. created some extrusion code

    the basic mesh transform (outline finding + vertex/edge duplication + face-vertex/face-edge redistribution + bridge faces) turned out much easier than expected

    but making the full thing would probably require upgrading the transform gizmo

    just need to do missing editing features (element tags, grid, selection modes) and element extraction and it'll be ~enough for editing procedural modeling rigs

    #gamedev #enginedev #graphics

  22. finally developed enough features that I could finish skinning the test character at a base level (without finger or face bones)

    also ended up not needing undo so far 🤷

    the weird thing about developing a reasonably efficient tool is that suddenly the work ends up taking like a few hours total and you wonder if spending several weeks on the tool was worth the effort

    hopefully I'll be able to cash in at scale (after skinning a bunch of characters, together with iterations)

    #gamedev #enginedev

  23. noticed a really weird issue with dual quaternion skinning

    at the end of the day, all skinning is a nasty approximation

    (though in this case linear blending looks a lot less weird, even if still unnaturally stretchy)

    I wish there was a better option that didn't involve lots of work (cloth simulation + overbuilding the character for it)

    #gamedev #enginedev #graphics

  24. the slowest part in all this seems to be the process of figuring out what is it exactly that I want to make:

    - dogfooding
    - noticing problems
    - coming up with several solutions
    - coming up with their costs and effectiveness without actually making them
    - picking the optimal combination

    there's a lot of fancy 3D view selection/editing things that I'd like to make but they seem to cost far more and thus I could only justify them if I have seen somewhere that they worked best

    #gamedev #enginedev

  25. did a lot of tiny things but also

    1️⃣ removed *shared* bone weight shapes (ones used for all skins)

    reason: it would be more difficult to fit most of them to 2+ skins than I initially thought

    2️⃣ made weight shape transforms absolute (used to be bone-relative)

    reason: allows moving the bone pivot without moving the shapes

    reason for both: now all skins are self-sufficient and could be moved into separate files to prevent shared changes from rebuilding all associated files

    #gamedev #enginedev

  26. back to working on the mesh skin set editor - a second pass to support more cases

    - made the test view functional (as in, finally allow pose changing)
    - added the missing weight shape visualizations

    yet to figure out how to design the weight shapes for optimal weights (spine seems to be especially complicated... but I have an idea)

    self-intersecting meshes could be a challenge but flood fill might solve it (the test model has teeth, can test later)

    #gamedev #enginedev

  27. been working on a "spline mesh" for some time (a tiny bit at a time) and finally have something to show

    the data structure has been seemingly figured out now and there are a few basic actions available

    it's not yet enough to design anything but could be eventually

    the goal is to build control rigs for things like this and more: mastodon.gamedev.place/@archo/

    eventually it should be possible to turn edges into splines and extract faces as polygons

    #gamedev #enginedev #graphics