Game of Phones – Status Update 2016-06-09

June 9, 2016 in Screenshots by Tom

Here’s a collection of screenshots and GIFs of new features I’ve been working on.

I’ve done some work on pets/companions, including adding a ranged companion (below). It’s now also possible for a second player to control companions – local multiplayer! Like in Sonic 2, if there is no player 2, or player 2 leaves the controller untouched for a while, companions revert to their ordinary AI behavior.


Dialogue boxes show the portrait of the NPC you’re talking to (for main story characters anyway).


I’ve begun implementing the new storyline, which starts with the player giving a tutorial to a certain NPC…


Many of the story events from beta8 have been removed to make space for the new canon. But some may come back as optional side-quests in future.

The new story makes use of a special new item that lets important NPCs contact you wherever you are in the world – a telephone!


You can also use the telephone to unlock secrets by entering numbers directly.


I’ve made some massive improvements to the inventory. The inventory in beta8 kind of grew organically as I added new things to the game. It didn’t really have a coherent design and it was painful to use. So I threw it out and went back to the drawing board. The new design is much more flexible, and vastly and easier to use.


I’ve fixed several performance issues since beta8. One was related to my use of Java2D for rendering graphics. I found that the framerate would drop low when maximizing the window or going fullscreen. The issue was with how it scaled the virtual screen up to cover the window — Java2D is supposed to use OpenGL under the hood in this situation, however in practice it seemed to be software-rendering it!

(Along with a few other Java-specific issues, this has left a bad taste in my mouth, and in future I won’t be using Java2D or Java for anything.)

To fix the issue, I replaced the Java2D scaling operation with direct OpenGL calls and instantly got much better performance from the game. As an added benefit I became able to add nice shader effects, and spent an evening making a CRT simulation shader for nostalgic goodness. 🙂


This shader applies a barrel distortion, darker corners, a brighter center, and scanlines.

Fairly recently I completed two full playthroughs to catch as many bugs as I could – a kind of private bug-bounty. I found a bunch of minor defects and polish issues I want to fix before releasing beta9, but despite that, it was fun.

Most recently, I completed some graphics for the introductory cutscene shown when you start the game. It tells the story of Lenna’s world.


Anyway, that’s all for now. As always, my trello board is public if you want to see what I’m working on.