I've been noticing a wave of new users onto Hyperpad lately, and a good amount of screen confusion and lack of organization in lots of games. If you go on the App Store or even look at the better Hyperpad games, you can see that they aren't clustered, they're easy to follow, and that they focus on the user experience.
Many new users (you might be one of them if you're reading this), don't understand how important (or at least how important I think) crispiness, smoothness, and neat graphics are in their games. No matter how good a game is, lag throws it off - and I decided I'd write my own small (probably silly) account on how to minimize certain casualties such as this.
I think there're some very important steps to be taken, some of which are listed before - without getting into too much depth:
- Please, please, please pay attention to the graphics you use. Using Hyperpad graphics and acquiring graphics from an open site like opengameart.org is a reasonable approach to this issue. However, if you're thinking of creating your own graphics please make sure they make sense; that they present, or are part of a logical color scheme; that they represent a theme and that they're organized to make the game creation process easier. I think it's worth noting that color schemes could be acquired with many sources (most found with a simple Google search). One very reliable source though is www.lolcolors.com . A good way to convey themes and make your game more eye-pleasing is by presenting and sticking to these themes. It may also be worth noting that if you're thinking of creating your own graphics, you should find a tool that makes the process easier. It's important to be able to make good graphics with ease so that you don't find yourself giving up. Some suggestion are the Assembly app for iPad, and Inkscape, which you can download online on https://inkscape.org/en/ . These sources are both free! :) If I use tools on my computer I usually use iCloud and snap pictures of my graphics to later erase on my iPad. If you have DropBox set up, that would be easier to use - as Hyperpad supports it.
While it's ok to create concept-games quickly and without attention to graphics, games should be updated to meet these expectations - for your own good!
- I think it's important to create your game with organization. I keep mentioning this, but you guys might not know what I mean. When a user looks at the screen of your game, it has to be welcoming. When they look at it, they should know what's going on; because if they don't, they're going to abandon your game for another game very quickly. There're millions of games. Yours should stand out and be simple for the user to use.
How do you do this? You need to test it out; with family, friends, on the hub! If they don't know what's going on or are plain-out annoyed at your game it can mean two things - either the concept of your game is lacking, or you just didn't organize the screens well.
- Lag... if people sense lag, they're going to give up on the game. When they have free-time, they want to make the most out of it.
So how do you minimize lag? If you sense lag building up, some convenient tips are to try to cut on objects or make them smaller. Before you go that far though, you want to make sure everything with no behaviors or functions besides being a background object is set to "background" in its properties.
And what if your game is still acting up? It becomes hard to deal with lag at this point. It's most likely caused by inefficient ways of expressing functions and by using too many "lag-inducing" functions. They're lag inducing functions as in that using many of them or using them in weird combination will result in lag. Some of these behaviors include timers, waits, loops, any moving-type and physics behaviors, as well as touching and reaction behaviors. It's most important to be careful with your timers, waits and loops. It's worth noting that more than 2 or 3 timers in a scene can cause mayhem, especially when set to the same time interval - the worst case, of course being 0. Loops can also cause crashing and slow-up your game. Sometimes, it's worth putting a wait behavior in your loop so that something doesn't happen over and over in the span of a mere few seconds. @Hamed pointed out to me that loops that happen even 100 times usually cause destruction in your game. Be smart with these types of behaviors.
My game is still acting up! Help! There's one general, final step you can take. The behaviors you're using may be efficient, but they might not work well together. Try rewriting your code, and if it still isn't working, try debugging your game to see what's causing the lag. Certain useful debugging behaviors in Hyperpad are...
-the "zoom-in" behavior. Zoom your screen out to see what's happening outside of your screen.
-the "disable object" feature. Disable your objects to see if lag is still being caused by other objects.
-the "text input" behavior. Attach them to behaviors, and give them certain names. When they're activated game-activity will stop, and it'll tell you where you're in the behaviors.
-the "get attribute" and "set attribute" behavior. Set attributes based on current running behaviors and press the screen to get them.
And, well, that's it! If you're still experiencing lag after all that debugging, it's worth getting help from the devs or from family and friends.
I hope that was all quite helpful, and not entirely silly of me. Please pay close attention to this article since it'll really help make your games great and shine! Happy game-making!