Using Unreal Engine 4 Marketplace on Linux

One of the biggest problem when developing on Linux with Unreal Engine 4 is the absence of Epic Games Launcher and Marketplace. The Engine itself can be built from source, but there is no source code for the Launcher. Luckily, there is a solution for that and it’s name is Lutris.

Lutris is a platform which installs and runs games and applications using emulators and compatibility layers using the best possible configurations. In other words – it makes installing games using Wine much, much easier.

Here’s my approach in using Lutris to download content from the UE4 Marketplace.

Read More ->
Unreal Engine 4 Automation Tests New API

While digging in the UE4.22 source code I found some strange files with *.spec.cpp extension. You can find them in Plugins/Online/OnlineSubsystem/Source/Test directory. It appears they are files used for Automation Tests, but their API looks odd, complately different than the documented one. I was trying to find any information about it, but without success, so… I researched this new way of writing tests and I must say it is much more convenient and professional than the old one.

In this article I will show some simple tests written in the old Automation Tests and their equivalents written using the new API.

Edit 25.07.2019 – Epic gave us an official documentation for Automation Spec here. But I still recommend this article to compare side by side an old system with a new one.

Read More ->
Starting an adventure with Unreal Engine 4

Ok, “what am I doing”? you’ll probably ask. This has already been on this blog! Do I have no any new topics to cover so I dig out an almost 3 years old topic? Well, I decided to rewrite this entry exactly because it is almost 3 years old and Unreal Engine 4 changed a lot. What’s more, my experience grew up and my opinions and approaches to many things changed too.

This article is aimed to people who want to start working in Unreal Engine 4 but is overwhelmed by the sheer amount of online tutorials and simply don’t know where to start. I just want to share you the collection of articles and tutorials that helped me the most with learning UE4.

Read More ->
Running Unreal Engine 4 Plugin’s code in didFinishLaunchingWithOptions on iOS

Now, that’s a long title! Some time ago I faced a very specific problem when implementing a third party iOS SDK into Unreal Engine 4. The SDK required to run its initializing function inside the didFinishLaunchingWithOptions method.

Usually when handling application lifecycle events Unreal Engine 4 uses delegates from FCoreDelegates class like ApplicationWillEnterBackgroundDelegate or ApplicationWillTerminateDelegate. But didFinishLaunchingWithOptions is one of the first methods that runs after the app is launched and at this point Unreal Engine 4 is not initialized yet. Delegates and plugins will not work!

We could modify the engine’s source code and paste the SDK’s code into the ApplicationCore module but this would be a terrible solution as all third party SDKs should be handled by plugins. Here I’d like to show a solution to this problem.

Read More ->
Reducing build size of Android game in Unreal Engine 4

Unreal Engine 4 is considered to be a big, bulky engine that generates a lot of data and has huge build sizes. Such feature might be a serious issue when making a mobile game. Here are few steps to do at the beginning of Android development in UE4 to avoid problems with enormous build sizes.

Read More ->
DD2018: Unreal Engine 4 and mobiles – Tips and Tricks

So I was talking at Digital Dragons 2018 about using Unreal Engine 4 to make a mobile game…

Read More ->
Multiplatform Plugins in Unreal Engine 4

Long time ago I wrote an article about adding a multiplatform runtime module to the Unreal Engine 4. This day that article would be complately out of date. UE4 changes and the way the new stuff can be added to it changes too. First of all, I want to to be clear – this article will not cover 100% of the topic, because it’s simply too broad. This is rather a quick start into writing your own plugins, getting know the basics. This article will cover the following topics:

  1. Creating a plugin
  2. Building a plugin
  3. Making a plugin that works differently,  depending on the platform
  4. Using the plugin from C++
  5. Using the plugin from Blueprints
  6. Creating a plugin settings editable from the Editor
  7. Calling asynchronous functions from Blueprints

When writing this article I was using the Unreal Engine 4.18.1.

For the lazy ones – here’s the github source code version.

So, with all of this in mind – let’s start!

Read More ->
Symbolicating crash dumps for Android in Unreal Engine 4

Do you know what is more annoying than a crash? A crash that you don’t know how to track down. You are praying for not being in a situation where no debugger is attached or there is no crash log. Sadly – this is a very common situation when you are working with the external engine, on a mobile device.

Android c++ crash logs are even more nasty, because of their binary format. In fact – they are minidumps, the same format the Microsoft is using for dumping Windows crash data. To encrypt the Android’s minidumps you need to do some voodoo with Google Breakpad.

Read More ->
Multidexing in Unreal Engine 4

When your app is growing, also its needs. Google Play, Facebook, analytics systems, advertising, crash reporters and more are put into the build and at some point the infamous “64k methods” problem occurs. Why? According to the Android Developer’s User Guide:

In other words – you can’t have more than 65,536 methods in Your java code (and it’s not so difficult to do this, because the full Google Play SDK uses about half of this limit).

Dealing with this problem is rather easy… if you are using Gradle. Unfortunatelly Unreal Engine 4 still uses Ant. So, what do we do when the “64k problem” hits us? Do we cry and fall into despair? No, no, no… This is how you can fix this:

Read More ->
GIC 2016 lectures

So,.. I was at the Game Industry Conference in Poznań and I was lecturing about Unreal Engine 4 on mobiles and about Websockets. Because some of the attendants were asking about the presentations to download here are the links!

Also I’d like to thank all of you for been there. And for votes. You are awesome!