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.

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.

Quick start to CMake

CMake is a family of tools which mainly serves to build cross-platform applications and libraries written in any of C family languages (C, C++, C#, Objective-C, CUDA).

It is not a compiler, or a construction tool though. Its goal is to generate a solution which will be used to build it. It’s a template consisting information about source files, dependencies and compilation settings that should be used to build a project no matter a platform it is built for or IDE it is used.

The best way to use CMake is via terminal, but many IDEs like CLion or Visual Studio Code integrates CMake into their pipeline.

Does it sound like magic? Only at the beginning. After setting it up for the first time everything becomes extra clear! Let’s check the basics.

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.

Neon Flaps

Another year, another Huuuge Game Jam! This time the topic was “The Butterfly Effect” and there were a lot of great games (and great food and great fun and great people too!).

Me and my colleague decided to do a little logic game where you have to divide a bullet to make its parts fly to all of the targets. At some point one flutter of the butterfly’s wings generate a bullethell on the screen!


Visual Studio Code C++ Quick Start

I was writing about the best IDEs for C++ development lately and I mentioned the Visual Studio Code – the free, open source, powerfull editor that can be easily transformed into a slick environment for C++ coding. But how to do such transform? This is my approach.

In search of the best C++ IDE on Linux

The time has come when I decided to change my default operating system from Windows to Linux (Ubuntu, to be more precise). There were few reasons I did it, but I’m not going to write about them right now. Right now I want to write about my search for the perfect C++ IDE for Linux.

There is a really old joke: “The best program to write C++ in Linux is the Linux itself”. It is well known that hardcore developers write code in Vim, build it by typing compiler’s commands by hand and use GDB in terminal to debug. But I’ve become lazy because of Windows and I really like to have slick and easy to use IDE such as Visual Studio, which… is not available on Linux, unfortunatelly.

I was looking for something similar to the Visual Studio which I’ve got used to. For me – a good IDE should let the programmer focus on programming not on fighting with building pipeline and tons of configurations. Having this in mind, from many IDEs available, I’ve selected few worth mentioning.

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…

Sergeant Transmission: Pigeons of War

Another year – another Global Game Jam! It lasted 48h and this year topic was: “Transmission”.

Me and my colleague wanted to show the old way of message transmission – through the post pigeons, during the World War. We’ve also accepted the challange given to us by the other game jammer – to make a multiplayer game.


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!