Discussion
Loading...

#Tag

Log in
  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
Cat 🐈🥗 (D.Burch) :paw:⁠:paw: and 2 others boosted
Eniko Fox
Eniko Fox
@eniko@mastodon.gamedev.place  ·  activity timestamp yesterday

My blog post about how software rendered depth based occlusion culling in Block Game functions is out now!

https://enikofox.com/posts/software-rendered-occlusion-culling-in-block-game/

Note! Any public or quiet public/unlisted replies to this toot will be shown as comments on the blog. If you don't want that please use followers only or private mention when replying

#GameDev #IndieDev #ProcGen

Eniko does bad things to code

Software occlusion culling in Block Game

My GPU is the integrated Radeon Vega 8 that comes with my AMD Ryzen 7 5700G CPU. I tell you this so you know that my workstation is not a graphical computing powerhouse. It is, in fact, quite weak. To its credit my integrated GPU shows up as 48% faster on UserBenchmark than the GPU in my low end hardware target; a laptop I bought in 2012.That, and the fact I want my game to run well even on a potato, is why I recently decided to try my hand at writing a software rendered occlusion culling solution for the Block Game (working title) I’m developing as I’ve always been interested in the idea. Blocks and chunks are axis aligned cubes, which makes things easier, and block games tend to have a ton of hidden geometry in the form of underground caves. There are other ways to cull these, but the algorithms tend to be fairly complex and this seemed like a good way to avoid that complexity and stick with something very conceptually simple.In this post I’ll be explaining the development process and the solution that I eventually landed on. If you like you can also read the development thread I posted on Mastodon and Bluesky.Before I start though I’d like to say that this came out quite well, better than I expected. It runs in half a frame at 60 FPS or less (threaded, of course) and generally culls at least 50% of the chunks that survive frustum culling. Above ground, looking straight ahead at the horizon it’ll cull around between 50 and 60% of chunks, but indoors and below ground in caves it can cull upwards of 95% of chunks, resulting in framerates of 400+ even on my weak system. All around a resounding success, though it has some cases where it breaks down which I’ll touch on at the very end of this post.Comparison of depth occlusion culling on/off, off on left, on on right.
  • Copy link
  • Flag this post
  • Block
Eniko Fox
Eniko Fox
@eniko@mastodon.gamedev.place  ·  activity timestamp yesterday

My blog post about how software rendered depth based occlusion culling in Block Game functions is out now!

https://enikofox.com/posts/software-rendered-occlusion-culling-in-block-game/

Note! Any public or quiet public/unlisted replies to this toot will be shown as comments on the blog. If you don't want that please use followers only or private mention when replying

#GameDev #IndieDev #ProcGen

Eniko does bad things to code

Software occlusion culling in Block Game

My GPU is the integrated Radeon Vega 8 that comes with my AMD Ryzen 7 5700G CPU. I tell you this so you know that my workstation is not a graphical computing powerhouse. It is, in fact, quite weak. To its credit my integrated GPU shows up as 48% faster on UserBenchmark than the GPU in my low end hardware target; a laptop I bought in 2012.That, and the fact I want my game to run well even on a potato, is why I recently decided to try my hand at writing a software rendered occlusion culling solution for the Block Game (working title) I’m developing as I’ve always been interested in the idea. Blocks and chunks are axis aligned cubes, which makes things easier, and block games tend to have a ton of hidden geometry in the form of underground caves. There are other ways to cull these, but the algorithms tend to be fairly complex and this seemed like a good way to avoid that complexity and stick with something very conceptually simple.In this post I’ll be explaining the development process and the solution that I eventually landed on. If you like you can also read the development thread I posted on Mastodon and Bluesky.Before I start though I’d like to say that this came out quite well, better than I expected. It runs in half a frame at 60 FPS or less (threaded, of course) and generally culls at least 50% of the chunks that survive frustum culling. Above ground, looking straight ahead at the horizon it’ll cull around between 50 and 60% of chunks, but indoors and below ground in caves it can cull upwards of 95% of chunks, resulting in framerates of 400+ even on my weak system. All around a resounding success, though it has some cases where it breaks down which I’ll touch on at the very end of this post.Comparison of depth occlusion culling on/off, off on left, on on right.
  • Copy link
  • Flag this post
  • Block
