Creating a computer-aided version of WCTO

Ironduke:
Okay, banking now has a speed dial.
- I tried to get a lock on Rapier 3 in turns 19 CP, 20 CP, 21 CP, 22 CP and 23 CP. I have a feeling that it would take me indefinitely now to lock on that elusive Rapier... New bug?
What kind of lock were you trying to get?

Also, I refilled the Sabre's entire weapon's compliment, as well as the Rapier's.

Wedge:
Thanks for looking into it. I've done the IE corner's hack before, with the custom css-background overlay screen captures of the corners done correctly in another browser? It fun...
 
IR lock still not working in turn 28 and the previous ones. Found another two bugs, though: I don't think I ordered Bravo 1 to fire guns at the Rapier in turn 27 CP - yet it did and destroyed Rapier 3. I'm pretty sure I just tried to finalize my IR lock on the Rapier in this turn...

And the second bug: After Rapier 3 got destroyed, I got another "Orders" menu for Bravo 1, probably due to tailing. Since the target was gone, though, the window was empty (but I still had to "Report Orders to Command").
I think I'll wait until you fixed the issue with the IR lock and spawn a new target for Bravo 1 to shoot at. Still have to check out evasive actions and chaff...

Enemy AI would be great in the long (long, very long) run, but even playing this game while chatting on #wingnut (or using Skype :p) will be a lot of fun! :D

Speaking of which, I'll probably try to fire a torp at the Ralatha now... :cool:

Edit: No good... Something probably broke with the Rapier being destroyed.
 
IR lock still not working in turn 28 and the previous ones. Found another two bugs, though: I don't think I ordered Bravo 1 to fire guns at the Rapier in turn 27 CP - yet it did and destroyed Rapier 3. I'm pretty sure I just tried to finalize my IR lock on the Rapier in this turn...
You're going to have to try to remember the exact click-sequence you had. If you leave the primary weapons "open" it assumes you want to fire them, and it will pick a default target. The 'order' that got submitted was:
Particle_Cannon,2,1025|Mass_Driver_Cannon,3,1025|Image_Recognition_Missile,-1,1025
Which clearly is firing 2 guns, all refires, and the IR at target 1025 (which is the Rapier this turn). So if there is a bug here, it is with the pre-engine, and not the actual engine.

And the second bug: After Rapier 3 got destroyed, I got another "Orders" menu for Bravo 1, probably due to tailing. Since the target was gone, though, the window was empty (but I still had to "Report Orders to Command").
I think I'll wait until you fixed the issue with the IR lock and spawn a new target for Bravo 1 to shoot at. Still have to check out evasive actions and chaff...

Edit: No good... Something probably broke with the Rapier being destroyed.
Looks like the combat engine was smart enough to realize it needed no orders, but didn't actually update the ship itself. As such, it went from '0 people to go' to '-1 people to go' and won't progress. An easy hack/fix for me to let the game keep moving, but clearly a logical error.

Enemy AI would be great in the long (long, very long) run, but even playing this game while chatting on #wingnut (or using Skype :p) will be a lot of fun! :D
Yeah... you'll need to find someone with some background in AI coding; unfortunately that's well beyond me expertise... getting the FF missiles to work took way too much of my time; I simply don't foresee ever deciding it is worth it personally to sit down and learn AI coding for this. That said, I'll happily open my source code up to anyone who wants a stab at it!




[/QUOTE]

Any requests on what ship you want added next? Are we getting bored with Rapiers?
 
Added to the template database, and now also the game, the Kamekh. We have a Corvette! (Note: flak cannons will act as super-powerful forward guns; please do not use unless you want to wait for me to load a new target).

Okay, so I have the Kamekh and the Sabre each IR lock on each other. Here's the odd result:
The Kamekh was successfully updated to the 2-turns later new ID of the Sabre, but the Sabre is still trying to target the ID of the Kamekh from the previous CP phase. This means the Kamekh correctly, and successfully updated target ID's 3 times, and the Sabre did it 0 times.

I wonder if this is because the Kamekh is a corvette, and therefore sort-of a capital ship? Haven't we had the Sabre successfully launch Torp's before? This should use the same mechanism. Odd. Now that I have a basis for comparison, let's see what I can find.
 
