Pre-Order the Game!

Desura Digital Distribution

Tuesday, February 17, 2015

Nebulas and Galaxy Generation

As a reminder, the objective of Beyond Beyaan was to be a MoO 1 clone.  With the merge with Jeff's project into Dominus Galaxia, we still want to make a game like MoO 1, but it won't be a straight clone anymore.  Our goal is to dissect MoO 1's weaknesses (as well as MoO 2's) and strive to try and eliminate them, while retaining MoO 1's feel.

So when there's any major difference between DG and MoO 1, I will regularly post about them, and why we do it a certain way or this way to explain our reasoning behind our decisions.  I'm going to start with the fundamental object of MoO 1, the galaxy.

One major issue in MoO 1/2 is that the galaxy is very open.  There's virtually no "strategic" locations to defend or attack, aside from planets with bonuses.  There's no bottlenecks, no natural obstacles, etc.  Some games has attempted to add strategic elements by adding features, for example, starlanes in MoO 3, unique travel mechanisms in Sword of the Stars, etc.  The major complaint is that they're "unnatural", despite adding a lot of strategic depth.

We wanted to retain MoO 1's simple fuel range, but wanted to make the map more interesting, and not have kludgy features that don't feel "right", while keeping it relatively simple.  So we took MoO 1's "Nebula slows ships" concept and expanded it further.  There are now three types of nebulas.  They are:

Anti-matter (Orange color): No stars spawns within it.  It reacts with everything else in the galaxy, thereby preventing the ability to travel through it.  In game, it's static, blocking any direct travels through it (similar to MoO 2's black holes).  Don't worry, the game will have dynamic pathfinding, so it's possible to traverse around it to your destination without having to go to other stars, provided that the entire journey is within the fuel range.

Heavy (Purple color): This is similar to MoO 1's "Slow Nebula", but it only affects the travel speed.  It does not affect shielding.  If ships were to travel at high speeds, they'd be shredded.  So ships are constrained to travel 1 parsec/turn while in heavy nebulas.