Joshua Barretto boosted
Rune Skovbo Johansen
Rune Skovbo Johansen
@runevision@mastodon.gamedev.place  ·  activity timestamp last month

Adding heights to the landscape adds a lot to the feel of these little puzzle levels, and I'm happy with how the procedural terrain turned out. It feels more and more like a proper game.
#ScreenshotSaturday #IndieDev #GameDev #ProcGen

Your browser does not support the video tag.
This video cannot be previewed
Open original
First person footage from a game where the player runs around in a terraced stylized landscape, snapping photos of info on murals, carrying keys to their matching gates, playing a song to spellbind a cat used as a key for another gate. The video also shows the level first being generated as a dependency graph and a spatial graph.
  • Copy link
  • Flag this post
  • Block
Eniko Fox
Eniko Fox
@eniko@mastodon.gamedev.place  ·  activity timestamp last month

for this silly sunday, i present block game but it's hot dog stand themed

#EniBlockGame

block game gui, except instead of the usual nice blue gradient its bright yellow to bright red
block game gui, except instead of the usual nice blue gradient its bright yellow to bright red
block game gui, except instead of the usual nice blue gradient its bright yellow to bright red
Eniko Fox
Eniko Fox
@eniko@mastodon.gamedev.place replied  ·  activity timestamp last month

added crude fence blocks to block game!

they still have a full block hitbox atm but they sure do make things look nice and cozy :3

#EniBlockGame #GameDev #IndieDev #PixelArt #ProcGen

Your browser does not support the video tag.
GIF
GIF
Open
GIF
  • Copy link
  • Flag this comment
  • Block
Rune Skovbo Johansen
Rune Skovbo Johansen
@runevision@mastodon.gamedev.place  ·  activity timestamp last month

Adding heights to the landscape adds a lot to the feel of these little puzzle levels, and I'm happy with how the procedural terrain turned out. It feels more and more like a proper game.
#ScreenshotSaturday #IndieDev #GameDev #ProcGen

Your browser does not support the video tag.
This video cannot be previewed
Open original
First person footage from a game where the player runs around in a terraced stylized landscape, snapping photos of info on murals, carrying keys to their matching gates, playing a song to spellbind a cat used as a key for another gate. The video also shows the level first being generated as a dependency graph and a spatial graph.
  • Copy link
  • Flag this post
  • Block
Eniko Fox
Eniko Fox
@eniko@mastodon.gamedev.place  ·  activity timestamp last month

new (bi)weekly block game thread cause doors are done! \o/

not only are doors 2 blocks tall now, there's a generic system to create up to 16x16x16 multi-block structures just by specifying the positions and blocks in json

anyway, doors make a huge difference to the game's feel. with doors and tables and such these shacks are starting to feel like real houses

edit: correction, structures can be 32x32x32 because each axis is -16 to +15

#EniBlockGame #GameDev #IndieDev #PixelArt #ProcGen

Your browser does not support the video tag.
GIF
GIF
Open
GIF
  • Copy link
  • Flag this post
  • Block
Andrew (Television Executive) boosted
Jake in the desert
Jake in the desert
@jake4480@c.im  ·  activity timestamp 2 months ago

I hope traditional roguelike fans who follow me here have been following the progress I've boosted here and there about @josemachete79's ZAngband variant 'ZMAngband' he's been working on based on the original red box D&D rules.

Go to https://jose-machete.itch.io/zmangband07me and grab a copy to try out yourself - it's a blast!

#roguelikes #TraditionalRoguelikes #ZAngband #Angband #ProcGen #ZMAngband #itch #ItchGames #roguelike

itch.io

ZMAngband 0.7 Machete Edition by Jose Machete

Youngest bastard son of the mythical Angband variant ZAngband.
  • Copy link
  • Flag this post
  • Block
Jake in the desert
Jake in the desert
@jake4480@c.im  ·  activity timestamp 2 months ago

