Design Your Games Using a Tight Set of Gameplay Systems and Mechanics
A key thing to remember when you’re designing and programming your gameplay elements is to make them reusable if they are not specifically tied to a level. The actual systems and mechanics involved with an object, let’s say an enemy spaceship, should be self-contained and work in any level that the spaceship is put into. Don’t make objects reliable on other objects or systems to function, and try to keep track of and use data locally ( basically each object tracks it’s own information without using other objects ).
Another example would be a rainmaker object. It should be able to make it’s rain in any level, not just the level you want to use it for. That way if you decide to use the rainmaker again for another level, a sequel or a whole different project your rainmaker will still be able to function and produce the desired effects. You can even customize the rainmaker for a different use like snow or acid rain, but only if you designed it to be self-contained. This applies to the mechanics of player and enemy characters as well. The way they move and their “AI” code should be self-contained enough so that you can take that same code and use it in another enemy, player character, etc. and still get the same effects.
Maximizing the re-use of code will not only save you time and frustration but it will also provide you with more opportunities for variations in gameplay which will please the players.
Players Will Always Find a Way to Break Your Game
Don’t let these smiles fool you! They’re going to try their best to break your game and then post it on social media!
This is one of those facts of life you just have to accept – that players will try to do anything and everything to break your game. Not all players, just a select few that want to test your code to it’s limits, press every wrong button, jump into every corner or small seam in the virtual world. For whatever reason these people will do this and then tell you (and probably everyone else too) that you messed up and they found the bugs. This is supposed to happen during game testing so that you can fix it, but sometimes even professional QA testers miss a small glitch that the public will surely find. Be prepared for those who will have nothing but negative things to say about your work. Ignore the ignorance and extract the ways that you can improve your games.