While there are a lot of web-based stock trading tools available, trading apps for PC/mac are rare and usually linked to a specific broker. I’m developing a trading software with an API layer supporting different brokers. Scope of this post This article presents maystocks, an open source stock trading software. Motivation In 2022, I tried to use MetaTrader® to trade stocks. Even though MetaTrader® is kind of a “standard” software, I had a very bad experience using it. It felt like a software from the 1990s. ...
Choosing a UI Framwork for use with Go
Go is mainly used for backend services and command line tools. But sometimes a more visual user interface is required. I went on a journey to find the right UI framework for use with Go. Scope of this post This article analyses and compares different UI frameworks or framework-bindings for Go. It is not about web-based frameworks, because focus is on usability and performance. Is there a thing called “Native”? When evaluating frameworks for specific programming languages, an important point to consider is whether the framework or at least its interface is “natively” written in that specific language. Usually, this means that the framework is easier to use and can be integrated in a consistent way, which (hopefully) leads to simple and readable code. ...
Accessing Epic Online Services from a Go Backend Service
Epic Online Services (EOS) offer different storage options: Title Storage and Player Data Storage. If backend calls are properly authorized (e.g. using an AWS API Gateway), EOS storage can easily be managed by a backend service. Scope of this post This article presents an example program which can be used to access title storage from a Go backend service. Backend Authorization Usually, all storage-related EOS calls require login. However, running an “accountportal” login on a backend server does not work, because it would simply try to start a web browser on the server. There are other options available to use EOS from a backend service: ...
Differences between Online Subsystem Steam and Online Subsystem EOS
It is not possible to dynamically switch from OSS Steam to OSS Epic Online Services without additional modifications, even though both share the same interfaces. While some features are missing entirely in one or the other, the problems are mainly caused by differences in the implementations of certain features. Scope of this post This post illustrates some differences between the OSS Steam and the OSS EOS. However, it is by no means a complete list of these differences. ...
Using Epic Online Services with Unreal Engine Blueprints
The non-commercial Advanced Sessions Plugin for Unreal Engine can be used to create Blueprint-only games with Epic Online Services. I have made a YouTube video explaining how to do this. Currently, this requires small patches of the plugin, which will hopefully be merged soon. Click on the image to watch this video. Note that the link will navigate to YouTube.com. Epic, Epic Games, Unreal and Unreal Engine are trademarks or registered trademarks of Epic Games, Inc. in the United States of America and elsewhere.
Reuse of Epic Online Services Authentication
The EOS (Epic Online Services) SDK authentication examples require a login confirmation on each startup, at least for account portal login on desktop systems. Implementing this approach in a game is absolutely not user friendly, because the player would have to re-login each time the game is started. Instead, it is much better to reuse the initial authentication. EOS offers different methods to do that. Scope of this post This post presents two methods to reuse EOS authentication: (1) Persistent authentication and (2) using a refresh token. These methods do not depend on the game being started from the Epic Games Store. ...
Serverless monitoring of Steam server lists
Multiplayer games published on Steam often add their dedicated servers to a public Steam server list. This list is basically a backend service provided by Steam which can be queried in-game to browse and filter game servers and their state. When utilizing this server list, it may happen that dedicated servers for a game are up and running, but the Steam server list for this very game is empty. Cause of this might be, for example, a communication failure when updating the server list. ...
Creating a low maintenance server(less) status page
A server status page is an important tool for online games. It is used to inform players about planned or unplanned backend outages. There are several cloud-based products available like Atlassian Statuspage, but those are rather expensive for what they do and you would have to use a vendor specific API to automatically report incidents. Scope of this post There is need for a simple static (meaning low maintenance) status page without vendor lock-in which can be run in a serverless environment. This post presents a solution based on the open source project cstate. ...
AWS Lambda Authorization using Epic Online Services
Maybe you are considering to use Epic Online Services (EOS) for your next big multiplayer game, because the services are available for free and cross play is supported on several platforms. But you will almost certainly need further services to handle features like inventories, and maybe the Player Data Storage does not fit your requirements. Calls to additional services/functions should be authorized just like EOS calls. However, since authorization is handled by EOS, you need to combine these two worlds. ...
Cross-platform build automation for UE4 projects with Jenkins
Building UE4 projects for Apple devices on Windows is only possible if they are “Blueprint only”. As soon as you are using a single C++ source file, or Blueprint nativization, the project has to be built on Mac OS. While there are cross compilers available for Windows, using Apple SDKs on other systems violates Xcode EULA: “You are expressly prohibited from separately using the Apple SDKs or attempting to run any part of the Apple Software on non-Apple-branded hardware.“ ...