Sunday, 30 June 2013

Hi All,

I've been doing a lot of working and planning on the GUI, especially the fixed GUI items such as Diplomacy, Fleet, etc) So far I have 4 permanent GUI buttons for Empire, Diplomacy, Fleet and Research. The empire and fleet button have 2 sub buttons each. Below is a screenshot of the planet list open. This is what I've been working at the moment including sorting and a scroll bar on the left if you can't fit all items within the specified GUI size. The GUI style and data is just a start I'm sure it's going to change before I'd consider it final...

One thing I really want to make sure I have is multiple options for controlling the GUI. As an example with 4x games but others as well I always get frustrated when you just want to drag and drop, multi-select or other functions that would be considered standard but hasn't been programmed in. So I will be spending as much time as I need to make using the GUI as smooth and intuitive as I can. Of course I might have a different idea as to is a good GUI compared to other people but I'll do my best and will always be looking for suggestions and improvements as it go.

At least now i have a decently functioning GUI table type\object that I can reuse for fleet management and am already using for the load\save game listing too :) I started work on this after I decided I need to expand the diplomacy more before I can start play testing thoroughly myself then detoured onto the planet listing as it's the first button down the bottom... lol.

Next I'm going to get back to the AI and how it manages relationships with other empire. I had got the basics in and working already. The peace loving AI would like an empire more for each turn it didn't do anything aggressive against it. Next I've added the option for an AI relationship to deteriorate if borders are too close and overlapping, this is variable according to how I set the AI's specific personality. So I'll get back to this and continue to add more reason's\calculations to modify relationships.

The big step will be adding the functions for the AI to evaluate declaring wars and wanting peace etc. I'm going to add overall goals for each AI personality (some can be the same of course). These will determine who it is more likely to ally with or go to war with. An example would be if the AI's goal is galactic domination it would be more likely to ally with a weaker empire or 2 to allow it to declare war on it's nearest military rival. Another example would be if the empires goal is financial domination that it would probably just be focused on strengthening its internal protection and forming alliances with any large empire to increase trade etc. others might even just want galactic peace, research, etc

I'll be happy once I get the AI overall goals in and it making decisions based on the final outcome it wants. After that I might start working on the ship design windows and functions... seems like there is still so much to do even until it's close to playable. Oh well keeps me busy for now :)

Happy to hear any suggestions or feedback on the current ideas and screenshots if you have any?

Sunday, 2 June 2013


Just thought I'd give another quick update on what I've been working on. Recently I've added the ability to detect unknown objects far off and once they are closer you can identify what they actually are. This ties in with my plan to have sensor stacking penalties for ships on the same grid. Now if you have 3 ships on the same grid the sensor profile will be 3x as large but you still need to be as close as you would if it was just the one ship to identify it. The stacking effects of sensor signatures are in and working too now.

As shown i've got place holder '?' when its an unknown object I'll add details to the GUI when you select an unknown signature so it will show the signature size but will only show it as one signature. e.g. 300 points signature (which could be one 300 point ship or 3 x 100 point ships, etc)

What I want to do next is to determine how sensor strengths will work. Currently it is just adding up all the sensor strengths that reach the specific grid. It will have a stacking penalty for the sensor strengths but not sure exactly how I'm going to calculate this.

Ultimately how I want sensor strength to work is for you to have stacking penalties effect each extra scan that reaches the grid however these to be determined by the angle of the scan compared to the last one. So first you would check for the highest scan strength and use that as the first and main scan resolution. Next if the next highest strength is 180 degrees from the highest one you get a maximum strength of 75%, however if you are only 90 degrees from the highest scan you get say 50% strength only and if your 10 degrees you only get 5% of the strength. This would simulate sensor triangulation so the more surrounded the target is the stronger the sensor strength on it.

This hard part of doing it this way is that all sensor sources and the angle they are from will need to be saved  for all grids and all empires\teams that have some sensor strength, this could very quickly add up in RAM usage :( as currently I'm saving the sensor strength for each grid for each empire so if I have 8 empires each grid object has 8 floats stored to measure current sensor strength.

If I have to measure and save all ships and strengths for each grid with the current method memory usage would just get out of control. I think be best way is going to be by calculating the strength each time a change happens by finding all ships within possible sensor range (Max scan range) and cycle through them to calculate actual sensor strength. The benefit of this way is its also easier to add alternate sensor types which I am planning for too (EM Signatures, Gravimetric, etc). I don't want more than 3 at the moment otherwise it just adds to much variation and choice doesn't matter as its more luck.

Redoing the sensor strength calculations shouldn't be to hard hopefully just a day or 2, but adding the direction penalties is going to be a bit harder by sorting and calculating the diminishing returns for it but still getting the highest possible combination of all strengths correctly will take some time.