This week was supposed to be a really good, fun week coming in from last week’s excitement. This week I start what this internship was supposed to be about: I could start coding! Well, almost. First I had to figure out where I was going to code and what language. But that’s simple, right?
When coding a game, you have to make the decision of what programming language you’re going to use. Several different languages are suited for different platforms. In the case of a mobile game, your main platforms are going to be iOS and Android. A big problem with this is that one language won’t be compatible with both platforms. Each platform has it’s own coding languages and IDEs (Integrated Development Environment– software that allows to you to write code). This is called the “native platform”, specialized and developed for one platform only. For example, let’s say you coded your game in a language for iOS. Well, if you wanted to deploy your game to Android devices, you couldn’t use the same game code from iOS. You’d have to learn a whole new language specifically for Android and then remake your game using that language. Then let’s say you wanted to make a desktop version of your game . Again, repeat the coding process. Again and again for every single different platform.
Not very efficient.
The solution is an SDK, a Software Development Kit, that allows cross-platform development. This way, the programmer can code in the SDK environment and let the SDK do the work of translating the code for several different platforms. I found my SDK through this article. We decided to go with Marmalade, a free cross-platform development tool. Other options, like the Corona SDK, were either too pricey for our first experiment of game coding, or like Unreal Engine, were focused mainly for 3D games; we wanted a 2D game. The product MarmaladeQuick was well-suited for our coding needs: it was free, used the simple but powerful coding language Lua, and deployed to several more platforms than we needed. So right after lunch on Monday, I started downloading the Marmalade Hub.
After waiting 8 minutes for the installer to download, I got the error “App not supported”. It was then I remembered that I’m working on a Chromebook. A gift from my parents last Christmas, this laptop is great for everything casual- Google searches, checking email, YouTube, almost anything most people require from their laptop. However, many external applications are not supported by Chrome OS. So the Marmalade Hub could not be opened on my computer.
I started freaking out. I’m not a very good person when it comes to things going wrong. I like everything to go according to plan smoothly, and if it doesn’t, I don’t handle the situation well. This is exactly what you SHOULDN’T do.
After whining to my dad, he handed me an old HP Windows laptop and told me to try that. One catch, though. They didn’t want me to save my work on the actual computer. My dad wanted me to use a Virtual Machine (VM). A VM allows you to basically install another Operating System onto your computer without interfering with any of the original computer’s stuff and the VM is accessible through the Cloud. I like to think of it as a computer within a computer(Computer-ception?). A VM is great for a number of reasons, but there were two my dad was concerned about: 1. Lots of problems happen with computers; I could lose all my work at any time. However, if it was saved into a VM, even if the computer crashed I could access my work by opening the VM on a different computer. 2. VMs are are portable. If I couldn’t bring a specific computer with me everywhere, I could at least access the VM on a different computer. Also, since I’m collaborating with other people, they could open the VM on their computer.
So I started out with Oracle’s VM VirtualBox using the Windows OS. It was Tuesday by now. I ran into a problem after installing the Marmalade Hub onto the VM. The Marmalade Hub window would open, but it would display whatever was on the screen behind it and would not respond. It pulled up a transparent window that did absolutely nothing. A similar problem occurred to a user running the hub on VMWare. I let our IT guy work on the problem, but he’s also a programmer and could only work on it in small bursts. I found other small tasks to do, but again was getting frustrated due to the lack of progress. He didn’t get to fix it and on Wednesday wasn’t in the office. On Thursday he tried working on it but still couldn’t figure it out. During another time while he was busy, I tried using the Microsoft Azure VM and opening the Marmalade Hub on there. Got the same problem.
All this installing and research and testing and fixing and waiting took a long time. On Thursday, we still had the same problem that had originally arose on Monday afternoon with little progress. I was pretty upset by this point and very unmotivated. As a last resort we tried switching to the VMWare Workstation Virtual Machine, and again, same problem. He wasn’t able to follow the steps that fixed the problem for the person in the article I linked above. By lunchtime Thursday, I had given up. I’d had a terrible week with no progress and still hadn’t found a solution.
During this time I had to meet with the other interns Tuesday, Wednesday, and Thursday , and felt absolutely useless. They had questions to ask me that I just couldn’t answer. I was supposed to lead this project but couldn’t even open my own code. The worst part wasn’t that I didn’t have the skills or the knowledge, I just didn’t have the right tools to access what I needed. A problem like this didn’t ever cross my mind and I’ve never really had this problem in school. It’s like having to write an essay, having a great idea in your head, have the paper right in front of you, but no pencil or pen to write with.
On Thursday I left the office pretty disappointed. I couldn’t find a way to make the Marmalade Hub work on the VM. No progress was made this week. I was just ready for the 4th of July holiday.
Sorry that this post is pretty late. It’s talking about the week of June 30th – July 3rd. I’ve been having a hard time keeping up with the blog. Hopefully I’ll get into a rhythm soon and start posting at regular intervals.