Pre-Order the Game!

Desura Digital Distribution

Sunday, March 25, 2012

Background music

An online friend of mine offered some of his music for my game. Since I'm deaf, I'm unable to review the music. If you could listen to some of his samples, and leave feedback on whether or not they're appropriate for my game, I would greatly appreciate it!

Listen to his music here.

In other news, I got new artwork for space combat UI, so I'm re-doing the layout. I also finished converting to the new ship class structure, so it's ready for ship dying/explosions. When I get the explosion artwork, I will wrap space combat up, and return to the general empire management. Things are looking good for the release target!

Tuesday, March 20, 2012

Another overhaul

I'm currently working on adding ship scripts which allows you to handle events such as ship being hit (it spawns explosion particles, as well as modifies the hitpoints), ship movement, etc.

I realized that in order to have each ship store its own copy of data/script, I'll have to separate the "Ship" class into three sections:

Ship Class - This contains the ship class, such as Class Name (Battlecruiser, Frigate, etc), script associated with that class (for now, all ships will use "BasicShip" script), cost of the base class, space available, etc. It's now possible to have two or more ship classes that are of the same size, but have different spaces, scripts, etc. For example, maybe if you research a new ship class that have more space? Or more hit points? Or you could have an space alien race that basically regenerates its hitpoints between turns.

Ship Design - This contains the equipment layout of a design, as well as which Ship Class it uses, this is what you see in the design window. It will also contain a "Design To Upgrade To", which if an value exists, allows you to upgrade any ships with that base design to the new design. This will be similar to MoO 2's refit, but instead of customizing each ship, you tell the game that all of ships with "Scout" design can be upgraded to "Scout II". If you have a bunch of "Scout" ships next to an owned system, you can open the Projects window and it'll show "Upgrade "Scout" to "Scout II"" as one of the possible project. You can modify which design a ship design upgrades to in the fleet window, which I will add after combat is done. The design that you want to upgrade to must have the same Ship Class as the current ship. You can't just refit a yacht to be a carrier :)

Ship Instance - This contains the base ship design, but with "Equipment Instance" which is different from the "Equipment" class in Ship Design. Each "Equipment Instance" have its own data stored. So it's possible to have damage from space combat to be persistent between combats, or missing equipments, etc. When you have a damaged ship next to an owned system, it will add "Repair Ship" project to list of available projects.

Since the old system uses one ship class, this will overhaul many parts of the game, such as race data loading, galaxy screen, fleet management, etc. But in the end, it will allow for refitting ships, damage from combat, and other special goodies that I will reveal later on! Right now, the game is not compiling because I've broken so many parts of it, but hopefully by end of this week I'll have everything sorted out!

Friday, March 16, 2012


