Show older

Like, so that you can have tables and desks covered by all sorts of stuff, or fancy woodwork with support beams and platforms, or implement a variety of different kinds of walls, and then have a bunch of different modifers - moss, cracks, scratches, crumbling bricks, bloodstains, etc, etc, and implement each of those individually, and then stack them on top of the different kinds of walls.

I dunno though, That involves all sorts of extra memory usage and complexity. Be cool though? :/

Alright, so the textures could still use some work, but they're better. I'll leave them for now and work on some other stuff. Gonna work on cleaning up the code and improving efficiency. Anybody who wants to help, it'd be appreciated! XD

Alright, implemented some basic interior culling. Now I need to figure out the larger world structure beyond just chunks, and then sort out a better graphics pipeline, I think. :/

Added proper Regions today, my method of working with multiple chunks at once. Now I need to work on that proper graphics pileline, as it lags HARD if I try and render so much as a region of empty space. XD

Been working on a bunch of structural stuff, nothing that makes for a good screenshot though. Still need to rework the graphics pipeline. I'm looking forward to doing trees - I hope to do some kind of fancy cellular automata to make them grow really nice. Want to do more detail than minecraft does, too - Like, have logs, and then branches, and then maybe twigs, and then maybe leaves? I dunno - I'll figure it out. XD

Alright, think I'm mostly done sorting out regions and hunting down the last of their bugs, at least for now. Got interior culling working between chunks and everything. Maybe a bit of code hygiene, and then it's time to finally tackle that graphics pipeline. XD

Lol no, I lied, I need to rethink my Region code entirely. See, I was gonna have regions refer to each other linked list style, and just create new ones at the edge as needed - but there's a problem.

So, say one person starts at spawn and goes way north, and then west? So far no problem - you have a trail of regions going way north, and then west, linking to each other. Then suppose that person dies and respawns at spawn - and this time, they go way west, and then north. So you end up with another trail of regions going west, and then north - and then what happens where these two trails intersect?

Either they pass through each other intangibly (Bad!) or you need a monstrous algorithm that searches, like, the entire map (Bad? I think?), or you need a global positioning system. (Which will eventually run into limits on number size, which is what I was trying to avoid in the first place.) :/

So, I need to think about this. Maybe said map searching algorithm wouldn't be too bad? There are some pretty efficient search algorithms, I think, though it could still get pretty gnarly. I was also considering just going octree all the way up - not entirely sure that will work properly, though. I mean, I guess I could just give up on having a truly infinite world, subject only to hardware limitations? Just doing a few million blocks like minecraft does is /probably/ sufficient. :/

But I really wanted it to be properly infinite. -_-

No, octrees all the way up has the same issue with limitations on the size of the coordinate numbers. I guess maaaybe there's a clever solution with a good search algorithm or some method of data storing? Or some way of just extending the coordinate numbers as necessary, though that sounds like it would cause problems once people start actually playing way out in those extended far reaches. Or I just need to give up on a truly infinite world. :/

Maybe extending the coordinate numbers as necessary, and only using them for tracking region coordinates? So, it shouldn't cause slowdown for players, only when it needs to check region coordinates to ensure proper map knitting, and that should be pretty minor. :/

Alright, so my friend suggested just using coordinates for the chunks, and then making a hashmap - which is much simpler. And I should be able to just extend the numbers for the chunk coordinates as much as I need? I dunno, I'll think about it. :/

Alright, think I'm done with coords and regions for now. Time to finally take a crack at that graphics pipeline I've been talking about. My friend put up some examples of how to do the kind of thing, so now I just need to look through them. Wish me luck! XD

Okay, I got to the point of rendering a single texture, which means I'm like 90% done. Now I just need to render the other couple hundred textures. XD

Well, I've got a whole cube, but I don;t like my current implementation -it uses a separate vertexbuffer for every different texture, which is no good. Actually gonna look at ditching saved textures entirely and moving to wholly procedural textures, using fancy shader business? I dunno, not sure. I'ma try it and see how it goes. XD

Alright, working on procedural textures. Still needs a lot of work, but at least I'm drawing something? XD

Well, a bit closer to what I want, and I've simplified the code and understand it better. So, progress? XD

Just ripped out all the old drawing code. Trying to decide whether or not to change my old method of generating textures - it's not super shader friendly, I think, nor very good overall. But of course, how would I redo things...? Hmmm. :/

Alright, ripped out my old code for generating colors and textures. Lot of code, but it was all kinda meh anyway, and I need to make space for something new. Now to decide exactly what I want to do for generating textures. My old implementation for picking colors for the various bits of a texture was ennecessarily complicated, but I still want to do something similar... :/

Alright, passing colors to the graphics card. Now I just need to make sure I have colors I actually want. XD

Alright, I have the colors I want! Now I need to actually pass the positions of the actual blocks, and to draw them all. Still not entirely sure how to do this - do I make each block type it's own data structure, or do I pack them all into one? The second will be more difficult, but will likely come with some real savings... I dunno, I'll have to see. :/

And in numbers that would have lagged the game, before. Everything goes according to Keikaku!

Alright, now we're drawing with the right substances! And via rendering all the different pallettes to a texture and sampling that texture, no less. Not Bad! XD

Of course, this raises the question of what I do now - do I start working on worldgen? Or do I want to work on mesh optimization?Or something else? :/

Alright, made the textures fully random, instead of repeating! XD

Still working on polishing up my shaders. Gotta add the dynamic shader equivalent of mipmapping, I think - the textures dissolve into static at long distances, at the moment. :/

Gonna just try making things blur at long distances, see where that gets me. Haven't finished implementing it yet though. And, it turns out my randomization function has a few weird artifacts:

Okay, working on changing up my shader so it blurs things the further away they get, to reduce that weird static you get when things are far away. Problem is, I have no idea how to write a good blur function. Can anyone advise me? This is the relevant file, with my current attempt at the end: gitlab.com/AngularAngel/omnicr

...Why is my dirt green? I don't understand! Aaaaaaaaargh! (╯°□°)╯︵ ┻━┻

Alright, I got it more or less working. Looks kinda crappy when you have large spreads of a single block, but it'll do for now. Now, I need to figure out what I'm doing next, I guess. Mesh Optimization, maybe? :/

Alright, this is better. I have things in the right spots, they just need to be the right size. Shouldn't be too hard! XD

Alright, that's better, but still some room for improvement. XD

Follow

Yessssss!!!! Finally!

...I'm drawing 1/6th of the faces. But, for now I'll take it. XD

· · Web · 1 · 1 · 1

Oh, what? It just works!? Bullshit, no way!! :0

.....I don't fucking believe it, get outa here. >:[

Yeah I was right. Hidden bugs, disgusting.

Here we have code that's being honest about it's bugs. Much preferable! >:[

Sign in to participate in the conversation
ACP 🎉🍰

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!