Okay; after a few quick tweaks and hacks, I figured out the issue. I had developed a programming race condition where multiple ships were updating their targets, and the guy who got into the database first would sometimes get locked in on an old target, having not yet been hit by the update target sequence. I changed the update target code to now also go back and retroactively track who has been already put into the database this turn, and update their targets as well, when needed.

Did a full test; IR locks work now. It isn't that IR locks didn't work before, we just would have gotten lucky/unlucky accordingly. For instance, since the Rapier was higher on the udpate list (by complete chance) had it had an IR, it would have succeeded on locking. Torps were working because the Sabre was higher than the Ralatha on the update list.

Anyway, no more convinient coincidences, now we're handling it properly.

I've left 2 incoming IR's; I leave it to you guys to test out flak/evasive maneuvers now.
 
Hey Wedge, I need your expertise on something. I realized that all the submit_<phase>_order.php files are actually not validating, but the game didn't care because the database entries were still happening. Technically these files were supposed to return xml, to be parsed by the pre-engines. The parsing appeared to me to never work, but I just realized it was because it believes the formatting to be wrong. I tried checking what the parse engine for xml in both firefox and chrome give, and it is:

Firefox:
XML Parsing Error: XML or text declaration not at start of entity

Chrome:
error on line 1 at column 6: XML declaration allowed only at the start of the document

Now, if you look at the actual xml output/the php generation it, as far as I can tell the xml tag is the first declaration.
 
Which clearly is firing 2 guns, all refires, and the IR at target 1025 (which is the Rapier this turn).
Might as well be I'm stupid... I thought I closed the primary guns after incidentally clicking them. Good to see a Kamekh in there now! It's a bit weird that the Sabre looks way bigger than the corvette, but having any and all ships to scale would be a mess. (Especially once there's a dreadnought involved... :p)

A few things I noticed:
- The Sabre's DF missiles don't fit in the ship's info screen (at least in Chrome). This is old, but I forgot to mention it in earlier reports.

- In turn 32 EP, the Sabre should not be able to use chaff. Chaff pods only work against missiles in your rear and side arcs, but in this case, the IR is coming in head on.

- In turn 32 EP, the Sabre performed a Shelton slide as an evasive action, and I wasn't able to issue new orders in turn 33 MP. So this works as it should - excellent! However, in turn 32 EP, I still couldn't specify my first and second turn for the slide.

- In turn 32 EP, I ordered the Sabre to take evasive action AND use its reserved fire (8 shots). Looks like the reserved fire got neglected - at least it's not in the turn summary. However, the IR missile launched at Bravo 1 has also disappeared, when it should have been around for another turn. (Both FF and IR stay in the game for two turns, unless taken down by reserved fire or chaff.)

- Hm, might have been too early to cheer... In turn 34 MP, the Sabre is still stuck. And in turn 35 MP, as well... Guess the evasive action is still "active" in your code.

I'll try to test chaff once the Sabre is able to move again. :p
 
Good to see a Kamekh in there now! It's a bit weird that the Sabre looks way bigger than the corvette, but having any and all ships to scale would be a mess. (Especially once there's a dreadnought involved... )
Well, at the moment, as you know, the ships are all just dropping their as-is icons, but I could easily rescale them on the fly to be smaller, for say, fighter-class ships. Or we could change the icons so that each ship looks like a wing of fighters... but I suppose that would completely mess with the look vs. gameplay.
A few things I noticed:
- The Sabre's DF missiles don't fit in the ship's info screen (at least in Chrome). This is old, but I forgot to mention it in earlier reports.
Fixed
- In turn 32 EP, the Sabre should not be able to use chaff. Chaff pods only work against missiles in your rear and side arcs, but in this case, the IR is coming in head on.
Well, the Sabre pilot, while panicking, can always hit the chaff button, but the code already has it so that that particular chaff won't actually affect a forward missile. The way it works currently is first it checks to see if it has *any* incoming missiles, then it checks to see if it has any chaff and gives you the button. It only compares the chaff vs. missile location when it actually processes the chaff. I suppose I could update the pre-engine to make sure at least 1 missile is coming from the side/rear.

