i juiced up the crude carpentry table: now it drops the items you craft, and materials involved in the crafting get a little animation. also it now shows the quantities of materials when you mouse over the crafting station for convenience

next is adding more items/recipes to the table to finish it out

i'm also gonna give splitting block game development into shorter (bi)weekly threads a shot. we'll see how that goes

#EniBlockGame #GameDev #IndieDev

RE: https://mastodon.gamedev.place/@eniko/115640571595780929

you can find the previous dev post here:

small change but on-screen overlays like crafting station material quantities are now sorted properly. took a bit of work to implement

this'll be nice to have later when there's multiplayer and nameplates and such

#EniBlockGame #GameDev #IndieDev

the first crude carpentry recipe is in! time to make some crude tables. they attach to each other to form various shapes and sizes! :3

#EniBlockGame #GameDev #IndieDev

doors are complex and we ran out of budget at block game development inc so you only get half a door and it's tidally locked to a single orientation, sorry

seriously though doors went from "oh this should be pretty easy" to "omg why is this so hard" SO QUICKLY

#EniBlockGame #GameDev #IndieDev

There is one thing that's making me reconsider "door in the middle of block" and instead doing it like minecraft, and that's what effect an open door would have on mob pathing since it's halfway between blocks and blocks travel between them

But I can probably work around it

#EniBlockGame

you can collide with entities (and so the door) now. took a while to figure out how to do efficiently

at the start of each tick, for each entity that has physics, collision boxes are stored for all collidable entities nearby. this prevents ordering issues and having to calculate collision boxes multiple times, which is expensive since it requires firing an event

atm its stored per chunk but i can go more fine grained later if it becomes a performance issue

#EniBlockGame #GameDev #IndieDev

finally wrapped my head around how to make blocks with different orientations so i could have east/west facing doors

and immediately got stuck again trying to figure out the implementation for making them 2 blocks talls :|

which is frustrating since i'm so close to being done with this dang door!

#EniBlockGame #GameDev #IndieDev

the problem with multi-block structures is every block in the structure needs to know the structure it's a part of. i can store that, but not as a simple block

so all blocks in a multi-block structure would be complex blocks. seems wasteful but i think it's just what i gotta do 🤷‍♀️

#EniBlockGame

@eniko how much does a megastructure have of its own state? I'm guessing they have a type?
@sashabilton i figure they all just parent to the 0,0,0 corner block and any state the structure has will be kept on a block entity on that block
@eniko so blocks know their location? Would something as simple as a double linked list work?
@sashabilton yes it would. but its not so much a problem of how to store the information, there's lots of ways to do that, the problem is how to store it in the absolute most efficient way possible >_>
@eniko the challenge we live for 🤣 until it's out challenge. What is efficient in this case?

@sashabilton ideally blocks inside the structure would not need to store anything, so that simple blocks can remain simple blocks and stored wholly in the blocks array instead of having to have complex data that lives outside of it

i can come up with ways to do that, but they're more complex and inefficient in other ways

@eniko is a really good solution something you can defer until later and use just go with a quick solution? The richness you've already added to the game implies there is more to come and I wonder if you'd need to refactor any solution you do now because of additional functionality.
@sashabilton yeah, i can do the complex blocks thing for now and add optimizations later