#Rosy

1 messages · Page 9 of 1

cloud rivet
#

I use spdna’s library, it looks at the dds and uses the correct format

#

I don’t interfere with it

#

I see that chosen format in renderdoc

#

It looks correct

brisk chasm
#

might be worth checking vulkan-samples for compressed textures?

cloud rivet
#

Yes

#

A reference would be great

brisk chasm
#

mayhaps theres a small man who dun goofed up somewhere inside the code

cloud rivet
#

Specifically a dds compressed format in vulkan

#

Nah i am sure i have a bug

#

I tried other loaders

brisk chasm
#

compressedisms are blocky formats, maybe some shit isnt aligned properly or doesnt come in 4x4 or whatever that block format is/was

cloud rivet
#

Yes that makes sense

#

Alignment hrmm

brisk chasm
#

i touched it only once in opengl a decade ago briefly

cloud rivet
#

I think I probably have UB somewhere

cloud rivet
#

I made comprehensive changes, a lot of really great ones, so there’s no going back and this is an issue that just prevents anything from working so I have nothing to do other than to fix it. I can’t ignore it

brisk chasm
#

im sure it will reveal itself over the next few days

#

like a botfly

cloud rivet
#

VK_FORMAT_BC7_UNORM_BLOCK specifies a four-component, block-compressed format where each 128-bit compressed texel block encodes a 4×4 rectangle of unsigned normalized RGBA texel data.

#

I have an idea

#

I create a 4x4 texture

#

Just 4 x 4 pixels

#

And see how it looks

#

The make it increasingly larger until it breaks

#

I start with just 1 pixel actually

elfin cape
#

so you know what is going on

cloud rivet
#

I don’t understand how that helps with compression

#

It’s just compressed RGBA values

#

Oh I think I understand

#

So do not save as dds

#

So I don’t have to worry about that files headers and whatever bullshit

#

Oh

#

That makes sense

elfin cape
#

You have to have some header 😄

#

I went that route of not using dds and doing my own stuff

cloud rivet
#

Right but it would be mine and simple

#

Ok ok

#

I like this

cloud rivet
#

This is kind of a fun and challenging problem tbh

cloud rivet
#

yeah I am going to make my own format, I understand how the memory is laid out now in the buffer by vulkan, the levels and layers are documented, I have a rough understanding of the different compression format layouts. I can just see the bytes in nsight easily. I am removing the black box. I will just be able to debug everything without worrying about not understanding some aspect of someone else's format. It will be all my own bytes. I'll start with just getting linear working

#

I bet there's just a one line code change that fix will fix some UB somehwere though that's the cause of all this

#

The cornell dragon bug was a one line ub fix

cloud rivet
astral hinge
#

circuitboard aesthetic

cloud rivet
#

I'm going to have the most sophisticated drag a cube on a plane demo ever by the end of this journey

#

my first starting image for my new texture format

#

I will use this nice cube as the test scene with the 1x1 pixel texture as the material

cloud rivet
#

here's how it looks with the current broken dds compression

#

this is a 1px texture image

cloud rivet
#

so

#

I figured out how to look at the dds bits and saw it is a trivial format and figured out what I was doing wrong

#

I'm going to cancel the rosy texture format world domination plans

#

fix the srgb issue and fix mipmaps and I think I can wrap this up

#

the dds header is tiny

#

I got it working I'm good

#

that was a trial though, I learned a ton as a reward I guess

#

I'm going to be working on fbx import by tomorrow I think

#

I will have a fully automated texture mipmap/compression and I have so many improvements I made as part of this, back to using vma for images, no more ktx, all my images have debug names now, I can distinguish between images of different types so I can change the vk format to fix my normal map srgb issues etc

#

huge wins, totally worth it, even if I did step on a rake couple of times and spammed my thread too much

#

will continue to use nvtt it is great

#

wish I could see its source

cloud rivet
cloud rivet
#

it is done

elfin cape
cloud rivet
#

oh that bug was my memcpy offset was missing on the buffer

#

I was just copying at offset 0 at each iteration KEKW

elfin cape
#

Jesus

cloud rivet
#

sorry I am bad

#

it all works now though

elfin cape
cloud rivet
#

thanks so much for your help

elfin cape
#

you are welcome

cloud rivet
#

nvtt was clutch

elfin cape
#

also images encoded BCn are bigger in size than pngs. In my format I compress encoded image with zstd

cloud rivet
#

the ktx2 images were also smaller in size, I guess they were supercompressed

elfin cape
#

I wonder what they use

cloud rivet
#

I saw your zstd use in your code ,looked cool, you write good code

#

easy to read your code

#

also

#

I appreciate how you had multiple blocks of the same code

#

where you were making the same operation but for I guess different image types

#

albedo/metallic etc

#

that's how I write my code too

#

I really find it helpful to see the full sequence and not stick everything in a bunch of helper functions

elfin cape
#

The different image compression could be done a little better but doesn't matter. It would make the reading of the code harder. You had seen I use lambdas for repetitive small code snippets.

cloud rivet
#

yes

elfin cape
#

If you want to see hell checkout how I process mesh

cloud rivet
#

I don't use lambdas much right now, but I think they are good to use

#

a good tool, it's interesting how lambdas can capture values

#

in any case I now have a lot of stuff that is better

#

my normal maps are no longer srgb format in vulkan, I no longer have to manually generate my mipmap/compression, my debug image names have the file names of the images, I am no longer using libktx, I am uploading the images using vma, it's all great

elfin cape
#

hopefully you use BC5 for them

cloud rivet
#

I am using bc7 for both but I specify them independently

#

for color and normals

#

so I can change it

elfin cape
#

BC5 is special made for normal maps

cloud rivet
#

oh

elfin cape
#

it can only store 2 channels so you gotta do some compression

#

You can choose how you compress them nvtt has 4 different methods

cloud rivet
#

hrm

#

an orthrographic transformation hrm

elfin cape
#

I use unsigned I hope its correct KEKW

cloud rivet
#

I will do what you do

elfin cape
#

hmm I think I am wrong bleakekw

cloud rivet
#

oh ok so unorm is unsigned snorm is signed

#

yes?

elfin cape
#

yes

cloud rivet
#

well

#

that's greater than 0 right

#

wait no

elfin cape
#

Can you take some screenshots of normals and then try BC5 and report to me back if you can get away with unsigned KEKW

cloud rivet
#

screenshots before the change?

elfin cape
#

yes

#

But for sure I am wrong because for z it doesnt matter if its x or -x but for x and y you need to have negative

cloud rivet
#

well these are my normals right now

elfin cape
#

also checkout the sponza from bottom

cloud rivet
#

I think my normals are wrong right now

#

hrm x is right

elfin cape
#

I am cooking textures again

cloud rivet
#

hrm

elfin cape
#

kind of same

#

yeah same

#

Oh I know why

#

I am stupid

#

textures are always 0-255 aka 0-1.0 so you gotta do normal.xyz (for RGBA) * 2.0 - 1.0 to make it -1.0 - 1.0

#

@cloud rivet BC5 and BC5 UNORM is fine

cloud rivet
#

ok good to know thank you

#

ok trying bc5 now

