An important step for Tiny Player

Both Tiny Player for iOS and Tiny Player for Mac have been rewritten in Swift.

It took a lot of time & effort but it was a necessary step and I’m happy with how it went.

Generally I wanted to keep the app working at the end of each programming session. I started with a few refactorings of the Objective-C code that I knew would make things easier later. Then I rewrote the smaller components and worked my way up to the main view controllers. Those took the most effort and multiple nights to complete.

In the iOS app, there are about 300 lines of Objective-C left, which I’m probably going to keep. They make interfacing with the C-based HTTP server a bit easier. I got rid of the C++ HTML templating code and replaced it with a simpler Swift version because it’s easier to integrate with the rest of the new code base.

The Mac app is 100% Swift, plain and simple. It felt quite nice completing the last bit and deleting all the @objc attributes.

I’m currently testing both apps, looking for regressions. The first release based on  this new codebase probably won’t contain any major user-facing changes. However, the rewrite opens the door to new features and performance & reliability improvements in the future.

This is fine.

D2 log 056 – Voice recording

The first voice recording session for Devastro 2 is over! 200 lines of dialog, 2 different characters, 30 minutes of voice recorded.

The session took place in a professional studio and was handled by Tomáš Karásek aka gaex. Both characters were voiced by the talented James Harries.

Big thanks to you guys!

To keep track of everything, I have a Google Sheets table with extra information about each line, such as the character name, output filename and a number of “tags” that connect the line to in-game events or other dialog lines. This metadata is exported into the game and helps me build dynamic conversations or reactions at runtime.

There’s also a column to generate the audio using the “say” command. I can run all of them in a batch and get all the audio spoken by a synthetic voice for testing before going to the studio.