Hi all,
I have been out for a while and I come back with some steps forward witn my game. I’m going for a simple aesthetic style with flat colors, soft gradients, and bold black lines. I’ve drawn some sprites and put together a small screen showing the tilesets I’ve “finished,” which I created using a combination of Blender and Inkscape—a combination I think worked out pretty well.
I have developed a plugin that let me draw a single bit map over a TileMapLayer that let me export hand draws to my own 9BitsTileMap system. I had to hack the TileMapLayerEditor a bit to be able to make it to work since there is no interface for it.
Roads work same.
The logic and rendering of the game is GPU driven. I haven’t fully implemented it in the game yet, but my tests are working like a charm. I can simulate 100k agents and render 60k objects in less than 4 ms on my modest graphics card. My wife’s iGPU spends around 12 ms. I’m really happy with it.
Hope you like it. Have fun!
6 Likes
May i ask - how your plugin works? how do you convert hand-drawn terrain into tile map layers?
BTW, your game looks cool, i like the art style cuz it’s simple, yet redable, wish you luck with production
1 Like
It looks lovely, I can just imagine the roads full of busy little vehicles 
Any plans for a playable build?
1 Like
Hi, thank you for your kind words 
Sorry I meant I did it possible to draw bits by hand over a TileMapLayer, so I can export it to my own tilemap/tileset system. The terrain tileset is fully rendered in Blender. The plugin is not really shareable. It is tricky as hell. I don’t even know how to explain it. Let’s try.
The plugin is built as a common EditorPlugin. I configured it to catch inputs and draw an overlay when activated. _forward_canvas_gui_input and _forward_canvas_draw_over_viewport do all the magic. I also built a dirty hack to get TileMapLayerEditor tools and let me discriminate actions. This is extremelly weak and can break any engine update, but it is good enough for me by now. All the rest is done into a custom type inherited from TileMapLayer.
I use the terrain definition variables and bits to define a 9 bits mask for each tile, starting from top left in a row first mode, been the center the 9th bit. But I don’t use terrain painting, I overwrite the editor behavior by a deferred call of the painting function.
The painting function uses a 512 (9 bits) members array that I bake when the tileset changes in order to know witch tile corresponds to the edited cell. This array is filled by the tile descriptions stated by the tileset terrain settings. I check the central bit of the surrounding tiles and get an integer mask that is the index into the array. It also updates the surrounding cells.
Thera are many other things working, like tile sustitution or tileset management, but that another story. Maybe, some day, I can share it in an usable way.
Greets!
Thank you! That’s the idea. Many vehicles and pedestrians in movement.
A playable build is too far yet, but I think in a couple of mounths I wil have everything working together. I plan to share a tech build to know how it works out of my machines. The game itself is not fully defined yet. Stay tunned!
1 Like
Great and promising start !
1 Like