#

I need to rebake my textures

#

I dont' have many

#

oh

#

that looks better

#

this looks a lot better

#

was before

#

I made that floor in my sponza it's not the normal sponza floor

#

I think this is so much better

#

I still meed to mikktspace my tangents and my x axis is flipped on all my assets, I want to transform all the vertices when I port them into my asset format not in my engine

#

but things are looking much better

#

I want to work on fbx format and skinned animations first before I do that

elfin cape
#

you can compute tangent and bitangent in shader using derivatives

cloud rivet
#

I compute the bitangent in shader, I didn't know about tangent

#

I use the lengyel method

#

it's super late for me, I'm going to bed, thanks again frogeheart

#

this was a struggle but I learned so much and everything is better

elfin cape
#

it only fails when uvs are borked

cloud rivet
#

I will try that tomorrow thank you

proven field
cloud rivet
#

thanks!

#

once I have fbx and animations and I add mesh processing all my tangent & mesh woes will be handled

#

I am going to add the flip x axis fix in today though, I am tired of seeing that everything is backwards

#

should be tiny, not another thread that undoes another sweater

cloud rivet
#

I keep finding bugs I just need to fix every single one of them before I do anything else. These things are compounding

cloud rivet
#

the first thing I have to fix is my object space

#

I thought it was just the coordinate system, but there are more problems, but that seems to be the root of a lot of it, it's like I worked around some of these issues so much shitty code piled up

#

from now on if there's a bug I am stopping whatever I'm doing and I will fix it

#

it's affecting tangent space, lighting, rotations, translations, normals, everything really

cloud rivet
#

incredible stuff tbh

cloud rivet
#

if I wanted hats or tools or clothing my characters could wear I would have to first transform that hat from whatever asset bound object space it was in into world space and then to the character's model asset space

#

I don't have just an object/model space

#

I have an asset + object space

#

whatever coordinate system that thing came from, it's in that

#

    [[nodiscard]] glm::mat4 get_world_space_transform() const
    {
        const glm::mat4 t = translate(glm::mat4(1.f), world_space_translate);
        const glm::mat4 r = toMat4(angleAxis(world_space_yaw, glm::vec3{0.f, -1.f, 0.f}));
        const glm::mat4 s = scale(glm::mat4(1.f), glm::vec3(world_space_scale, world_space_scale, world_space_scale));

        return t * r * s * object_to_world_transform * object_space_parent_transform * object_space_transform;
    }
#

whatever the item I'd want to put on the character, I just would have no translate/rotation/scale on it whatsoever, I would do that within the character's asset-object space I think.

#

I'm storing the assets_coordinate_system as a std::array<float,16> on the asset format now, for gltf it's a identity matrix only the first diagonal component is -1

#

for some other asset from some other format it would be different

#

I think if I did it differently whenever I wanted to apply a transformation derived from the asset itself, like an animation I would have to always transform it back into its original asset coordinate system, apply the transformation, and then apply the back out of that space transformation like, if I wanted to apply transform T and the model came from coordinate system a where A is the transform from a to my coordinate system: A * T * A'

#

idk this makes sense to me I don't care

cloud rivet
#

look how they massacred my boy

cloud rivet
#

still flipped though

cloud rivet
#

axis still flipped

#

finally

#

so much stuff is broken now that I fixed my object space, because I kept adding work arounds whenever something didn't look right, I'm never doing that again, I'm like I will fix that later

#

later:

cloud rivet
#

ok levels are fixed now too

#

✅ object space fixed
✅ levels fixed
❌ game play movement broken
❌ lighting broken

#

I will fix those other two tomorrow

#

I thought I just had a flipped axis facepalm

#

I had a 🥫 of 🪱

true moon
#

Maybe I underestimate how much my background saves me from friction while writing games

#

I should be kinder to deccer when he's struggling with openspace

cloud rivet
#

I like kindness

#

I was being really lazy and naive with the dumb stuff I was doing

#

I knew better

#

I am being really explicit and naming parameters, fields and variables based on the coordinate system they are in now. It is verbose but I will not make this mistake again

dry apex
cloud rivet
#

I should check

hushed creek
#

None such things are on by default because they add noticeable overhead

cloud rivet
#

Ah

#

Good to know about if I do have a bug

hushed creek
#

You can periodically check your engine with a bunch of tools like asan, just to be on top of things

#

Maybe once a month or so

cloud rivet
#

Makes sense

wraith urchin
#

Yeah Asan is quite slow

cloud rivet
#

I will turn it on and fix whatever it reports

brisk chasm
#

Whenever i read Asan i read Azan

#

the dude who calls for prayers in countries with mosques 🙂

#

uh, Bjorn left?

hushed creek
#

nope he's still here

brisk chasm
#

not on this server

hushed creek
#

o wow

#

he is indeed not on this server

brisk chasm
#

gobi bullied him away

#

#1124704656631795742 message

hushed creek
#

wait why is discord getting shittified?

#

I'm lacking context

#

are we getting a forum?

#

wow a forum would be like ultra cool

#

using a forum at 32 like I used to at 12

brisk chasm
#

no

hushed creek
#

bjorn is very emotionally reactive he will return eventually

brisk chasm
#

a year ago or so we were just brainstorming, because some shit was introduced to discord, and we were making things up of where we could move to if discord becomes more shit

hushed creek
#

otherwise we'll go and bring him back ourselves

brisk chasm
#

and i kept saying IRC, because this is the best chat platform ever and always has been, i also grew up with that, maybe thats why

#

newer irc clients today even render links as images or embed it otherwise

echo crystal
#

noo

#

i hope he comes back

dry apex
#

noooooo if he don't come back, i will leave as well 😭

vagrant musk
hushed creek
#

gob will have to apologize though I can't just go like "nooo gob was kidding" it would be silly

vagrant musk
#

first time I've seen some just.
leave discord.
without even really telling people.

#

like
actually leave all servers and remove friends from friends list sorta leave discord

hushed creek
#

wow he left gamedev league too

#

removed me from friends too

#

it's kind of an overreaction I think

wraith urchin
#

Huh, wow. I hope he comes back

hushed creek
#

just for "ok you first"

#

which isn't even malicious or anything XD it's a bit much

bronze tendon
#

Dang Bjorn was great

wraith urchin
#

We should probably go find him eh? It would really suck if he was gone for good

brisk chasm
#

