Coming up for air

We’ve been deep in Unreal Engine development for over 18 months now. It’s been an interesting and rewarding period. Unreal Engine 5 is such a deep platform that understanding and leveraging its power takes time.

We’ve discovered eye opening features, empowering functionality and frustrating blockages (the documentation could be better), but ultimately, our time has been hugely productive.

A major upside is that Unreal includes a lot of library code we previously needed to implement ourselves. The previous version of the game was built on tens of thousands of lines of specialist code, but we’ve only needed to convert a small fraction of these to Unreal.

Despite all the code on the old platform, we had to abandon the project. We simply had too many serious and insurmountable issues. So, having a new game under Unreal Engine, that works and was completed with relative ease, is proof that it’s the right toolset for us. It’s also immensely gratifying that the game has become possible.

The basic game is largely feature complete and runs really well on both iPhone and iPad. There’s plenty to add but we do have a number of working levels, have returned features we’d previously had to drop and also added some completely new gameplay ideas.

Progress should be more rapid now and we hope to reveal footage of the game play closer to release day. In the meantime, thanks for your continued support and interest.

Why multiple choice?

When we released TTUltra we had made a deliberate decision to use multiple choice answers. Many time table apps use a keypad to enter the answer and initially TTUltra did the same. However, we felt that it was not the best solution because the actual entering of the number can cause problems. This is particularly true if you are trying to answer as quickly as possible. It’s all too easy to hit the wrong key and so enter the wrong answer – even adults do it.

Early version of TTUltra with keypad answer entry

In school, many children write their answers on paper and there are indeed several apps that use the writing recognition method. Unfortunately, in our tests, we found that getting the computer to reliably understand what the child has written was difficult. It could easily be very frustrating for some children and can lead to them getting the answer “wrong” through no fault of their own.

When we thought more about this, we realised that children who are learning to write simply don’t have the clearest hand writing. We saw several occasions where they tried to write the correct answer but the app’s hand-writing recognition processed it as a different number. The result was the question being marked wrong even though the child did actually know the correct answer.

We also thought about speech recognition, but this has the same sort of reliability issues as hand-writing. Plus, most parents enjoy peace and quiet (or would like to) and if their child spoke every single answer then they wouldn’t get any.

Three answers, only one is correct

In the end we decided that just displaying a correct answer and two wrong answers would be the best idea. If the child knows the answer, they can easily and quickly select the correct choice. What’s more, we very carefully select our wrong answers so they are close to the correct one. The child needs to be careful to select the correct option as (most of the time) it will not be obvious.

However, multiple choice does present another potential issue. You many be thinking, “surely a child can just randomly and quickly press any answer and they’ll get through a timed test with lots and lots of correct answers?” And indeed it could be possible for the child to get more correct answers by guessing than by slowly and carefully selecting the correct ones. If there were no barriers to this type of guessing, they could randomly answer 100 questions in a 2 minute game and get 33 right. A more careful child might only answer 20 questions and get 18 right in the same 2 minutes. However, TTUltra does puts barriers in the way of random answering…

Accuracy graph showing percentage of answers correct (in green), wrong (in red) and skipped (in orange). Simply guessing would show a very large gap between the green and red lines.

Firstly, TTUltra does not use a simple “how many questions did your child get correct” value internally and most of the graphs for parents don’t either. Only the ‘number answered correctly’ graph would do this and looking at the other graphs (particularly the ‘accuracy’ and ‘speed’ graphs) would show something was wrong.

Second and more importantly, our questions and space-race game are carefully set up so that guessing won’t normally win the race (see below). However, answering carefully and steadily will win races. This is because, if a child gets the question wrong, we show them the correct answer, leave it on screen for a short time (to let them take it in) and stalled their ship while this happens.

Correct answers give a boost

If they get the answer correct, their ship is instead boosted and they move (very quickly) on to the next question. In other words, a child who is guessing would (on average) be stalled in their attempt to high-speed answer questions more times that they were boosted. This stalling also means that a child who answers correctly (and gets another question quickly) is likely to be asked more questions than a child who simply guesses, opening the opportunity to get more questions correct in the timed test.

