Increasingly, as I meddle with pixel movement, I find myself being more and more impeded by BYOND's rigid, tiled-based set up. From collision detection, to the way turfs are set up - it often leads to my efforts resulting in environments that are un-natural and immersion breaking.
https://pixanna.nl/wp-content/uploads/2016/12/ screenshot_7.png
Take this image for example. The above as it is, if not completely impossible, would be hell to pull off. Why? Because trees, if set as turfs, have to be set on a specific tiled-grid determined at the beginning of the game development process. This means I'd have to align trees or any other accessories of that caliber in un-natural specific positions.
Now obviously, there are ways to evade the problems I just proposed.
"Why not use images?" - They'll say.
But the only way to rig up images onto a map would be to set objects on the map editor, the nhave those specific objects set to apply it's sprite onto it's position, WHILE subsequently deleting itself from the world on start up. Images also lack the ability to detect collision. That. . . sounds a little ocky if you ask me.
"Well, just use objects. That'll allow you to have accurate bounding boxes for collision AND a bunch of other features!" -- They'll say.
But that runs the risk of you having an object limit for the world. More over. . . it brings un-necessary memory consumption since it's assuming that the environmental assets might move. When more likely than not, the effect is just for pure eye candy.
The Idea
The answer to all of my angst!? To add a new atom type - named Textures.
Textures would function very similarly to turfs in that the primarily object would to add beauty and obstacles to the world. However, there are some few crucial differences as listed below.
- They'd have bounding boxes - like atom/movable.
- They'd be able to utilize pixel_z
- They'd gain access to sub-tile positions. IE, step_x/y.
- Could freely be destroyed, modified or even picked up like objects - albeit they lack any movement procedures themselves
Purpose
As explained before, Textures more or less serves as an enhanced option to Turfs. Adding these features, while not a necessity, would grant a lot more flexibility to developers. With more precise collision - for example, with common gathering game professions - you'd gain the ability to create more efficient path-finding and more or less have to jump through less hoops to get basic functions spawned in.
The effects goes much more than simply gathering professions. Even for example with cliffs, instead of having to do elaborate tracking of a player's location, the cliffs could simply be textures, and given that they'd have obj-like bounding boxes and collision detect, most of the hard work would be done for you. More than that, it'd also bring convenient in having destructible environments that are readily being modified or restored.
While i'm not as technically sound as the bulk of you smarty pants on the forums, I can only imagine something like this being hard-coded into the software would be far more demanding on any server than having it soft-coded. And I can only imagine there being a much larger cap-limit on textures than there is on objects.