[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Rob's patch



It's gone all quiet again.... !

Rob, your field AI doesn't seem broken at all. (well, there was a "return 0" at the beginning of computer_field_offense, but when I took that out, the offense worked fine) I saw several TODOs commented throughout, which would certainly fill the gaps in performance. I'm planning to do them, though I don't know how soon I'll be done. :)

One thing you don't seem to have covered, though, is difficulty level. The way things are going, the computer is going to be too hard to beat. Have you given any thought to how to decrease the difficulty?

Here are a couple ideas:

* Go back to Ronen's idea of slowing down reaction time by doing nothing (or continuing the last movement) on random turns.

* Mess around with safe distances and tolerances for dodge and fire conditions. I'm not sure whether increasing these would make the computer better or worse.

Anyone else have an opinion?

Concerning difficulty: I haven't looked much at the board AI, but is that affected by the difficulty level? It's my opinion that the computer still isn't that good at the board, but it could clean up on the field. I think giving the computer a field penalty would be plenty to reduce the overall difficulty.

- Mike

>Well, I don't know if I'm going to spend time doing XArchon stuff in the
>near future, so I thought I'd just make my large patch from 0.50 available
>for anyone who wanted to play with it.  Note that the tactical AI (that is,
>the AI in charge of combat) is broken; I was playing with making it smarter
>(and able to handle the free-movement change I'd made), but didn't finish
>it.  Currently, the computer just moves the creature to what it considers
>to be a safe distance from the enemy, and sits there doing nothing.  Try
>shooting at it - I was quite happy with my dodging routine :)
>
>Another change I did that needs fixing was a temporary hack to pre-load the
>graphics in the binary, to speed up the startup and therefore debugging (it
>didn't speed up as much as I'd hoped, but was still faster).  That's all
>contained in the new file archon_theme.c, plus a hack to canvas.c to use
>the compiled-in data rather than loading from the theme directory, in the
>function canvas_image_load().  I intended to take this hack out again
>before releasing it...
>
>The initial playing around with an Adept mode I did means that the Adept
>tiles are munged in with the existing theme.  The easiest way to distribute
>that is to just include the complete hacked 'archon' theme, which you can
>download using the URL below and un-tar in the data directory (both the one
>in xarchon-0.50/data and the configured data directory, since the above
>pre-loading hack still reads the inodes and filenames in the configured
>data dir).
>
>Anyway, here are the URLs, for the adventurous:
>
>    http://www.serc.rmit.edu.au/~rob/xarchon-0.50.diff.gz
>    http://www.serc.rmit.edu.au/~rob/xarchon-theme.tar.gz
>
>Here's the 'done' list again:
>
>    * implement mouse support
>    * bug in imprison - if last enemy piece on board is not
>	    wizard/sorceress, it didn't target the correct square.
>    * take out nasty hack in field.c for weapon_data, give weapons their own
>	    structs in the field struct.
>    * fights should start with creatures offset by 1 in the y direction
>    * simplify field_collision to 4 comparisons.
>    * make iface_revive go straight to the target, rather than up to the top
>	    and then down to the target.
>    * take out hard-coded OS timer resolution in main.c, calculate
>	    dynamically.  Account for the time executing code, as well as the
>	    time spent sleeping.
>    * add double-kills and stalemates
>	* immediately abort cloud weapons if their wielder dies
>    * undefined keys for human control were automatically hit every frame!
>    * Shapeshifter should take the health of an *undamaged* member of the
>	    enemy's type, but with the dark side's luminance bonus.
>    * Elementals should be unaffected by the luminance cycle.
>    * From screenshots of the original Archon running on the C64 emulator,
>	    measure creatures' health and weapon damage inflicted.
>    * From screenshots of the original Archon running on the C64 emulator,
>	    the luminance cycle gives health bonuses of +0, +1, +3, +4, +6, +7
>	    as the cell goes from the opposite colour to the piece's own.
>    * use emu to time recharging, bullet and movement speed.  Also, damage
>	    rate of phoenix and banshee.
>    * move all the hard-coded duration and switch()-ed upon stuff into the
>	    ACTOR struct.  Things like the per-frame damage of cloud weapons,
>	    the fire delay, the duration of cloud and hand weapons, the speed
>	    in pixels per frame of creatures and attacks
>    * make phoenix explosion build up in stages.
>    * remove whole-square rounding in field mode
>    * make diagonal-moving-of-ground-units a general property of diagonals
>	    on the board, and remove from mouse-specific code.
>    * In original game, combatants could overlap.
>    * collision detection is too coarse.  Bitmasks
>	* if an image has no mask, it means it's rectangular.  Can still do
>		mask testing on the other image.
>    * make actor invisible if firing a ACTOR_IMMUNE_USER weapon
>    * ensure that field actors don't start on rocks
>    * have a lookup table with values multiplied by sqrt(2), used to slow
>	    diagonal movement down to the same as axial.
>    * clouds should really be circular, rather than oval (oval in the
>         original was from the distortion of vertical distances)
>    * erase clouds that fall outside the field
>    * change layout of human configure dialog - all directions & fire at once.
>    * if a chosen key mapping in human configure dialog is already used,
>         clear the old mapping to null.
>    * wizard/sorceress teleport
>    * unselect unit if it finishes in its starting location
>    * change facing on light/dark to a separate bit
>    * animated board cells: have some bits that can be set which give the #
>         to & with frame_time to determine stepping
>
>							Have fun,
>							 Rob R.
>							  \((/
>							  ~oo~
>							  /))\

-- 

This message comes to you from GVOX, pioneering Immersive Music(tm)
experiences -- the Next Generation of Music Entertainment
(http://www.gvox.com) and Education (http://www.notationstation.net)

Mike Ciul
GVOX Interactive Music
1080 N. Delaware Ave. 8th Floor
Philadelphia, PA 19125
Voice: (215) 922-0880 Ext.: 144 Fax: (215) 922-7230