I have not made any gameplay changes since the previous devlog. To me, the core loop is proven and working (even though it’s far from done), so I put it aside for a while and focused on making Typingvania more of a playable game rather than a tech demo.
Saving
There are three crucial parts to Typingvania: typing, saving progress and statistics. I waited until typing was where I wanted it to be, because both saving and statistics depend on the data the game uses for picking words and tracking what you’ve typed.
From the beginning I wanted to support multiple languages, and that means three things: the UI language (the hints that you see and menu text), the language of the book (for “Dracula” it is British English) and the language of your keyboard layout (currently there is only one, US English, or ASCII characters only). Typingvania has a system that I call “overtype” where I can replace any onscreen text with any other when you need to type it. This way I can show the text in any language with any characters, but you will type it only with keys that you have on your keyboard.
Here’s an example from “Dracula”, the word ætat. How do you type it? You can’t, unless your either have a keyboard layout with this character (for example, Danish) or you’re on a Mac and type Opt-'
. However, because the book is processed with a US English layout, the game will know that you can’t type æ directly and will offer you to type ae instead.
Each book that comes with Typingvania will have a choice of keyboard layouts that make sense for that book and its language. For example, a book in Russian will probably only have Russian layout available. A book in a European language will likely have several. A book in Japanese may have English (for typing rōmaji) and kana layouts. A book in Chinese may have English (for typing pinyin) and bopomofo layouts.
The point of this aside has been to say that I have made a mistake when creating the file format for books, and I wanted to make sure that save games would be forward compatible before implementing saving and loading. I’m happy to say that while I still have to make changes to the book format, and it is currently impossible to choose a layout other than US English, this will not affect save games.
If you’re playing a test build (more on that later), saving and loading is now fully functional and your save will keep working as Typingvania evolves. The only limitation is you cannot change the keyboard layout once the save is created.
A save game, technically, is a snapshot of the game state and is saved into one of 32 available save slots that you choose when starting a new game. The game is saved every round — when the green bar at the bottom of the screen is filled up and a new set of words is generated.
The initial save game is about 200 KB and each round adds about 50 bytes. If you type for 30 hours straight (this is how long it took me to relearn typing on my ortho keyboard), at 2 minutes per round, your save file will still be less than 1 MB.
Menu system
The version in the previous devlog dropped you straight into the game. I needed multiple menus to make the game playable: main menu, starting a new game, choosing a book, choosing layout, loading, overwriting a save, settings, ingame menu, etc. Turns out, there are many menus in even such a simple game.
I spent a week thinking and implemented a generic menu system that supported all my requirements: title, back button that can be hidden, multiple pages of items, deactivating items, selection indicator, callbacks. Here’s a screenshot that shows most of the features of the menu in use:
For the eagle-eyed: I couldn’t resist implementing a proper plural form system.
Platforms
While I was doing all of the above, I was setting up on the two main platforms I will use for distribution: Steam and Mac App Store.
While I’m familiar with the iOS release process and the Mac process is the same, the certificate, entitlements and game binary signing requirements are different, so I shipped a broken build to testers (for some reason, TestFlight doesn’t work on my machine so I can’t test the public build, and once signed the build won’t start) — but that is now all figured out.
Steam turned out to be very different from the Apple way. Valve’s documentation and the partner website are good though, there are simply many things you need to do before your page can be visible on Steam and people can start wishlisting your game. The Steam Typingvania release will be on Windows, Mac and possibly Linux too (but not Steam Deck because it doesn’t have a keyboard).
At the time of this writing:
- I have a public Mac TestFlight i.e. a build has been approved by Apple, which means I will be able to release on the App Store when the time comes;
- My Steam page is under review and I have successfully set up the pipeline and uploaded a playable Windows build. It’s an interesting feeling to see your game in your own Steam library.
What’s next
As I said, the third crucial part of Typingvania is showing typing statistics, and I will work on that immediately after implementing the overtype UI.
I also want to prove that the multilanguage / multilayout format really works, so before release I will prepare at least one other book besides “Dracula”. I have already found novels in different languages that are all public domain.
Release date
Steam, as part of setting up the game page, requires you to pick a specific (even if inaccurate) day and time when you want to release your game. This made me think: when is the earliest I can release? There is, of course, the well-known “If you’re not ashamed of your product you’re releasing too late”, but I know for sure that there are only a handful of things that I need to put in:
- Multiple keyboard layouts per book. Implies that the book format will scale to multiple languages. I’m OK to start only with “Dracula” and add more books and languages as (free) updates.
- The overtype UI. Since every book will have text replacements, this is required. I had a working implementation of it in the prototype (you can see it in devlog 1), and my data model supports it. I have a new, better design that I need to implement.
- Typing statistics. Let’s be honest, you can type in a text file, so we’re using certain typing trainers because of how nice and motivating their stats look (I know I do — see some graphs in this post). While the word picking algorithm is working and the quality of your typing will improve if you simply keep using Typingvania, the stats give that extra bit of motivation where you can actually see that you’re improving. I consider it a necessary feature. I do not have a design for it yet that would work with my engine and my game’s limited UI capabilities, only some ideas.
I’m thinking that it will take me about two months to implement all that. With that in mind (and the above in place), there will be no excuse to delay the public release any longer. I want to release as early as possible but also want to realize at least the partial vision that I have for the game. With that said:
The approximate release window for Typingvania is summer 2025.
Please look forward to further announcements. Subscribe below to get updates in your inbox, or check out the footer for RSS and social networks.