Thursday, January 29, 2009

Temporary Hiatus

Taking a break for a week or two. Don't expect a map until 6.60 at the earliest. =)

Tuesday, January 27, 2009

DotA Allstars 6.59 AI+ 1.52 Rev. 01

http://www.mediafire.com/?izfmymnkhzm
http://rapidshare.com/files/190090293/DotA_Allstars_6.59_AIplus_1.52_Revision_01.zip
http://www.megaupload.com/?d=9SZA8AS9

DotA Allstars 6.59 AI+ 1.52 Revision 01
---------------------------------------
This is a port of RGB's AI+ v1.52 (originally written for DotA Allstars 6.48b).

It behaves the same as the original AI, and has only been updated to account for balance changes, new item recipes, and most new features. As such, some new content does not work fully with the AI yet.

THERE IS NO AI FOR LIFESTEALER, INVOKER, CLOCKWERK GOBLIN, ADMIRAL, WINDRUNNER, STORM SPIRIT, OR UNDYING. THEY WILL GET ITEMS BUT WILL NEITHER USE NOR LEARN THEIR SKILLS.

Known bugs with AI:
-AI don't properly react to -nb, -nm and -nt modes
-Some exploits that should have been fixed are still in the game...just don't use them. If you really want to cheat against AI, just use -test

Some commands have yet to be implemented properly:
-ah
-afk
-kickafk
-rd (the new one in 6.53, -rd is in the game but done the same way pre-6.53)
-cm
-switch
-er

Additionally, I have added two Fun Taverns in the lower right corner. Currently includes seventeen legacy heroes (possibly more in the future): Old Invoker (6.12b), Old Lifestealer (6.48b), Old Silencer (6.12b), Gambler (6.06), Old Morphling (5.84b), Old Stealth Assassin (5.84b), Old Pudge (5.51), Old Chen (5.64), Old Medusa (5.84b), Void Demon (3.0d), Rider (5.72), God of Wind (6.01), Flame Lord (5.51), Avatar of Vengeance (6.32b), Astral Trekker (3.0d), Bat Rider (6.00), and Conjurer (5.51).

To access the fun taverns, type -fun within the first 15 seconds of the game. Note that Fun Tavern heroes do not have AI scripts and will not buy items or use/learn skills.

To use the -tryhero command, type in -fun within the first 15 seconds of the game, then type in -tryhero before picking a hero.

Changelog:

Rev. 01
=======
-First update to 6.59

