How to develop a cross-platform game

Alexander Savinkin
GeekForge.Academy
Published in
6 min readMar 28, 2019

What is your background? Can you please tell us a little bit about your career path.

After finishing my high school, I was wondering if it was a good idea to go to college for a basic career or begin taking specific courses about programming, game creation, etc. I have always loved video games, so “my dream of youth” was to work on game creation..

To be honest, I’ve been involved into many stuff in the past. I studied programming, graphical design, UX, 3D, and animation, music creation… (believe me, A LOT of different kind of things).

I began working at a small company 19 years ago, creating Flash (AS1) content and making some Photoshop and freehand stuff (old school stuff xD)

I’ve been working with Flash for a lot of years to be honest. It was a powerful tool (it is indeed still great for creating sprite sheets for games and animations, for example). From time to time, HTML5 and Javascript were mature enough, so I started moving and embracing those new technologies and I did some HTML5, CSS, Javascript websites, and mini-games (small developments).

After some years, and after the “Flash is dead” sentence became real, I specialized in replicating all my knowledge in Flash and AS3 (Actionscript 3) to HTML5 and open technologies. I’ve been involved in some great projects, mostly relating to the gambling world, and have created successful and engaging games for a couple of years.

Apart from creating games, I am also creating apps for different platforms. I am developing different apps for iOS, Android, and PC with some of the most new technologies nowadays (Ionic 3+, React Native, Nativescript). The good thing about these technologies is that they are cross platform, so you can write the code once and run it literally everywhere.

Screenshots of some of my personal apps I’ve been developing. (It’s still a work in progress.)

What is your current specialization?

My current job is to make and manage those games, analyze the market, and try to find new customers to sell those games in their countries.

I normally create games with open technologies and mostly for the Internet at present. The Internet has taken a giant step in the last couple of years, and now that you can have all the world in your pocket, web development has become more important than ever.

Now you can have all the stuff you normally had on your PC on your mobile phone. It is very inspiring and motivating to keep on creating content for the Web, and what’s more important is that you can easily create new types of content now: PWA’s (Progressive Web Apps). That is the magic word. You can now create content to be viewed literally everywhere with one single development (sure, with some tweaks of course, but it’s great).

What are the most important problems your customers are met with?

After working mostly on the Internet for a long time, I think the most important problems customers are met with is the “crossplatform” problem. They want the website, game, or video they’re watching to be perfectly viewable and accessible on their desktop, mobile, video game console and so on. It was not an easy solution in the past, having to create different ramifications inside the code so that the content can be adapted and well viewed on different platforms. Sometimes I even had to create the content in a different programming language depending on the platform.

What is the most remarkable experience you’ve had during your professional career in this field?

I still remember a couple of years ago when a customer asked for a very complicated game that had to run on PC but also on his old, outdated cell phone. It was a nightmare to be honest, having to create a game for PC and then “do magic” so that it could be executed on that old-school mobile.

It was a game with a heavy importance on animations, particle effects, and sounds. In those days, HTML was not mature enough, so I decided to create the game with Flash + AS3 for desktop. The game development was fine, and I had the game running in just a couple of weeks.

The problem was that the Flash plugin was very bad for mobile (yes, Android devices had a Flash plugin), and the game was slow with very bad performance. Apart from that, the Flash plugin was not available on iOS (a long story), so the customer was complaining all the time.

After a titanic development, I found a solution: create sprite sheets for those complicated animations and particles and put them inside the HTML code. The solution was not perfect, but it worked. :)

The story today would be very different, as there are some amazing and compelling HTML5 frameworks out there now (Phaser, Pixi, createJS).

Anyway, the most important thing is that you, as a developer, have to find the best solution for every customer.

Talking about today, I have mostly been working with HTML5+JS+typescript+CSS/SASS for the last 5–6 years. I am developing games for companies all over the world. The framework that I am in love with right now is Phaser, which is allowing me to create stunning HTML5 games that runs on everything.

All those games are cross-platform and its performance is pretty amazing, running on different devices like PC, iOS, Android, etc.

Apart from that, I am also developing other Ionic projects in my free time. Ionic is another incredible framework that helps me a lot in order to make cross-platform mobile development with one code base.

Finally, I am also playing with React Native, Nativescript, and other technologies that are popular nowadays.

The future is bright, the future is now.

Here are some screenshots of some of my personal apps I’ve been developing. It’s still a work in progress. (App is available for iOS and Android.)

What are the sources of knowledge you use to improve your skills?

To be honest, I read a lot of books (specially programming books), but I think the best source right now is the Internet. The problem with books is that they can become outdated very quickly. The World Wide Web is changing constantly, so there is no point in buying some books and stick with their content for a long time. Do that, and you’re knowledge become outdated in three months.

I mean, obviously there some books out there that don’t have an expiration date (especially the ones talking about the basics of programming, OOP, design patterns, UX, etc.), but it is a great idea to go deep into the web to learn new stuff, especially for mobile development and all the different frameworks out there.

Questions asked by Alex Savinkin

Former number cruncher in investment funds & strategy consulting. One of Geekforge Founding Fathers. Blockchain and technical singularity true believer.

--

--