Intro to Polars development blog

Morva Kristóf
Polars Technical Blog
4 min readJan 23, 2019

--

Welcome to our very first issue of the Polars Development series!

Polars is a work-in-progress magnet-based puzzle game using Unreal Engine. This series is meant to keep you updated on our development process. We’ll try our best to keep this interesting for both those who are merely interested in our overall progress, as well as those who are curious about the technical challenges we face along the way.

The project has been in development for just over two months, and while nothing is set in stone as of now, the gameplay mechanics and the direction seems to be quite stable. At the moment, I’m the sole developer on the project, and I’m working on it in my free time — next to my full-time job at Zen Studios — , so you’ll have to manage your expectations on the pace at which the project is going to progress from here on out. Hopefully, this will change in the future as the project gains traction.

As I’m primarily a programmer myself, I expect to be lent a helping hand of both a 3D artist, as well as my brother, Levente Morva, who will be responsible for the UI/UX aspects of the project once he wraps up prior engagements. Until then, I ask that you to please try and ignore the admittedly horrendous visual aesthetics of the game, and the huge amount of placeholder assets used.

Gameplay

The premise of the game is quite simple — you have to reach the end of the current room by using magnets you can move around and interact with, which in turn interact with other game elements in the current level. Think Portal, but with no… portals. There are magnets instead! For those of you that are a little confused by that utterly useless comparison, take a peek at this little demonstration of how a level might work:

There will be numerous types of magnets, differing in strength, shape, and other properties — most of which we’re planning to reveal in later entries of the series — , and a whole bunch of level elements to interact with.

State of development

So where do we stand currently in the development? We have a number of gameplay elements already working, including magnets, doors, buttons, force fields, and lasers. We have 8 more-or-less finalized challenges which serve as an introductory tutorial to the various elements found in the game. There is also a very basic, very work-in-progress level editor included, so players can build and share their very own challenges with the community.

To get a sense of the level editor’s capabilities, you’ll have to know that all the currently available rooms are already built with it exclusively, and we’ll keep building challenges this way to ensure that the community gets all the same tools and possibilities as the team. I’ll be delving into all this when it becomes a little more user-friendly.

Technical details

Magnet implementations

Implementation-wise, it took a lot of testing, sweating — and even occasional swearing — , but at the end it’s all quite simple. In every tick for every magnet we check which other magnets are in their area of effect, and we apply a force to them based on their direction and distance, like this:

Blueprint of applying force to magnets

Naturally, the resulting mechanism is not even near to a physically-correct magnetic system, but since we are building a game, not a simulator, it works for our purposes just as well, and does exactly what we need for the puzzles.

Development Operations

We always try to update to the latest engine version (4.21.2 at the time of writing), so we have immediate access to all the new features and fixes (including some that I have implemented).

We’re utilizing the Git version control system with LFS, and are using GitLab as our host. GitKraken and Sébastien Rombauts‘s plugin for Unreal Engine (thank you for your work!) both provide us with excellent ways to handle our local and remote content. GitLab also helps us manage our issues in an organized and transparent way.

Our current issue board on GitLab

That’s all for now, feel free to share your thoughts in the comments below, we’ll get back to you soon with updates!

--

--

Morva Kristóf
Polars Technical Blog

Game Developer, lover of open source projects, freedom, sustainability and strawberries.