GameSalad Tips Competition Winners!
The competition has come to an end, and prizes must now be given out! There were some fantastic tips posted, and even after more than 8 years of using GameSalad, I still got to learn something new!
A huge thanks to everyone who took part and contributed their fantastic tips to the community!
It wasn’t easy narrowing the list down to 6 winners (I miscounted the games!), so I awarded a prize to a tip that taught me something new and picked 4 others out of a hat. There were some amazing tips in the thread that everyone should know, so it's well worth reading the original thread if you didn't already!
I’ll ask the winners to PM me with their first, second and third choice games (I'll contact the winners if all their choices are already taken). A reminder, the prizes are Steam keys to:
- Grim Fandango Remastered claimed!
- Worms Clan Wars claimed!
- Borderlands: The Pre-Sequel
- 80 Days 2 claimed!
- Her Story claimed!
Thanks again to @JSproject for donating two of the games!
With no further ado, here are our five winners!
Esc key works as the back button on android devices. So if you want to use the back button on android to pause your game, you can say “when key ‘esc’ is pressed / pause game”
I couldn’t put this anywhere but first as this is something I genuinely did not know and learnt from this thread. So thanks @Icebox!
Don't unlock actors in a scene unless you have a good reason for doing so. Unlocking an actor creates an "instance" that can have different rules (and even attribute values) than the original "prototype" actor. While sometimes useful, if unintentional this can make troubleshooting rules tricky because actors that appear the same can have unique rules.
Also worth noting is that every time you unlock an actor on a scene, that actor is stored in the scene’s XML file. A prototype just references the actor’s stored information, but an unlocked actor copies that information. So if you place 100 prototypes on a scene, it will take up the space of the 1 prototype. If you place 100 unlocked actors on the scene, it will take up the space of 100 copies of the prototype. So unlocking actors not only complicates working with your game, it also slows down working with the project file and makes the file size of your game bigger and loading times longer!
Another great tip relating to unlocking actors came from @pHghost. Although it doesn’t win him a prize, it’s still well worth including here!
I would add to this that you can vastly expand the flexibility and functionality of your actors through self.attributes
This way, you can have only one enemy actor, with all the necessary rules, with references to self.attributes as needed. You do NOT need to unlock an instance of an actor to change its self.attributes! So you can easily change the power, animation, etc. of each instance without breaking stuff by unlocking it. And you will only need to edit one master actor to update behaviours of the whole group!
I was really glad to see this coming in at 2nd place, though! Anyone who knows me knows I’m obsessed with not unnecessarily unlocking actors! It’s the cause of so many problems!
With tables, make sure you add as many rows or columns as you will ever need. Especially important for saved level data. If not, you data will be rewritten when you make updated tables and you will lose your progress.
This is a horrendous bug/lack of feature that’s been in GameSalad for years and will likely never get fixed, so this is a really important tip! If you forget to do this, you can also add new tables to your game, so all is not lost! Don’t go overboard in the rows and columns you add, though - tables are pre-loaded by GameSalad and really big tables can slow down you game. So don’t go adding 10,000 extra rows and columns if you won’t likely ever need them!
Often I made actors in a scene but I didn't want them visible so I changed them to alpha 0. But looking for them was difficult during editing because they were well invisible. So now I leave the alpha to 1 but the first rule in them is alpha 0. So you can't see them during game play but during editing they show up...
@Two.E touched on this idea too, but @Toque’s extra advice makes his tip a worthy winner too. Hiding actors can be super helpful, but it can be a nightmare to find them again while working on your scene! On a similar note, it’s worth keeping in mind that if your actor will never display text and will never been seen in the game, instead of changing its alpha to 0, change its “Graphics>Visible” attribute to OFF. This is more efficient, but it does also turn off the displaying of any text!
You can use the max function to compare many different numbers, not just 2 numbers like it shows by default. So not just max(x,y) but max(a,b,c,x,y,z). Same with the min function.
Very useful for many things, such as a aggro system for an RPG, comparing enemy distances, comparing high scores, or maybe a targeting system for an RPG, shooter, TD, etc.
A great tip that many people don’t realise!
When you spawn actors and need to pass a value to them, use the Rotate, X or Y attributes to send a value.
This one is insanely useful. I use this constantly, and I owe a big debt to whoever first suggested it on the forums! (If it wasn’t @Hopscotch!) I've used it literally dozens of times in the last week alone, so this tip definitely has mileage!
There were many other great tips in the thread that weren't drawn out the hat, so I thought I'd repeat a few of them here. Should any of the above decline their prize, they’ll be offered to the following people in this order:
Every 5 minutes click that save button or after being successful with a difficult logic. Also duplicating your gamesalad file before opening a just updated gamesalad software is a great idea.
This one is so important I probably should have given it a prize! It’s so easy to forget to save regularly, and although GameSalad is pretty crash resistant these days, it does still crash - particularly when working in unlocked actors. I find the more productive I’m being and the more I’m getting done, the less likely I am to save - so it always hits me hard when the app crashes!
Name every rule or group in your actor in relevance to its job so when making changes or bug fixing, you know what it does!
This is a habit everyone should get into! I don’t normally do this as I’m working as it breaks my flow, but the moment I have a feature functioning correctly I go back and label everything while it’s still fresh in my mind.
(random(0,1)2-1)random(1,100) . . . will give you a random value between -100 and 100 except for zero.
This one is super duper handy when you need it. I’ve only put it so low as it’s going to be applicable to fewer people than the others. I’d encourage @Socks to make a thread breaking it down and explaining it to people!
If you didn’t win a prize, please don’t be discouraged! EVERY SINGLE tip submitted in the competition thread was brilliant, and if I had more prizes there would most definitely be more winners!
Contact me for custom work - Expert GS developer with 14 years of GS experience - Skype: armelline.support