GalCiv II coding

So I’m on a sabbatical which was planned a long while ago.  Basically, it’s an opportunity for me to get back to my roots.

One of the things I’m working on during sabbatical is GalCiv II (Twilight of the Arnor).  It’ll be lots of little tweaks and improvements (AI, gameplay, balance, bug fixing).  But this is the kind of thing I enjoy but can only justify on vacation.

It seems like for the last couple of years my role has been less CEO and more fire fighter anyway. While the company I work at has grown tremendously since GalCiv II’s release, my ability to work on the things I enjoy has diminished.  Ironically, what I’m best at is running a business which, if you think about it, is a lot like playing a strategy game. Perhaps I owe everything to Sid Meijer after all. 

I’m going through the posts I made previously to see which things I can nail the easiest.  Stay tuned.

109,989 views 32 replies
Reply #1 Top

Yay. I still play 2-3 games a year on GalCiv2, so I welcome any improvements.

One thing I might request could be to make the Minor Races a little more effective. When they are at war, and I give them ships, tech, and money, those ships just hang there in space doing nothing and are stuck with 0 move, sitting ducks... I like to see how my ships will do against the enemy through proxy wars... It's been awhile since I tried that tactic though, maybe it's improved.

Reply #2 Top

If it's helpful, I've recently started playing with the TA upgrade, and have been accumulating a list of items here.

Reply #3 Top

One of the yucky things is I'm having to install Visual Studio 2003. Ack.

Reply #4 Top

God know I'm hardly a *good* programmer, but one of the things I love about Linux is that whatever programming you feel like doing is a button click away via Synaptic.

Jonnan

Reply #5 Top

Currently, only trade goods, super projects and galactic achievements can give civ-wide bonuses. If such a bonus is added to a normal improvement, it does not work. This diminishes the value of improvements like the Arcean's Cathedral of Valor, and vastly decreases Modding potential. I would like to see this fixed as soon as possible.

Reply #6 Top

Quoting Draginol, reply 3
One of the yucky things is I'm having to install Visual Studio 2003. Ack.

You have my sympathies; I just had to put VS2005 on Win7 today.  You're not trying to install VS2003 on Windows 7 or Vista are you?  Because that just won't work.

Reply #7 Top

It seems like for the last couple of years my role has been less CEO and more fire fighter anyway.

I hear that.  Anyone would need a break.  Hope your stress levels drop off quite a bit and that your fire fighting services aren't needed for a long time.

Reply #8 Top

Yea, this is proving harder than I thought to get the compiler up to speed on win 7 64-bit.  It's a freaking compiler. :(

Reply #9 Top

Quoting Draginol, reply 8
Yea, this is proving harder than I thought to get the compiler up to speed on win 7 64-bit.  It's a freaking compiler.

Well, according to the page linked in my prior post, Microsoft says that you can't run VS2003 at all on Win7 or Vista.  :-(

Reply #11 Top

Fire - that would be torture.

Reply #12 Top

Glad to hear that GalCiv2 is going to get some loving care!

Elestan's posts at https://forums.galciv2.com/394055/page/1 have many suggestions which I think are good.

Some additional things I'd like to suggest:

UI

1) Improvement. Most (all?) scroll bars in the game are hard to use on a high res screen because they don't "capture" the mouse the way Windows scroll bars do. If I move the mouse off the scroll bar while trying to scroll up or down, the scroll bar loses capture of the left button which I'm still holding down.

2) Bug. When I click on a scroll bar in an attempt to page up or down, sometimes instead of moving by just one page the displayed items move to the clicked location on the scroll bar.

3) Bug. My ships occasionally don't display in the main window. The tile they occupy is just blank. I've discovered such ships by using the tab key, they display once they become selected.

4) Bug. Sometimes it is not possible to purchase an improvement in a planet's "build queue". The "buy" button is greyed out even though no improvement has been rushed on the planet in the current turn and funds are available. Usually using the "X" key followed by "Z" to redisplay the planet screen fixes the problem, the "buy" button is then enabled.

5) Bug. Setting a planet's launch direction often doesn't work unless one is zoomed-in to a fairly high degree. This is on Elestan's list as number 44) but I want to add a bit of information which might be useful. After selecting a planet and hitting "L", I can move the mouse so that the direction I want is visibly highlighted, then left click and not get the desired result. It seems that the logic which decides which direction to highlight based on the current mouse location is not the same as the logic which decides which launch direction should be selected when the mouse is clicked.

6) Improvement. Please don't show the message box for "survey xxx cannot detect any new anomalies" when the game option "show found anomaly popup" is turned off. This message box can cause an annoying inter-turn pause which isn't useful when one has become uninterested in the details about automated survey ships.