*Unofficial fixes
-Fixed Last Word to trigger on end of spell cast (instead of end of spell cast animation)
-Cleaned up the way Refraction buff icons appear to provide better feedback on when the buffs are actually active
-Fixed some typos (Storm Seeker, Eye of Skadi Ranged, Windrunner, Captain CoCo's Rum, Recall, Courier Shield, Burst)

6.59 Port of AI+ and -fun content by BuffMePlz.

Special thanks:
---------------
Tenshinhan DN
Overflow_GR
Duvon
Strikur--
Counter_Helix_axe
Catalyst
chaser02
Green_Sliche
cp6uja
Thoth-

Sunday, January 25, 2009

DotA Allstars 6.58b AI+ 1.52 Rev. 01

http://www.mediafire.com/?wmynr3zjmw5
http://www.megaupload.com/?d=W87H9H49
http://rapidshare.com/files/189104861/DotA_Allstars_6.58b_AIplus_1.52_Revision_01.zip

DotA Allstars 6.58b AI+ 1.52 Revision 01
----------------------------------------
This is a port of RGB's AI+ v1.52 (originally written for DotA Allstars 6.48b).

It behaves the same as the original AI, and has only been updated to account for balance changes, new item recipes, and most new features. As such, some new content does not work fully with the AI yet.

THERE IS NO AI FOR LIFESTEALER, INVOKER, CLOCKWERK GOBLIN, ADMIRAL PROUDMOORE OR WINDRUNNER. THEY WILL GET ITEMS BUT WILL NEITHER USE NOR LEARN THEIR SKILLS.

Known bugs with AI:
-AI don't properly react to -nb, -nm and -nt modes
-Some exploits that should have been fixed are still in the game...just don't use them. If you really want to cheat against AI, just use -test

Some commands have yet to be implemented properly:
-ah
-afk
-kickafk
-rd (the new one in 6.53, -rd is in the game but done the same way pre-6.53)
-cm

Additionally, I have added two Fun Taverns in the lower right corner. Currently includes seventeen legacy heroes (possibly more in the future): Old Invoker (6.12b), Old Lifestealer (6.48b), Old Silencer (6.12b), Gambler (6.06), Old Morphling (5.84b), Old Stealth Assassin (5.84b), Old Pudge (5.51), Old Chen (5.64), Old Medusa (5.84b), Void Demon (3.0d), Rider (5.72), God of Wind (6.01), Flame Lord (5.51), Avatar of Vengeance (6.32b), Astral Trekker (3.0d), Bat Rider (6.00), and Conjurer (5.51).

To access the fun taverns, type -fun within the first 15 seconds of the game. Note that Fun Tavern heroes do not have AI scripts and will not buy items or use/learn skills.

To use the -tryhero command, type in -fun within the first 15 seconds of the game, then type in -tryhero before picking a hero.

Changelog:

Rev. 01
=======
-First update to 6.58b
-Fixed some tooltip typos for Fun Tavern heroes
-Updated Venomancer's AI to properly use Venomous Gale
-Updated Vengeful Spirit's AI to properly use Wave of Terror
-Rewrote Overload to prevent crashes with AI
-Prevented AI from picking Storm Spirit and Undying and added warning message when AI randoms either hero
-Removed some dead code (mostly for old item system)
-Fixed a bug with Ogre Magi and Aghanim's Scepter

*Formless fixes
-Updated Formless's spell array to include Conjurer's, Storm Spirit's, and Undying's spells
-Slightly changed Formless's spell stealing routine with Aghanim's to prevent a bug
-Slightly changed Formless's Reset mechanism with Strygwyr's Thirst to prevent a timing issue that could give you vision of a unit even after forgetting the ability

*Unofficial fixes
-Fixed Last Word to trigger on end of spell cast (instead of end of spell cast animation)
-Cleaned up the way Refraction buff icons appear to provide better feedback on when the buffs are actually active
-Fixed some typos (Storm Seeker, Eye of Skadi Ranged, Windrunner, Captain CoCo's Rum, Recall, Courier Shield, Burst)

6.58b Port of AI+ and -fun content by BuffMePlz.

Special thanks:
---------------
Tenshinhan DN
Overflow_GR
Duvon
Strikur--
Counter_Helix_axe
Catalyst
chaser02
Green_Sliche
cp6uja
Thoth-

Sunday, January 18, 2009

I guess 6.58b is out

...which means I should probably update to that instead. Which means it'll take a bit more time. But hopefully not too much more. =)

Saturday, January 17, 2009

Almost there!

Things left to do (that may or may not be in before Rev. 1):
-Experimental -switch command
-Changes to -vr/-mr
-New -mines and -mc commands
-Misc sounds (-quote sounds from 6.57b, fun sound for techies)
-Some bug fixes
-Replay stuff (I don't care about this and it probably will never make it in)

I'll probably be testing this with some buddies over the weekend. Unless we find something completely gamebreaking, we should have some form of the map up for download by the end of the weekend. =)

Thursday, January 15, 2009

Good news, bad news

Good news:
Finished updating all the hero and item content from 6.58. As far as regular gameplay, 6.58 is more or less done.

Bad news:
New Overload and Flesh Golem require rewrites, for the same reason Meld, Tidebringer, and Focus Fire needed them. Basically, more work for me. Sad face =(

Wednesday, January 14, 2009

Another early-morning update

Apparently, working on the map while watching episodes of House is able to consistently keep me up beyond what I normally should.

House is such a fantastic show. Though I just finished Season 4...talk about a killjoy. Now I'm super-depressed.

Ah well, on the upside, I've finished all of the hero and item updates from 6.58 except for new Undying. I'll probably leave off the game modes and extra commands and stuff for later.

Woohoo! Bed time.

Tuesday, January 13, 2009

DotA Allstars 6.57b AI+ 1.52 (20090112)

http://www.mediafire.com/download.php?y5mywmnym2y

Changelog:
==========
...didn't write one. I added some more Ramza stuff, misc. bug fixes, and one new hero, with which I'm fairly pleased. He has no attack - instead, he marks targets to use as projectiles with his abilities. Try it, you'll see what I mean.

Formless can copy Conjurer's abilities in this version, and a few typos are fixed as well. Aside from this, not really all that much new (for now). Ah well. Enjoy!

But it's late now and I've stayed up way past my bedtime to work on the 6.58 port. Good night.

Monday, January 12, 2009

Incremental Map Tomorrow

Finished compiling the incremental map (6.57b), but MediaFire is down and I don't feel like messing with MegaUpload or RapidShare.

Map will be up tomorrow.

Here's the plan...for now

6.58 is out, and I've started some of the porting work over (but probably won't be done for a while). However, I'll probably use 6.57b for my own AI tinkering, so any potential proof-of-concept maps will be with 6.57b.

I'll try to keep up porting in the meantime, so the community will at least have something to play/practice/pwn bots on. I doubt I'll be able to maintain two separate maps in the long run though, so we'll see how this project turns out.

I'll probably post an incremental map for 6.57b later today.

Thursday, January 8, 2009

DotA Allstars 6.57b AI+ 1.52 Rev. 03

Download:
http://www.mediafire.com/?dkmcgm2ywuo
http://rapidshare.com/files/181295338/DotA_Allstars_6.57b_AIplus_1.52_Revision_03.zip
http://www.megaupload.com/?d=G7XVPK19

DotA Allstars 6.57b AI+ 1.52 Revision 03
----------------------------------------
This is a port of RGB's AI+ v1.52 (originally written for DotA Allstars 6.48b).

It behaves the same as the original AI, and has only been updated to account for balance changes, new item recipes, and most new features. As such, some new content does not work fully with the AI yet.

THERE IS NO AI FOR LIFESTEALER, INVOKER, CLOCKWERK GOBLIN, ADMIRAL PROUDMOORE OR WINDRUNNER. THEY WILL GET ITEMS BUT WILL NEITHER USE NOR LEARN THEIR SKILLS.

Known bugs with AI:
-AI don't properly react to -nb, -nm and -nt modes
-Some exploits that should have been fixed are still in the game...just don't use them. If you really want to cheat against AI, just use -test

Some commands have yet to be implemented properly:
-ah
-afk
-kickafk
-rd (the new one in 6.53, -rd is in the game but done the same way pre-6.53)
-cm

Additionally, I have added two Fun Taverns in the lower right corner. Currently includes seventeen legacy heroes (possibly more in the future): Old Invoker (6.12b), Old Lifestealer (6.48b), Old Silencer (6.12b), Gambler (6.06), Old Morphling (5.84b), Old Stealth Assassin (5.84b), Old Pudge (5.51), Old Chen (5.64), Old Medusa (5.84b), Void Demon (3.0d), Rider (5.72), God of Wind (6.01), Flame Lord (5.51), Avatar of Vengeance (6.32b), Astral Trekker (3.0d), Bat Rider (6.00), and Conjurer (5.51).

To access the fun taverns, type -fun within the first 15 seconds of the game. Note that Fun Tavern heroes do not have AI scripts and will not buy items or use/learn skills.

To use the -tryhero command, type in -fun within the first 15 seconds of the game, then type in -tryhero before picking a hero.

Changelog:

Rev. 03
=======
-Restored resource preloading on Invoker
-Lowered manacost on Direct Vengeance (Avatar of Vengeance)
-Fixed the position of Leragas the Vile on the Scourge side
-Rewrote Fly (Bat Rider) to address a few bugs
-Fixed neutral creeps not spawning at 0:30 mark
-Fixed super creep movement
-Added Conjurer (5.51) to Fun Tavern (Extinct)
-Slightly reduced map size

*Formless fixes
-Added a small cast point value for Formless to fix a timing issue between spell cast and effect trigger events
-Fixed a bug with copying Meld
-Fixed some issues with behaviour when copying Feral Heart and Spin Web with Formless
-Fixed some bugs with activating Reset while Freezing Field or abilities based on immolation are active
-Illuminate on Formless is now channeling (instead of the Spirit Form version)
-Aftershock or Static Field on Formless no longer trigger on "fluff" spells (only a spell that would remove Curse of the Silent will trigger it)
-Formless can now copy Impetus, Glaives of Wisdom, Last Word, Phantom Edge, Spell Shield, Flesh Heap, Overload, Burning Spear, Berserker's Blood, Refraction, Soul Assumption, Gravekeeper's Cloak, Blur, Split Shot (Medusa), Crippling Fear, Hunter in the Night, Devour, Backtrack, Storm Seeker, Feast, Time Lapse, Frostmourne, Borrowed Time, Dispersion (Spectre), Arcane Orb, Essence Aura, Heartstopper Aura, Kraken Shell, Strygwyr's Thirst
-Implemented a system that prevents Formless from copying two skills with the same base order
-Added new command -override that removes the aforementioned base order check

*Unofficial fixes
-Fixed Last Word to trigger on end of spell cast (instead of end of spell cast animation)
-Cleaned up the way Refraction buff icons appear to provide better feedback on when the buffs are actually active
-Fixed the tooltip for Storm Seeker

6.57b Port of AI+ and -fun content by BuffMePlz.

Special thanks:
---------------
Tenshinhan DN
Overflow_GR
Duvon
Strikur--
Counter_Helix_axe
Catalyst
chaser02
Green_Sliche
cp6uja
NNCCMMLL

Mission: Ambition?

Currently, we have five heroes that do not have a properly implemented AI. If heroes continue to be remade (which is likely, given the rate at which they have been remade in recent history), then this number will increase, and most likely faster than the total number of heroes in the game.

Continuing to port this AI over repeatedly will undoubtedly be less and less playable. Statistically speaking, if four more heroes are to be remade, this will up the percentage of heroes without AI to about 10%. Given that most DotA games have 10 players/bots, this would mean that, statistically speaking, almost every game would have at least one unusable AI hero.

What does this mean? It means that unless someone steps up to start doing their own thing, the viability of porting is going to steadily decrease. So...let's step it up.

I've been doing some planning and brainstorming, and what I envision looks something like this (note that this is rough brainstorming and subject to change):

Instead of multiple triggers that iterate through all AI-controlled heroes periodically, each AI bot will have its own set of dedicated triggers. I'm not sure of the performance ramifications of this, but it will allow greater flexibility in designing unique AI on a per-hero or per-difficulty basis, and will also allow for multiple AI personalities.

Each bot will have:
1. Basic trigger - Dictates the basics, like movement, last-hitting, retreating, that kind of stuff. This can be altered by people who want to make or fine-tune the AI, and also allows for multiple AI personalities (like dictating real differences between "Easy" and "Insane").
2. Item trigger - Dictates item use, depending on what types of items the hero might get. This can be general or specific, the former allowing greater flexibility in altering item builds ("I wonder how this hero would use this build...") and the latter allowing greater effectiveness ("Let's see how this hero uses THESE items").
3. Skill trigger(s) - Dictates how heroes will use their abilities. These can be linked (sequential skill combos) or independent (like using Wrath when a low HP enemy hero is visible somewhere). The reason for making these on a per-hero basis should be fairly obvious.
4. Item build trigger - Dictates how/when items are built and bought. Most of this is done already, thanks to 6.49c and the guys over at the OpenAI forum for their hard work in creating builds. Again, doing this on a per-hero basis will allow greater flexibility (maybe even have AI move to the secret shop to buy things?).
5. Other triggers - These can be added later, but would dictate things like ganking, attacking Roshan, neutraling, warding, checking for runes, taking over for leavers, etc.

Rough flow would go along the lines of having the basic trigger run most of the time, with the other triggers more or less idling in the background until conditions are met. Once one of these conditions is met, AI logic will branch along this auxiliary condition and temporarily suspend basic actions. Once auxiliary functions are completed (or aborted), basic trigger will resume command.

For example, an AI Zeus will wait and last-hit for a while (basic trigger) until it has a level greater than 3, has a good deal of mana, and an enemy hero pokes its head in the group of creeps (auxiliary condition). Zeus will temporarily stop last-hitting (disable basic trigger), cast Lightning Bolt (skill trigger), possibly Chain Lightning (continued skill trigger), then resume last-hitting (resuming basic trigger). Zeus then notes that the enemy is visible and has less than 200 HP (independent skill trigger) so he casts Thundergod's Wrath. Now Zeus is richer and happy, but out of mana and maybe low on HP for various reasons not mentioned, so he decides to go back and heal (resumes basic trigger/retreat functionality).

Just a basic example (and a good starting point for me, actually).

Well, it's an idea anyway. Working on an independent AI script will also allow us to stop porting all the time, which would eliminate any porting bugs and improve portability from version to version without having to recreate each change.

The downside? This is going to take much, much longer and a whole lot more work than porting. Fortunately all of the porting experience has made me fairly familiar with the structure of the map, so this should be easier than starting from scratch WITHOUT prior knowledge of the map (but that's a given).

What does this mean for now? Well, I'll probably release Rev. 3 tonight (I thought of an idea to fix -sc, but haven't tried it yet), and probably an incremental map too (I added a hero I thought up of earlier this week), and I'll try to continue to port and release incremental maps when I can, but I wouldn't count on them coming out as rapidly as they used to. On the other hand, we might have other beta maps to look forward to.

Or this could all be hypothetical and I'll fail horribly in practice. I guess we'll see. =P

Wednesday, January 7, 2009

LOLZ

A real e-mail I just got:

"Milan Česnek (certmir@seznam.cz) to me

Please don´t „improve“ DOTA anymore, you are too stupid to do this. Thx"

I'm so glad my work is appreciated.

Friday, January 2, 2009

Dude, where's my map?

So...as you may have noticed, it is now the new year. Happy new year! =) Unfortunately, though I had hoped I'd be able to get Rev. 3 out before the fireworks and fancy light shows (or however you ushered in the new year), it obviously didn't happen. =/

Three things have been hanging up progress:
1) I still can't figure out why super creeps won't move. Not a big deal to me, but apparently a big enough deal for multiple people to have e-mailed me about this issue already (I didn't even know multiple people played -sc).
2) I haven't gotten around to sorting out the map strings so that the people who wanted to translate the map could do so without wading through my extra strings for the extra content that shouldn't be around in the "official" release. As you can probably tell from the incremental map, there are a lot of extra strings.
3) It's been the holidays and I've been lazy.

On the upside, I've fixed the neutrals spawning issue at 0:30, and added Conjurer to the Fun Tavern. Woohoo!