Feasability of mobile 2D multiplayer RPG game with interactive bitmap background

| | August 8, 2015

I’m looking to develop a 2D multiplayer RPG game for Android, with a bird’s eye view similar to that of zelda/pokemon. The game is very simple in all ways since my intent is for thousands of players to occupy the same world which I imagine requires good performance. However, I am unsure about the performance requirements of two properties:

  1. the tile map that is used as a background is dynamic (interactive). For example, a player steps in the water, and the water turns black. Every tile in the game does this.

  2. the tile map is the same object used for all players, but it is displayed differently on each user’s mobile device, even though the players exist in the same world. For example, the water that turned black is displayed as red on all other players’ screens.

I have knowledge of java, but almost none regarding game dev. tools. Is there a best process for these requirements? Should I develop in pure java, or use some tool like Slick2D etc.? How performance intensive are these properties, if even possible?

Edit: There are no collisions in the game or difficult animations, I am imagining simply changing the colors of the tiles (like in the examples), and a client-server architecture

One Response to “Feasability of mobile 2D multiplayer RPG game with interactive bitmap background”

  1. You should be fine doing all of this (tiles with states, various players, etc) as long as you maintain your world state (i.e. the state of each tile, player, etc) on the server. Each client would then receive the current world state from your server at some interval – which you should tweak according to your specific requirements and testing.

    Performance wise, none of the things you want to do would specifically be an issue on mobile (or in java). As long as your design is sound and your server is up to the task of supporting your intended number of players. As for this last point (thousands of players in your world) it will again mostly be up to your server, not the mobile client to do the heavy lifting – the mobile will only need to display the visible number of players at any one time so there should not be a performance problem.

    As a performance test you could render your required number of tiles and characters as static images and measure the performance. This would give you a baseline of render performance, which will of course be higher than the final implementation, but should provide you with the assurance that your mobile device(s) will be capable of handling it – and if not you could play around with ways to optimize the rendering in order to achieve decent performance.

    I would personally first create a prototype to test your ideas out, instead of designing the whole thing outright. You will gain many insights into what needs to be done if you play with a live implementation, instead of theorizing about it. There are other considerations once you implement the final version (such as texture organization and render ordering, etc) but these are best handled once you have a working system.

    Don’t design with too much optimization in mind, but rather solve your problem first (i.e. get it working). You might then “see” better ways to optimize than you could theorize without a working implementation.

Leave a Reply