7) Bug. When I double click a military starbase for which I have set "allow auto build by priority" and I've reordered the "module priorities", I often see the default ordering of priorities, not the priorities I previously set for the starbase. This display should always show the priories which were previously set by the user for the starbase.

8 Improvement. After deleting an improvement in a planet's "build queue", I'd like the next item in the queue to be auto-selected. This would make it easier to clean up automatically scheduled improvements which aren't wanted, e.g. after taking a planet from an AI.

AI

9) When I take an AI's planet I sometimes see silly misuse of bonus tiles. A common example is farming - often the AI has built something else (e.g. an influence improvement) on a tile with a farming bonus, yet has a farm on some other non-bonus tile.

10) Occasionally auto-routing of a ship foolishly takes the ship through an asteroid field, killing its movement.

11) The AI is very weak in replacing ineffective improvements. E.g. if I gift an AI a planet with no starport, many fertility bonuses, no farms, and all tiles improved (say with xeno labs), it won't "upgrade" the xeno labs to something more useful such as farming. It seems to lock in to the idea that existing improvements should only be upgraded, not replaced.

Miscellaneous

12) Run in the background. The inter-turn delay after I hit the "turn" button takes a long time when I'm playing a game with many planets and ships. When I use alt-tab to do something else in the meantime the game stops. I understand some reasons for this (don't hog the cpu and memory) but these factors don't apply on my computer. My laptop has 4 cpus and more memory than GalCiv2 can use. Please add an option flag which allows GalCiv2 to continue running while I've switched to another window. That would allow me to run it on my main/fastest computer instead of my current mode where I run the game on an older auxilliary computer which I dedicate to GalCiv2 because as it stands it pretty much needs its own machine. (I could run a VM for GalCiv2 but I'm not willing to do that and I think most users wouldn't even know of the possibility, much less the trade-offs involved.)

13) Deleting rally points. I can't seem to get rid of a rally point. I can remove one but when I next load a saved game to continue, the deleted rally points still exist in selection lists though they are not visible on the galaxy display.

14) Slow response times. When a player has hundreds of ships with predetermined directions and/or hundreds of planets various aspects of the game become rather slow. The inter-turn time with many ships moving is especially bad. For those crazy players going for high scores, thousands of ships in transit result in inter-turn time which are crazy. I know there's a lot going on (route calculation, military strengh recalcs due to location, fleet selection for auto-grouping, checking for guard activity, etc) but nonetheless I'd be surprised if an improvement of at least an order of magnitude isn't possible without much work. A dramatic speed up would make a big difference to many dedicated fans of the game.

Reply #13 Top

SirPleb:

Regarding #9, Building something else on a farming tile and putting a farm elsewhere is something I do all the time. Often, with the farming bonus the population will simply be way too high to be sustainable and the morale will drop horribly on that planet even if I devote a ton of other tiles to morale improvements.

Which leads me to an idea. It'd be nice to be able to cap population at a specific number lower than the amount of food being generated to avoid overpopulation. Otherwise those yellow food bonus titles are more of a hindrance than a help.

Reply #14 Top

Quoting Kazriko, reply 13
SirPleb:

Regarding #9, Building something else on a farming tile and putting a farm elsewhere is something I do all the time. Often, with the farming bonus the population will simply be way too high to be sustainable and the morale will drop horribly on that planet even if I devote a ton of other tiles to morale improvements.

Which leads me to an idea. It'd be nice to be able to cap population at a specific number lower than the amount of food being generated to avoid overpopulation. Otherwise those yellow food bonus titles are more of a hindrance than a help.

Good point for those who care about happiness. Me, I'd rather have a 20B planet with 20% happiness than a smaller and happier population. More people means more income. If their happiness goes under 20% then some people will leave, no big deal. So when a farm bonus tile is available I always use it. The population will cap out at some level, but I want that level to be as high as possible.

Reply #15 Top

This is probably a stupid suggestion, but Brad, have you considered open sourcing the GalCiv II engine? That way lots of fans of the game would contribute on GalCiv II for free, making it compile natively on VS 2008 and 2010, and put the fixes mentioned here.  You can still sell the game like before. 

Reply #16 Top

While I would personally love to see this because I'd enjoy making some of the tweaks I listed in my other thread, I can't see how it would be in Starbase's financial interests.  Most open-source software companies work because companies will still pay them for a support contract on business software, but how many people would buy a game when it's downloadable for free off the net?  Some, perhaps.  But probably not enough to fund a gaming company.

Even when GC2 reaches end of life, releasing it as open source would set it up as a potential competitor to GC3, whenever it gets made.

Reply #17 Top