Of course, a child could randomly select all the questions correct but it’s statistically very unlikely. It’s far more likely they will get a few correct but far more wrong. In fact, pure guesswork from a choice of 3 answers would (on average) see a child get 1 in 3 (⅓ or 33.3%) correct and the rest (2 in 3) wrong. To put this another way, they would get twice as many wrong as right and so they’d be stalled more often that boosted. What’s more the chance of getting 10 questions correct in a row by guessing would be something like 1 in 59,000, 20 in a row would be about 1 in 3,500,000,000 (3.5 billion) and the above stated 33 would be around 1 in 5,500,000,000,000,000 (5.5 quadrillion)…

So, guessing is not likely to get a child very far.

Avoiding repeats

One of the banes of randomness on a computer is that it’s not really random. Instead, it’s a mathematical pseudo-random formula and, with small sets of options (such as one or two times tables), it can repeat the “random” choice two or even three times in a row. The only computer we know of that has a true random number generator is the specially built ERNIE series.

Why does this matter? Well, the effect of pseudo-randomness on times tables questions is simple, boredom. If your child is asked “what is 3×5” not once, but two or three times in a row then it’s tedious and too easy. We have experienced this several times while researching times tables programmes and the children, who helped us develop TTUltra, said they have seen it frequently and it made them less keen to practise.

As a result, we wanted to ensure that TTUltra would not do the same and coded a special routine that ensures the child is not asked the same question repeatedly. They might be asked a variation (for example “what is 3×5” and then reversed as “what is 5×3”) but the app will not immediately (or even shortly after) ask the exact same question.

Even more variation can be added by selecting one or more of the optional question types which are available in the paid versions (obtained via in-app-purchase). These include “reversed questions” (as seen above), “division questions” and “missing place questions”. The latter is where some element other than the answer is missing – for example, “9 x ? = 45” where ? need to be answered…

Practising efficiently

Practise what you don’t know, not what you do.

One of our developers came across this quote while learning to play the guitar and thought it was a good way of expressing efficiency in learning. However, while it is great quote, we felt it slightly missed the mark. After all, if you don’t occasionally practise what you’ve learned (refresh your skills) then they will eventually become dulled. Additionally, learning isn’t black and white, there are shade of grey. Somethings you know, some partly and other things are new or you’ve not got the hang of them yet. So, we thought we’d use a slightly different phrase…

Practise what you don’t know more than what you do.

We then spent some time developing the idea and now have a system in TTUltra that is capable of learning what parts of the selected tables most need to be practised at any point in time. The process does not require any additional work from the parents and the children simply need to answer the times tables questions. The program does all the work and automatically figures out which times tables need improvement, adapting the questions so they practise more effectively.

Of course, there wouldn’t be much point if the app didn’t give them the right answer to learn from. So, if you get a question wrong in TTUltra it always shows the correct answer and gives your child a little time to take that answer in. Next time they should, hopefully, get the question right and be rewarded with a boost towards the planet for their ship.

The Engine

One of the less enjoyable aspects of games development is the writing of the engine – all the editing tools, graphics and sound systems, level loading and management, menu systems, AI, UI, etc, etc… Essentially, all the back-end code you need to make a game run but which doesn’t actually form part of the gameplay or levels. Fortunately, written well, this code is very reusable.

As a company we knew that developing any kind of engine (completely from scratch) would take considerable time and effort. Let alone a usable, powerful and graphically beautiful engine. We also knew that having a library of tools to help might just make it possible to get something good in an acceptable time. Our hope was that Apple’s APIs would be the needed boost but, although they are a very good starting point, we have learned that they need considerable expansion to give us what we want.

We now find ourselves at a junction. With further work needed to build on Apple’s APIs, do we continue with them or do we look for something else? Could we change tack and build our games on something that is already more complete, something better than we could build in-house and could this help us to complete our projects faster?

Hunting for tools we go…

The main reason we did not consider a 3rd party tool before was that, in the past, using them has been problematic. For years, there have been free or affordable tools, others have come and gone. Many looked good at first but, as you got further into the project, you quickly came up against limitations which meant they were not usable. There have also been usable tools. Some, were used to build incredible games, but these too had a problem. Their very large up-front costs made them inaccessible to small startups.