[later] Okay, what I've done now is said if the missile is NOT on the point defense list (something I have to generate in the pre-engine) then it IS chaffable. I *think* this is more or less true; thoughts? This saves an extra full loop to determine what is chaffable by knowing from exclusion.
- In turn 32 EP, the Sabre performed a Shelton slide as an evasive action, and I wasn't able to issue new orders in turn 33 MP. So this works as it should - excellent! However, in turn 32 EP, I still couldn't specify my first and second turn for the slide.
Hmm, not only that, but you can't pick a turn direction for a regular afterburn either.

[later]Fixed.

- In turn 32 EP, I ordered the Sabre to take evasive action AND use its reserved fire (8 shots). Looks like the reserved fire got neglected - at least it's not in the turn summary. However, the IR missile launched at Bravo 1 has also disappeared, when it should have been around for another turn. (Both FF and IR stay in the game for two turns, unless taken down by reserved fire or chaff.)
did the reserve fire look ugly and have an actual check box? This is a sign the preengine is broken or missing something. That's what I see when I rollback to 32EP. Definitely a problem, even if the missile did mysteriously vanish. Good catch. Working on this.

[later] Okay, significantly cleaned up the reserve fire part of the end-phase pre-engine. Had to make the box a lot bigger to accomodate it.

I also looked at the end-phase-engine's processing of reserve fire; I reworked it slightly so I think it will have a better chance of at least informing us about weapons powering up for point defense usage. Give it a try again, and see where we are. (I haven't tested it).
- Hm, might have been too early to cheer... In turn 34 MP, the Sabre is still stuck. And in turn 35 MP, as well... Guess the evasive action is still "active" in your code.
Hmm, yeah, the Sabre is definitely still thinking it is taking evasive action. Aha; looks like I put the evasive reset in the loop that runs only if you have an EP order to handle; I'm guessing the Sabre hasn't tailed/point defenced/chaffed since, so it keeps just staying evasive to turning evasive back on. Well, I've moved the evasive clearing from the start of the end-phase to the end of the combat phase to avoid this. Hopefully that clears it up.

I've also manually turned off its evasive action, so it will move next turn regardless.


Alright, let the testing continue!
 
Hey Wedge, I need your expertise on something. I realized that all the submit_<phase>_order.php files are actually not validating, but the game didn't care because the database entries were still happening.
Did you work out whatever you needed for this issue? It's a bit late in the morning for me to be reading through the whole thread. x.x
 
I wrote the above before I read the PM you sent me. The combat_functions.php fix appears to have solved it.
 
Oh good. Because I'm just about knocked out. This week has been the most exhausting since I started. And it's not even over yet.
 
FYI:
Based on a bug fix I implemented today that was Rapier II specific, any turns/phases that have a Rapier II in them are now going to crash. That said, all 'new' turns/phases with Rapier II will not crash (I hope). Since the current game no longer has one in play, this is untestable for the time being.

I could fix this manually, but it would take writing a special script just to clean up an alpha game, so I won't bother. It removes some of our pretty phase 4 demonstration, but it still works.
 
Everyone:

We are now at a minor cross-roads. I can't push forward very far with Phase 5 development until we are semi-confident we've nailed all the remaining game-mechanics bugs. Although most of phase 5 work is not related to combat at all, it will effectively lock-down all the ships to be specific to user accounts, rendering testing to be a much slower and more difficult process. As such, I invite anyone to go up and look for my most recent 'long' post about where we are bug-wise in phase 4, and see if you can break any of the things I recently fixed, or chase down anything untested.

Remember, when you visit the phase 4 demonstration to only look at Game 2.

If anyone has any ship/setup requests they want, I can go through and force things to be.
 
I've been lazy the last couple of days, mainly because I had to stay in bed with high fever for the last two days, and probably for tomorrow as well. :( So I won't be able to do much testing right now... Just wanted to let you know why I've been keeping radio silence. ;)
 
