Stats

4
Projects
32
Devlogs
34
Votes
1
Ships

Coding Time

All Time: 260h 39m
Today: 4h 17m

Member Since

June 25, 2025

Badges

1
🚢
Maiden Voyage
you shipped your first project! the journey begins...

Projects

4
🚀
17 devlogs 27 days ago
Bevy Snake Game
1 devlog 28 days ago
🚀
9 devlogs about 2 months ago
🚀
5 devlogs about 2 months ago

Activity

I finished the mesher now Im reworking the block library. Its sorta been a mess me working on many things at once and not really finishing anything difinitivly.

Update attachment

I've still been working on meshing as well as revamping jsut everything. I've been trying to make it super idiomatic for rust.

Update attachment

I finished the block_library and saw another engine using binary greedy meshing, which I started cloning.

Update attachment

I compeltely forgot about logging. Anyways I've been working on a way to fix the weird uv problems by using a texture array

Update attachment

I finally figured out the bug (more of a PEBKAC error) which I could've fixed if I read the docs better. I got some jank working, still not entierly sure whats happening though.

Update attachment

So I have a framework for the block library thats theoretically done, it should now properly lookup attributes from the block library, however i'm unable to load the block library for some reason.

Update attachment

So after I setup the basic thing I started setting up an external blocklibrary asset so that I could map voxels to textures and materials without baking it into the binary. But I'm been having a ton of trouble actually using the blocklibrary. At first I had threading issues because bevys assets arent nativly threadsafe. Now I'm trying to figure out how to map the textures and materials to Meshes.

Update attachment

I did a bunch of stuff integrated ndshape and block-mesh, and greatly simplified how chunks worked. I finally got a working prototype.

Update attachment

I started to setup baking visibility into the voxels to efficiently mesh, but it got really confusing with my current setup. I also started looking at some other voxel engines and I'm switching how a few things are setup to make this easier as well as using some external crates I didn't know existed.

Update attachment

I've switched back to linear arrays as a representation. I also managed to start rendering some basic chunks however I've started switching some of the systems to be more reliant on bevy.

Update attachment

I started octree representation of chunks and starting meshing.

Update attachment

I've finally finished pallet chunk and array chunk. It took like super long because I generified everything. It was super satisfying but if i'm going to finish i think I gotta code rough.
Heres all the stuff I did:
Voxel:
A wrapper around an id.

Space:
I define a global voxel position as a ChunkPos with a VoxelLocalPosition (bound from 0 to chunk length)
I defined some traits to help with VoxelLocalPosition, CyclicBoundInt, BoundInt, and Wrapper that provide methods to ensure that the internal value doesn't leave the bounds.

Chunk Storage:
VoxelLocalPosition -> flatarrayindex
ArrayChunk, just a array of voxels.
PalletChunk --
Pallet - A sorted array of Voxels
PackedIndices - A array of numbers that pack smaller numbers (indices pointing to Pallet) in them using the smallest number of bits.

You can see more info in the Repo.

Next im gonna define a volumetric object made of chunks that will eventually turn into the world/ other objects made of voxels.

Update attachment

I've finished the PalletChunk and ArrayChunk implimentation as well as chunk space.

Update attachment

There is a bug where my first two devlogs seemed to have lost their time and now that time is stored in Since Last Devlog. I want to see what happens if I make a new devlog right after I made the old one even though I dont have more time.

Update attachment

I've finished the utils required for chunks. They are super polished. I have a rough structure for both flat chunks and for pallet chunks. You can see more commits in the repo.

Update attachment

I've made a number of changes however I haven't really finished any features. Notably I refined the bit_struct to have more methods to handle changing its internal data. I also am working on some other traits to help impliment a BoundInt that must be with a range: this is for local chunk coords which must be between 0 and 15.

Update attachment

I added a tool to store voxel pallets as a data efficient bit struct.
Anyway now I have to go actually create all the important systems instead of spending way too long optimizing.

Update attachment
Raphael Larsen
Raphael Larsen created a project
27d ago

Voxel Tools Bevy

Some voxel tools for Bevy Engine.

17 devlogs 0 followers

I wanted to try bevy out, this is a snake game made following this tutorial: https://mbuffett.com/posts/bevy-snake-tutorial/

This project was majority me messing around with bevy, and rust. I tried to really organize my project in a way that a fully featured game could be. I also exported it for web.

Thanks for checking it out!

Update attachment
Raphael Larsen
Raphael Larsen created a project
28d ago

Bevy Snake Game

Super simple Snake Game clone from bevy tutorial.

Bevy Snake Game
1 devlog 0 followers Shipped

Ive been mostly trying to host a server free online so I can test It I just cannot seem to join a server no matter what I do.

Update attachment

I've added a way to access punched/proxied addresses through a thread_safe vector. I've also added this to the testing of the Client api.

Update attachment

I've reorganized a ton of stuff. Separated the Godot bindings from the general purpose server. Separated the Listings from the server, and just went over everything with a comb.

Update attachment

Implemented a way for the Godot API to send signals upon task completion by polling a reference in the main thread.

Update attachment

I cleaned up the testing script and added timeouts to client requests. Then used those tests to find a lock out.

I then fixed the lockout by separating the locks so the first one was dropped when the second one was used.

Update attachment

I've setup client code, wrote some tests and fixed some bugs.
I'm gonna start doing more devlogs on here.

Update attachment

I have finished setting up the server-side implementation and begun create a godot API for the client.

Update attachment

Switches over to tonic for RPC functionality.

Update attachment

Setup simple WS connection split into Read and write.

I had previously setup a server to use use http, but that was really messy and a WebSocket connection would be far cleaner. I also had not made a rust program before so that was good practice.

Update attachment
Raphael Larsen
Raphael Larsen created a project
45d ago

Rust NAT puncher server.

A Server that helps two peers connect in a p2p connection. If the connection fails then it acts as a proxy. I'm also planning on adding godot bindings.

9 devlogs 0 followers

I added a bomb weapon, rifle weapon, bullets. I also made movement of weapons independent from robot movement.

Update attachment

I changed some internal systems. Then added a basic main menu.

Update attachment

I added P2P hosting on the local network.

I also added the robots to teams however their pathfinding is a bit off.

I setup the main towers with some placeholder art and setup 2 simple pathfinding nodes for a bot.

Update attachment

Today I added some of the more complex components for the robots such as NavReceiver, ActionEmitter, and ActionReceiver (I'll give them more descriptive names in game).
The three I referenced can override the navigation component, for ease of use I a NavHandler component as an inbetween to handle the absense of a component. I also moved a lot of the NavComponent Logic into the NavHandler.
I additionally added support for Hitboxes and Hurtboxes, their interaction with the HealthComponent, and added an interaction with the DeathComponent to handle zeroed health. Because I plan on allow multiple HealthComponents I also added a HealthHandler that acts as the go-between. Both handler components are obligated to be in the robot.

I also more throughly organized the filesystem and tried to make sure everything followed some standards.

The screenshot is the ViewCone for the camera using procedural raycasts. I just think it looks cool.

The UI was bugging me and I started changing it, but didnt finish today.

Also although this is the first devlog I had been working on this game for 2 days beforehand.

Update attachment
Raphael Larsen
Raphael Larsen created a project
51d ago

Disposable

A pvp online game where you create dynamic robots from a variety of components. The focus of this game is on managing economy, information, and risk in real time. This game is built using Godot engine.

5 devlogs 0 followers
Raphael Larsen
Raphael Larsen joined Summer of Making
51d ago

This was widely regarded as a great move by everyone.