I hope traditional roguelike fans who follow me here have been following the progress I've boosted here and there about @josemachete79's ZAngband variant 'ZMAngband' he's been working on based on the original red box D&D rules.

Go to https://jose-machete.itch.io/zmangband07me and grab a copy to try out yourself - it's a blast!

#roguelikes #TraditionalRoguelikes #ZAngband #Angband #ProcGen #ZMAngband #itch #ItchGames #roguelike

itch.io

ZMAngband 0.7 Machete Edition by Jose Machete

Youngest bastard son of the mythical Angband variant ZAngband.
  • Copy link
  • Flag this post
  • Block
dch :flantifa: :flan_hacker: boosted
thomastc | frozenfractal
thomastc | frozenfractal
@thomastc@mastodon.gamedev.place  ·  activity timestamp 3 months ago

I messed up my chunk coordinates and accidentally stacked all chunks together. Who wants a piece of world cake?

#GameDev #IndieDev #IndieGame #GodotEngine #Godot #ProceduralGeneration #ProcGen

A stack of dozens of sheet-like terrain patches, seen from the side like a layered cake. The top layers are greenish and have trees growing on them. The layers near the bottom are grey. In between is a single layer of blueish water.
A stack of dozens of sheet-like terrain patches, seen from the side like a layered cake. The top layers are greenish and have trees growing on them. The layers near the bottom are grey. In between is a single layer of blueish water.
A stack of dozens of sheet-like terrain patches, seen from the side like a layered cake. The top layers are greenish and have trees growing on them. The layers near the bottom are grey. In between is a single layer of blueish water.
  • Copy link
  • Flag this post
  • Block
thomastc | frozenfractal
thomastc | frozenfractal
@thomastc@mastodon.gamedev.place  ·  activity timestamp 3 months ago

I messed up my chunk coordinates and accidentally stacked all chunks together. Who wants a piece of world cake?

#GameDev #IndieDev #IndieGame #GodotEngine #Godot #ProceduralGeneration #ProcGen

A stack of dozens of sheet-like terrain patches, seen from the side like a layered cake. The top layers are greenish and have trees growing on them. The layers near the bottom are grey. In between is a single layer of blueish water.
A stack of dozens of sheet-like terrain patches, seen from the side like a layered cake. The top layers are greenish and have trees growing on them. The layers near the bottom are grey. In between is a single layer of blueish water.
A stack of dozens of sheet-like terrain patches, seen from the side like a layered cake. The top layers are greenish and have trees growing on them. The layers near the bottom are grey. In between is a single layer of blueish water.
  • Copy link
  • Flag this post
  • Block
Jenniferplusplus boosted
Eniko Fox
Eniko Fox
@eniko@mastodon.gamedev.place  ·  activity timestamp 3 months ago

okay i've modelled and pixelled bushes that aren't just leaf blocks and yeah, this is looking nice and lush now! you can also walk through bushes as requested, and you can still break them for sticks for torches

#EniBlockGame #GameDev #IndieDev #ProcGen #PixelArt

Your browser does not support the video tag.
GIF
GIF
Open
GIF
  • Copy link
  • Flag this post
  • Block
Eniko Fox
Eniko Fox
@eniko@mastodon.gamedev.place  ·  activity timestamp 3 months ago

okay i've modelled and pixelled bushes that aren't just leaf blocks and yeah, this is looking nice and lush now! you can also walk through bushes as requested, and you can still break them for sticks for torches

#EniBlockGame #GameDev #IndieDev #ProcGen #PixelArt

Your browser does not support the video tag.
GIF
GIF
Open
GIF
  • Copy link
  • Flag this post
  • Block
Eniko Fox
Eniko Fox
@eniko@mastodon.gamedev.place  ·  activity timestamp 3 months ago

now spawning bushes using leaf blocks. gonna give them a bit of a different look from leaf blocks at some point but the basic idea mostly works

#EniBlockGame #GameDev #IndieDev #ProcGen

A voxel engine forest scene with leaf block clumps scattered around to make bushes
A voxel engine forest scene with leaf block clumps scattered around to make bushes
A voxel engine forest scene with leaf block clumps scattered around to make bushes
  • Copy link
  • Flag this post
  • Block