In recent years – perhaps due to the rise of independent developers – this has begun to change. Engines which look to be both usable and affordable have appeared and, after some research, we decided that the Unreal Engine would be worth trialing. We also considered Unity, but while it looks very good, it isn’t such a good fit for us. It does though, share many of the features on which we based our choice of Unreal…

  • No up-front costs and you only need to pay 5% once your gross profits exceed $1 million. This is off the sale price of the title, so with Apple (who take 30%), you are really looking at just over 7% of your companies gross income. It might sound like a lot but we don’t think it is. With the development of your own engine and tools, in a reasonable time and to a good standard, plus the tools continued development, you are really going to need extra staff. It looks as if we may need additional programmers for some aspects of Unity too. So working the numbers, $1 million of gross sales, results in $50,000 of fees to Epic. That’s (at most) two full-time developers and would not seem like a realistic alternative to the tools and technology that Unreal gives you. Epic is going to have a much larger team than that, plus they give you the tools now, with no up-front costs and no lag while the tools are in development. We think you’d need to pay a lot more than 5% of your gross sales into the upkeep of your own engine – unless your gross sales were considerable.
  • The Unreal tools run on Apple Macs – they certainly could run a lot better and make use of iOS simulators, but they do work acceptably. This may be a non-issue for some teams but when you have been working on iOS devices in Xcode, you likely have an office full of Macs. Having the company move all of its machines over to Windows would be an up-front cost.
  • Unreal is “battle-tested”. Epic and others have actually developed games and brought them to market with this toolset. This has certainly been done with Unity too, but there are some other products that claim to be able to do this and, for them, our concern is that this claim could be theoretical. Until a number of games, actually developed using the tools, are released we can’t be sure. Using these unproven tools could leave us in the position of being one of the first to try and complete a game with them. This is not something we want to do as it’s possible we will find a major issue or issues, which may only come to light late into the project, and could cause a major problem or even stop the game’s release.
  • That brings us to another important issue – support. Unreal has a large user base, meaning you can find solutions to most issues online somewhere. It also has extensive examples and tutorials, even a series of videos plus extensive 3rd party support. So does Unity of course.
  • Unreal has clear onward development of their engine, with demos of version 5 on the Playstation 5 and the Digital Humans making their rounds at the moment. While it’s unclear how much of this will translate to the far less powerful iOS devices (which Epic state will be supported) the fact that this development is happening shows intent by the Unreal Engine team to improve and progress the toolset.
  • Extensibility in the form of both Blueprints and C++ code or both at the same time. One allows fast development and the other is useful for increasing performance or more complex tasks. It’s also possible to develop plug-ins to extend the system’s functionality – again there are tutorials.
  • Support for and integration with other tools such as SQLite (with included SQLiteCore and optional plug-ins), Blender (with a handy import / update utility), source control including Git and, by no means last, Apple’s APIs – such In-App-Purchases, iCloud and Game Center.

Are there any disadvantages to Unreal? Unfortunately, yes. We’ll have to re-write some code in C++ instead of Swift. While Swift is a great language for development with strong bug resistance and fast development, it almost certainly runs slower than C++ and Unreal does not support it. We also have to learn the new tool-set and how to develop things in it, which is always a bit frustrating. However, the benefits should hugely outweigh the disadvantages.

What are we doing with Unreal?

For our trial of Unreal Engine 4, we decided to resurrect a stalled project. It was our first game idea and also our most problematic! Its use of physics and many other technologies has seen so many extensions to Apple’s APIs, work outstanding and the requirement for a good level editor on the Mac, that it was decided to shelve it and concentrate on other more straight forward projects instead.

So far, the trial with Unreal has seen dramatic progress. We’ve gone from installing and scratching our heads about exactly how to use the tools, to a working proof-of-concept of the game (running on a physical iPhone 11 Pro) in around one week. Of course, this is helped by all the development of the game that happened under Apple’s APIs, but it is still much faster.

The rapid progress has resulted in the decision to continue the game under the Unreal Engine and, in addition, we’ve decided to trail an educational app in the tool. Only time will tell if everything works out on the two projects, but currently we are hopeful that we’ve found our new engine.

See your child’s progress

TT Ultra is as much about letting parents see how their children are doing as it is about helping children to improve their times tables. It was a primary design goal that parents would get at least one graph to see their children’s progress, even in the free version of the app.

This overall graph line is built up from multiple sources: the number of questions answered; the speed of answering the questions and how many your child gets correct. This way it can show improvements in one or more of these areas with a simple, single line that shows daily results for the last four weeks.

Parents who choose to purchase an upgrade also get access to one or more additional graphs. Essentially these show more information about each of the elements that make up the overall graph and allow you to ‘drill down’ to where improvement is needed.

The speed screen shows three lines which are your child’s progress in how quickly they answer the questions. It shows the fastest answer, the slowest and the average for all questions on a given day. The ideal would be three nice close lines towards the top of the graph.

