Fishing World is a fishing simulation game published by Inertia Game Studios that can be played on Facebook, Android, iOS and Kindle.
This was one of the first games I worked on when I started working at Inertia, and had already been released for a few months. My project was to add in the functionality for fishing teams, which is a feature that allows players to create and join fishing teams, and compete against each other in fishing competitions.
The programming for this project was very UI-heavy, and involved making several complex dialogs to allow players to view information about teams, create their own, or edit existing ones. Since this game can be played on many platforms, the dialogs needed to be able to resize according to the screen orientation and resolution. Some of the data displayed on these dialogs needed to be retrieved from the server using PHP scripts, or updated and saved. I learnt a lot about PHP, MySQL and UI programming while working on this project.
The dialog above is used for creating your own team. As we use Flash and Haxe for our games, developing this involved looking at the design in the Adobe Fireworks document, outputting separate images, and putting them together in the Flash project. The images then needed to be loaded from the .swf file, and in turn displayed on the scene. I programmed the button functionality and text fields, along with uploading the new data to the server and inserting new entries into the database. The image chosen for the team icon needed to be encoded in a JPEG format and uploaded to the server.
Some of the dialogs involved showing a large amount of data, such as the Team Rankings dialog. Here I had to make sure that the game still ran at 60fps despite large numbers of images and text being displayed.
This dialog had the extra complication of separate tabs, each needing to load a new set of data. I had to make the dialog robust against people ‘spamming’ the dialog and switching between tabs a lot, or trying to scroll through the list very quickly.
I also added several checks to account for slow internet/unstable connections, in which case the data may not load.