@bleedingphoenix @hazlin Notch made a fun game I have a lot of fond memories of. The game is gone but now his seethe he makes these people feel is forever. It is what it is, I’m happy it happened and I’ll always miss inf_dev
Conversation
Notices
-
Turdicus, of Christmas Time (turdicus@poa.st)'s status on Thursday, 05-Sep-2024 06:58:01 JST Turdicus, of Christmas Time - 🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this.
-
WhiteExodite (bleedingphoenix@wolfgirl.bar)'s status on Thursday, 05-Sep-2024 16:58:42 JST WhiteExodite @merchantHelios @Turdicus @hazlin my siblings still play the Xbox 360 version, and i kinda want to start playing Minetest now. The vision can still live on somewhat. 🛡 ⚔️ McCreeaboo ⚔️ 🛡 repeated this. -
merchantHelios (merchanthelios@poa.st)'s status on Thursday, 05-Sep-2024 16:58:43 JST merchantHelios @Turdicus @bleedingphoenix @hazlin >that game is gone
versionbro?? -
hazlin no plap pirate (hazlin@shortstacksran.ch)'s status on Thursday, 05-Sep-2024 16:58:51 JST hazlin no plap pirate @bleedingphoenix @Turdicus @merchantHelios
Still hopeful about making my own clone :D Got too much tunnel vision about optimization last attempt.
But, it feels like it is only a matter of time :D🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this. -
Ace Ice (ace66062@bae.st)'s status on Thursday, 05-Sep-2024 16:59:00 JST Ace Ice @bleedingphoenix @Turdicus @merchantHelios @hazlin Aside from being devoid of the original ambience of Minecraft, Minetest is an okay alternative. Just make sure not to actually play "Minetest Game" and something like Mineclone2 instead 🛡 ⚔️ McCreeaboo ⚔️ 🛡 repeated this. -
WhiteExodite (bleedingphoenix@wolfgirl.bar)'s status on Thursday, 05-Sep-2024 16:59:02 JST WhiteExodite @Ace66062 @Turdicus @merchantHelios @hazlin Mineclone2 with the Everness biomes looks really nice 🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this. -
🛡 ⚔️ McCreeaboo ⚔️ 🛡 (moebritannica@varishangout.net)'s status on Thursday, 05-Sep-2024 17:00:23 JST 🛡 ⚔️ McCreeaboo ⚔️ 🛡 @hazlin @Turdicus @merchantHelios @bleedingphoenix how you making this :Miyu_Peek: -
hazlin no plap pirate (hazlin@shortstacksran.ch)'s status on Thursday, 05-Sep-2024 17:11:15 JST hazlin no plap pirate @MoeBritannica @Turdicus @merchantHelios @bleedingphoenix
Just using godot. You can build a solid object that looks like a bunch of cubes, touching or not, and give the whole thing to the gpu.
I'm not sure what performance limitations there are, but it seems to work just fine.
array_block_ids -> faces+texture -> gpu to render🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this. -
hazlin no plap pirate (hazlin@shortstacksran.ch)'s status on Thursday, 05-Sep-2024 17:34:41 JST hazlin no plap pirate @MoeBritannica @Turdicus @bleedingphoenix @merchantHelios
For my testing, I am just passing simple arrays to a function, that does as described.🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this. -
🛡 ⚔️ McCreeaboo ⚔️ 🛡 (moebritannica@varishangout.net)'s status on Thursday, 05-Sep-2024 18:27:04 JST 🛡 ⚔️ McCreeaboo ⚔️ 🛡 @hazlin @Turdicus @merchantHelios @bleedingphoenix awesome project. :satania_thumbs: been doing something similar in scratch with C++ and SDL for learning OpenGL stuff. Textures and meshes were procedurally generated. Performance is atrocious though but its fun to mess around with the GPU :vajra_comfy: -
hazlin no plap pirate (hazlin@shortstacksran.ch)'s status on Thursday, 05-Sep-2024 22:19:51 JST hazlin no plap pirate @MoeBritannica @bleedingphoenix
:O Very cool
I've only played around with WebGL enough to draw an F xD
> Performance is atrocious
> 24 FPS
I... have no idea what performance is like in godot. Let me run some tests for you.
(1 hour and 15 minutes later...)
For the 3x3x3 cube arrays, they are computed and placed into the world in less than 1 ms.
The 85000 visible cubes array, takes more like a whole frame to push to the GPU. But, the array rebuild itself takes a long time lol. (demonstrated in attached video)
I am not sure what a good "chunk" size is, but (more testing...) 16x16x16 is about half a frame's worth of time to generate+push. (screenshot)
... I guess that is what my chunk size will be for explorations in cubes with godot xD🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this. -
🛡 ⚔️ McCreeaboo ⚔️ 🛡 (moebritannica@varishangout.net)'s status on Thursday, 05-Sep-2024 22:46:25 JST 🛡 ⚔️ McCreeaboo ⚔️ 🛡 @hazlin @bleedingphoenix I have like 2500 cubes to demo, reaching 20-30 FPS. I guess it's because I let them rotate every while and have to recalculate their vertices for every frame, or I rather have an unimpressive GPU (NVIDIA Quadro P400) or both.
I could resolve it with instancing but I'll leave them for decorations later, wanted to do some dynamic meshes for now. -
hazlin no plap pirate (hazlin@shortstacksran.ch)'s status on Friday, 06-Sep-2024 10:49:56 JST hazlin no plap pirate @MoeBritannica @bleedingphoenix
@MoeBritannica @bleedingphoenix
>Rotating
Everything I've written is for, static, axial aligned cubes xD
I'm not even sure HOW to rotate the vertexes for a cube around the center point for the cube.
(searching...)
vertex_rotated = (v0 - v_pivot).rotate(v_axisY,degreesX).rotate.(v_axisX,degreesY) + v_pivot
:D
Spawning 2500 blocks, initiating 2 axis rotation every frame, computing in main thread, and... (attached video) 24 FPS, it is the same lol.🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this. -
🛡 ⚔️ McCreeaboo ⚔️ 🛡 (moebritannica@varishangout.net)'s status on Friday, 06-Sep-2024 11:07:11 JST 🛡 ⚔️ McCreeaboo ⚔️ 🛡 @hazlin @bleedingphoenix I'd done vertex rotation through matrix multiplications, which is great for defining the Transform of said object's rotation, scale, and translation. I'm sure Godot already abstracted the mathematical calculations behind Transform but in my end, it's basically a DIY implementation atp. -
🛡 ⚔️ McCreeaboo ⚔️ 🛡 (moebritannica@varishangout.net)'s status on Friday, 06-Sep-2024 11:27:44 JST 🛡 ⚔️ McCreeaboo ⚔️ 🛡 @hazlin @bleedingphoenix for performance though I guess its really a mix between CPU and GPU bottlenecks. Vertex calculations in CPU-side is itself fine, there's at some point the GPU would struggle to draw that many objects. Same when there's too many objects for the CPU to update which ends up making the GPU wait till the update is finish. -
BallsackGroyper1488 (ballsackgyroper1488@varishangout.net)'s status on Friday, 06-Sep-2024 13:18:35 JST BallsackGroyper1488 @MoeBritannica @bleedingphoenix @hazlin What resources/books would you recommend to get into learning OpenGL/GPU programming? -
🛡 ⚔️ McCreeaboo ⚔️ 🛡 (moebritannica@varishangout.net)'s status on Friday, 06-Sep-2024 13:18:35 JST 🛡 ⚔️ McCreeaboo ⚔️ 🛡 @BallsackGyroper1488 @bleedingphoenix @hazlin
learnopengl.com is a great guidebook of learning OpenGL and opengl.gpuinfo.org for checking whether your GPU/GPU drivers support one of the OpenGL extensions you wanna use. -
hazlin no plap pirate (hazlin@shortstacksran.ch)'s status on Friday, 06-Sep-2024 19:38:12 JST hazlin no plap pirate @MoeBritannica @bleedingphoenix
So, I made the CPU computation step, threaded (because that is where the most time is being consumed each frame)... and I think this is where real C++ would shine, because GDScript has really, really diminishing returns for more CPU time via threads xD🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this. -
hazlin no plap pirate (hazlin@shortstacksran.ch)'s status on Friday, 06-Sep-2024 19:38:16 JST hazlin no plap pirate @MoeBritannica @bleedingphoenix
All modes are single thread, block count 2500 (attached video):
Mode 1 -> Compute everything every frame -> 24 FPS
Mode 2 -> Cache everything, just update vertexes, synchronous rotation -> 60+ FPS
Mode 2 -> Cache everything, just update vertexes, random rotation -> 60+ FPS
Today I learned that ram is more important than CPU count for godot xD🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this. -
🛡 ⚔️ McCreeaboo ⚔️ 🛡 (moebritannica@varishangout.net)'s status on Saturday, 07-Sep-2024 08:40:00 JST 🛡 ⚔️ McCreeaboo ⚔️ 🛡 @hazlin @bleedingphoenix nice job :chino_wow:
how were you caching them in Godot? -
hazlin no plap pirate (hazlin@shortstacksran.ch)'s status on Saturday, 07-Sep-2024 21:28:48 JST hazlin no plap pirate @MoeBritannica @bleedingphoenix
I compute the arrays for rendering, store them, track the relationship between face offsets and blocks, and use a separate update/render function. (And, I don't know if that is a good way to describe it, so I've made you a diagram of annotated code xD)🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this. -
🛡 ⚔️ McCreeaboo ⚔️ 🛡 (moebritannica@varishangout.net)'s status on Saturday, 07-Sep-2024 23:21:39 JST 🛡 ⚔️ McCreeaboo ⚔️ 🛡 @hazlin @bleedingphoenix interesting approach for performance :jahy_inspect:
Though in my case initializing everything into a global array and modifying it there isn't feasible since this sacrifice flexibility and control as the cubes in my program were treated independently especially if I want one of the cube to be changed/removed. The only time all my cubes' vertices merge into an array is when I batched them into my batch-renderer for it to be sent into the GPU. -
Loliphile (mikuphile@gearlandia.haus)'s status on Saturday, 07-Sep-2024 23:37:38 JST Loliphile @MoeBritannica @hazlin @bleedingphoenix Holy autismo. I need to continue playing with vulkan someday. 🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this. -
🛡 ⚔️ McCreeaboo ⚔️ 🛡 (moebritannica@varishangout.net)'s status on Sunday, 08-Sep-2024 09:02:50 JST 🛡 ⚔️ McCreeaboo ⚔️ 🛡 @mikuphile @hazlin @bleedingphoenix would like to dabble with Vulkan once I understand a lot with OpenGL from lighting to animations :miku_dab: -
Loliphile (mikuphile@gearlandia.haus)'s status on Sunday, 08-Sep-2024 12:44:34 JST Loliphile @MoeBritannica @hazlin @bleedingphoenix From what I've seen it looks like you can just use vulkan like you would use opengl, except that it takes more typing to get anything done. However, vulkan did fix some niggerlicious things about opengl, for example you don't give the driver shader source code so you don't have to worry about compiler bugs with different drivers. Additionally, it has compute support in the same api so using resources for both compute and graphics is easier. Finally, it does allow lower level access so you can do more advanced techniques (I want to look into gpu‐driven rendering eventually). Maybe opengl allows some of those things too with extensions and later versions, but I am worried about driver support and at that point you might as well just use proper vulkan. 🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this. -
Johnny Peligro, now on Mitra! (mischievoustomato@mitra.taihou.website)'s status on Sunday, 08-Sep-2024 12:44:35 JST Johnny Peligro, now on Mitra! @MoeBritannica @mikuphile @bleedingphoenix @hazlin i did some opengl stuff for uni last year!
🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this. -
🛡 ⚔️ McCreeaboo ⚔️ 🛡 (moebritannica@varishangout.net)'s status on Sunday, 08-Sep-2024 13:11:55 JST 🛡 ⚔️ McCreeaboo ⚔️ 🛡 @mischievoustomato @mikuphile @hazlin @bleedingphoenix did something similar for uni too except we're using Python and some higher-level graphics library for drawing random shapes :mokou_lying:
they only taught us about Java and Python :akko_tired: -
hazlin no plap pirate (hazlin@shortstacksran.ch)'s status on Sunday, 08-Sep-2024 20:34:28 JST hazlin no plap pirate @MoeBritannica @mikuphile @mischievoustomato @bleedingphoenix had a similar experience 🛡 ⚔️ McCreeaboo ⚔️ 🛡 likes this.