Blog

We build amazing iPhone and iPad apps. We recently built ABC Play School Play Time and Art Maker for iPad, and recently wrote Learning Cocoa with Objective-C Fourth Edition and the iOS Game Development Cookbook for O'Reilly. This is our blog.

iOS 11 App Development with Swift 4 –– Melbourne Training

We're running another of our awesome on-site training workshops in Melbourne soon! Join us for iOS 11 App Development with Swift 4, three days of hands-on training in Melbourne, running in late-August.

For the first time ever, we're offering a "Pay What You Can Afford" ticket type! 

If you have any questions, feel free to email us: events@secretlab.com.au

New training material

We’ve been working with some awesome folks to build a great library of training material for game development with Unity.

These videos, soon to be joined by a series on game promotion, are designed to accompany and support our upcoming book, Mobile Game Development with Unity (also on Amazon and Safari).

Here’s what we’ve been working on:

We’ve also got some new “Learning Path” videos, exclusively out on O’Reilly’s Safari platform:

Our newest books are also available now:

One of the best ways to look at all the training we write is on O’Reilly’s Safari platform (which has a free trial). It’s like Netflix for technical training and books.

Doing things the hard way

This year, we gave a talk at GDC called “Making Night in the Woods Better with Open Source”. In it, we talked about how Night in the Woods, which came out last month and you should totally go buy, used the open source process in its development.

Unlike most of our other talks, we did something a little ridiculous with this one - we built an entire presentation system, from scratch, into Night in the Woods. We’re actually pretty proud of this, and so we put together a video showing how it was done. Check it out!

The talk from GDC is also available online, and we've embedded it below:

What's New in Swift 3

We're incredibly excited to share a new report (think: very short book) that we've written for O'Reilly Media. Our report covers all the latest things in Swift 3, the latest version of Apple's programming language:

  • a high-level view of Swift 3’s changes and new features, and learn how this version differs from Swift 2
  • the Swift Evolution Process and the full list of accepted proposals—including those not yet implemented
  • Swift 3’s changes to the language’s syntax, standard library features, and other areas
  • Swift 3’s use on the server, and use a simple program to learn about Swift’s use on Linux
  • further resources for learning about, working with, and converting projects to Swift 3

You can download the report, for free, from the O'Reilly Media website.

Yarn Spinner Localisation

Earlier this year, we were approached by the rad folks at Infinite Fall with a very interesting challenge: could we please add support for localisation in Yarn Spinner, the dialogue system we wrote, for Night in the Woods?

Yarn Spinner was written to be a more advanced interpreter for the Yarn language, a Twine-inspired tool for writing interactive dialogue. Yarn Spinner lets you write your game's dialogue in a very natural way, with minimal technical syntax and a strong focus on getting your words into the game.

Because Yarn Spinner has such a strong focus on minimising the amount of stuff you have to write on top of your dialogue, we have to be careful whenever adding new features to the language. Our goal is always to reduce the amount of stuff you have to think about when writing. However, any kind of localisation system requires you to add additional information, in the form of a key that links a line's original text that of a translated version.

We created what we think is a pretty neat solution to this: hashtags. To localise a line of text, you add a hashtag that contains a short tag, like this:

However, Night in the Woods has a lot of dialogue. Like, buckets of it. Tagging each and every line would be hugely laborious. Fortunately, we already have a tool that's very good at quickly and thoroughly processing large amounts of Yarn dialogue: Yarn Spinner itself!

We therefore put together a little tool that can extremely quickly (like, 2 seconds quickly) tag every single line of dialogue that needs it. The tool only counts text that needs localisation - that is, anything that a player will see. It ignores all other stuff, like if statements and other behind the scenes stuff, as well as any line that already has a tag, which allows you to run the tool on files that have been partially tagged. In other words, it's a tool you can feed your dialogue through without worrying about anything it's doing.

Once you have some tagged dialogue, you can then generate a file that contains every line's text, as well as its localisation tag. The tool generates a CSV spreadsheet, which is the easiest format for most people to read.

Once you have the spreadsheet, you can send it off to your translators. In our case, we sent it off to a translation team in Italy, who converted the entire text of the Night in the Woods demo into Italian. They then sent back a spreadsheet that contained the Italian versions of all of the lines. We then dropped this into the Night in the Woods demo, and presto: localised!

The code for the localisation tool has already been merged into the development branch of Yarn Spinner, and we'll be putting out more info on how to use it soon. We can't wait to see more games in more languages using Yarn Spinner. Stay tuned for more!