Well, open sourcing GalCiv II's engine only doesnt make GalCiV II a free game to download.  Only the source that compiles to the libraries and support running code would be open sourced.   The game's content would still have to be purchased online as a normal purchased copy like it is now.  On the purchasing/consumer part, it would be exactly the same.   It would actually be in Stardock's financial interests, since fans like you would start their own GalCiV II support bases, keeping GalCiv II running on windows 8 when it's released, and compile friendly on .net 4.0+.  All this technical support for free.  Look at id software's example.  They open source their previous games.  People don't stop buying their new games because their older ones are open sourced. They buy their older open sourced games too.  Open Source GC2 supported by fans wouldnt be a competitor to brand new, Stardock designed, produced and tested GC3, with new tech and contnet.

Reply #18 Top

Ah, okay.  Open sourcing just the engine might work, although the code might not currently be architected in a way that would easily allow splitting it into engine and content, and getting it rearchitected that way might be prohibitively time-consuming.

Reply #19 Top

Even if marketing issues can be resolved, open sourcing still involves a fair bit of effort by StarDock. Someone has to be in the position of reviewing and accepting/rejecting/merging submissions from multiple authors. As long as StarDock still sells the game I think that this someone would have to be a StarDock employee, and one who is very familiar with the GalCiv2 code. I've done that task (coordinating development of an open-source project, selecting/testing/merging submissions, and releasing new versions.) It isn't a trivial task. And once you've started, you're pretty much committed to keeping it going, unlike the current situation where StarDock can go for long intervals with very little time spent on GalCiv2. Much as I'd love to see it happen I will understand if StarDock doesn't take this path.

Reply #20 Top

Quoting Elestan, reply 18
Ah, okay.  Open sourcing just the engine might work, although the code might not currently be architected in a way that would easily allow splitting it into engine and content, and getting it rearchitected that way might be prohibitively time-consuming.

Well, normally game engine and library code recognizes the game's content if present, it checks whether the content in the folder is located is from a demo or from the full retail game.  The content is stored in data packs, separated from the game code itself. 

Reply #21 Top

Quoting SirPleb, reply 19
Even if marketing issues can be resolved, open sourcing still involves a fair bit of effort by StarDock. Someone has to be in the position of reviewing and accepting/rejecting/merging submissions from multiple authors. As long as StarDock still sells the game I think that this someone would have to be a StarDock employee, and one who is very familiar with the GalCiv2 code. I've done that task (coordinating development of an open-source project, selecting/testing/merging submissions, and releasing new versions.) It isn't a trivial task. And once you've started, you're pretty much committed to keeping it going, unlike the current situation where StarDock can go for long intervals with very little time spent on GalCiv2. Much as I'd love to see it happen I will understand if StarDock doesn't take this path.

Well, that task would be done by members of the GC2 fanbase, under an open source GC2 fan engine effort. It wouldn't be maintained by Stardock. All support to such open source GC2 engine would be done by the team, not by Stardock.  Maybe some collaboration could be established between a Stardock employee very acquainted with GC2's codebase too.

Reply #22 Top

Quoting coreimpulse, reply 21

Well, that task would be done by members of the GC2 fanbase, under an open source GC2 fan engine effort. It wouldn't be maintained by Stardock. All support to such open source GC2 engine would be done by the team, not by Stardock.  Maybe some collaboration could be established between a Stardock employee very acquainted with GC2's codebase too.

I don't see that happening. If StarDock uses the fan engine in their sold product, they'd be taking responsibilify for whatever is in it. I can't imagine them taking that responsibility without reviewing, testing, and controlling what's changed. Both for what the game does and for assuring that it doesn't contain anything malicious. And if StarDock doesn't use the fan engine in their sold product then why would they bother? They'd be pleasing just a small number of people who would replace the stock engine, and they'd introduce a possibility of incompatibility with any changes they decide to make in future. That's very little motivation for such a large shift.

Reply #23 Top

The way open source functions, the code would be available for anyone to see if anything malicious is added.  Stardock doesnt have to use the modified improved open source engine, they could package the original executables and libraries of the original release.  They can too take some advantage of its changes by fans to the open source engine, like modifications to compile and run on modern compilers and windows releases, without having to do that themselves.

Reply #24 Top

Most companies that open source their older titles do it as a fan service, a gift to the longtime fans of their older titles, which they themselves don't mantain those games' old codebase, but they still offer for sale.  For example, Stardock if they wanted they could release the full source of the first GalCiv for fans with enough skills to make GalCiv run on mac/win7/mobiles and such.  Stardock doesn't mantain or patch GalCiv I anymore, AFAIK. 

Reply #25 Top

I'd be happy to get some fan help on GalCiv II stuff.  

BTW, do people know for a fact that Visual Studio 2003 won't function on Windows 7 64-bit?

Right now, I'm working on Elemental AI so I haven't had a chance to install VS 2003.