Progress Update - Crap, it's March already.. (13th March 2020)

Greeting all,

Firstly, really need to apologise for the delay in these updates, turns out buying a house, moving and sorting stuff out takes far more time than it would seem, and a lot of my time outside of work (which in itself, has been a massive pain in the ■■■ recently) has been focused on physically moving house and sorting things out there. The good news is, that the main bulk of stress related to that is finally subsiding, and I’ve been giving some time to working on some code and getting back into the swing of things… So where we at?

Account Security
Firstly, and this has been a big one for me to be working on, I’ve put a heavy focus on account security and management in preparation for the beta. Email validation will be introduced, this allows for password reset to function and, in future, ‘suspicious login’ notifications. While this seems relatively frivolous whilst everyone is clamouring for the game it’s important that this gets done right as soon as possible to make sure players can support themselves. As an addition, I’ve put the framework into the user engine to support two factor authentication via Google Authenticator (TOTP), all I need to do is plumb that into the front-end along with the general rewrite. I’m nearly finished with this boring back-end stuff work, so can start pivoting back towards all the stuff you want to see!

Bug Fixes
So… many… bugs… A lot of the stuff I’m working on for bug fixes are generally the larger things which were causing problems, and those which have been taking more effort to resolve (in the software development world, 99% of the work happens in the last 5%!), for some general changes:

  • Fleet splitting is now permitted above hostile planets to assist with pre-drops
  • Location naming has been relaxed, two planets can now have the same name, which solves the ‘Uninhabited Location’ issue
  • Fleets are as above, no weird issues creating fleets if someone else has a fleet of the same name
  • Fixes to overflowing queue limits in some cases
  • Population not returning from building certain units (Invasion Ships during Alpha 3)
  • The number of invasion ships destroyed during invasion attempts now correctly reflects the number of soldiers which were involved in the attempt
  • By the way, we use cookies.
  • Bad casting from long to int causing high-resource planets to stop working

That one thing…
Every project has a thing which you’d think would be simple but very quickly flies into a complicated state, in my case currently it’s destruction. It turns out that there can be many MANY things that have to be checked prior to a lot of structures being destroyed, here’s a couple…

  • Does another structure depend on this one?
  • Is anything currently being produced that requires this building?
  • Is anything queued that requires this building?
  • Does removing this building result in occupied workers disappear?
  • On completion, will the above still be true?
  • How badly does this break storage?

All of those questions, and more need to be answered for a ‘clean’ destruction to occur, I’m hoping to have it all taken care of, although it certainly wont be clear from the UI what’s happened initially, I’ll write up a post and link it on-site until the new UI can clarify positions.

Quality of Life
Who don’t like a bit of quality in their lives? While I’m avoiding doing some tasks that require large chunks of UI rewriting (such as destruction above), I’m working on some smaller things just to improve how the game feels and behaves, for some examples:

  • Turn updates no longer force a page refresh on queues if the top item would not have finished during the update
  • User management pages (as above), and some minor homepage reshuffling and cleanup of user data
  • New converter visuals are in prototype, the converter ‘page’ will disappear from planets, in favour of a javascript drop which will (should) be far cleaner and easier to use directly from the page you need it
  • Storage checks on the planet screen, disable the build button if you don’t have the pop storage for it (either active or queued, works the same way as energy).
  • If a queue item hasn’t started, the ‘Turns’ area on the queue will be replaced with an icon of the resource / item you’re missing.
  • A ‘Radar’ page which consolidates all radar outputs into one place.

What’s this new UI thing?
I don’t think I’ve mentioned this much outside of discord… While the desktop experience for Darkgalaxy has really stood the test of time (thanks in no small part to @Scan’s glorious design), as the world has become more mobile designing websites has become far more complicated. There have been a lot of calls here for more mobile friendly interactions, as well as those who have played in the alphas complaining about their thumbs hurting.

So I’m dedicating a lot of time during the beta while people are testing out gameplay to try and address that. Using modern technologies to develop a highly responsive and modern UI I hope to have a familiar desktop experience which is paired with a solid mobile experience. For example, a mockup of a planet on the planets list looks like this:
which on a small screen is far more useful and thumb friendly!

More details on this will come at a later date, when work actually gets started, and progress updates and testing will happen while the beta is ongoing.

I’m trying to ensure all the changes which would be massively disruptive are taken care of currently, getting some of the QoL stuff in, and generally tidying up. I intend on digging up the old DG forum database of email addresses, and firing off a mailshot to all old players as well as new. There will be a longish signup window so everyone has the opportunity to reach out and get alliances back together. As we approach the beta, these updates will become more frequent eventually serving as a ‘countdown to beta’ with details of the final configurations of the game and arrangements.

I’ll be back here soon with more updates, hopefully some more bugs fixed (as always, keep an eye on the trello!).

Until then.