deantarisai

Published on

Game development and the Web as a platform.

Authors
  • avatar
    Name
    Dean Tarisai
    Twitter
Gamepad

One thing I've come to appreciate about the Web is its flexible nature. You can throw anything at it and it will give you a way of reaching your end goal. This time I'm on a quest in the fast paced world of game development.

Historically, gaming has been dominated by software written in native programming languages that would target certain hardware to accomodate the source code. Think of Sony's PlayStation, Nintendo's arsenal of gaming devices or the PC. For a time this was the only way to deliver games to the audience.

This has changed thanks to the many improvements on the JavaScript programming language, it has become possible to develop game software that is platform agnostic.

By embracing the Web as a platform we can create games that will run on any device with a standard compliant web browser meaning that the previous barrier of having to install a game natively before you can run it, is nullified. The benefits are endless but in my opinion the most important one is that we focus on developing the game logic instead of juggling APIs required by platform specific games.

Web technologies available for game developers

Using the web as a platform for game development exposes many useful APIs. Below are listed some of the APIs that quickly got my attention

...the list goes on

The modern browser is becoming more powerful every year because users are now preferring web apps to native apps for reasons such as (but not limited)

  • Easy access - We live "on the go" nowadays and walking around with gadgets is sometimes inconvenient. Web apps allow you to access their services wherever there's a internet connection and your data is immediately available because it lives on the cloud.
  • No installation - Downloading and installing from the app store is an extra step before our users can access our games. Since we always have to work with the lowest specifications in mind when creating software we should consider the fact that our users don't have access to an unlimited data plan, run a low end device and don't have the time to setup our software. In fact, the common limiting factor for gaming is hardware requirements (RAM,CPU speed, storage etc). Because the game is hosted on the server the clientside (browser) is relieved most of the workload making gaming more accessible regardless of the user's device specifications.
  • Easy to update - Webapps are updated for all users since the application is hosted on the server. This means that we get to deploy our update once and be confident that everyone moves along with the latest features. No hassle for the user to manually update the game if it were installed locally.

Developer experience.

From the developer side,its easier to setup game development using web technologies because their lightweight as compared to development setups for native games which require a lot of configuration for the toolchain. This makes native game development resource intensive in terms of CPU and RAM requirements which is what hinders most developers from pursuing that field.

And what's more, anyone with a background of web development can branch into game development easily because the core technologies being implemented throughout are the same making the learning curve easier.

Babylon.js

Babylon.js Logo

I'll be honest the first reason this framework caught my attention was its Biblical moniker ("Babylon the Great").

Babylon.js is a real time 3D engine using a JavaScript library for displaying 3D graphics in a web browser via HTML5.

The best part is that its open source and hoisted on GitHub making it easily accessible to developers.

It provides a fully comprehensive API for writing code that allows you to design your scene, game characters, logic and much more.

I'll be sure to share my experience with the framework throughout my learning roadmap.

References