Eniko Fox
Eniko Fox
@eniko@mastodon.gamedev.place  ·  activity timestamp 3 months ago

i can now spawn sticks under/near trees during chunk generation :3

they don't do anything special, since you can get sticks from breaking leaf blocks, but it's just a little touch that makes the world feel more alive

#EniBlockGame #GameDev #IndieDev #ProcGen

A stick lies in the grass next to a tree trunk. Nearer the tree trunk is another stick, and there is another in the distance next to a fern.
A stick lies in the grass next to a tree trunk. Nearer the tree trunk is another stick, and there is another in the distance next to a fern.
A stick lies in the grass next to a tree trunk. Nearer the tree trunk is another stick, and there is another in the distance next to a fern.
  • Copy link
  • Flag this post
  • Block
halcy​ :icosahedron: boosted
Daniel Fernández Marqués
Daniel Fernández Marqués
@daniFMdev@mastodon.gamedev.place  ·  activity timestamp 3 months ago

The new SDF grids add so many possibilities. I did a small test for procedural cave generation
#geometrynodes #procgen #b3d

Your browser does not support the video tag.
GIF
GIF
Open
GIF
  • Copy link
  • Flag this post
  • Block
Daniel Fernández Marqués
Daniel Fernández Marqués
@daniFMdev@mastodon.gamedev.place  ·  activity timestamp 3 months ago

The new SDF grids add so many possibilities. I did a small test for procedural cave generation
#geometrynodes #procgen #b3d

Your browser does not support the video tag.
GIF
GIF
Open
GIF
  • Copy link
  • Flag this post
  • Block
Eniko Fox
Eniko Fox
@eniko@mastodon.gamedev.place  ·  activity timestamp 3 months ago

i can now overlay a block breaking decal on blocks, and it works on blocks with shell texturing and even nominally on objects like ferns and flowers

i draw the block's faces again using the stencil buffer, then draw the breaking decal with depth read/write off, masking using the stencil buffer

the way it works for ferns/flowers is i just draw all faces of the breaking pattern block, and any pixels outside the object model are masked

#EniBlockGame #GameDev #IndieDev #ProcGen #PixelArt

4 media
a dirt block with a block breaking pattern overlaid
a dirt block with a block breaking pattern overlaid
a dirt block with a block breaking pattern overlaid
a tree log block with a block breaking pattern overlaid
a tree log block with a block breaking pattern overlaid
a tree log block with a block breaking pattern overlaid
leaf block with block breaking pattern overlaid. it can be seen despite the pyramidal leaf shell texture that sits in front of the actual block face
leaf block with block breaking pattern overlaid. it can be seen despite the pyramidal leaf shell texture that sits in front of the actual block face
leaf block with block breaking pattern overlaid. it can be seen despite the pyramidal leaf shell texture that sits in front of the actual block face
a fern with some areas darkened, though the pixels of the breaking pattern don't match up with the fern's texture's pixels
a fern with some areas darkened, though the pixels of the breaking pattern don't match up with the fern's texture's pixels
a fern with some areas darkened, though the pixels of the breaking pattern don't match up with the fern's texture's pixels
  • Copy link
  • Flag this post
  • Block
Eniko Fox
Eniko Fox
@eniko@mastodon.gamedev.place  ·  activity timestamp 3 months ago

optimized chunk generation and graphics rebuilding, and added basic visibility culling to skip drawing chunks behind the camera

even though all the code is still synchronous the terrain generation now keeps up with the camera even at a visible chunk radius of 16, and i get 60-90 fps with a radius of 12 even on my weak pc when not generating chunks (30-40 otherwise)

and this is what a visible chunk radius of 12 looks like:

#EniBlockGame #GameDev #IndieDev #ProcGen

voxel forest extending into the distance, viewed from high in the air
voxel forest extending into the distance, viewed from high in the air
voxel forest extending into the distance, viewed from high in the air
  • Copy link
  • Flag this post
  • Block

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.1-beta.35 no JS en
Automatic federation enabled
Log in
  • Explore
  • About
  • Members
  • Code of Conduct