Okay, I'm finally out of bed - hopefully for good. And I noticed this bug in turn 37 MP: For the Kamekh, I could choose to "Begin Turn to Port" or "Begin Right Turn." ;) (The same is true for the other ships as well, of course.)
After that, there was no CP. Not sure what happened... The Sabre tried to get a torpedo lock on the Kamekh and do a Shelton slide. The Kamekh tried to get an IR lock on the Sabre and didn't make any fancy maneuver. The only explanation I can come up with is, the Sabre botched its roll for the slide and ended up somewhere off the map. :rolleyes:
 
I think you and I were simultaneously submitting orders, a scenario I hadn't yet considered. I also had some weirdness. I think it is okay right now. I also intentionally overlapped 2 icons as I have a fix in mind (finally) for how to address this. In the meantime, I'll try to push this turn through with a hack tonight so you guys can keep testing.
 
Okay, so while we haven't made much progress with respect to combat testing, I did make a fair bit in general this week.

Unlike the incredibly long phase 4, phase 5 has only a few short objectives, and won't be drawn out. In fact phase 5 is almost done.

Notable features added in this phase:
  1. User authentication
  2. Pilots (a given user can actually have multiple pilot personas, although the options and controls for this are not yet available, the functionality is. Pilot personnas can have different stats from the pilot).
  3. Pilot skills are sketched into the pilot class, but not called anywhere in the actual combat code . For now, I'm thinking of sticking with just basic rules (novice->elite), but putting in individual pilot skills would actually be a sinch.
  4. Significantly improved turn and phase navigation over anything we've had so far, or that Ironduke had back in WCTO.
  5. I have made a first-cut attempt to solve the 'stacked indicators' problem. A pop-up appears with icons and names. I like what it is trying to do, and it does function, but it has some quirks. I can't seem to consistently make it disappear if you mouse away (at the moment, this feature is completely disabled so don't even try; it'll vanish if you use it though). I also can't seem to make it do a pop-up if you re-select the already selected icon. I've sort-of solved this by throwing in a default 'Object' header that starts picked, but after you've picked one, you have the issue again. Anyway, it does work, and is better than nothing for now. I haven't tested/verified what will happen if we have multiple indicator piles going on at once. that could get messy, but I theoretically coded it to handle that fine.
  6. Field Reports are now in a dropdown, although at the moment they're a touch buggy, and don't always appear at all.

Note that at the moment, only the assigned users can actually fly ships in Phase 5, but that Phase 4 is running from the same game database. Playing through the phase 4 interface will let you by-pass user priviledges. That said, the actual code is different; as we debug and fix phase 4, I have to manually move over the changes to phase 5 using a repository merge. So if you find a bug using phase 4, and I fix it in phase 4, don't expect it to work in phase 5 until I announce it will. I'll do a batch move over of bugs every so often. As it stands, though, for actual combat debugging phase 4 is still probably easier, since anyone can control any ships.

I encourage *everyone* who intends to play WCTOO when the Beta comes out to start registering their user accounts now. Even if we migrate servers, I'll take that with us.

Still to do for phase 5:
  1. Games/Deaths/Kills tracking at the user level (slots are there, just not the code)
  2. More fixes to indicator stacks?
  3. Pilot skills firmed up
  4. Better user controls re: options/changing passwords/etc.
  5. A drop-down at the top called 'game' (or maybe in the navigation pane?) that will let you see who hasn't issued orders yet.
  6. Automatic background counter that will refresh the board every X (=30?) seconds in case you don't, so that if you're playing a highly active game, it can be semi-live.
  7. A 'force check to see if turn is ready yet' button.
  8. A short email script that will send email notifications on turn completions (subject to user preference?)

many of the above are actually sort of fluffy and not strictly necessary. Based on popular vote/opinion, I can drop off the more user-friendly ones, and stick to the core game mechanic ones, if, after sufficient testing of what's already there in phase 5, we want to push forward to a beta and start really playing.


Finally: I can't stress enough that this is really meant to be played in Firefox 3.6.10+ for now. Wedge has also been busy this week, so there's no guarantees of anything in Phase 5 being at-all cross-platform safe yet, although I'm trying to be better about it. We will continue to do our best as time moves forward however.
 
Back
Top