Cross-platform Development

html5 (1)

We have been developing projects for our clients with HTML5 since West Pier Studio was founded, so we know a thing or two about the pros and cons of this platform.

HTML5 is an exciting, relatively new web specification with several new features specifically aimed at interactive applications such as games. Since HTML5 games are based on web technology, you can simply integrate with many web services such as Facebook or Twitter, easily deploy your project using any web server, and update your app remotely and instantly, ensuring your users are always up to date.

On top of this, JavaScript enables cross-platform development for Mac and PC, mobile phones and tablets (including iOS and Android), on consoles and on Facebook, all with one codebase to maintain. This can help alleviate the risk of “feature drift” when working on more than one codebase, where one platform’s implementation may become more advanced than another, by cutting down on implementation and maintenance on functionality that can be shared between platforms and ultimately reduces costs.

Having said this, HTML5 is not a magic bullet and has its own set of problems to deal with. As the new kid on the block, the technology is still evolving at a rapid rate, meaning that some features may be added, changed or removed during a development cycle. Furthermore, certain browsers or platforms may implement things slightly differently, or have performance bottlenecks in different areas. At West Pier we circumvent some of these issues by using popular JavaScript libraries such as CreateJS (used by Microsoft and Mozilla) or PixiJS (used by Google). These free and open source libraries have their own dedicated development teams, and are tested thoroughly, meaning that we can focus on building and testing the features, not the tools.

Using JavaScript means that you often have to design and develop your own UIs. The default HTML UI is less snazzy and less flexible than a native mobile app and cross-device differences in screen size and pixel density mean you can’t aim for pixel-perfection. We have developed many JavaScript UIs over the years, so can advise you on what will work and what won’t.

All in all the promise of reduced cost by developing in JavaScript is a bit of a myth. The platform does make it quicker and easier to get a prototype or initial release up and running, but the testing, optimising and polishing side takes longer. If you’re after a sleeker, sexier experience, and you have the time and budget, it’s almost always better to go native. However, we have successfully completed and delivered several projects to our clients and know for a fact that sometimes JavaScript is the best cross-platform development tool for the job.

Unity-

Unity is a software development platform geared towards creating software applications with 2D and 3D graphics. One of its key advantages is the ability to develop projects for a wide range of platforms (including PC, Mac, Linux, iOS, Android, Web, Playstation, Xbox and WiiU). This flexibility greatly reduces the time and cost involved in porting an application from one platform to another. Tradeoff is that developing specifically for one platform using native development tools can provide better performance. This means that Unity is ideal for cross-platform development.

Workflow: Unity brings together visual and artistic tools with code development in one environment. This makes it easy for our team to collaborate on large projects, but also allows technical artists to work between visual and programmatic parts of the application with ease – such as in the development of sophisticated but visually appealing user interface design or adding interactivity to objects within the 3D scene.

Different Platforms for Different Markets / Audiences: With the ease of developing for multiple platforms, the key consideration should be which platform is best for the application. Desktop, android and ios all have very different user-bases and, crucially, different expectations. Whilst mobile and tablet devices are becoming more powerful, they are still more suited for casual use. The marketplace for mobile applications is growing, but is also very competitive, creating a very high bar for ease of use and a very sharp drop-off for engagement levels. Desktop applications, by contrast, appeal more to ‘power users’ who want the power and flexibility of a desktop for more serious tasks. This market may be smaller, but users are prepared to pay and invest more in the software. With a breadth of experience in working within these different markets, we can help you choose the right platform(s) for your project.

Performance: Different platforms have very different capabilities in terms of storage, processing power, graphics and memory. This is important to take into consideration when targeting specific platforms and designing the scope of your application. Not only do we have experience in developing for multiple platforms, but we have demonstrated the ability to create a sophisticated application that can scale to run on a wide range of systems – from low-end mobile devices to high-end desktop PCs.

Rapid Prototyping: Unity makes it incredibly easy to prototype software in very little time. This is thanks to the many in-built features and the wide support from third-party developers, a strong community, and the Unity Asset Store (an online marketplace for users to sell code, tools, art assets and more). This makes it easy to try out new features and promotes investigating creative solutions to problems.