Radioactive (Blue color): Atoms are radioactive, emitting alpha, beta, and gamma.  There's so much noise in the nebula that it's impossible to detect ships within it.  Ships inside it are blind and cannot detect other ships.  In battles, it interferes with electronic systems, reducing the effectiveness of targeting computers, shields, and any technologies that has guiding mechanisms (reducing missles and torpedoes' effectiveness for example).

We've devised a method of generating nebulas that makes them look organic.  A player can control how much chance there are in spawning nebulas in the game setup screen.  Note that there's no code that ensure that all three types show up.  Some galaxy might have only one or two types, or even none.

Now for the eye candy (and also the first galaxy screenshot of DG!):

In the above screenshot, we see the anti-matter nebula taking up 1/3 of the galaxy size (this doesn't happen often!), with some radioactive nebulas on bottom (sorry about jagged edges, I cropped screenshots together).

In the above screenshot, we see dense nebula sprawling over west part of the galaxy, with anti-matter nebula on east part.

For those who may be concerned that the nebulas looks pixelated if zoomed in like my old nebula, rest assured.  Above screenshot is fully zoomed in, you can see that the nebula is not pixelated, and that the planets are 3D.

Now, for galaxy generation part.  MoO 1 and 2 basically have one shape, but several sizes.  A square-ish map of varying sizes.  We decided to create a feature where it reads in a density map to generate stars and nebulas.  The density map is a greyscale image in png format.  The more white a pixel is, the more exponentially chance of having a star spawn there.  Black means absolutely no stars at all.  Each galaxy shape is stored in a folder, with a config file that dictates how much space is needed (the player picks number of stars to play with, it will automatically calculate the size of galaxy to accomodate the number of stars).

The config file dictates which density map image is used for which.  There can be up to 4 density map for a galaxy:  Stars, Anti-matter nebula, dense nebula, and radioactive nebula.  If no nebula density is specified for a type of nebula, it defaults to the star density map.  So it's possible to create a galaxy shape with only one density map.  The reason for multiple density maps is to allow for variety of galaxy types.  For example, a ring galaxy with anti-matter nebulas filling the center to prevent travel across the center.  The possibilities are endless.

With those two features (three nebula types, and density maps for galaxy generation), we've solved the issue of MoO 1's maps being open and not very interesting, while retaining the open feel.

Thursday, January 29, 2015

Plans and a bit more of teaser

Jeff and I worked out some more details, and with feedback from previous post, here's what we plan to do:

For sure:

1. All people who have bought Beyond Beyaan (either through kickstarter, paypal, Desura, or a sci-fi promo from a while ago) will get Dominus Galaxia.
2. The source code for Beyond Beyaan will remain open source, available for anyone to use.  Dominus Galaxia will be closed source as Jeff is a full-time developer and has to make a living somehow.  I will re-use a lot of internal game logic from BB into DG to speed development up

Tentative plan:
We'll try and salvage as much artwork as possible from BB into DG, as long as they fit the graphic style.  How?  Jeff and I just found out about Sprite DLight, and it does exactly what we wanted.  So it's looking good for us to salvage some ship artwork from BB to be used in DG's space combat.  We'll see about other artwork (Jeff isn't too much of a fan of the pixel art, but with this, he's a bit more willing :) )

Here's a sample of what it can do.  A Zero People's ship before being processed by Sprite DLight:

It's flat, has no 3Dness to speak of.  Compared to pretty 3D, it's rather bland.  But look at what happen when we add 3D light magic thanks to the awesome tool (I just loaded it up in Sprite DLight and it automatically did everything, I just turned on the light!):

And here's a rendered still:

Pretty awesome, huh?  This allows for awesome lighting effects during space combat.

Tuesday, January 6, 2015


By fate, Jeff Graw and I met somewhere on the interwebs.  He was working on his own MoO 1 clone, he has saved up enough so he don't have to work for a while, so he can work on game development full-time.  We got together and discussed about the idea of merging our two projects.  After extensive discussions, we agreed that this is the best course of action.  As a result, we came up with a new name for the game.  What we gain from merging is:
His multi-platform (developed in Unity with C# scripts) that can be published for Linux, Mac, and Windows
His fantastic 3D graphics/UI
My nearly complete game logic

With those two combined, we solved the three main issues that Beyond Beyaan faced:
No multi-platform support
Unattractive graphics (I personally liked the pixel art, but it's not for everyone)
Non-descriptive name of game. (Beyond Beyaan doesn't imply a grand 4X game)

Plus the development will go along a lot faster due to Unity's support of C#, and Jeff being a full-time game developer solely for this game while I will continue to work as a hobbyist.

It is now my pleasure to introduce the new project going forward, Dominus Galaxia!

More details will be forthcoming shortly.

Wednesday, October 29, 2014

Progress report Oct 30, 2014

We have great news to share. Our team continues to work on BB. Currently Laszlo is spearheading the technical upgrades to make BB cross platform.
I quote one of his many contributions:
"I vote for using QT.
Here is why:
- support for Mac,Win,Linux, Android, IOS, Raspberry Pi (SFML is only for Desktop currently, but it is under development)
- good support in Linux repos
- high level abstraction or low level programming is also possible
- good documentation, a lot of examples
- Qt is complete framework, not just OpenGl wrapper:
- easy to install IDE for all Desktop platforms
- GUI description language with easy syntax ( QML )
- support in qml: buttons, lists, sprite, animated sprite with smooth transition, web browser, video, image, rotation, transition,...
- new QML objects can be implemented in C++
- javascript scripting
- sound wrapper
- build system (like CMake)
- and so on....
- you can also embed SFML widgets in QML programs! So this is also an option.
- the performance can be slow because of the high abstraction but I think there is not much animation in BB
- it makes easy for new developers to start using it
- it is productive for GUI development.
- we can achive better results later, if new components are developed for QT.
With SFML only we have to implement each GUI feature".
He already implemented several demos including screens, custom buttons, galaxy windows, and stars. So far so good, but too early to declare full success for all platforms.

So we are moving from C# to C++ and use QT runtime environment for now unless we find a dead end or major performance problem. We maintain open source repo.

Meanwhile Brent and I had lots of discussions and made some key changes in design and have early implemenations, such as hex based space battle.

Ivan contributes with technical expertise, experience, and testing for now.

In addition, I have searched for and hired 2 master composers who agreed to compose original music for this game. Fingers crossed that they will actually deliver as promised.

So everything is heading in the right direction, but please volunteer if you think that you can help and feel the burning desire like us to do something good about this project. We do it in our free time as a service to the community and our progress is slow.

Wednesday, July 23, 2014

GSSB race done!

The artist just finished another race, bringing up the total races to 12.  The 13th and last race is currently being worked on.  Here's a look at the new race, called "GSSB".  It parodies the fact that if aliens are female, they must be attractive, thereby humanoid with distinct human features, with one or two minor differences such as color of skin or some other such cosmetic feature.  Note, this is not intended to be derogatory toward women, but rather, how female aliens are portrayed in older sci-fi games and shows.

I nearly called them Orions in a nod to both Star Trek's Orions and the name of Master of Orion, but realized that there's already another race called Morions, and it would be only a difference of one letter.  So I'm going with GSSB which stands for Green Skinned Space Babes.  However, I'm open to suggestions for other names.

This race is equivalent to Master of Orion 2's Elerians.

Thursday, July 3, 2014

Pudelhunds, Linux, and C++, oh my!

Good news, everyone!

Laszlo (the Linux programmer) and I investigated different approaches to C# and C++ that would be cross-platform.  C# was a major pain in the butt porting over to Linux (I couldn't even set up the Windows version of the test program that Laszlo threw together for Linux).  So we felt that even if we manage to get it working, it'd detract many potential contributers away with over-complicated setup requirements.  So we decided to look at C++ alternatives.  Laszlo found a very good alternative, SFML, that is almost identical to the Gorgon engine that I was using in terms of framework and way it handles things.  The only thing missing is word-wrap functionality.  We're currently looking at a third-party GUI library, but if it don't work out, we'll add the functionality ourselves.

I've created a test SFML branch to test various features that will be required for Beyond Beyaan to work (shaders, image manipulations, text drawing, etc).  Both Laszlo and I was able to run the same code on both Linux and Windows.  So once we've finished investigating the GUI library, we'll start converting Beyond Beyaan into C++, and also test on Mac.

Ivan Kravarscan has also offered to join in the development efforts, so please welcome him!  Also, I'm giving Arpad access to post posts on the blog, so expect to hear from him from time to time.

Last bit of news, the artist finished the Pudelhunds race artwork (They're the Gnolams equivalent).  Here's a preview!  They're mafia-esque, with ships inspired by old popular mafia cars used in Chicago.  Yes, the pudelhund in portrait is holding a tommy gun :)

Friday, June 13, 2014

Fleet Overview Screen done

The UI layout for Fleet Overview screen is done.  I just need to hook up mouse events and add a dialog for confirming of scrapping ships to both Fleet Overview and Fleet Specification screens, then I'm moving on to Diplomacy and Ground Combat.  After which there'll be only Space Combat and Random Events left, along with general bug fixing, UI tweaks, and minor feature implementations.

The discussion on cross-platform and what to do is still ongoing.  We've discovered that OpenTK works pretty well (Remember the ReMoO project that I started a few years ago?  Laszlo was able to run it after simply updating references in MonoDevelop).  So we might stick with C# but convert to OpenTK.  We're determining which of the two choices (C++ and 2D engine, or C# and OpenTK) we should pursue at this point.

Finally, here's a screenshot of the Fleet Overview:

The idea is that you can click any fleet, and it'll take you to that fleet in the galaxy view.