public

Infoslate #3 - Development update

A lot of progress on the game's development this past month. Read on to find out what has been completed, and what's coming up.

7 months ago

Latest Post Infoslate #8 - April update by Kirk Bushell public

It's been a solid month since our last update, and there's been a lot happening behind the scenes, so let's get into it.

Authentication

Authentication/authorisation is one of the first tasks to get out of the way with any new project. Outside of a couple of social authentication mechanisms, this is done. For clarity, Halcyon Online will support the following authentication mechanisms:

This means that the game should support your preferred identity provider, and make it ridiculously easy for you to register and login to the game, no matter what device you're on!

Galaxy selection

Halcyon Online will support as many galaxies as there are players that are willing and able to play on them. This could mean as few as 1 or as many as.... well as many as we need! The galaxy seeding code has been modified a little since our last update, introducing a number of new features (which I'll get into at a later date), but suffice to say that each galaxy can be very different, with the ability to randomise how many sectors, systems and planets are present, as well as their resource distribution, resources that players begin with, and a whole lot more.

My goal is that at launch Halcyon Online will have both a PvE and PvP galaxy, both set in the classic game mode.

ℹ️
Classic game mode harkens back to the games of old, where players join a galaxy and vie for supremacy across the numerous sectors the galaxy has to offer.

Galaxy selection is completed.

Empire launch

When you first join a galaxy, your empire will be created and you'll be assigned a random planet within that galaxy. Your planet's location although randomised, is restricted to planets found within the "goldilocks zone" of a star system. This means that all players will be starting each galaxy somewhere between the 2nd and potentially 8th planet of a system. This is totally dependent on the RNG of the star's system (some systems have only a handful of planets, others can have up to 20!), so players' starting colonies will be quite random.

That randomness aside, all players start with exactly the same resources, so all players have a balanced starting point for their empires. Some games randomise this aspect, and this can really affect a player's progression - Halcyon Online will never do this.

Launching a new empire for your selected galaxy, is done.

Design

I've mentioned before that I'm working with the incredible Michael Heald of Fully Illustrated, an indie game veteran with a real passion and talent for gorgeous user interfaces.

Since that's been kicked off, Michael has re-worked the Halcyon Online branding (which will be shown very soon), as well as just about completed the home screen for the game. It probably goes without saying but I am incredibly inspired by the work he's already done, and cannot WAIT to get these assets into the game. It's all starting to feel very real :)

Michael will be working on the planet view next, which is the main overview screen players see when managing their colonies, or looking at the colonies of other players.

I really, really want to show you all this work, but it has to wait. Hopefully next development update the work has been signed off and I can start sharing what has been completed.

Celestial body navigation

Halcyon Online has a navigation tool that allows you to navigate across sectors, systems and celestial bodies, very easily. It works a little like a pagination component, with a few additional features. This has been completed.

Migrating to a new technology

‼️
Warning: nerd alert! If you're interested in programming, and computer tech more generally, you're gonna love what I've written below. If not, maybe move down to the next section :P

I began work on Halcyon Online using Laravel - my favourite web framework to work in, bar none. It is a beautiful solution for all web projects that I've worked on. However, due to some of the complexity of managing game state within Halcyon Online, I've discovered that continuing with Laravel would actually cause me more harm than good in the long-run, and re-coding the entire server-side solution a couple of years down the road, does not appeal to me in the slightest.

As a result of that, I've started working with the Phoenix web framework and the Elixir programming language. The potential of these two in empowering the game's implementation cannot be understated - it simplifies the entire technology stack and allows me to do things faster, and have code running much, MUCH faster than it can in PHP. Additionally, complicated concurrency requirements that simply could not be handled in PHP, is not only handled well in Elixir, it also means I could support 10s of thousands of players on a single server!!! As a solo developer, that is a morsel far too tasty to skip.

I came to this decision because I began working through some complex requirements in managing game state in Laravel, as well as working hard to ensure that game events are happening as close to "real time" as possible - and unfortunately, the previous tech stack was getting in my way.

What this means, is that some of the work I've already done, has to be re-done. But I'm okay with that, as it means that my future requirements will be easier to support, things like real-time communication, faster notifications to players, fleet engagement, game state management, and a whole lot more.

To give you an idea of the boost in performance, my previous galaxy seeding code, for a galaxy with 10s of 1000s of celestial bodies, took about 30 seconds to complete. With Elixir, this takes less than 1. Yes, less than 1 second. a 30x performance boost, for practically the same code. 'nuff said.

Client support

Halcyon Online will launch with support for any browser, on all devices. This means you can play the game, in the browser, on your PC or Mac (or Linux!), as well as your preferred mobile device. Hell, you could even play it on your TV, if you really wanted! (If your TV has a browser like Google Chrome on it).

In future, I'll also be releasing mobile and desktop apps, via the various stores. When that happens though, I'm not entirely sure. Probably well beyond the first couple of seasons of Halcyon Online's launch.

Art assets

On the point of assets, I've started learning how to create 3D assets for the game. The reason, is that I'm spending a fair bit of money on the UI/UX, and so any funds available for 3D art will be fairly limited. I've always wanted to learn 3D art, so this is a great opportunity for me to get my feet wet and create some truly beautiful celestial bodies, such as planets, asteroids, stars, and more...

You can see one of my initial test planets in the image on this article - an Ice planet.

I'm extremely happy with how it turned out, but it should be noted that this is not how planets will look in-game, but rather something that might be used in marketing materials. Halcyon Online will have highly-stylised planets that won't look so realistic, with exaggerated features, but will look just as good as the Ice planet above, if not better.

What's next, then?

With everything that's going on, these are the next objectives to tick off the list:

Not sure I'll get all that done in the next month, as I have a lot on my plate regarding work and my other projects, but I do think it's achievable.


Words cannot express how excited I am at the game's current progress and how far it's come in the last few months. I do think things will slow down a little as I learn a new programming language, but that's a price that's worth paying, as the potential that Elixir brings to the project is nothing short of extraodinary.

Kirk Bushell

Published 7 months ago

Discussion

()
"
"