Memory is the most valuable resource in Creative. We can basically all agree on this. No matter your skill level, you’ve probably wanted more memory in the past, or not had enough. It leads to amazing projects getting cut off, things getting cancelled because of pure scale, when they could be the best Creative game ever made.
Today, we start solving that problem. Here’s a bunch of ways to save memory, and save some hassle too!
GENERAL TIPS:
Channels over wires - channels are almost always the better option. There is literally no reason not to use channels (aside from quantum mechanic/AUO shenanigans)
Check for duplicates - if you have 2 machines that result in similar outcomes, you may be able to merge them and save memory! You can use block code for multiple functions, or a timer for multiple timings. Additionally, make sure your devices or props aren’t stacked. (Unless you want them to be.)
See if there’s a better way to do it - sometimes, you won’t have as good or efficient of a machine as you want. Check the forums or the discord for a better way to do it!
Blocks over devices - when possible, see if you can use a block system instead of a physical system. (Use block code!) Often, a physical system will cost more than a block system, and have less functionality at the same time.
If they can’t see it, no decoration is needed - when playtesting, try to see the bounds of your view area. There’s no point in having extra terrain somewhere where nobody can appreciate it!
Experimentation is key - while this is sort of just reiterating point 3, see if there are cheaper devices, or cheaper ways of doing it. If you need help, comment here or make a help post. Someone will be willing to give you a hand!
SPECIFIC TIPS:
(500 → 40) Instead of using a repeater that repeats indefinitely, you can use a pulser.
This system will give a plastic bottle every second. We can easily make this by looping two wire repeaters, then giving them a start line in and an output line out. One repeater needs to have a delay other than 0 or it won’t work, though.
(20+ → 20) If you are trying to make a series of straight walls that are more than 20 tiles long, use a barrier instead! They cost 20 memory, and since walls are 3 to a floor’s 2, it’s much more efficient memory-wise!
(35+ → 15)When chaining signals to get block code involved, make sure to use notifications, if possible. They are currently the cheapest block codeable device, with only a 15 memory cost for the functionality of much, much more. (Triggers use 40, item granters 35, text 60, etc…) You can use these in things like trigger clocks, and make them become notification clocks!
(80 → 65) If you do end up making a trigger clock instead, make sure not to use 2 triggers unless it’s absolutely necessary. Use a wire repeater instead. Goes from 80 memory to 65.
(150+ → 150)Camera views are 150 memory, but they may in extreme cases be very helpful towards lowering memory. If you have a big room and don’t want to lay out extra tiles around it so that continuity is maintained, use a camera zone!
(a lot → less) Do you really need a property? Sometimes, people can add properties as an extra step when they really aren’t necessary.
That’s all I could collect for now. Worry not, more will be added as more tricks are found! If you have any ideas or suggestions, please let me know, and have a good day!
Add this: if you are checking if a player is in a zone to do a single thing, don’t use a property and block. Make the zone activate and deactivate a trigger that will do what you need.
To follow up, this will help when the thing you need to do is not a block code thing, but like granting an item or respawning a player. Granting 100 cash won’t work though.
Another thing: scaling properties. So you have a game with cash. It has a cash per question upgrade or something like that. We have a property that tracks the cash per question the next upgrade’s price. You also have blocks to increase them. This is bad. We can save at least 450 memory, including a property. Make a property that tracks the level of the upgrade. Next, make your blocks that check if the player can buy the upgrade has some MULTIPLE of the level property. This thing is the same for the blocks in the item granter. Make it grant a multiple of the level property. The level property can incremented by a counter instead of using blocks to make it increase. This is not a very good example, but this concept has a really useful.
What I’m realizing now is that while blocks are really useful, most of the time, they are way too powerful. The systems can usually be replicated with devices for less than 500 memory.