Feb 10th 2001 (saturday)
Felt like placing an update here. I did not end up finding time to work on this
project over the summer as planned, and when the school year began I
(eventually) got to work on a new project: the Roids Project
. I have learned a lot doing that one, and some day I still hope to be able
to come back and make a whole new version of this game.
|
April 17th (monday)
Presentation done, project to back burner. I do have more screenshots and such
to put up (as well as getting all the parts of this page done), but since there
is no grade for any of that, its not even close to the priority.
|
April 16th (sunday)
I think I am about done programming for a while now, at least on this project.
I hope to get Scott's stuff worked into mine today, and then we'll have the 4 AI's
finally united, and ready for the presentation.
|
April 15th (saturday)
Today and tomorrow are all that's left on this project.
I tweaked the graphics around more and succeeded in getting a pretty nice
speedup in some situations, but mostly the difference isn't very noticeable. My
GL code is just not very efficient at its core, but I can't fix it without doing
some really tricky things (in other words, its gona stay sort of slow).
I also fixed a small movement bug for Spot and Stapler, and messed around a little
with Stapler's ship building. Stapler is also now a base-building fiend,
running around with armies of convoys and MB's (when there is sufficient money)
and sometimes literally chasing the survey ships accross the map with
poorly-arranged mobs of bases (organization takes a back seat when everywhere
becomes crowded with bases). In addition, Stapler now differentiates between
"war" fleets and "survey" fleets as Spot does. Survey fleets grab things near
them first, while war fleets tend to run off on grand adventures to surround
planets or whatever else it is that seems valuable to them at the time.
A list of things that I could improve about Stapler is already emerging, before
I'm even done. Those things are going to have to wait for the next AI, whenever
I do that, which will actually probably happen this summer.
I have also now came apon the latest bug (there seems to be a requirement that
something is broken all the time). This one manifests itself as a rare segfault
that seems to be related to the activities of convoys and their organizing and
re-organizing of their fleets. So far I've had two games die due to it, and so
I guess that makes it official.
My new pathfinding function I just completed thursday (used by convoys and mobile
bases) has become noticeably slow, but only in really really nasty networks of
bases, and even then its not a problem unless there happens to be a couple
dozen convoy+mobile base pairs running about.
|
April 14th (friday)
Today I messed with various elements of how Stapler decides where to put bases,
and right now it seems to deploy bases correctly with multiple convoys and
mobile bases in action at once.
Other than that, I took a lot of screen shots, examined things to see if they
were actually working, and finally figured out a bug I've been seeing in the
graphical output. That is actually a breakthough, and could lead to a pretty
big graphics overhaul, but maybe not before the presentation. I have done what
amounts to a minor overhaul already tonight, but the improvement is small to my
eye. I will tweak the graphics some more tommorrow and figure out just how much
I've been able to gain.
Having talked to Adrian some about GL last night, I gained some ideas about ways
to really streamline the graphics, but they are going to be very difficult to
implement. I may still attempt to do so, wether or not I do depends on a lot of
things. I would like to have things run faster...
|
April 13th (thursday)
I got the pathfinding working now, and judging by the improvement in the way the
AI's now deploy their bases, I can safely say that the old one was not only
slow, but it was broken (there are quite a few screenshots showing the broken
base deployment, such as #119 from April 3rd). I guess I broke it somehow when
I was optimising it a week or two ago. Anyway, its good to get that out of the
way.
I also squashed a bug in a section of code that Fungi, Spot and Stapler all use
that was causing fleet organizational mess-ups, which was also getting in the way
of base deployment. Things are now running smoothly.
Stapler has taken another big step away from my other two AI's today. It uses a
completely different method of deploying bases, or rather deciding where to put
them, that is fairly simular to the way normal fleets decide where to go. In
doing this I did find something interesting though, and that is that there is
some serious overhead to making function calls. I found this when I used the
new and fast "all hexes" function to gather all of the hexes from the map by its
usual recursive method. This proved to be very slow, and so I made another
function specifically for grabbing the whole map (and returning it as a linked
list of 10000 hexes just as the recursive function does), which does it
all in one sweep. The speedup seems like its 100-fold, but I can't tell for
sure. This brings me to an interesting question: what exactly is the penalty
for calling new functions? In this situation there were a lot of if's involved
also, which were completely elliminated in the purpose-built function, so things
are not clear cut.
I also just figured out why the project keeps locking up... long story.
Basically what is happening is that two threads are running through the map
making linked lists out of the hexes using the "all hexes" function, and when
they get near each other, they re-link each other's hexes and make a huge mess,
generally ending up stuck in loops. They wouldn't ever get near each other if
the amount of work to be done was split evenly between the left and right
sides of the map, but that is never going to happen.
With that problem fixed, new opportunities to tweak appeared, and so I went ahead
and changed around the way the Stapler map-evaluating threads did their work.
They now work towards each other from opposite corners of the map, and they stop
when they encounter each other. This means that the load is always balanced
now.
Scott has also made progress with his AI named Eunich, if I spelled that
right. This weekend we'll have some good 4 way AI surveying competitions, looks
like. Perhaps tomorrow I'll have him running on the updated engine, and we will
be able to exchange AI updates freely.
|
April 12th (wednesday)
Time is really running short now. Two week days, two weekend days, and then its
the presentation, and I will be able to do just whatever I want with this
project.
I was able to get at the project for a number of hours today, and was able to
nearly hammer out the new pathfinding function that I had started to work on
sunday. The new one is gona be way way faster, but it doesn't do some rule
checking (yet) because that can be overlooked in the short term (it doesn't
matter for this project). I was becoming very suspicious of the old function
anyway, because I hadn't figured out why in the heck bases were being placed
like they were. This new one is working great, except for a small bug I am sure
I'll see after get some sleep. Which I am going to do now.
|
April 9th (sunday)
Well my AI homework is going much faster than expected, and so I can get more of
this project done that I had thought. The first thing I did with all this time
was attack that "all hexes" function that was slowing things down so much (it
was used a heck of a lot). It wasn't nearly as hard as I was thinking, so all
that moaning was for nothing. Run speeds are up considerably, especially when
dealing with large radius search areas. Stapler now calculates its map values
for each hex from every hex within a range of 6, compared to 3, and it still
runs faster.
Other than that I didn't get anything really big done, but I did start to work
again at the pathfinding function. I remember that I've read something about
data searching falling under the general title of AI... that helps me not feel
bad for spending who knows how much time trying to get this darn thing going
good and fast.
I've also spotted a so-far unexplainable bug that hangs the game occasionally
while Stapler is searching out the whole map. Adrian has said a thing or two about
threads having trouble when they go get the same data at the same time, and that
certainly could be happening, but I though I'd handled that. I don't see how it
would cause what appears to be an endless loop, either. Oh well. What's a
program without bugs anyway...
Well I am guessing that this is gona be the last time I post till friday or the
weekend, and after that comes the presentation. After the presentation,
progress will probably nearly stop until school is out (and I have time again).
|
April 8th (saturday)
I fixed a small bug in the "link all hexes" function that was giving one range
too small a result, and also fixed a bug in the function that draws the hex
values to the screen that I talked about yesterday (it was allowing certian
values to be drawn as black when they were no supposed to be). I also fixed
numerous small bugs with the interaction of auto-center mode and the other modes
that were resulting in double-distance jumps when the mouse was clicked.
The fact that another whole ring of hexes is being linked by the fixed "link all
hexes" function has slowed everything down an awful lot. It doesn't help
that I've got my computer at 2x 413mhz either... it needs more speed, but when I
run it faster under Xwindows it can't be trusted, and I can't work all day under
the threat (nearly 100% chance) of crashing. I am still not sure I want to
implement the faster hex-linking function either, cause there isn't a lot of
time left to work on this project (and the fix isn't gona be easy).
Not including today, I've got 3 weekend days and 5 school days, during which
I've got to write a big paper and do my AI take-home test, in addition to the
normal stuff. The end draws near, yet the project continues, and the things
that could be done stretch out of sight.
I started messing with my next AI today. This one is named Stapler, and has a
different approach to how it directs its fleets. Spot and Fungi could be
described as being bottom-up controlled, but Stapler is top-down. The key to
this is that it doesn't simply examine a radius around each fleet and then move
that fleet accordingly. It examines the whole map, and when I get to it, it
will be able to direct its fleets to do things based upon everything, not just
what happens to be near the fleet.
Unfortunately, this new approach is bad for run times. Each Stapler traverses
the whole map and for each hex it takes every hex within 3 hexes and uses them
for calculation. I don't see any way around this type of approach. I did
multi-thread the search though (for a 2x speedup), so now the system load tends
to hover around 5 while simply running two setis and the project.
Just how bad run times have gotten now surprises me. I started a game and set
it for 50 turns are 10:30, and now its 1:00 and it has made it to turn 41. This
is way too slow. Actually the hex-linking function is to blame, so it may just
be worth my while to sit down and apply some serious time to that, even if it
does take away from the real idea here: the AI.
|
April 7th (friday)
Today I tried to find the source of some bad decisions on the part of Spot, and
in doing so, decided to implement some new graphics modes to help. Now I have
another graphic mode that will show how much Spot (and any other future AI that
is programmed to take advantage of this feature) values different hexes around
the map by coloring the hexes shades from purple -> blue -> green -> yellow -> red.
I also added a step-by-step fleet movement mode which allows an AI programmer to
see things happening (usually things go much to quickly).
Fixed a number of small graphics glitches as well.
I took that picture to the right while running the project full bore. Two
points of the system load are from seti@home, two or so are from the project
itself, and the rest must have somehow come from taking sceenshots.
|
April 3rd (monday)
Too much stuff to do over the weekend to attend to this project.
So far today I got Spot's ship building working correctly, tweaked its warship
movement some more, improved the way ships to be built are selected, and
improved its war/peace decision making (which remains pretty bad at this time).
More important than all of that, however, is the Survey fleet movement
improments, which clearly set Spot apart from Fungi now. Some examples of this
are over on the screenshots page.
|
March 31th (friday)
A little update on yesterday: I actually have gotten the pathfinding running a
lot faster now, through rather simple optimizations. It no longer seems to be
much of a problem.
I figured out how to do the "all hexes" function much much faster without any
multi-threading but still using recursion. I haven't done it yet, and probably
won't till I get some sleep. I was up awful late last night.
Messing around with Spot. Improved the "bully fleet" movement, the war decision
process, and the ship building. I hope to implement a way of getting fleets
that are completely surrounded by explored hexes across the empire to areas
where things are happening, and to improve the base placement, which isn't real
well done right now.
|
March 30th (thursday)
The function that returns a linked list of all hexes within some range of some
hex is complete now, and it is reasonably efficient. I've already made Spot do
some pretty neat stuff with it, and it should become one of the most heavily
used functions.
Unfortunately, the running speed of the project is now suffering from each
fleet having to search out its own surroundings each turn, and on long runs it
drags. So I tried to multi-thread the "all hexes within range" function, but
every time I try to multi-thread something I end up finding that it won't work
very well. I did speed up the "all hexes within range" function though, and I
tried a failed to use it in the pathfinding function.
I still may be able to multi-thread the "all hexes" function, although its gona
be tricky, and I also want to multi-thread the brute-force map search. I've
got to get the other CPU into the fight before this thing slows down even more.
Right now I don't run beyond 20 or 25 turns because of the speed, and the fear
that the pathfinding will find a worst-case and basically stop the run in its
tracks (extending it to an hour or more). Actually the worst-case of the
pathfinder is so bad that if all of the races found one at once, a 35 turn run
could take more than 24 hours. Good thing that the general case is pretty good.
Accomplished:
1. Completed the "all hexes within range" function.
2. Worked at speeding up pathfinding and the "all hexes" function.
3. Made Spot much more intellegent about how to explore.
4. Worked on Spot's war-making methods.
5. Found and fixed a bug in fleettype::x, the main fleet movement function.
|
March 29th (wednesday)
Well I get to work on this project tonight pretty much all night, and that makes
me pretty happy. I don't get enough time to play with this. 18 days, not
including today, before presentaion time.
Accomplished:
1. Began to make a function to more effieciently find all hexes within a range.
2. Updated Spot, worked on improving its movement.
3. Fixed a little peace/war bug that I had accidentally introduced to Fungi.
4. Made mouse-clicking work near perfectly for hex selection.
5. Fixed odd double-move bug when navigating around with mouse clicks.
|
March 28th (tuesday)
Well I think I have about run out of major things to improve about the graphics
side of the game, other than complex mouse-clicking operations. Combat is
still a major project, and retrograde, reaction, and strategic movement all
still need some attention. They, at least, are not critical to the AI's.
But heck, this whole thing could be a project as is, the idea being to conquer as
much turf as possible without killing anyone.
Scott is getting geared up to do his AI.... soon, soon there will be a big
3-way AI territory-grabbing showdown.
Accomplished:
1. Made info window work, eliminated (replaced) the second stand-alone window.
2. Made a mini-map (also can be turned on/off).
3. Gave combat its pop-up own window, eliminated old combat stuff.
|
March 27th (monday)
Well I am leaving the pathfinding as-is for now, since it works ok. I threw
together a sorta-good territory claiming routine too, so that now empires take
each other's hexes. The last great hurdle is combat, I think. I am leaving
some things less-than-perfect, but I need to remember this is an AI project and
so I should make sure the AI is fully featured when the due date comes. That
day is in 20 days, not including today. 6 weekend days.
I would like to begin the big push towards smart AI soon.
I was running low on desire to work on combat, so I made mouse-clicking do
useful things and started work on the new info-window (transparent rectange on
top of the map, can be turned on/off). From the results of that experiment, I
think I am going to revise the way combat looks also, and have that also appear
on top of a transparent rectange.
Accomplished:
1. Simple territory conquering.
2. It is now possible to select hexes and navigate the map via mouse clicks.
3. Started work on new info-window.
|
March 26th (sunday)
Didn't have a lot of time today, but I did get the pathfinding done. I am
amazed how fast it was to program, once all the other peices were in place. I
mean, I was afraid of it, but it too perhaps an hour, including debugging.
In order to speed up the pathfinding in the general case, I have been working
on mutli-threading the pathfinder. Does't work yet, but the other thread does
sit there and waste its own CPU just for fun while the real work is being done.
I will actually make it productive as soon as I can. Sure is neat (for me)
watching a program I made peg both CPU's at 100%. Actually, including the
graphics thread, this thing maxes out a total of 1374mhz worth of CPUs on a
regular basis. Neato.
On the down side of things, all this whipping of poor ol skud has brought back
the compiler errors pretty bad, so I am definately thinking heat. Running at a
system load of only 3.2 for extended periods of time shouldn't be a problem for
a dual, but it seems to be for skud. Need to reconnect those 9's that I
unplugged cause I didn't think I needed them.
Accomplished:
1. Made pathfinding work, although in worst case, it can be terribly slow.
2. Moved some rule enforcement from Fungi to pathfinding.
|
March 25th (saturday)
I've been busy with physics and english today, but I found some time to work
on this project.
Accomplished:
1. Added more rules to mobile base and convoy operations.
2. Fixed an odd bug in Fungi that caused the game to get stuck in a loop.
3. Fixed a small (but annoying) bug in racetype::addFleet.
|
March 24th (friday)
I made no actual progress on the project today, but I did update this webpage a
little and I took a few screenshots.
|
March 23rd (thursday)
As I am sure you can see, I have done a lot of work on this page today.
I kept plodding along on the project today (along with an english
paper). I did make some good progress yesterday. So far this whole busness of
working convoys, mobile bases, and base construction into the game (and the Fungi
AI) has taken at least 400 lines. Before path finding. Before Fungi is even
making intellegent decisions on what sort of base to build, or even very smart
decisions on where to put it. Geez.
Turns out that there is just so much to do with these last few tasks that I can
hardly keep focused on what I am doing at any one moment. I need to change
things here, things there, things everywhere, and then when they are all
changed and debugged it generally does what I expect. I wish I had another
spring break. Another week without distraction.
I was noticing today that the records the game is keeping now cover no less than
15667 race-turns, which is different from game-turns cause each race has one
turn per game turn. Anyway I think thats a lot. And I haven't recorded very
many of the short games I run for quick tests.
Accomplished:
1. Made Fungi build bases.
2. Added new methods of building bases.
3. Began to add fleet reorganization to Fungi.
4. Enhanced the addShip function.
5. Eliminated the starting BS and the old way to build bases.
|
March 22nd (wednesday)
Doing some work today. I started to tackle some particularly daunting tasks,
such as convoys, base building, path finding and enforcement of the "one fleet
moves at a time" rule.
The date has also been set for the project presentation. We have 25 days, of
which 8 are weekend days, to finish this project. The talk is to be one hour
long. Wow.
Accomplished:
1. Implemented the "one fleet at a time" rule.
2. Updated the ship data files.
3. Began the process of getting the convoys and bases going.
|
March 20th (monday)
No real work on the project today, but I messed with the website a little.
The screenshots are still here.
|
March 18th (saturday)
Things are gona be winding down for me on this project, because school is
getting started again. Today I worked on my physics project a fair amount, and
I will probably move onto other subjects as well, so I won't be doing anything
more for this project this weekend.
|
March 17th (friday)
Well today I messed with graphics a fair amount and have since been working on
making combat and all the related ins-and-outs work. I may get it working
tomorrow.
I have been taking screenshots, available here,
of each game I test as I go, and right now I've got 8 different games at turn
50 posted. Worth a look, and the .jpg's are pretty good quality too.
Accomplished:
1. Made progress toward combat on several fronts.
2. Added small features to graphics, boosted run speed by 20%.
3. More small improvements in war/peace decisions.
|
March 16th (thursday)
It is quite clear that Fungi is going to be improvable. This whole busness of
deciding when to fight and when not to, for one thing, is just a bunch of
arbitrary numbers thrown together in arbitray formulas that generate a result
apporximately like what I want to see. Of course that result has no units, so
its hard to appoint an action threshhold, I mean, what does "1" mean, or
".561" or any other number? There are many elements of Fungi that are not very
well designed, in fact, and I think when scott gets back we're gona really set
out to make a whole new AI, the goal being to slap Fungi silly.
The only big thing left to do, besides more arbitray formulas inside Fungi, is
to implement combat. Well, actually thats not true, we need reaction movement,
retrograde movement, strategic movement, and methods of building bases in deep
space.
I am slowing down some on my getting the truly ugly functions, like pathfinding
and combat, done. Instead I started messing with a new AI, which I named
Spot. I am getting soft, after only a week of 12 hours a day...
In other news, I also found my way back to graphics today, and I spent a number
of hours trying to reduce the latency and increase the refresh rate of the
viewing window. I did not accomplish much, but I did discover that drawing the
hex lines slows the thing down to 2/3 of no-lines mode.
I am also getting very tired of what would appear to be a still-broken planet
placer. It seems to ignore star density, and so tomorrow I think I'll actually
have the program count everything and find out.
Accomplished:
1. Made strategic and retrograde movement work (sort of).
2. Added a number of general use "has a..." and "is a..." type functions.
3. Modified the game for random selection of multiple AI versions.
4. Added new graphics options, spead them up some, added frame rate counter.
5. Expanded the ship files.
6. Sped up the threat evaluation quite a bit in complex situations.
7. Reworked the enumerated type clas.
|
March 15th (wednesday)
There was a time when the game ran so fast that there was no way that the
graphics could keep up: 10 turns a second. A turn being each of the 15 or so
races moving once ("once" meaning all of their ships six times). I was
thinking about things like building in delays so that
we could have the view follow the action around. But then I implemented an
inefficient function that, for each race, scans the entire 10000 hex map
perhaps 20 times every turn. That fixed it, now we run one turn every 3.8
seconds (update: I got it down to a turn each 2.2 sec).
Of course the function in question has a good use. Soon the races will be able
to detirmine, without a doubt, which neighboring empire has all its stuff
closest to all the empire in quesiton's stuff. This is an important part of
figureing out who needs to be attacked first.
Accomplished:
1. Made significant progress toward Fungi making proper war/peace choices.
2. Added record write-out so now records are kept of every game.
3. Changed recordtype from local-function-creating to a main-function-creating.
4. Improved Fungi's warship building: now it builds a bigger variety.
5. Unit research is now allowed before encounter (at a greater price).
6. Various tweaks (ship dependencies, race colors, random planet placement, etc).
|
March 14th (tuesday)
I know its been a long day when the things on this list seem like yesterday. I
mean it feels weird reading about the cheap ground bases... really odd.
Today I did a bunch of things that moved the project towards the AI-only
development stage. It won't be that much longer before Fungi is capapble of
making war/no war decisions based apon its environment, and after that I think
its time for the actual combat resolution. That is going to be pretty hard,
because it deals with multiple AI's at once, for one thing, and is going to use
a completly different GL look from the rest of the game, for another.
Accomplished:
1. Made encouters work.
2. Fixed empty fleet deletion bug.
3. All ship operations are now conducted through functions.
4. Fixed random immediate segfault bug (I think).
5. Fixed a bug where the buildtree was being made backwards.
6. Fixed a bug where shipdatatree was called instead of buildtree.
7. Made trade go.
8. Added neighborly respect into Fungi's little brain.
9. Made file I/O work for Fungi's extra variables.
10. Supply now takes into account the whole supply grid.
11. Cheap ground bases auto-build on all inhabited planets.
12. Made icons for base-only fleets.
|
March 13th (monday)
I spent many hours today fighting with the range function. It made my head
hurt. In the end I used GL to show me what was going on with ranges, and then
I was able to solve it within 15 minutes. I took a few screen shots of what
was going on, available here, but those are
possibly not going to be very interesting. One thing that is interesting,
though, is that I could implement "fog of war" now if I wanted to.
I am getting pretty good at inserting and deleting things from doubly linked
lists now... soon I will be able to do it in my sleep, and I will be seeing
them in the mirror. Perhaps there are too many pointers... naw.
Other than that, I've done some stuff with the graphics and messed around
trying to fix bugs here and there.
Accomplished:
1. Made the range function workable.
2. Implemented ship supply ranges.
3. Added population expansion.
4. Added no-hex-density graphics mode.
5. Hammered out some bugs in fleet sorting.
6. Improved the graphical data window's readout.
7. Planets now change from yellow to green as they get filled up.
8. Better random race placement.
|
March 12th (sunday)
Today I split the code up into .hh's and .cc's for
easy readability (after Dayne, Adrian and Scott all thought my code was hard to
read). It should help things. 27 files, 5397 lines, 14923 words, 140851
characters... compare THAT to an english paper... ouch. If you were to examine
those numbers a bit you'd see there is about 2.8 "words" per line on average,
and the average "word" is about 9.4 characters long. I am surprised
the average words/line is that small.
All my work today has been much more mundane than before, but I hope to be able
to grind out the core functionality as soon as possible. I started out,
basically, working on making range-of-supply work but ended up doing all sorts
of other stuff.
Big plans for tomorrow.
Accomplished:
1. Split up code into .cc and .hh files for improved readability.
2. Ships now degrade (and die) if they are out of supply too long.
3. Fleets are now split between those with bases and those without.
4. Completed delFleet and delShip.
5. Improved the map maker.
|
March 11th (saturday)
I took a lot of screenshots as I worked today, both because its easy and I
think its neat to be able to see the game develop. They are
available here.
Accomplished:
1. Made the GL more efficient, running speed is better by about ten times.
2. Fleets are now drawn in race's colors.
3. Empire borders are now drawn.
4. Planets are drawn now (as circles of three sizes).
5. Now GL does not open its windows until the map its drawing has been made.
6. Replaced the class name "cWorld" with graphics, and "Krynn" with MAP.
7. More neatening of the GL code.
|
March 10th (friday)
Didn't spend as much time with the 'ol code today as I hoped, but I did examine
all of Scott's code in detail and fix a few things. I also have joined the
newest version of the game engine with the graphics.
Accomplished:
1. Examined Scott's code.
2. Merged newest game engine with the graphics.
3. Made the hexes much closer to actual hexagons in shape.
4. Eye candy: added a "chase" effect to the border of the active hex.
|
March 9th (thursday)
Scott was able to enlist the help of Adrian today and discover for us the secret
of how threads work. We are now multithreaded. I am very happy.
As of 9:00pm we have 4554 lines of code, not including the whole GL deal, but
including some good comments and not 100% efficient code.
I also got my hands on Scott's code, and have GLX installed and running (on both
skug and skud) so now I can run with graphics. They are a bit slow, but not too bad.
They certianly show me more than text does. Tomorrow I am going to start doing
a lot of work with Scott's code to make it into stuff I like. I don't agree with
his organization, although it is more like what most people do in some ways. So
anyway tomorrow is gona be another big coding day.
I grabbed some screenshots of the map window today,
available here, which I will be updating as I
improve the graphics (assuming I can). The picture page is also under
development. It will certianly be reworked as I add more and more images to it
and they require organization.
Accomplished:
1. Implemented threads.
2. Added construction of warships and shipyards to AI "fungi."
3. Added the race relation array.
4. Made exploration fleet movement non-random in AI "fungi."
5. Improved the UI and the record output function.
6. Fixed bugs with exploration.
7. Found and fixed a bug in racetype::newShip.
8. Eliminated "NONE" from the enumerated type race_name.
|
March 8th (wednesday)
Its been a big day already today. I found and destroyed the fleet movement bug.
It was not what it appeared at all, and in fact was based apon a
flawed error-checking program as well as flawed methods of outputting what was
wrong. It turns out that the entire buisness about fleets moving when they were
not supposed to was an illusion generated by a pointer error, and in fact
the fleets were working fine.
I saw the zero-money bug again today. It should be easy to find once the
graphics are done.
Accomplished:
1. Found and fixed more bugs in racetype::accountant_1 error checks.
2. Made movement functional.
3. Implemented exploration.
4. Implemented a fleet ID number for fool-proof fleet identification.
|
March 7th (tuesday)
Dissapointing day today. I spent many hours attempting to work out some of the
strangest bugs in fleet movement. You see, movement of one fleet seems to be
effecting the position of others in the same hex and it certianly should not be.
I have never seen errors quite like these before. They are both inexplicable
and apparently random. Of course it would help a lot if the graphics were
running so I could see what is going on better.
I also saw a bug today where a race was created with no income and the game was
unable to build the initial units. I don't know what happened there.
Accomplished:
1. Found and fixed several bugs in racetype::accountant_1 error checks.
2. Tried to fix problems with fleet movement functions.
|
March 6th (monday)
First news posting. The news, basically, is that the game is 4155 lines long.
Of course lines of code are a simple measure of program size, so we can't put
our faith totally behind it. Probably 500 of those lines are either filled with
comments or spaces for readability, and it has been pointed out to me that some
of the things I do could be done better/faster with things like hash tables. I,
however, am not concerned. I am happy the darn thing works.
Today has been a productive day. I accomlished:
1. Added renewing buffers for shiptypes, fleettypes, and shipdatatypes.
2. Removed the old "time" variable in favor of global "turn."
3. Made all pointers in fleettypes private.
4. Added simple functions to handle all fleet movement.
|
|