Two years ago I started making a match three game in unreal Minimal Match Three. Here is exactly how that went.
I’m not an app developer or a video game developer, so making a game all by myself with Unreal was intimidating. I previously used the original unreal editor years ago to edit some maps, but this was a whole new ball game.
I can’t code, I can’t read C++ or understand Unreal’s visual scripting system called ‘blueprints’. I imagine many other indie developer are like this too — not developers but designers and entrepreneurs.
Luckily I do have one skill, design. So I started there.
I started with Sketch to do some design mockups, I usually use it for website design, but figured it would be ok for asset exports – which it was.
I designed the entire app before I made anything in Unreal. In fact I designed it twice over.
The first designs had were just menus and nice posters, I wanted to look like a 60’s minimalist movie poster you could move.
I installed the latest version of Unreal for Mac. I also installed Unity and tested both. I actually preferred Unity as you can add any script to any object a concept that makes a lot of sense.
I picked Unreal for my app because I wanted to make a more complex first person game later down the track, so I thought this will be easy and get me into the software…two years later I don’t regret choosing Unreal.
I used version 4.17.2 of Unreal and version 9.0.1 of Xcode. I would find out versions matter:
Recognise a pattern? Nothing seems to work first time, so build everything all the way to the device and upload to the App Store and test on your device through TestFlight Apples testing app.
Build as soon as you can, and never ever update you software, otherwise everything will break.
Here is an example: As of today, Apple will not accept my builds in Xcode 9.0.1 as it don’t build for the latest iOS, so I need to update Xcode, when I do Unreal breaks, so I need to update that. When Unreal updates it does not build the app as the integration with Xcode and the engine code breaks. So I can leave the app as it is, or spends months fixing errors hoping it will build again…this is not great.
It will save you months of endless error codes and googling old forums for help by building often. And you guessed it, the help you do find will be for another version or Unreal and won’t work for you 👨💻.
Build early and test often, not for user testing just for compatibility! And never change the setting or update anything.
I got a prototype built fast. This was great and I totally recommend it.
It looked almost like the finial game.
I thought I was done. That was a year ago. Between fixing compatibility issues and exporting assets another year disappeared.
I started with working late nights, then on the train, then after work. Exporting screen after screen. It was exhausting and…fantastic fun.
Automate what you can:
I’ve covered compatibility issues so I’ll just talk about Unreal errors.
Unreal errors make no sense. They have little to tell you what’s going wrong and mostly occur when exporting or building for iOS, so they are engine related errors. This is not great. So build very early on all the way to the device.
The errors that you can fix are the Blueprint errors. They tell you what’s wrong and it’s usually your own fault and so you can be sure you can fix them. The best part is, it’s almost fun, as it’s a visual coding interface. I didn’t hand code anything on the project so this was a very positive experience.
Example or my latest error (if you know why this is happening please reach out 😂 ):
UATHelper: Packaging (iOS): UnrealBuildTool: /Users/Shared/Epic Games/UE_4.17/Engine/Source/Runtime/CoreUObject/Public/UObject/UnrealType.h:3786:47: error: lambda capture ‘LocalSetLayoutForCapture’ is not used [-Werror,-Wunused-lambda-capture]
To get there you just build you app, upload it to the store and add a lot of information.
As I don’t live in the America it’s a little harder as you have to agree to things that don’t make sense or apply to you or your country. But the real time commitment comes with producing assets.
Here is what you need:
Everything else you will be able to do as you go, it’s the description and assets that take a long time. So take the time to get them right.
Compatibility is a major issue, and not upgrading your software for months or years at a time can be frustrating.
I’ve decided not to use Unreal again. Mostly because of Xcode and Unreal compatibility don’t seem to update at the same rate or time.
I’ve uninstalled all my versions Unreal, and Xcode. Each version takes up serious hard drive space and the given stress of making the software work, it was a pleasure to uninstall them.
My game Minimal Match Three is on the App Store, however I can’t update it, as Xcode 9 can not be used anymore and updating breaking everything. So for now it’s stuck in its current version.
In retrospect I loved using Unreal. I like the interface and using visual coding with Blueprints is fantastic. I think I’ll go back to Unreal when I do start my first person game, but for now I’m moving on to other tools for my next game, let’s hope it takes less then two years!
Live, learn, focus.