Log In  


Cart #picometric-6 | 2025-06-07 | Embed ▽ | No License
14

this is ready for others to play with and such. excited to see what people make :)

not entirely sure what the upwards limits are - mind the RAM usage and please prioritize reporting bugs in the thread on discord if able.
un-sandbox for full utility; default-app pcm files for convenience

video playlist -
https://www.youtube.com/playlist?list=PLhy5rmaHHiN69SN4jzkNDB-AmAMP8anxO

*note: this is not a standalone tool and is strictly intended to design for Picotron inside Picotron.

.

.

patchnotes:

v1.6 - shading rework, now uses a color tabling system for shading (view guide for details) - removed the auto-regenerate lighting setting as it's unnecessary with new system - bugfixes on group merge - probably something i forgot

v1.5 - fixed a bug in the collision template

v1.4 - added alternate dither option (changes the base tileset - reimport textures to see changes) - added group merge (merges down any higher index layers that are unlocked and share a group) - added layer shifting (scroll the X and Y to adjust the entire layer - pair with duplication and you have prefabs) - probably minor things I forgot

v1.3 - more bugfixes - flipped tile collisions fixed in app and in demonstration code - added groups - added demonstration door feature - modified the demonstration draw_map function to accommodate the group IDs - probably other things i've forgotten

v1.2 - small bugfix where undo stacks were being added erroneously (if tile placement/removal failed, it stacked anyway)

v1.1 - fixed tile generation for walls (oops!), added origin crosshair toggle and offset, added forgotten hotkey to guide (ctrl+click places a tile in rear of layer), modified the base offset to position 0,0 at center of workspace. All code snippets modified (movement simplified, collision is still WIP, and draw_map now takes arguments - thanks @xietanu for the suggestions and bug reporting
make sure to modify the code snippets as necessary!

v1.0 - initial release

14


Pushed a couple new features and changed the way you can group layers - making things like interiors etc easier. Layer group IDs can range 0-255, adjust the active layer's group by scrolling the value beneath the layer box.

Here's a longform video on how you can start your own project from scratch with this. Covers how you'll want to create your flat tiles if you haven't done so before, and caught a bug or two, too.

https://www.youtube.com/watch?v=BilWAmh_AKE

Any criticism, feedback, etc is invited and welcome! Especially things like hotkey layout - although perhaps I make this configurable eventually.


This is cool!

What are your thoughts on:

  • Sorting layers by depth automatically?
  • 8-way movement slides smoothly against lines?
  • Providing support code as a .lua file we can copy into our cart?

Thanks! For clarification's sake with the depth, do you mean one layer vs. another, or changing depth around player position?
The former is effectively just the layer's # (at least with in-app and snippet rendering), but I could try and find somewhere in the UI to squeeze a Z level.
As far as relative depth it's something I experimented with very early but ran into some walls and haven't revisited yet. Perhaps tomorrow I give that a look.
As far as the collision/movement, I'd like to replicate that, but have struggled so far. I'll be revisiting that too. Sliding is great! But the version I had, it pierced the wall too frequently to be reliable.
Last point definitely makes sense, though I'm having trouble finding a way to directly clipboard a .lua file, without copying it to a destination. I can probably reformat the clipboarding code for the next release to read a .lua file instead of a segment of a .lua file; meaning, at the least, the files would be able to be copied out of the picometric cart and just include()'d.

Let me know if there's something I missed though - I delved through wm and the system lib a bit but I'd consider myself a lua novice, and may have missed something.


So after some quick messing with draw order, I have another idea for the height sorting but it will require interweaving the systems a bit more; and I'll have to experiment to see if it's CPU% viable. The idea being, detect the tile shape of the player position during movement; to A) possibly determine whether to slow or hasten them in accordance with the slope, and B) feed this to a "player_z" var that can ride up and down with the player. Feeding that to a slightly modified draw_map function, and using the same type of logic as the draw_after for objects, it should absolutely be doable, and could make for some nice scenes if used well. But it's all a matter of how expensive the detection will be.

It'll probably need to work in conjunction with an additional Z height control on tile placement, too. A fair bit of work - I'm willing to give it a look but I don't want to promise anything since I can't guess how efficient it'll be.


Good news @bengarney - collision is nearly perfect now, with sliding - with massive thanks to @xietanu for completely overhauling it. I have a few things to map back out (re-implementing the object collisions, and seeing if I can pre-parse some of it for optimization's sake) - but that (& a "copy snippets folder") should be out sometime this week. I'll change the guide around a bit in coordination with that, to just clipboard the main function calls, and probably auto-filled fetch calls for the tables.


This is awesome! I will try this when I have time. I hope that your improvements are beneficial for others, though. Isometric is annoying to get right and annoying to generically edit; having something that largely works out of box should be a boon for many interesting projects.


1

Sorry, I actually haven't gotten those fixes posted yet; I ended up going down another path so to speak, and my testing build is currently a bit broken.

I've discovered Tiled's project (https://thorbjorn.itch.io/tiled) which... seems there's a lot to learn from that. Honestly, I think getting an interpreter together for that inside picotron would be a more robust solution. I've been sidetracked working a on full block style tile-generator to pair with that but admittedly I've lost a quite a bit of momentum in this.

I mentioned it in the discord but if anyone comes across this here and wants to modify, revamp, whatever- I dropped an MIT license in the build from first upload, so go wild.

I'll try to get to posting the fixed version but yeah, got a bit of repair before it's ready and it's not immediately going on my plate.


proud of u

🤍, toes



[Please log in to post a comment]