I've re-done the spawning system in the script system to allow for spawning of new particles in those following events:
Firing (before you could only spawn one type of particle, in one direction, now you can add any particles you want, with custom data for each particle invidiually)
Update (If you want a bullet to emit laser beams for some reason while it's traveling, you can do so now!)
Hitting something (Missiles could create a shockwave particle on impact for example)
Being hit (shield could reflect an incoming beam which means it have to stop the current particle, and create a new particle that's on the reflected angle)

Delay between particles and particles living more than one turn haven't been implemented yet, but they won't be too difficult to add, compared to what I just did in revamping the spawning system.

I tested the basic laser beam (making it spawn 10 beams in a wide beam), and it worked correctly:

However, the shield script wasn't stopping the beam as it should. I investigated and found that I didn't do something in the shield script file correctly, and fixed that. Not the game code, but the script code. I then tested it with a small ship:

I decided to be silly and make it 50 beams wide, and added two more victims. You can see the shadows cast by the small ships from the huge beam:

Now, if you have a beam that does 100 damage, and is 20 pixels wide, you might want to split that into 4 particles, with each doing 25 damage (100/4). Or you can just have each particle do 100 damage as a result of the mount multiplying the damage as it is spread out. Or whatever you want to do, it's your script. It's pretty flexible in what you want to do.

Now that the weapon particles are mostly done, I'll leave it for now, and focus on ship scripting (taking damage, dying, etc).

Monday, March 12, 2012

Combat Screen Video

I worked a lot on the script system, and managed to expand some more on particle functionality. Now the particle and technology data are passed in to the script from xml files, allowing you to specify custom values in either file.

I also fixed some bugs and improved the speed of scripts. There's no ship collision yet, that's next after I finish the firing delay between each mount, and particles that live for more than one turn.

Now, here's a video demostrating three different beams: Laser (instant), Plasma (slow traveling beam), and Ion (fast short beam). Plasma and Ion both use the same script file, but has different custom data. Laser uses a different script due to it being drawn its full length.

Watch here!

As you can see, there won't be much difference between Beam and Projectile weapons, just that Projectile weapons have a limited ammo.

Whew, that's a lot of work done, hopefully I'll have some more free time later this week!

Saturday, March 10, 2012

Result of my game

In my last post, I started an Impossible game with 5 players. It didn't end well, I was down to my last two planets, and then this happened.

I didn't even know that was possible. I got the defeat screen which I've never seen before:

Ah well, guess I'll have to try again another time.

As for Beyond Beyaan, I've converted to a new data type that should make things go faster for scripting, so it don't parse strings all the time. The code is done, but I need to update the scripts to reflect the change.

I think I've figured out how to do particles that can live for more than one turn (missiles and torpedoes), as well as firing delay between each mount. Those should be done this week. I wasn't even expecting to have missiles/torpedoes in the release, so it's good news!

I'm also researching into movement of ships. I think ships will need to have their own scripts (dying, movement, etc) to have it all work together. So I think I should have the combat screen done this month. Then next month I'll finish the rest of my to-do list!

Wednesday, March 7, 2012

A secret...

This is a break from the regular posting, since I've just released a new version.

I have to admit something. I've never played Master of Orion 1 on Impossible difficulty. When I was a kid, I always played it on the easiest difficulty, as Psilons. I usually just hide in a corner, grab all the technologies, then steamroll everyone else. Evil laughter usually ensues afterwards.

However, I realized that to be a true master of Orion, I have to beat it on impossible. So today I started a new game, with 5 players on huge galaxy, on impossible, as Meklars. I thought I was doing good until I encountered the Klackons and Sakkras. I took a look at the map and took a big gulp. I'm the yellow flag, occupying a tiny spot in upper left corner :(

I'm facing the fact that I'm terrible at this game :( Looks like I'll have to look up tips and tricks on playing impossible. Any tips for my position? I got one rich planet, and one fertile/poor planet.

Tuesday, March 6, 2012

New Version!

I've polished a lot of things, fixed a lot of crashes, and finished the tutorial window. Fixed the text cutoff issue, also made the window opaque. It's now pretty stable. I've created a new version for pre-orderers. I've emailed them details about the new version, check your paypal email! This version also includes the combat screen as shown in previous posts.

I'm working on something else, hoping that it works out! *crossing fingers*

Monday, March 5, 2012

Tutorial mostly done

With the collision working, the next item in my agenda was the tutorial window. I decided to do a basic tutorial window overlay that will be drawn on top of everything else, because it's simplier to program, instead of having it be linked to events in the game (which would require a lot more work).

Eventually, after release, I may improve the tutorial's functionality, but for now, it provides the basic functions required for teaching the game.

One thing that I noticed is that when I followed the tutorial steps that I made, I encountered some crashes. I guess it's time for me to really play the game, instead of just focusing on adding features, and make it stable :) I've fixed some crashes already, but some will require a lot more than simple fixes, so I plan on fixing those before I move on to the next item in my list. I don't want people to follow the tutorial, then crash when he does what the tutorial asked!

The tutorial window itself is almost done, but I found a bug with multi-line text display, part of it gets cut off on the right edge. I'll have to look into that, as well as adding "Move Window" functionality as described in the first page.

Here's the screenshot of the tutorial window: