Special thanks to most of this after showing him my own sloppy take. So our first step when converting from object to tile is to write the replacement for place_meeting. it doesn't matter- can be converted from using objects to tile by simply replacing place_meeting. Because of this, the vast majority of collision system -platformer, top down, whatever. The core of ANY object based collision system, not just the one found in TDMC, is place_meeting(). Obviously, I hope to make that more simple for you.
Game maker studio 2 tilesets code#
Adding "angled" walls or walls of any shape was difficult and often relied an a TON of complicated code or some costly operations, and almost always involved a lot of "setup" overhead that was tedious to maintain in your project. Of course, there was a draw back: tiles are rectangular, and there is no changing that. Additionally it was super easy to "paint" your world collision in the room editor by using all the features available for placing tiles. They were lightning fast regardless of how large your area was or how many collidable tiles you had in your room.
When GMS2 came along and we got access to proper tile-maps, tile-based collision systems became the new hotness.
But sometimes it just isn't enough to improve overall performance, or the required systems just feel too cumbersome to maintain. There are many techniques to try to improve performance, such as deactivating walls far away from the player, or combining large "chunks" of walls into a single, larger instance. But there has always been a known downside to object based systems: performance when a large number of collision objects are present in the room, especially if those objects use "precise" collision checking. Object based collision systems are great if you are hand building your rooms in the room editor, and every room is relatively small in size.