A comment I received recently to my post titled "Where and how can we play HTML5 games?" has inspired me to think about the limitations which developers can run across during the development of HTML5 cross-platform games. The experience created for these games can depend on how developers will use the code and how they will create game mechanisms. In the end, imagination and overcoming a few technical issues are the only limitations, and those have to be kept in mind when developing a game. Having fun with friends who use different devices can be very attractive. The gameplay thanks to the cross-platform feature can happen on multiple platforms and operating systems, but before we start to create a cross-platform game, we need to think about the limitations that we will have on each of the devices we are targeting.
The first issue we meet is the input or the steering.
Before developing a cross platform HTML5 game, we need to think about about the gamer's experience and how they will operate the game. For PC's or consoles it is pretty simple. Most games developed for those platforms use a keyboard and mouse or possibly a special input device such as a gamepad, joystick or steering wheel that can also be customized. But for smartphones, tablets or devices running similar OSes such as Smart TV's, it is much more difficult. The touch, tap, or slide features limit the user in steering in a game, and we cannot customize it. The TV controller is also limited in its function. This is a very obvious issue, but it may be crucial to gameplay and game types available. Think about it seriously before creating a prototype, and then test it so you don't run into future issues in the project's development.
Testing the games may be difficult.
The speed of the game on various devices requires code optimization.
This may be very difficult, and it is strongly connected with the game testing process because a game can work great on a PC, but the performance on a smartphone can be poor because of the lack of CPU power or memory (or vice versa if a game was designed for a smartphone in the early stages.) It is important to design the game while keeping the technology limitations in mind for various devices. For example, you might create a great game based on WebGL, but it simply will not work on a tablet, or worse will not work on a smartphone. This may sound obvious, but I believe you get the idea.
Issues with audio implementation for mobile devices.
Issues may occur with game lags or even the browser crashing while playing. Develop-online posted the words of Chris Herbert, technical lead of Remode Studios, where he says, "... audio is considerably behind the rest of the platform’s features, with problems such as lag and file support", although he believes there could be vast improvements in this area in the future. There are clearly areas of HTML5 that need some work, audio being an area that’s lagging behind quite dramatically, particularly in mobile browsers (...) "The problems mainly relate to how sound data is swapped out of sound channels, many browsers are experiencing a lag, or in some cases jumps or pops (...) Also, the support for audio file formats is inconsistent, with some browsers favouring the ogg vorbis format whilst others – such as Safari – favour the MP3 format." But further in the article, Sandy Duncan, CEO of YoYo Games, confirms that this issue is being worked on, and it just needs time to be fixed. Hopefully we will expect that fix soon, since this is one of the core elements of having fun. It hasn't been the biggest issue for mobile since most HTML5 mobile games don't have sound, but it is not acceptable by players who play those games on PC. It would be great to have same the sound experience for all platforms while playing a game.
Big screen vs small screen experience
The difference in screen resolution can be an issue. If for example developers make strategy or rpg games where there is a vast map that players have to move their units around on then there can be a problem. Players with lower resolution screens (smartphones) don't have a chance to react as easily if they need to scroll the whole map to defend their city or send out troops. We may find similar problems with a difference in game design for the different size screens. On the other hand, simple games made for mobile devices may not look as nice on high resolution TV or PC screens, so this would also require a solution. The developers could only consider building the type of games that will not cause a problem for any platform.
Multi platform interface
During the start of development of an HTML5 game, developers have to design different types of game content on the screen (especially different user interfaces) for players on different platforms. This can become quite complicated, because every platform will use a different type of screen setup. Yes, it is very similar to resolution issues and for sure it requires planning of the screen setup. This is the moment where UX and easiness of game use comes in, and it is crucial to plan the interface according to the limitations of design possibilities for various devices.
Those issues are not the reasons to give up on HTML5 cross-platform game development. These are just some obstacles that each developer meets during game creation. We have found out already that many past issues with games performance and speed have been solved. Nothing is impossible as long as developers and the companies which create browsers, operating systems, and coding languages find a way to solve some of these issues. Do you agree? Have you found other issues in HTML5 coding and solution you would like to share? I'd like to hear them from your point of view.