The accuracy graph again shows three lines. This time they represent the percentage of correct, incorrect and skipped questions for a given day. With this graph, children who are improving on their selected tables would have a high green correct line with both the other lines dipping towards the bottom. Whereas a high skip line may mean your child is opting to skip certain questions they find difficult.

The final answered graph is a simple line showing how many questions your son or daughter is getting correct. In effect it shows two things, firstly how much your child is practising each day and how many they are getting correct. The latter can be determined more accurately by also looking at the lines in the accuracy graph.

Purchasers of the multiple players option benefit from seeing these graphs for each child. Simply select the child’s player slot before starting a game and the app will log the data for each sibling separately. This way, the graphs will show results for just that player and to see a different child, simply change to them in the player screen. When returning to the various graphs you’ll see how that child is progressing.

Learn the way you want to

The free version of TT Ultra comes with a starter pack of times tables unlocked and with most of them selected. However, you don’t have to stick with that. You can focus on one or two tables or add variety by selecting all of them. If your child’s homework says to practise the 2 times table, then just select it. Need to practise 1, 2, 5 and 10? That’s fine, you can choose all of those or any other combination and change them as often as you like.

When the time comes to practise additional tables or if you just want more choice, then an in-app-purchase allow you to unlock all the tables from 1x to 12x and other options too. As before, you can select any one or more tables plus other options. It’s up to you.

The current version has three additional types of question. When selected, each adds the new set of questions into a random mix for your child on top of the standard type.

The optional types start with Reverse Table Questions and this presents questions backwards or reversed. So, for example, if you were practising the 3 times tables, you’d normally get questions like…

  • 11 x 3 = [ ? ]
  • 8 x 3 = [ ? ]
  • 2 x 3 = [ ? ]

With reverse questions, you would also see these questions backwards. The answers are the same but it gives your child a different way to learn the table. For example…

  • 3 x 11 = [ ? ]
  • 3 x 8 = [ ? ]
  • 3 x 2 = [ ? ]

Division Questions makes TT Ultra show divisions using the numbers within the times table. For example, if you have the 5x table selected, the app would show extra questions such as…

  • 50 ÷ 5 = [ ? ]
  • 10 ÷ 5 = [ ? ]
  • 60 ÷ 5 = [ ? ]

The division option can be combined with the reverse question to show a larger variety of randomly generated division questions and add in questions such as…

  • 50 ÷ 10 = [ ? ]
  • 10 ÷ 2 = [ ? ]
  • 60 ÷ 12 = [ ? ]

The final choice is Missing Place and this is a different form of question. Instead of your child having to answer, these questions show the answer and instead ask, what number is missing? For example, in the 6 times table…

  • [ ? ] x 6 = 60
  • 6 x [ ? ] = 36
  • [ ? ] x 6 = 12

Finally, all three question options can be enabled at once. This combination would result in a diverse set of questions, for example, with just the 6 times table selected you could see…

  • 6 x 8 = [ ? ]
  • 30 ÷ 5 = [ ? ]
  • 4 x 6 = [ ? ]
  • 12 ÷ [ ? ] = 6
  • [ ? ] x 6 = 24
  • [ ? ] ÷ 6 = 5

…plus many more randomly generated questions.

TT Ultra is now available

Bit Loopy has now released its first educational app – TT Ultra – with the aim of giving children a new way to practise and learn their times-tables.

Like many people we have primary school age children in need of a new way to improve speed and accuracy with times tables. So, we thought it would be a great idea to create an app which is a little more fun and a novel way of helping children achieve their goals.

For the children it gives them a multiple-choice answer to the question being asked and a race based game to give them an incentive to answer quickly and accurately. If they get the answer correct their ship gets a speed boost, get it wrong and it stops. Importantly, it also shows the correct answer so they can learn from their mistakes.

We also understand how much parents need to be kept-in-the-loop and so our app automatically provides information on how your child is progressing. Storing results on the device and showing you how they are improving with a progress graph.

The app is free to download from Apple’s App Store and comes with a number of free tables. You can practise any one or combination of multiple times tables plus purchase upgrades. The upgrades give you access to all the tables from 1x – 12x, add additional question types such as division, missing place and reversed, plus add support for multiple players, each with their own progress data stored locally. The upgrades gives parents more information too in the form of extra progress graphs showing different ways of seeing how their children are getting on.