00:00
00:00
ProjectRootProxy
Game developer, music composer, creator of retro-futurist post-empire RPG lore.

Joined on 5/15/25

Level:
2
Exp Points:
30 / 50
Exp Rank:
> 100,000
Vote Power:
2.27 votes
Rank:
Civilian
Global Rank:
> 100,000
Blams:
0
Saves:
4
B/P Bonus:
0%
Whistle:
Normal

First person exterior tile system demo

Posted by ProjectRootProxy - 8 hours ago


https://odysee.com/@ProjectRootProxy:4/first-person-tile-system-demo:5


iu_1458384_26037529.webp


What is this?


This is a test of the result of my custom Blender Python 3d exterior / first-person tile system creation addon. The video shows a test case's deployment to NW.js via a custom Rust and c++ Node native module. This is an asset pipeline from Blender to NW.js, running Babylon.js. This is being made to aid the development of a game I am working on. 


How does it work?


Imagine the player character always being in the center light-blue high detail tile. Every time the player character moves into a neighbor tile, the pre-determined combo of companion tiles to load for that occupied tile will load any needed tiles that are not already loaded, while removing tiles that are no longer needed.


Details:


The light blue default tiles were subdivided to 263k vertices each (leading to glb files of roughly 14mb), with the larger, lower detail tiles subdivided at around 25% or so of their child tiles subdivision amounts to stress test the system a bit. One of the displayed tile solutions includes 4 unique 2048 sized textures per light-blue tile, and on the neighbors that surround it, as well as objects other than the default tile geometry with their own materials and textures. The system can be thought of as a tiered LOD system, where neighbor, parent and child links are used to pre-determine which tiles to load as a more efficient method than using distance as the determining factor, which would require iterating all items in a list (some combo of loaded tiles or potential tiles to load, depending) while running the game and checking distances, which is less efficient than the method used here, which is essentially a "baked" LOD solution.


What's next:


Currently the day/night cycle system is being worked on, a bit of the star globe can be seen behind the tiles. The Blender to NW.js pipeline features and NW.js setup to deploy the tiles has been working for about 2 weeks, with a lot of testing and optimization during that time, so right now, the minimum 3d style this will support is now essentially "low-poly, pixelated textures, sprite or low poly NPCs". This could change as development proceeds, as the tech available determines the gameplay and art style that can be used. With little effort, this could also be modified to support a top-down mechanic.


Other stuff:


Below is a screenshot of the custom world builder addon for Blender I've been developing for over a year, which is being used to create and export the tile systems to json, glb and png, using a quasi-btree folder structure. Some of the other tabs are more custom working tools too, others are highly WIP.


iu_1458390_26037529.webp


The next screenshot shows another custom tool in the middle of the pipeline, which grabs all the json, glb and image files that the Python addon creates, and reformats some of it for Rust (the jsons are converted to a binary format that is very close to what Rust needs for super fast deserialization), and inserts everything into SQLite databases for auto-magic deployment of a tile system. The tool shown below is a simple way of doing command line-esque interfaces via json, for speedy tool development, using Python Flask.


iu_1458394_26037529.png


Tags:

Comments

Comments ain't a thing here.