Lexical at Thirteen

sjc, 24 January 2023

On the hard drive of a MacBook which I hardly ever use these days, there’s a file which begins:

//
// WordGridAppDelegate.h
// WordGrid
//
// Created by Stuart Crook on 10/07/2009.
// Copyright Just About Managing ltd 2009. All rights reserved.
//

A couple of months after that file was created, the game, now called Lexical, was released on Apple’s new-ish iPhone App Store.

In those days, iPhones had 800Mhz single-core CPUs and 3.5” 320x480 pixel screens. Thirteen-and-a-bit years later and things have moved on, but Lexical is still there on the App Store, if not in the exact same form. There have been small bug fixes to try to keep up with the explosion in new screen sizes. The Cocos2D, MonoGame and Unity re-writes never saw the light of day, but in 2016 there was a shiny new Swift and SpriteKit version. And now, the start of 2023 brings Lexical 3.0, re-written in Godot.

Godot is a great game engine with an awesome community. v4.0 is almost here, promising many improvements, but for the Lexical re-write we stuck with tried-and-tested v3.x. Development was a breeze. The few roadblocks we encountered along the way were quickly overcome with a bit of Googling. It’s rare these days to hit a snag which someone else hasn’t already met and conquered.

In all, development took about three weeks, most of which was spent learning to write mobile plug-ins so we could do the leaderboards exactly the way we like them (more on this at a later date, watch this space). We had a playable game with about two day’s work. This is partly due to the fact that I have a lot of experience re-implementing the game (did I forget to mention the LÖVE version?), but most of the credit goes to Godot’s ease of use, both in the APIs and the editor.

Godot’s mobile support is pretty good, so when you’ve done all you can in the editor, it’s no big deal to get the code running on a device or simulator. There is also a good selection of plug-ins to help you make use of native features, including an excellent AdMob plug-in (boo! hiss! monetisation!). Testing the iOS code via Xcode is as painful as you’d expect from Apple development, but if you don’t need to perform regular exports (to update native plug-in code) there are ways to make that much easier. Of course, it won’t ever be as seamless as running the Android version straight from a button in the editor. Since that was so easy to do, we took the opportunity to bring Lexical to the Play Store for the first time.

So here’s to the next thirteen years. You can find App Store and Play Store links on the main Lexical page.