A friend of mine and myself are working on a flash developed iOS (and later Android) puzzle board game. He's a developer and I'm a designer/developer so (no surprise) we have different points of view.

  • His method: make small tiles (100x100px) in Photoshop join them into the board and then in flash apply effects to the board to avoid repetition (80's not in the good way).

  • My method: precompose the whole board (960x640px+bleed) in Photoshop and than mask active and inactive areas in flash.

What do you think?

  • \$\begingroup\$ I'm the developer from the question and I must add that the game logic defines the board as a matrix with separate layers for display, passability and interactive objects. While I iterate over the layers I can apply the tiles or the area masks, but the size of the images is a concern for me. So please consider performance and memory issues in the answers, and not only the look. \$\endgroup\$ – Mentoliptus Apr 6 '12 at 8:34
  • \$\begingroup\$ @Mentoliptus: do you have any reason to question the performance of 1GR3's method? From the very little information available, it doesn't sound like you're going to have a very complex board and the rendering is unlikely to be a serious bottleneck in any case. In the event that it is, larger images rendering with less draw calls is actually far more efficient in general (the term is "batching") compared to lots of little separate images and draw calls. If you're unsure, whip together a quick prototype and profile it and find out for absolute sure (no opinions required). \$\endgroup\$ – Sean Middleditch Apr 6 '12 at 11:15
  • 4
    \$\begingroup\$ You should describe both methods more clearly. Maybe add some pictures? Looks like you want to add some alpha-blender layer on your board, but is the board layout fixed? Or can it change? \$\endgroup\$ – Laurent Couvidou Apr 6 '12 at 11:49
  • \$\begingroup\$ I think he means to put both images one on top of the other and then change the alpha value of 100x100 rectangles. But this way I have two 960x640 images in memory and I'm trying to have two 100x100 images. Bear in mind that this is only for the background, the game also holds images for interactive object, "special" tiles, starting and ending objects. Or it's better to draw a separate background for each level in photoshop and import each separate background? \$\endgroup\$ – Mentoliptus Apr 6 '12 at 13:04
  • 2
    \$\begingroup\$ Are you concerned about performance? Do a test case of each and profile. If its about workflow, do whatever gets it out the door quicker. \$\endgroup\$ – Tetrad Apr 6 '12 at 14:11

If both methods give you the same result, and if you're not programming it, let your programmer decide. If it's easier for him to implement this one way, why would you force him the other way?

  • \$\begingroup\$ result couldn't even look the same... \$\endgroup\$ – 1GR3 Apr 6 '12 at 21:46

I would tend to agree with the method of creating the game board in Photoshop. It would probably look better this way, but more importantly, you may run into performance concerns with the tile/effects method.

I'm not sure how your partner planned on adding effects or variations to the tiles, but it sounds like it could come at a CPU cost. If, for example, he was using filters or alpha blending, the rendering cost for those tiles would be far greater than a bitmap. Also, using bitmaps opens up some opportunities for tapping the GPU on iOS devices.

In over 6 years as a Flash developer, I've found that the more pre-rendering you can do, the better your performance will be. I always use bitmaps wherever possible, and the game board (which doesn't change or rotate much, if at all) is the absolute perfect place to use a pre-rendered bitmap.

  • \$\begingroup\$ I'm also a Flash developer for a couple of years, but this is my first project for iOS devices. As some of you suggested, we tried both approaches and for now we use 1GR3's method. But now you made me think of alpha blending for dynamic objects...we thought to implement that for moving tiles, but if it'll be too CPU intensive, maybe we'll stay with non-transparent colored bitmaps. \$\endgroup\$ – Mentoliptus Jun 1 '12 at 7:03

I'm not sure how iOS deals with its video memory, the old PSP was faster if you rendered small objects rather than big ones.

The only way to know for certain is to benchmark it.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.