I started my latest project which is a simple game with a high difficulty level (think Flappy Bird) where gameplay can be extended by answering increasingly difficult questions. It might be chocolate covered broccoli, but I’m here to learn.

I’m writing the game in Swift (as a learning exercise as well) and ran into something interesting. I had run across the common wisdom to default to using Structs over Classes. I followed this advice without completely understanding it. I knew that Structs were passed by value but with their ability to include functions they were mostly like Classes.

Until They Aren’t Alike

I was happily using Structs everywhere until I needed an Array as a property. I added and initialized the Array property just fine, but when I tried to assign a value to the Array I got the cryptic message: “Cannot assign to the result of this expression.” Looked like a valid Array assignment to me. I went and created a Playground to test the Array syntax and there was nothing wrong with that. So I did some Googling and eventually ran across this note about Structs: “The structure’s primary purpose is to encapsulate a few relatively simple data values.” Something in my mind told me that Arrays weren’t simple data values. I changed the declaration from Struct to Class and the Array assignment worked as I expected.

This is the pragmatic way I learn. I pickup generally accepted patterns and practices for the tools and languages I’m using and use them without complete understanding. Some would see this as problematic because I’m moving forward without complete knowledge of what I’m working with. I argue that complete knowledge of the tools, while desirable, is impractical. Using the commonly accepted wisdom to solve known problems frees me to add value by working on the solution or application I’m writing. I also have the confidence that when I run into problems while using the tools I can figure out and increase my understanding of them as I need to do so.

Do I Have a Right? is the best example I’ve run across of game-base learning. It uses elements of resource management games like Diner Dash, but instead of giving patrons the correct food, you must direct them to the proper lawyer who can address their constitutional problem. For example, an NPC may come in saying that she was told she can’t vote because she is not of drinking age, but is 20 years old. You would need to direct her to a lawyer who knows the 26th Amendment. Similarly, you might get a buy who comes in complaining that nobody will pay him to be an actor. You would need to let him know that you can’t help him since there is no constitutional guarantee that you be paid to be an actor.

I can imagine a version of this that might be used to teach various aspects of Christianity. An NPC might come in with a question about Jacob and the player would need to direct the NPC to an Old Testament scholar, or an NPC might come with a question about Baptism and being buried with Christ and would need to be directed to a Pauline scholar.

If you know of any other games that impart knowledge as a core part of the game, drop me a line on twitter @byamabe.

Wouldn’t it be great if learning was fun and engaging? We have a better chance of learning subjects we are interested in, but even then, learning a foreign language we’ve always dreamed of speaking can become boring and arduous if presented poorly.


One way to make the learning process fun is to add game mechanics around the subject matter. This is known as gamification. Some examples would be adding a point system to learning vocabulary words, giving badges for being the first to mix a set of chemicals and get a specific reaction, and having levels for the amount physical activity you do in a day. In gamification the activities themselves aren’t any more inherently engaging, it is the process layer around them that keeps people interested.

Game-Based Learning (Educational Games)

Another way to make learning fun is to make learning an integral part of the game play. This is called an educational game or more fashionably game-based learning. Examples of game-based learning would be flashcards which drill a skill, the game Civilization used to teach about history and technological progress, and flight simulators to teach about aerodynamics and control systems.

Good and Bad

Both gamification and game-based learning can point to successes, failures, and cases of being oversold. In a previous dive into this field, Civilization was always held out as a model for game-based learning. There was talk of students taking deep dives into history and cultures because of exposure to the game. I’ve played at least 3 versions of the game and have yet to learn much more than some of the famous rulers in various civilizations. Maybe in the context of a good curriculum Civilization and other games can be used to spark curiosity. Other “kill and drill” games were routinely criticized and rightly to some extent, but I could see how you might actually learn some of the subject matter before you were bored to death or turned off by the subject.

Fun and Engaging Self-Directed Learning

What I’m attempting to do is create a game-based learning app where learning is part of the game play. I’m sure my early attempts will be little better than “kill and drill” or “chocolate-covered broccoli” games, but I hope to keep at it and find a formula for self-directed learning that is fun and engaging.

There are certain ideas that make the rounds with me and I don’t really know how to shake them. Things like blogging, podcasting, video production, video game development, educational game development, teaching, and starting my own company continue to bubble up to the front of my mind after I’ve gone off on some tangent. I’m not really sure if the fact that they keep coming back is supposed to be meaningful. It could be that there’s just some deeply embedded adolescent fantasy related to all these things and that I need to move past them. There’s also the theory that the themes that keep coming up in your life are those you should pursue.

What to Do?

I think it’s come time to put up or shut-up. It’s time to really make an effort at each one of these things and find out if they are areas I want to pursue or if they are just ideas that sound good in theory. It’s time to put together a plan, a schedule, a commitment to each one of these things, and then a reflection on how they fit into who I want to be and where I want to go.

Two Commitments

Since I have other commitments next week, I will start posting once a week on Thursday for 6 months. At that point I’ll evaluate the results of that commitment and see if I will continue. That evaluation will be either a commitment to continue or a commitment that I have thoroughly evaluated blogging and it is not the right channel for me to express myself.

My other commitment will be to creating an iOS game that includes elements of teaching. I have some projects that I’m still cleaning up, but this project will be my primary side-project. When I complete the project, I will commit to make a decision as to whether game development is a viable path for me to pursue or if it simply a fantasy that I need to put away.

Getting an Apple Watch

This month I’m getting an anniversary bonus for being at my job for 10 years and I’m planning to splurge a little and get my self an Apple Watch. I have no idea how useful it will be, but I want to be able to get some sense of how it is making my life better or worse. Also, since it is a non-trivial expense, I want to give it as many opportunities to succeed as possible.

The Hypothesis

The Apple Watch will reduce the number of iPhone interactions and the tendency to use it to kill time.

The Baseline

To see if the Apple Watch is increasing or decreasing the complexity of my life, I need to determine where I am at currently.

My first assumption is that it will largely insert itself where I’m currently using my iPhone. Things like checking the time, controlling podcasts, and checking notifications are the areas likely to be affected by having and Apple Watch.

My second assumption is that there I times when I interact with the iPhone and then linger and get sucked into something unrelated.

From now until the time I get the Apple Watch I’m going to keep a log of how, when, and where I use my iPhone. For example, on the way to the gym this morning I used my iPhone to check the time and skip audio on my iPhone. I imagine I’ll do the same thing on the Apple Watch which will be convenient. What I’m really interested in is tracking when I do something like get a text and then start checking Twitter since the iPhone is already in hand and how that behavior changes if I start checking notifications from the Apple Watch.