uh looks like he completely fucked off now : (

#

no more servers in common

echo crystal
#

:(

dry apex
#

can we talk about zig?

gaunt drum
#

nooooooooooooooooooooooooooooo

#

I hope he comes back

broken fog
#

quick someone doxx him so we can get him to come back

astral hinge
#

demongod can take a quick stroll over to his home

broken fog
#

tbh, must have been considering getting off discord entirely already for one comment to trigger that

broken fog
#

you had one job

astral hinge
#

he reinforced his walls

steady venture
#

Oh no what happened

#

I have some catching up to do but Bjorn is gone it seems 😦

#

Well, shit.

hushed creek
#

He'll be back, needs some space and time to cool down

steady venture
#

🤞 I hope you are right, he is a good friend and inspiration to many of us here

vagrant musk
broken fog
wraith urchin
#

Is there a way to contact someone on github? He made a commit 14 minutes ago

#

We could all leave issues on the rosy repo asking him to come back froge_love

gloomy perch
#

his email is listed on his github

echo crystal
#

if he actually wants to leave i think we should respect his choice

hushed creek
#

we have to show we care

echo crystal
#

true

hushed creek
#

if he leaves github because of us there's no choice

#

we'll have to visit in person

#

knock on his window at midnight :>

dry apex
#

i just realized my hair cut looks like dante

fiery river
#

doesnt this usually mean the account got deleted? and the deleted user thing comes soon?

brisk chasm
#

yep

vagrant musk
vagrant musk
#

It’s basically a
you shouldn’t really be able to access this user’s profile, but you’re here anyway notice

#

If I were to leave both this discord and the bepu physics server, deccer would see it for my profile too
But that doesn’t mean that my account is about to be deleted

#

Discord’s been implementing privacy/security related features recently frogapprove

#

and some of these features get in the way of intended app usage agonyfrog
actually tbf my main think I’m complaining about there is the cdn stuff but like. Those cdn changes broke many links to media shared between servers, and for a while also broke the gif picker

gaunt drum
bronze socket
#

rip

#

btw deccer the C++ channels on libera are killer, haven't been on them in a while but they're probably the best place to talk C++ stuff

#

sorry, 2nd best after #opengl

obsidian spade
gaunt drum
#

we got a reply

vagrant musk
hushed creek
wraith urchin
#

👀

true moon
cloud rivet
#

I finally got instanced draws working just today, been putting it off forever, last few months I have been mostly taking Maya courses and working on my level editor, which is very rough, and my asset format. I also added animation, but I am still learning how to do my own rigging and animations in Maya, so don't have a character yet.

#

All the models I have made I can load into my game and if they have animations I made in Maya they run

true moon
#

lighting looks excellent

cloud rivet
#

Firefly has been active on a 3D art channel I have been in and saw all the things they've been working on so wanted to see what the Dusk Engine was looking like

true moon
#

idk if that music is in the game or in the background but it already feels like a vibe

cloud rivet
#

nah it's a YT video in the background, but that is the kind of music I would like in the game

#

no audio yet

#

I need HDR IBL lighting still, the black pillar is actually supposed to be brushed metal but I haven't done that work yet

#

the goal with that is to be able to just load polyhaven HDR images and configure the level lighting the same way I can in Maya

brisk chasm
#

wb @cloud rivet ❤️

wraith urchin
silver slate
#

Lookin' good.

cloud rivet
#

Thanks I am really close to being able to replace the cube with an actual character model

#

I try to divide my time evenly between asset work and writing code, doing both every day

vagrant musk
#

And welcome back

vagrant musk
#

I’m curious how maya compares to blender tbh

cloud rivet
#

no comparison

#

if you go to ArtStation and filter by things created with Blender then you will see incredible things that people have created with Blender, it is capable of many of the same things as Maya and if you want to use it as your tool you'll be able to build likely anything you want for your game

#

it is open source and free, there's an ecosystem for it, there's a community, if you pick it and it works for you, you're golden

#

but I hate Blender and I will never use it unless I just can't afford Maya anymore

#

the main asset format I work with is FilmBox now anyway

#

the FilmBox SDK is incredibly capable, it supports NURBS for example, and I can edit the asset and create my geometry and materials with just the SDK

#

I can change the coordinate system and set tangents etc

#

anyway

#

regarding Maya

#

my favorite feature is the marking menu

#

I feel like a wizard using it

#

the other thing is I just have spent probably hundreds of hours now on courses and working with Maya, and I know how to generate UVs for complex models, I know how to model with it, with faces, vertices, edges, creating and modifying edge loops, quad draw, multi cut, etc.

#

it comes down to a personal preference and I'm really happy with Maya, and I also use Marmoset for painting textures, the thing Maya sucks at is organic modeling and I'll probably pick up Zbrush for that

#

I am also planning on eventually setting up Substance Painter and Substance Designers to create trim sheets and use Houdini for a bunch of the procedural stuff, and Marvelous Designer at some point when I have some non robots

#

I'm going to be spending half my time just modeling to create content, constantly, it takes me like 2 weeks to create a model I need to get it down to like 1 to 2 days, including UVs and painting

#

a character can take a bit longer

#

I also have to design a nice UI, primarily in Photoshop I think, and do audio at some point so lots to do

#

I'm building out my own level editor, here's a video of me making a new level, it's super rough, but it'll get better

hushed creek
#

nice

inner warren
#

oh bjorns bike nice

cloud rivet
#

this is my very much in progress character model for a placeholder character that's a step up from just a cube

#

it's way harder than making props :/

#

I just need something to rig and animate and put in there for now that's not a cube

#

I'm going to take dedicated zbrush and character modeling courses and practice a lot

astral hinge
#

looks like a character from Robots

cloud rivet
#

it's going to eventually be more Rosy like

#

once I have the skill to do that

#

but still very much a robot

cloud rivet
#

that's it, I'm done with the modeling for now, it's good enough for a placeholder

#

I'm going to do retopology, uvs and then rig

cloud rivet
#

side snoot

#

that'll look a lot better after the retopo

vagrant musk
#

Did you not smooth shade the upper arms?

cloud rivet
#

I merge all this junk into one giant mesh, make it live, and then use the quad draw tool to clean it all up, then I can smooth it out

wraith urchin
#

Quad draw is really cool, I wish blender had it

cloud rivet
#

when the thing is live it just sticks the vertices from the quad draw tool directly to the surface of my reference

#

yeah it is incredible

#

I just extrude entire edge loops really quickly

#

I just do half the model and mirror the rest

wraith urchin
#

I like to keep the high poly original looking nice though, since I use it for normal baking

cloud rivet
#

I bake in marmoset, I take the same model and bake it onto itself, I don't really need a lot of detail in my game since you wouldn't be able to see it at my camera distance

#

also I need to make a lot of models and I'm not very skilled at the details

wraith urchin
#

bake it onto itself? I assume there are some differences?

cloud rivet
#

well by baking onto itself I get ambient occlusion maps and stuff

#

and I get uv islands

#

all kinds of things

wraith urchin
#

Ah I see

#

you aren't doing baked normals then

cloud rivet
#

I get a normals map

#

I can paint a bump map in marmoset

#

it has smart materials, like I can paint scratches with a mask

#

it has procdural noise and stuff

#

I don't do any of that in maya

wraith urchin
#

Are you still using houdini in your workflow?

cloud rivet
#

maya is just for geometry, uvs, rigs and animations

#

I'm going to use houdini for the environment

#

maya for props and characters

#

I will likely use houdini for fx also

#

so all the floors and walls of the level will be done in houdini

wraith urchin
#

So what is done in engine then? just lights and stuff?

cloud rivet
#

I haven't figured that workflow out yet, but I understand that I will use substance designer to do trim sheets which I then import into houdini to generate the level

#

lights, decals, shadows, IBL,

#

I am not sure yet

#

but the props, geometry and characters are all going to be created in DCC, my engine has a level editor

wraith urchin
#

Your game is gonna be all indoors right? no terrain

cloud rivet
#

right

#

open world is too hard imo

#

too much work

vagrant musk
vagrant musk
cloud rivet
#

I don't think anything I do looks good lol, but I am learning

#

I like not having to worry about the geometry at all as I model

#

as it's really easy to clean it up

#

it takes me many weeks to make a simple props atm

vagrant musk
#
  • a lot of blender tools do seem to be designed around preserving/creating good topology, so I’m kinda probably having my hand held a little by that
    Unsure about maya’s tooling
cloud rivet
#

I added a rig to it though

#

so that was new

vagrant musk
#

frogapprove unironically, I do see how that could take a few weeks
It ain’t much, but for a learner, it’s honest work

#

Does also look good

cloud rivet
#

I will get faster

#

I'm am pretty good at UVs now

#

a lot of it was like oh I beveled something badly and now the UVs are hard, and I had to redo a bunch of stuff

vagrant musk
#

I’m curious; what’s your workflow like?

Personally I like to do 1-3 throwaway prototypes, take what I learned from those, and make something intended to be a "permanent solution" (mostly do this for programming, but ended up doing it for models too)
Which, typically gets stuff done fairly fast for me

cloud rivet
#

I do a blockout and add details

vagrant musk
cloud rivet
#

this was my block out to pump station

#

that also took about three weeks

wraith urchin
#

Looks pretty good to me

#

I like the rosy logo

#

It looks like the unreal logo but cooler

cloud rivet
#

it's a bit weird, it was a project mostly for learning how to export animations out of the fbx

#

it doesn't look like this in my engine because I don't have IBL yet

cloud rivet
#

and because that's marmoset RT render engine which I will never even get close to

cloud rivet
vagrant musk
#

This is an unironic screenshot of my UV maps
… and a lot of this is deliberately and manually arranged too

cloud rivet
#

I use projections and cut and stitch tools to do uvs

#

it goes pretty quickly if I do my geometry well

vagrant musk
cloud rivet
#

I need to create good UV islands or uv shells so I can assign materials in Marmoset

#

if it's a mess I can't paint it

vagrant musk
#

Mine’s a mess because this is like a 3x6 pixel area I’m looking at
My texture is flat because I’m going for a toony style; figured I might as well challenge myself to make my texture dense

cloud rivet
#

you're making a game?

vagrant musk
#

Not currently

cloud rivet
#

I am still doing graphics programming

#

I split my time in two

#

well if there's graphics programming work

#

mostly just been working on my level editor

vagrant musk
#

I’m trying to get over burnout agonyfrog

cloud rivet
#

but I did just clean up my vulkan sync

wraith urchin
#

I became obsessed with maximizing my UV coverage. So now my UVs look like this.

cloud rivet
#

that's really nice

#

I can have a lot of empty space

vagrant musk
cloud rivet
#

I try to keep the UVs the same scale for everything

wraith urchin
#

basically you need to straighten all the external edges to a rectangle so you can pack them better

cloud rivet
#

it doesn't always work out

wraith urchin
#

for characters I try to give extra resolution for the face

cloud rivet
#

that makes sense

#

this is where my camera distance saves me again

wraith urchin
#

True

cloud rivet
#

I'm really trying to go easy mode with my game

#

indoors, small levels, big camera distance, baking as much as I can

#

and

#

and it will still take years

#

I couldn't make ASO

wraith urchin
#

It's OK they will be fun years

cloud rivet
#

that game is incredible tbh, I think about your leviathon a lot lol

wraith urchin
cloud rivet
#

SRS is also incredible

#

jaker's voxel game etc

vagrant musk
# cloud rivet you're making a game?

What I’m trying to do is two things with the same model:

  • vr character model, not for a game
  • model which I can pose and then sketch over for drawings
    Character being the character in my pfp
cloud rivet
#

I'm going small, and I'm still slow

vagrant musk
cloud rivet
#

yus

cloud rivet
#

I can relax all that geometry as I go and it straightens it all out

silver slate
#

You can do edge extrusion with surface snapping fairly easily though so I've never had much trouble with retopo

cloud rivet
#

idk, I'll see how the UV unwrapping goes, if it's not a disaster I will try and rig it

#

I might paint it before I rig

#

it will look much better once it has materials also, if this turns out bad I will start over, I learned a lot from this process.

#

it's just a better placeholder than the cube anyway

wraith urchin
#

Cool visor

#

like Geordi in star trek TNG

#

Good luck on the UV unwrap

cloud rivet
#

I fixed that hard edge on the nose, I hadn't noticed before the render

silver slate
#

Nice, character work can be quite a challenge when you don't do it regularly. Seems like you're making good progress. 😎

cloud rivet
#

Thank you, I just have to keep practicing

#

I need to make props and the level as well while also working on the engine itself

#

I have been working through an instancing bug the last couple of days. I wanted to have per instance timelines and somewhere through inheritance of the scene graph, instances are inheriting writes to a shared ancestor, which tells me that I need better guard rails. I think it might be UB because I don’t see a way it is possible and because of how hard it has been to debug the issue.

bronze socket
#

is that like a refcounting bug?

#

do you implement this via refcounted handles

cloud rivet
#

hrm, no I am not using refcounted handles, there's a scene graph of nodes, and each node has a list of instances and stores per instance data, which are identified by uint32_t unique ids. The nodes have child nodes, which all also have their own instance data. My per frame code directly requests a flattened array of nodes for its render data for all of its instances without knowing anything about a scene graph

cloud rivet
#

went ok I think

#

I could use separate udims, and get more dense UVs

#

I will try this first

#

I can also adjust the uvs in marmoset

#

as in density I think

#

I'm going to try and export into marmoset and do a quick test paint tbh

cloud rivet
#

the visor color is incorrect in game because I don't have IBL yet

#

my metals all look terrible

#

anyway

#

uvs and test painting went ok

#

and now I have a character in the game, just need to rig and animate now tbh

#

I don't know where I got those colors from, just was having fun with it

cloud rivet
#

here's what the visor looks like in Marmoset, this is like full slow 20 second raytraced with a whole bunch of fancy lighting and render options enabled so my engine cannot compare

#

I'm pretty happy with it however right now, happy enough to just move on to rigging and animation

wraith urchin
#

Nice drip!

#

Can't wait to see this animated

#

the model is really coming along

cloud rivet
#

thanks!

cloud rivet
#

really useful for debugging

cloud rivet
#

pretty fun

#

I think I need to paint some weight around the elbow though

#

that elbow is definitely all kinds of wrong, but I'm pretty happy with how it's not a complete disaster

#

I kind of like my placeholder character

#

some progress since lol

cloud rivet
#

I'm going to do skinning on the GPU via compute dispatch because shadows

#

I'm a ways away from that yet, I don't even have good rigs yet

wraith urchin
#

Are they just shadow maps?

#

Compute skinning is probably not worth it just for shadow maps

#

Check how much time your Vertex shader is actually taking

#

You may very well lose performance by adding the extra Compute pass

cloud rivet
#

I'm going to have point lights

#

it's indoors

wraith urchin
#

Yeah but still

#

You still need a vertex shader

cloud rivet
#

yes

wraith urchin
#

My skinning basically doesn't show up in the profiler

cloud rivet
#

my vertex shader does next to nothing atm

#

just mvp

wraith urchin
#

Yeah but just having one costs something

#

You may as well have it do something

#

If it's gonna be there

#

And you will likely save on memory bandwidth

#

If you instance your meshes

cloud rivet
#

they are instanced yes

#

but

#

the skinning would be per instance

wraith urchin
#

I'm just saying I would avoid overengineering until you have actually identified a performance problem

cloud rivet
#

I actually want to overengineer just a tiny bit to learn about it and get some better understanding of vulkan sync

#

I have a lot of frame time to spare right now, my frame time is basically just all MSAA

#

appreciate your insights though thank you

#

there's going to be a lot of things animating, basically robotics and machines everywhere

#

lots of lights, lots of animations

#

kind of like factorio

slim oak
#

just stress test regularly and you'll be alright

cloud rivet
#

my cadence for asset work after I'm through with skinned animations is going to be to work on two new props and followed one new animation, after every 4 props I will work on a new character and just repeat. I'm going to focus on quantity and speed instead of worrying about perfecting the assets. I'll get better and build skill this way. Eventually I will have to add 2D to this to work on the UI and the actual environment for the level. For engine work the plan after skinned animations is IBL, followed by walls and floor designs and tools, and then outlining and 3D picking to make level editing easier, then I will start putting a lot of work into UI.

cloud rivet
#

idk maybe I skip the compute skinned animations, I can do that later if I needed to, that's fine

#

yeah thank you for setting me straight

true moon
#

I've never done compute skinning yet although part of that is because I didn't have many passes

#

Skinning in the vert shader works fine

bronze socket
#

yeah I don't really see the benefit

true moon
#

In some ways VS could even be a benefit since it's easier to instance the mesh

#

With compute skinning you're basically duplicating the mesh N times

bronze socket
#

I guess compute skinning gained popularity when raw vertex numbers became absurd

true moon
#

You'd have to do a careful perf analysis to see if the arithmetic is really bottlenecking you

#

The situation where it's probably an unequivocal win is when you have a relatively small number of characters, a large number of vertices, and a large number of passes (shadowmaps etc)

#

If your scene has 100 characters in it you're going to 100x your mesh memory which could be significant

hushed creek
#

compute skinning is required if the transformed vertices have to end up someplace to be used for e.g. raytracing

true moon
#

Yeah I was just about to say

#

Raytracing is a case where you'd have to evaluate the mesh thousands of times

#

So it's definitely saving you a ton of work

cloud rivet
#

well someplace else is during shadows

#

I have to skin the same vertex for every face of a shadow cube, every layer of a CSM etc

#

so I figured I can just do it once in compute

#

also physics

#

collisions

#

idk

#

well not every layer of a CSM if they don't overlap with my current frustum culling

#

I'm not going to worry about right now, if things get slow I will profile

hushed creek
#

Skinning in compute is extremely trivial to do anyway

#

It will take you 10 minutes to implement the shader

#

So I wouldn't worry

#

Here's my super basic metal shader for reference it's apple's compute shader sample but instead of an array of ints it's an array of vertices and instead of multiplying each element by itself, I multiply by some matrices

#include <metal_stdlib>

#include "SharedTypes.h"

using namespace metal;

kernel void skeletalAnimate(
                            device const SkeletalAnimDataVertex* animDataIn,
                            device SkeletalAnimVertexPositionVertex* animOut,
                            constant matrix_float4x4 *boneMats,
                            constant matrix_float4x4& modelMat,
                            uint index [[thread_position_in_grid]]
                            )
{
    auto vert = animDataIn[index];

    matrix_float4x4 boneTransform = boneMats[vert.firstBoneIDs[0]] * vert.firstWeights[0];
    boneTransform += boneMats[vert.firstBoneIDs[1]] * vert.firstWeights[1];
    boneTransform += boneMats[vert.firstBoneIDs[2]] * vert.firstWeights[2];
    boneTransform += boneMats[vert.firstBoneIDs[3]] * vert.firstWeights[3];
    boneTransform += boneMats[vert.secondBoneIDs[0]] * vert.secondWeights[0];
    boneTransform += boneMats[vert.secondBoneIDs[1]] * vert.secondWeights[1];
    boneTransform += boneMats[vert.secondBoneIDs[2]] * vert.secondWeights[2];
    boneTransform += boneMats[vert.secondBoneIDs[3]] * vert.secondWeights[3];

    auto bonedPos = boneTransform * float4(vert.position, 1.0f);
    auto bonedNormal = boneTransform * float4(vert.normal, 0.0f);

    animOut[index].position = (modelMat * bonedPos).xyz;
    animOut[index].normal = normalize((modelMat * bonedNormal).xyz);
}
#

So you can add this at any time in the future no problem

bronze socket
#

2 bone sets?

hushed creek
#

the tutorial I followed for skeletal anim lets each vert be affected by at most 8 bones so I kept it that way, I think the most I've had so far was 6 bones? I don't remember

#

with a mixamo rig

#

but a lot of people I've read say 4 is enough so maybe I misremember?

bronze socket
#

I am pretty sure most games keep it to 4 to this day

hushed creek
#

it's very possible 4 is enough, I only ever used a single animated mesh so far, when I add in more I'll revisit the issue and see if I can reduce it

bronze socket
#

I assume depending on your source format you can probably have the whole vert * bone matrix of theoretical weight paints in the source data

#

but dropping them for the top4 seems sufficient to me

silver slate
#

Firefly can handle all of them extra twist bones. 😎

cloud rivet
#

I still might want to do it just for the exercise in working with a more complex sync

#

Not for any performance reasons

#

I need an excuse to build a rendergraph as eventually I will be making even more complex render changes

#

The only thing hard for me or any work at all with Vulkan is just the sync. I go weeks without even looking at vulkan code

#

Well if I get into some details about some of the math in the spec that is always a challenge

#

I meant hard in terms of what I am doing so far with my rendering not all of Vulkan

#

VMA is also doing a lot of heavy lifting

bronze socket
#

do you have anything resembling a frame graph

cloud rivet
#

Not even a tiny bit

bronze socket
#

if you're screwing around with more complex sync you might wanna invest in that

cloud rivet
#

Yeah

bronze socket
#

level 1 for a frame graph, if you could even call it a frame graph at that point, is just associating a state tracker with each resource (particularly images)

#

which reduces the mental load from thinking about previous and current state to just current state

cloud rivet
#

Yes I want to do to work on that

cloud rivet
#

I'm not having fun any more with this project, it just feels like a second job. I'm gonna do something else graphics related. I don't think making a game is for me. Probably just using C, Vulkan and Windows APIs. idk.

true moon
#

Just shelve it for a while who knows when you'll find interest in it again

#

But yeah making games is definitely a slog

#

And doing it from scratch is even more insane

#

It's like one of those toys that's a chain of 20 gears put together so that turning the gear at one end causes the other end gear to rotate at a ratio of like 1:1000000000 so that even spinning it at one end nonstop for years would never spin the other end gear fully

cloud rivet
#

being a solo game developer is ridiculous

#

I'm not deleting the code or anything

true moon
#

Yeah makes it real impressive that people like David Rosen pulled off what they did, although he basically made it his job

#

Or the df guys bleakekw

cloud rivet
#

yeah

#

I just find the graphics portion fun

#

I'm just going to render stuff that's fun and if it's not fun then I'm not going to do it

true moon
#

The gameplay stuff is fun if it's technically interesting imo which is why I am making a sandbox game

#

But if I wanted to make a regular content-driven game I'd probably use an engine

#

The purpose of my game is mostly to be a programming sandbox

cloud rivet
#

that sounds like you're having fun

true moon
#

Pretty good yeah

#

I still burn out now and then

cloud rivet
#

This is going to be my third vulkan renderer. I am gonna start with a frame graph this time. Just because I want to. I am going to try and learn to use 4coder as my editor and build via CL in a bat file and use the rad debugger or remedybg. And Just .c files

astral hinge
#

return to monke

#

I like working on my game because there is so much work to do that I can pick whatever feels the most fun to implement at any moment

#

but the problem many people run into is that you can't ignore the unfun stuff to get a playable game

cloud rivet
#

Yeah

#

Also real monke for real, I am going to build my own arena memory allocator, just because I want to

true moon
#

You could try using one of the Vulkan abstractions like vuk or daxa

#

Someday I should probably try that myself

#

But I just like GL

cloud rivet
#

Zero libraries

#

From scratch

#

Just C

true moon
#

That's why I pick higher level APIs smart

cloud rivet
#

C is high level

gaunt drum
cloud rivet
#

Nice

#

I looked at 10x

astral hinge
cloud rivet
#

An editor written in jai

#

Cool

#

I saw the 4coder dev give a talk at handmade seattle

#

Probably why I want to try it

gaunt drum
astral hinge
#

I concur. knowing what I want the end result to look like has made me very focused and relatively productive

true moon
#

I sort of know what I want to do, but bikeshedding the parts that are fun to design is part of the point

#

But yeah having a huge list of things I want to implement helps drive development

wraith urchin
#

Yeah I dunno, do whatever you find fun. But I will say one of the things that keeps me motivated to make a game, is that you guys play my game. Let other people try your project, even if it doesn't seem like its "ready"

cloud rivet
#

ASO is fun

gaunt drum
gaunt drum
cloud rivet
#

Oh interesting

#

I was looking at some forum threads for 4coder from 2018 and saw Ginger Bill was actively posting

gaunt drum
#

yeah, both odin and 4coder is from handmade circle from casey muratori era

cloud rivet
#

hrm it looks like 4coder is abandoned actually

After 5 years of working on 4coder as a side project, I open sourced the entire code base and have retired from work on it.

#

hrmm

cloud rivet
#

idk it still looks like a cool program. I am going to give neovim a quick try though and if not I may try out the community fork of 4coder

#

I used vim for many years but before neovim was a thing

cloud rivet
#

nice I got neovim nicely set up, it's working great for me, also I'm going to retire this thread thanks for all the help with rosy ya'll 🙏

echo crystal
astral hinge
#

You could repurpose your thread for every new project

cloud rivet
#

oh is that better behavior

#

I wasn't sure what I was going to do, it's not going to be very graphical for some time

astral hinge
#

but the nice part is that everyone who's already in this thread can see your new stuff without having to subscribe to a new thread

cloud rivet
#

ok I keep this thread, thank you

#

I have been setting up neovim, I have treesitter, tree-view, lsp for C set up and telescope, I think that's good

#

I'm configuring my .clangd so I can tell it I want latest C, I am using the msvc compiler though

#

my builder is just going to be a bat file, I looked at handmade hero's bat file and that even after 670 episodes is still a very simple bat file, Per Vognsen and Ryan Fleury also just use a bat file. I am going to manually specify command line arguments for the compiler and linker

cloud rivet
#

neovim is pretty amazing tbh

cloud rivet
#

so worth it

#

^^ F5 builds, Shift+F5 opens debugger, then I demo an LSP clang error with an auto fix

#

my vim is still pretty rusty

#

so I'm a bit slower than I used to be with the keyboard shortcuts

cloud rivet
#

what a turnaround, I went from a depressing daily progress grind on my game to be excited to do programming again

cloud rivet
cloud rivet
#

and I need a nicer theme

bronze socket
#

yeah nvim is awesome

#

people are scared of my crusty setup

brisk chasm
#

we need a neovim setup guide on the blog 😛

bronze socket
#

I literally don't remember where I got my configs from

#

I think I got lucky being recommended youtube videos now and then and I basically pasted in stuff if it seemed useful

brisk chasm
#

yeah thats how it goes

#

i keep forgetting the shortcuts after not using vim for a day or two again 😄

bronze socket
#

I think I know like 1% of the shortcuts and capabilities of vim but that's already smoking a standard editor

#

basically just modal navigation and regex find/replace

#

a good portion of my vimrc, even before I used nvim, came from this

#

the most important one by far though was the netrw file navigation because I can just open a file by typing :fin startOfFileName and hit tab to autocomplete

#

but a lot of this stuff is not too useful now that I use nvim because you can and should be using a real lsp

brisk chasm
#

this video looks familiar

#

thoughtbot has some nice stuff

keen lance
#

has neovim crashed on you yet? That's the one thing keeping me on standard vim

#

the thing I hate with vim is hitting caps lock by accident

bronze socket
#

it's never crashed once for me, at most I occasionally need to restart it because clangd starts hogging memory and slowing down after a while

keen lance
#

ah I don't use LSP, not sure if I should

#

I use cscope though

bronze socket
#

yeah idk what life was like without it

brisk chasm
cloud rivet
#

neovim hasn’t crashed on me so far. I am only setting up as I need things.

#

I have added very little and it’s already really good

#

I also use LSP, it is great

cloud rivet
#

I think I am going to just try to focus on a very specific niche, getting really good at rendering with vulkan, on windows using an nvidia card. That’s it. Nothing else. Anything else is too much. At least for now.

#

That’s already a lot

#

I am going to learn C, the vulkan spec, windows, the nvidia driver, make use of NVAPI, tracy and renderdoc integration and improve my math and understanding of graphics techniques.

#

Anyway as long as it is fun

keen lance
#

I think someone said something similar above but personally I learn best when I have a goal/something concrete in mind

#

otherwise I find it hard to find the motivation and remain consistent

brisk chasm
#

im also very content with my kb shortcuts in vscode or clion or rider, no need to switch to *vim for me, but i am a little jealous that you can do fancy things of you know the right keycombo

#

i never had issues with caps lock, maybe my hands are too smol or yours too big 🙂

keen lance
#

frankly the main reason I use vim it's because it's bloat free

#

it's installed on every Linux machine by default

#

every 5 years I try an IDE (cough eclipse cough) and after 30 minutes I uninstall it

#

ah and also I can use vim over ssh so that's awesome

bronze socket
#

yeah regular vi/vim is what I use over ssh when necessary

broken fog
#

and clangd is a bit of a pain to set up for cross compiling

bronze socket
#

there is multicursor in nvim I think, I just have windows copy paste enabled so I can't use it (ctrl+v)

broken fog
#

yea block visual works kinda like mc in some use cases but not all

#

you can disable system clipboard on the terminal and access it with "*p to get the shortcut back, btw

#

i get both because mac uses command for copy/paste (but instead lose option as a key for shortcuts since macos uses that for special character input)

cloud rivet
#

I looked at multi cursor nvim and saw all the dependencies it required and decided to just avoid it for now

broken fog
#

yea i tried it and it was super buggy and awkward

#

just decided to go without it and tbh i find alternatives anyway

#

line visual and :s is goated

cloud rivet
#

I use multi cursor all the time in visual studio so I will likely miss it

#

Will see

broken fog
#

i used to use it all the time in clion as well, you find alternatives

#

for aligned cursors block visual works great

cloud rivet
#

Yeah

broken fog
#

and for the find next case regex find/replace is very fast

cloud rivet
#

I don’t understand why there wouldn’t be a good nvim extension for it

broken fog
#

doesn't really fit the vim way of doing things, i think

cloud rivet
#

Maybe I finally learn how to use record and replay in vim

broken fog
#

the existing ones are just kinda awkward when it comes to working with different modes

broken fog
#

honestly i'm probably using like 2% of vim features

cloud rivet
#

I just accidentally hit q sometimes and my life is over

#

Until I remember to hit q again

brisk chasm
#

there is multicursor in clion/rider/vscode

broken fog
#

yes but those are stinky and bad

brisk chasm
#

: )

cloud rivet
#

Super stinky

broken fog
#

(nah ides are fine but once you get used to a vim workflow it's so much nicer tbh)

brisk chasm
#

yeah, thats what i mean with me being jealous about those who learned all the vimisims

broken fog
#

one thing i will absolutely miss about clion

#

is it dealing with the horror of c++ build systems for me

silver slate
#

Another day, another IDE vs. Vim war. trolled

#

Just a moment ago in another chat someone was arguing that operator overloading is bad. :')

broken fog
#

using nvim makes me wish i was writing rust even more KEKW

brisk chasm
#

😄

brisk chasm
#

get oxidized

cloud rivet
#

I am going to write my own math in C and I already know lack of operator overloading is going to suck

#

Idc

broken fog
#

tbf i love operator overloading but "wtf operator overloading bad" is a reasonable reaction to std::chrono

cloud rivet
#

I am sticking to C

brisk chasm
#

i dont mind pure functions

silver slate
# broken fog average bikeshed moment

Yeah, the person claims to be "tired" of defending their stance though because they have to do it at "work" all the time. So they must be very smart and amazing and clever and the gooderest coder.

brisk chasm
broken fog
silver slate
broken fog
#

much nicer to write than c++ because it doesn't have all the nasty complexity grafted on

cloud rivet
#

I just want to keep it simple

silver slate
#

I like pick and choosing the amount of complexity I have to deal with, so I use both some modern C++ features and ancient C-style bs

cloud rivet
#

This is a hobby

broken fog
#

yeah c is nice and simple (because the compiler sweeps all the complexity under the rug for you and you can pretend you're writing code for a fast 386)

broken fog
cloud rivet
#

I am too dumb to understand cppref documentation also

broken fog
#

dw it's actually just ass KEKW

cloud rivet
#

It’s too complicated

silver slate
#

It could be worse, you could be given a link to cplusplus.com instead

broken fog
#

i mean it's good if you can parse it but def not well written to be readable

#

rust documentation has spoiled me

cloud rivet
#

I added a key mapping that opens the C language reference Microsoft docs and it is great

#

I can read and understand it

broken fog
#

be glad you're not dealing with metal at least, apple's documentation is shit KEKW

broken fog
cloud rivet
#

Yeah it’s like a mix of objc and metal and c++ yeah?

broken fog
#

or at least used to be, they probably started writing all of it with gippity now bleakekw

silver slate
#

The forbidden word.

broken fog
#

it's honestly a very nice api

cloud rivet
#

Yeah msdn has a gippety box at the top of search results now

silver slate
#

I use Kagi to search the internet nowadays, but it's a paid service.

broken fog
#

but apple's docs can be lacking and msl has a buggy ahh compiler

cloud rivet
#

I also use Kagi

#

It is good

#

I am going to try and use by default mesh shaders and see how far that gets me in what will be my 3rd Vulkan implementation

#

Starting with a render graph from day 1

#

I am going to just do some stuff with instanced simple geometric shapes, build my own imgui as I need it and eventually work my way through the khronos gltf samples, building my own gltf parser.

#

Do the sponzas and bistros and then just have fun doing fancy graphics stuff as I learn

#

That’s it

silver slate
#

Ambitious (this message was brought to you by the Vulkan triangle gang)

bronze socket
#

yeah it took me a few vulkan attempts to get something I was happy with

#

I don't have the best RHI but I don't think about it and don't have much interest in picking at it, it just works

#

which is actually great

true moon
#

I kinda nailed it on the first try (first try that I actually wrote real Vulkan after bouncing off it 3 times) and that's where I developed my now signature engine architectural style

#

But that was for a very specific game

#

I had no RHI

#

Just hard coded functions for drawing terrain, drawing the cockpit, drawing external stuff, etc

bronze socket
#

for me the main thing has always been discardability because the engine dev cycle is making some stuff in a spurt and then looting the corpse of that version for parts

#

I just made something flexible enough and stable enough that I'd carry it over instead of tossing it

true moon
#

Yeah

#

Mine was a giant kludge because I was porting a large and messy existing codebase and basically out of necessity it forced me to take the most decoupled approach possible

#

Otherwise I'd have to wade through thousands of lines of terribly abstracted rendering code from my first ever graphics project

#

Including like custom GUI and CPU algorithms processing GPU-generated buffer contents and all sorts of crap

silver slate
cloud rivet
#

anytime I have seen Demon's code it's been emaculate, nothing like my own code

silver slate
#

I always dread having to reproduce success, haha.

#

When I have to ask myself to do a thing again 😭

cloud rivet
#

I try to just fail a little bit less each time

silver slate
#

The power of practice.

cloud rivet
#

yes

#

writing my own memory allocation, the mesh shader and a rendergraph will all be new things for me

#

this go around

#

I'm also going to write my own vulkan loader

silver slate
#

Lotsa todos for the todo-list. froge

cloud rivet
#

I don't think most of those things will be a lot of work

gaunt drum
cloud rivet
#

for like an mvp

brisk chasm
#

RosyOS when? 🙂

#

rOSy rather

silver slate
#

How many story points are we allocating for these tasks? schienceNerd

brisk chasm
#

13 the coffee pot card

silver slate
#

My goodness, deccer, please, at this company we use a power of two counting system.

cloud rivet
silver slate
#

Arena makes it sound fun.

#

Do the bits get to fight?

cloud rivet
#

yes

silver slate
cloud rivet
#

whoever loses is deallocated

brisk chasm
silver slate
#

Looks like I've got the upper word!

brisk chasm
#

hehe

cloud rivet
#

I think the most boring painful thing I'll end up having to do is read jpg and png images that are in the khronos samples froge_sad

#

and then do the compression for them and mipmaps

#

that's a ways off though, a long way off

astral hinge
#

the best arena allocator is just malloc(999999999999) and then increment the pointer with each alloc from the application

silver slate
#

Not gonna use stb for some of it?

cloud rivet
#

I think I could be forgiven for using Sean Barret's code

#

idk

#

I'll poke into it a little bit

#

see if it is something that won't be too awful

#

but if it is I might cave and use stb

silver slate
#

Convert all the Khronos sample textures to BMP galaxybrain

cloud rivet
#

that sounds like an asset pipeline

#

no thanks lol

silver slate
#

t was worth a shot

broken fog
astral hinge
#

you can unironically do that if you know the scope of your allocations

brisk chasm
#

its just 1TB, so, very feasable

#

discord 1.4 TB 😛

cloud rivet
#

even your htop is comic sans

brisk chasm
#

the whole system is

cloud rivet
#

comic sans and a transparent window

#

transparent windows always look cool

#

but then I use them and I can't read anything

#

I imediately turn it off, I tried just slightly increase the opacity a little bit at a time and my brain can't deal

#

I think the comic sans, transparent window and color scheme look great though in the screenshots

#

alright gonna try and make some progress now

broken fog
#

isn't an arena allocator super shrimple anyway

#

at least a basic one

astral hinge
#

arena allocator is actually a broad term I've learned

bronze socket
#

you harness the power of addition

broken fog
#

i did a simple one in like 10 minutes for a uni assignment, just a linked list of ~1mb blocks sequentially assigning memory, add block if there isn't enough space and free the whole thing in one go

bronze socket
#

that's not an arena to me, that's a slab allocator

astral hinge
#

an arena with a bumpy allocation scheme is super shrimple though

broken fog
#

no reuse and it just wasted any space left over in a tail block but whatever

broken fog
bronze socket
#

an arena to me is basically like a block you append allocations at the end to

#

but on top of a single, existing allocation

broken fog
#

right

bronze socket
#

basically a stack

astral hinge
broken fog
#

yea the class expected us to check every malloc for some reason

#

prof was an older guy and bit of an industry veteran so probably some 80s brainworm

#

because any modern os will happily let you malloc a tb without ooming

cloud rivet
#

I don't think the mvps will be hard, it's just new to me is all

echo crystal
broken fog
#

i have an os class next semester so maybe i'll find out then who knows

astral hinge
#

this is from a kid's show btw

#

absolute nightmare material

hushed creek
#

Adults know not to steal the slab

brisk chasm
#

jaker suffering his curse already

#

(his = the dude in the swamp there)

bronze socket
#

the slab guy wasn't even the worst

#

they had some scary uncanny 3DCGs

#

this one got to me

brisk chasm
#

i sometimes wonder what you guys watched as children

astral hinge
astral hinge
bronze socket
#

the guy I posted is too

brisk chasm
#

that must have been after my time watching cartoon network

echo crystal
brisk chasm
#

that cat reminds me of bjorn :B

echo crystal
#

strangest movie i watched as a kid

#

haha

true moon
cloud rivet
#

Sesame Street

#

in German

cloud rivet
#

seeing a sesame street episode in the US the very first time was really weird

cloud rivet
#

I signed up again for Handmade Seattle this year, last year was pretty good, so going again this year. It's Dec 13-15

#

the tickets were $198 or something

astral hinge
#

maybe I should go

#

I live pretty close

cloud rivet
#

you could watch the videos from the previous events to see if it's something appealing to you, it's not necessarily always about games or graphics

#

there were a couple of controversial not really low level programming talks that Abner said he would avoid in the future, so if you see those, those were an aberration

astral hinge
#

who is Abner

#

also how do I tell which ones those are

astral hinge
#

upon further investigation, I don't think it's related and I still dunno what you're referring to

cloud rivet
#

yes it's related to that

astral hinge
#

yeah I checked out the website

cloud rivet
#

at somepoint he took a break from the community to work with Jon Blow on a game, but then came back

#

but he had handed off the community

#

there's new leadership, but they were really friendly

#

but there were some talks last year, specifically from Andrew Kellye, creator of zig, that were taken as "communist" or something

astral hinge
cloud rivet
#

I didn't take it that way

#

I thought Andrew gave a good talk about keeping software good

#

but he said would take unionizing engineers or something

#

idk

#

anyway

#

and some of the talks were more about programming as an art

#

which were also not popular I guess

#

but the rest were very technical and interesting and I was glad to go

#

anyway I didn't really follow the drama, idc, I just was like if you watched the videos and saw one and were like wtf is this, that's not happening again

#

ok let me go find that in the video

#

that's the art one

#

followed by another art one

#

The year that triggered the Handmade civil war
Partly due to our keynote talk (timestamped), Handmade Cities paid a price for it. This was, however, not the only reason. In response to everything, we ratified a new advisory board.

The Twitch stream is not available as individual recordings yet, but luckily our team archived a backup on YouTube.

#

anyway

#

there were technical talks that were cool

astral hinge
#

it's like a story with a programming theme if I understood correctly

cloud rivet
#

it was actually really interesting imo

#

yeah

#

definitely not what I paid to go listen to though so I understand why some people were upset and he created a board to help pick this year's talks

#

one of the talks talked about hacking the linker process

#

and I learned a lot about how the linker works from it

#

the goal was to learn how to make linking faster

astral hinge
cloud rivet
#

yes

broken fog
#

that sounds insane

cloud rivet
#

yeah unity build

#

no

#

it's great

astral hinge
#

unity builds are common but they also break some semantics

broken fog
#

how's it even work, no c compiler i know works that way

cloud rivet
#

hrm?

broken fog
#

unless you like, do everything in a single source file

astral hinge
#

some build system flags just append all the TUs into a single chungus one

#

no you don't do it manually

cloud rivet
#

it's just including the cpp files

astral hinge
#

anyway I don't like it because now it's impossible to have file-local statics

cloud rivet
#

this is Per Vognsen

astral hinge
#

oh that is manual unity building

broken fog
#

sounds like it would solve some of the compile time issues with templates though right? wrt code getting compiled multiple times for each tu

astral hinge
#

not just that, but any header

cloud rivet
#

well

#

in the Handmade community people are using .cpp files but mostly writing C or just writing .c files

#

there's no templates being used

broken fog
#

though you would lose partial builds as well wouldn't you

astral hinge
#

yeah rip incremental builds

cloud rivet
#

well

broken fog
#

so that would increase compile times unless you do a full rebuild

astral hinge
#

but these people probably have like 2 second builds anyway

cloud rivet
#

these things full build in like 2 seconds

#

yeah

astral hinge
#

hehe

astral hinge
#

hmm this convo has inspired me to try livepp

cloud rivet
#

what's livecpp

astral hinge
#

c++ hot reloading

#

visual studio has it but it's very slow. livepp is probably much faster

broken fog
#

oh boy

cloud rivet
#

I feel like with games maybe not as important if you can reload your shaders assets and lua

broken fog
#

inb4 it's joever the moment you include a stl header KEKW

cloud rivet
#

idk anything about it

astral hinge
#

wdym