Tuesday, December 15, 2009

Back to normal, only slower

Thanks all for the words of encouragement. The bulk of the crisis is over for now, but I most likely will not be working full speed on this for a while.

I'll do my best to update to 6.65 quickly when it comes out, but expect progress in general to be slower than before (at least for a while).

Thanks again for your patience and support.

Saturday, November 21, 2009

Temporarily halting development

Urgent family issues. Please understand.

Thursday, October 29, 2009

Obfuscation and the like

Obfuscation: what is it? Simply put, it's a method used to make code difficult to read and work with. The basic idea is simple; the script parser doesn't care if a variable has a meaningful name (integer iHeroID) or a nonsensical one (integer ZYF), since semantically the code will execute the same regardless of nomenclature. It does, however, make it significantly more difficult for someone else to make changes to it (especially without accidentally breaking something!)

This is, unfortunately, the reason why AI development has been slow. I've been spending quite a bit of time slowly deobfuscating the script, but there are still many things that I still cannot quite account for. My current project is working out some of the "magic numbers" that appear in the script; numbers which just appear in the script but have no apparent rhyme or reason.

Fortunately, I only have to work out the obfuscated portions in the AI script; IceFrog has been provided me with script changes from version to version (i.e. what was added/changed/deleted in 6.64 from 6.63b) in unobfuscated form, so I can keep the map updated with those features rather easily and effectively. Unfortunately, I don't have access to a full deobfuscated map script (which would make starting a brand-new AI much easier) or a deobfuscated AI script (which would make things easier for the obvious reasons). Ah well. C'est la vie, as a good friend of mine would often say. =P

I'm thinking of posting some of these random numbers for you guys to possibly decipher. I know a lot of them refer to unit geographical locations (x,y coordinates of buildings and such) that have been changed since 6.48b and no longer cause things to work, but trying to figure out what used to be what is a bit tedious. =/

In short, obfuscation = the bane of my existence. At least, in terms of map development. =P

Monday, October 26, 2009

"-formless"

Try it. Works for 0.213 whenever "-random" is valid. Should go without saying that you type that in without the quotation marks, but I'll mention it anyway just in case.

And I know that everytime I do something fun like this a lot of people will say "HOW DARE YOU WORK ON SOMETHING YOU FIND FUN AND ENJOYABLE INSTEAD OF SPENDING YOUR LIMITED FREE TIME DOING SOMETHING I SELFISHLY DEMAND YOU TO DO", but eh, I work at my own pace and on my own schedule, so deal with it. =P

Sunday, October 25, 2009

DotA Allstars 6.64 AI 0.213

http://www.mediafire.com/?1wmmwmmyyj2
http://rapidshare.com/files/297656613/DotA_Allstars_v6.64_AI_0.213.w3x
http://www.megaupload.com/?d=V9VX2TOY

Changelog:
-First update to 6.64
-Changed the default AI behaviour of creeps and towers to be the same as in the official map
-Fixed the fade on Circles of Protection belonging to other players
-Fixed some numerical errors on Bristleback's abilities
-Added some additional AI ability functionality (Black Hole, Fissure, Epicenter)

Wednesday, October 14, 2009

List of abilities that AI don't use correctly/at all

With a host of new abilities and rewrites, many abilities that previously worked with the script either aren't used properly or aren't used at all. Some abilities (like Epicenter after Burrowstrike) worked in previous versions due to hacks that I put in that I've since removed during refactoring.

If you see something that's not working and isn't on this list, let me know, I'll try to keep this updated and address these when I have time (I probably missed several). Please keep in mind that I have a real life and a real job and both take priority over this, so progress might not be as fast as you'd like, but I'll have to ask for your patience.

Thanks.

Sven
-Warcry (new ability)

Doombringer
-Devour (rewritten a while ago)

N'aix
-Infest (I don't even know how to properly use this, haha)

Storm
-Electric Vortex (I think there's a problem with this ability when used by AI)
-Ball Lightning

Dirge
-Decay (spams this and sometimes gets lucky)
-Soul Rip (not working anymore? I haven't changed this and the ability should be the same but I never see him using it)
-Tombstone

Windrunner
-Powershot
-Windrunner (ironically)
-Focus Fire

Batrider
-Sticky Napalm (spams this and sometimes gets lucky)
-Flamebreak
-Flaming Lasso (uses this randomly)

Clockwerk
-Battery Assault
-Power Cog
-Hookshot

Admiral
-X Marks the Spot
-Ghost Ship

Razor
-All active abilities

Tauren Chieftain
-All active abilities

Invoker
-All abilities, invoked or otherwise

6.64 AI on the way

Got the script changes from IceFrog today, starting work on this soon.

Just thought you all should know, since I haven't updated in a while. =P

Saturday, September 26, 2009

Formless 2.0

After spending some time today refactoring the AI script, I decided to take a break and rethink the Formless hero that I implemented a while back. Long story short, several hours later I've finished a (mostly) working and improved version of Formless.

I ended up reorganising the code by a significant amount, and the resulting code is more efficient and easier to use. The biggest change is the ability to now choose which individual skill to reset, if so desired. You can right-click on the reset button to change the reset button to only reset a single skill (cycling through the four base abilities, then back to the option to reset all).

On top of that, the error messages are much more informative now; if you try to copy an ability that currently isn't supported, the message will notify you of which ability you tried to copy. If you try to copy an ability with an order already used (while -override is off) it will let you know which ability is conflicting.

And I decided to throw all semblence of balance out the window for this because, let's face it, the ability to combine skills of multiple heroes on the fly will never be balanced, ever. So, in order to maximise fun and flexibility, I removed the cooldown on all Reset functions (individual or all).

Haven't quite finished getting it up to compatibility levels of previous versions (so some abilities aren't working yet like Impetus and Last Word) but I expect I'll finish most of these by the time I release the next version. =)

Wednesday, September 23, 2009

DotA Allstars v6.63b AI 0.212

http://www.mediafire.com/?kntzc2zdmln
http://rapidshare.com/files/284125128/DotA_Allstars_v6.63b_AI_0.212.w3x
http://www.megaupload.com/?d=BFNO0D5W

Changelog:

6.63b (v0.212)
==============
-First update to 6.63b
-Fixed an issue that was causing AI bots to learn their abilities out of order
-Fixed another issue that was still causing the game to crash when a player leaves the game early
-Added some additional AI ability functionality (Crystal Nova, Storm Bolt, Mana Burn)

Thursday, September 17, 2009

DotA Allstars 6.62b AI 0.211

http://www.mediafire.com/?mozmmjn0dgm
http://rapidshare.com/files/281536559/DotA_Allstars_v6.62b_AI_0.211.w3x
http://www.megaupload.com/?d=09VJKGMM

Mostly just addressing bugs, will try to address some AI issues for next release.

Changelog:

6.62b (v0.211)
==============
-Temporarily removed managed group system to remove critical error bugs until I get a chance to clean up group usage in the AI script
-Rewrote Liquid Fire to prevent conflict with the AI script
-Fixed a bug with Weave
-Fixed a bug with Spirit Bear losing items when the ability is levelled
-Fixed a bug with the game crashing when a human player leaves the game early
-Fixed a bug with Cold Snap not working after the first hit
-Fixed a bug with -ma

Thursday, September 3, 2009

DotA Allstars 6.62 AI 0.21

http://www.mediafire.com/?nmgw3jtjndt
http://www.megaupload.com/?d=1FANS0TA
http://rapidshare.com/files/275012234/DotA_Allstars_v6.62_AI_0.21.w3x

First release, updated to 6.62 and 1.24 compliant. Note that this is v0.21, and there will be bugs.

Some abilities are not working for bots yet (they learn them but don't use them), and this is expected and will be addressed in future versions.

The following game modes have been disabled for now:
-vr, -rv, -rd, -cd, -cm, -lm, -xl

The following game commands have been disabled for now:
-afk, -kickafk, -ah, -switch, -fun

Please report bugs to me.

Things that are bugs:
-Crashes with reproducible reasons
-Abilities/items not working as expected (for players or bots)

Things that are not bugs:
-Bots not using certain abilities
-Bots being too strong/weak/cheating. They do that.

Thanks to Overflow_GR for his help on this version.

Enjoy!

The Impatience Counter

Current number of e-mails I've received saying "When is a new AI map coming out?" or some iteration of such:

(as of 9/3/2009)
264

To be updated periodically.

...Anybody want to make a guess as to how many I'll get before the map is actually done? =P

Edit: Final count is 264. The winner is raoseco, who guessed 279. Second place is Yen Gee, who guessed 216.

Thanks for playing. =P

Sunday, August 23, 2009

Slight delay

Sorry folks, but there were many more game-breaking problems with my map than I had anticipated, and I haven't had a chance to fix them yet. I was hoping to address them before I went on vacation (a real vacation, as in I'm taking paid time off of work to relax), which I was unable to. I'm away from home now with limited internet access, and won't be back for another week or so, so I'll have to ask you all to be patient for a little while longer.

On the upside, I've finished most of the work needed to make the map 1.24 compliant (which took bloody forever), so that should hopefully address many people's concerns about the new patch. Also, I've been in contact with IceFrog and he has agreed to provide me with some official support, which should make future releases much quicker and easier to do in the future. Woohoo!

In the meantime, I'll have to ask you to wait a little longer. I'll see if I can get any work done on this while I'm on vacation...but I doubt it. =P

Saturday, August 15, 2009

Hrm

So it looks like the 1.24 situation is much more sticky than I realised. Given that, I think after I finish this testing phase I'll go ahead and post what I've got for everyone to take a swing at.

THIS MEANS IT WILL ONLY WORK ON 1.23 OR EARLIER. PLEASE DON'T E-MAIL ME SAYING THE MAP DOESN'T WORK ON 1.24. I KNOW IT DOESN'T.

This version is more or less a total compatibility overhaul of the script - I haven't had a chance to do many of the rewrites I wanted to, but at the very least most things should be working properly and should be somewhat adequate to allow people to play/practice new heroes/items/builds/whatever.

Because of this, some abilities will not be used properly (or at all) by the AI, but this will be addressed in future versions. The bots will, however, learn all of their abilities (or should). I haven't finished rewriting the levelling system but what's in place should be okay for now.

I've also disabled several game modes and commands until they can be made AI-compatible. Any game mode that requires voting or choosing outside of normal picking methods has been temporarily disabled until I have time to teach the script to play with these modes (-vr, -rv, -rd, -cd, -cm). I've also disabled league modes (-lm, -xl) because, really, who plays league matches with the AI map? The new -so mode has also been disabled.

The -afk and -kickafk commands are disabled, since you should never need them in an AI map, as well as -ah (maphacking against AI bots, really?). -switch is out also because there's no need with -so disabled.

I haven't had time to update the -fun content either, so for now it's been disabled. I will bring this back concurrently while updating the script.

I've modified -pa and -pe to work with the new Tavern system and location, so at least you'll still be able to pick heroes for your allies and for the AI. The item builds have been updated for compatibility ONLY, which means they'll still get the same old items as before. If people are still interested in contributing we might try reviving some threads in the OpenAI forums that address this.

There are also some -dm bugs that I can't quite figure out. I've disabled Dazzle in -dm (much like Meepo is disabled in -dm) because, inexplicably, the game crashes when Dazzle is picked during a deathmatch game. I think some other hero is causing the game to crash, but I can't figure out which (my guess is Huskar). It seems dependent on when heroes are picked and such, so after I post you guys can try to figure it out. =P

I've also renamed the map from "Dota Allstars 6.61b AI+ 1.52" to "DotA Allstars 6.61b AI v0.21". Why "v0.21"? Because it seemed like a good number at the time. =P After all the rewrites and compatibility changes, this is starting to look less and less like the AI we all know and love and more like something else, so I'll go ahead and declare this the beginning of a new stage of AI development. Yay.

Credits still go to cloud_str and RGB. Without their work and dedication this map would not be possible.

Expect an update and a download within the week.

Thursday, August 13, 2009

Yes, I know it doesn't work

Please stop sending me e-mails saying that none of the AI maps work on 1.24. I know they don't.

I have a rough version of 6.61b AI (I'm taking the plus off, since it isn't very "plus" right now, and changing the version number to something like 0.21), but given the number of e-mails I've been receiving and the fact that it doesn't work with the new patch, I'm not going to release anything until 6.62 is out and I've had a chance to update the functions to be compliant with the 1.24 WC3 patch.

I've been a bit busy with things...just got back from a beautiful wedding. If you two see this (since you've both told me you occasionally pop on here), congratulations again! I love you both and hope you have a great time in Hawaii!

That is all. =)

Wednesday, July 22, 2009

Time for an update

Since it's been a while, heh. I've had quite a few free cycles recently to work on the script, and have been doing so. Unfortunately, there's just so much to do. =/ I haven't had a chance to finish rewriting certain parts, but script integration has been going fantastically. Though I haven't finished with a large part of the script (including the part where the heroes use their abilities, haha), I do have a basic 6.60b version of the map where the AI will behave as they did in previous versions, though without using many of their new abilities.

Come to think of it, that's not all that dissimilar from those old AI injection maps. Then again, what I'm doing isn't all that dissimilar from AI injection. Heh.

Anyway, still quite a ways to go before this is anywhere near finished, but if people really just want to play with 6.60b features against supremely stupid bots (except for the heroes that haven't changed since 6.59), I can probably put up an unfinished map sometime soon. I'd like to at least finish rewriting the levelling system and possibly rethinking the item purchasing system I currently have in place, but we'll see.

I have seen the OMG map floating around and know that some people have been asking for its addition. In reality, it's probably not all that difficult...I took a look, and mechanic used to assign abilties is an adaptation of the mechanism I created for Formless, so it should be pretty easy to modify my functions to make it work for a hypothetical OMG mode. Realistically though this is pretty low on my list of things to do at the moment.

Anyway, that's that. Haven't updated the counter in a while, I have some 60+ new messages in my inbox that are variants of the same question that I'll eventually have to sort through.

Wednesday, July 8, 2009

Spam Spam Spam!

Woohoo, I've won 750,000 GBP! Three times!

----------------------------------------------

Your Email id have been choosen by the dunhill Company to receive a grant prize of 750,000.00 GBP. Please fill the contact form given below..

FULL NAME:......
ADDRESS:.........
PHONE NO.:.......
COUNTRY: .........

Contact Email: dunhillreg.333@gmail.com
Mrs. Caroline Bryan.

----------------------------------------------

Dear Lucky Winner,

We are pleased to inform you that your e-mail address has won the Dunhill Draw Promo.Therefore you have been approve for a lump sum payout (750,000.00 GBP) Seven Hundred And Fifty Thousand Pounds Sterlings. Please fill the contact form given below.

PAYMENT PROCESSING FORM

1.Full Name:
2.Full Address:
3.Status:yes
4.Occupation:
5.Phone Number:
6.Country:

Yours faithfully,
Mrs.Alvin Julia

----------------------------------------------

You have been approved for a lump sum payment of £750.000.00 GBP, in this
Year Dunhill Products Promotion, Please fill the form below and send it to
our payment department with the contact given below.
Contact Email (dunhillreg.333@gmail.com)
1.Full Name:..............
2.Full Address:..........
3.Occupation:..........
.4.Phone Number:........
5.Country:............
Email (dunhillreg.333@gmail.com)
Yours faithfully,
Mrs Mercy Daniel

----------------------------------------------

Damn I'm lucky. =P I especially like the second one, where the "Status" field has conveniently been filled for me with the word "yes".

Wednesday, June 10, 2009

My first post...

Over at www.playdota.com. I'm only reposting it because I guess it answers some misconceptions about what I do and also because I want feedback on the next course of action, and because I'm too lazy to reword and retype it here. =P

does 6.60 have ai edition?
-------------------------------------------------------------------------------
Quote:
Originally Posted by chip'ndale
"i mean, afaik he asked for ice's permission before starting this project, is not like he felt doing this free lance."

0/2 friend, sorry. Didn't ask for permission to do this and I did feel like doing this freelance when I first started, and continue to do so. I receive no official support except that IceFrog has generously allowed me to post my work and put the map on getdota.com. I was surprised when it first appeared; that was done without my knowledge and I wasn't told until forum members told me you could download my map on getdota.com =P

Aside from that, the maps I generate are technically "unofficial". I have no access to deobfuscated source, so one could view the AI as basically a giant hack. I'm not part of his staff, have no regular communications with the team, and generally do my own thing. Hell, I'm a "Junior Member" on this now-official forum. What does THAT tell you, hm? =P

So...yeah, if you want updates, you'll have to check my blog. =P Unless something changes drastically (which it doesn't look to, since it seems like AI is generally a low priority on the grand scheme of things), I'm not obligated to update on any other medium, and it's going to stay that way.

And to me, this works out better. IceFrog has enough issues to worry about without trying to attach an "official" AI to the overall map, which would only really be used for training purposes, and I don't have enough time to try to update and maintain this deprecated code to a quality that's suitable for release. While I would love to have access to deobfuscated source to make my life easier, I don't technically need it (yet).

That said, hopefully you'll understand why the AI releases are generally sporadic and don't coincide too terribly much with the official releases. Perhaps in the future when I have the infrastructure in place we can consider doing coordinated releases (though it'd be a lot of work on my part and ultimately up to IceFrog to decide whether or not he trusts me enough to play with prerelease source), but if that is to be the case it wouldn't come into fruition for a long, long time.

Anyway, about AI for 6.60, since I know that's what everyone wants to know about...

My original plan was to finish isolating the original script, update and rewrite it, and then release on whatever version would been out by then (I'm about 110% sure that it will be newer than 6.60 at that point). However, if it seems like demand is high enough and people are willing to play against AI bots that don't make use of the new features or abilities (Razor's AI, for example, will be more or less completely broken), then I can continue to back-port features, at least for the purpose of trying new items and builds on something.

Problem is, this back-porting will take a long, long time (given the amount of changes, I'd say at least two months), time that I can spend furthering development on the script itself, so it's a significant fork in the road.

Pretty much the choices are:
1. Back-port features, get some bots that don't work all that well, can have training with new features in ~two months
2. Update AI, get bots that (hopefully) work with all new features, can have training with new features in ~long time
3. Wait for somebody else to write an AI map (I think Harreke was working on one), can have training in ~who knows

Any preferences? =P

Yay block of text. I wonder who will actually bother to read it all.

Well, now that I've written this all out, might as copy-paste it to the blog, haha. =P

DotA Allstars 6.59 AI+ 1.52 Rev. 02

http://www.mediafire.com/?zyljyyytlii
http://rapidshare.com/files/242956767/DotA_Allstars_6.59_AIplus_1.52_Revision_02.zip

DotA Allstars 6.59 AI+ 1.52 Revision 02
---------------------------------------
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 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:

6.59 Rev. 02
============
-Fixed a serious bug that would cause the game to crash on group creation
-Fixed some graphical bugs with Aghanim's Scepter on Fun Tavern heroes
-Changed Lord of Avernus's model to the one introduced in 6.59
-Gave Bat Rider an air-to-air attack while flying, which should remove the bug where he would permanently gain damage upon flying down
-Removed warning message for incomplete AIs when playing Deathmatch
-Added an additional one-second delay on respawning when playing with -nd on Deathmatch to prevent some crashes

-Added contest mode to coincide with the 1v5 replay contest on the forums (http://forums.dota-allstars.com/index.php?showtopic=277658). Syntax is -contest <gold>, where <gold> is the amount of gold you wish to start with. See aforementioned topic for details.

*Formless Fixes
-Formless can now learn Quill Spray, Bristleback, Warpath
-Fixed a bug with Formless not being able to reset Clockwerk's abilities

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-

Monday, June 8, 2009

Yeah, I'm still here

Been a while since any sort of update or progress, I guess. Life's been busy, and that usually takes first priority in...well...life. =P

But I'm still here, and working on the map when I can. As for 6.60, sounds like things are going to be overhauled like crazy. I think I'd prefer to try to finish isolating the script and then integrate it with the 6.60 map, instead of the normal porting. This will probably take a lot longer, but it should be quite a bit more stable. There's a lot of legacy code that's being carried from version to version that would need to be cropped out, but it would probably be more effective to get the script into the new version.

We'll see. Doing it this way will make a cleaner version, but will take a lot longer.

Wednesday, April 15, 2009

From the Mailbag

Got this e-mail today:

"Здравствуйте, Shyguysonstilts.

Это ведь вы импортируете ботов в доту?
скажите плз, на какой сайт вы закидываете карты с ботами в 1-ю
очередь."

I don't speak Russian, so I popped it in Babelfish (babelfish.yahoo.com). I got this:

"How do you do, Shyguysonstilts. This indeed you do import boats overshoes in for reinforced-concrete pillbox? say [plz], to which site you fill up maps with the boats overshoes in the 1st turn."

Online translators make me happy.

Tuesday, April 7, 2009

So here's the plan

Working on deobfuscating the script is taking up most of the time I put into working on the AI these days. This is because the sooner I get this done, the sooner I can start a "clean" port, which translates roughly into inserting a script into a new map (instead of what I've been doing, which is porting new features onto the old map).

Since I'm deobfuscating the script from 6.48b, much of it will have to be rewritten (also easier once I understand what's going on) and updated to account for new features/items/heroes/etc. I've already rewritten a bunch of it for the existing port, but much of that is basically a cluttered hack instead of a clean rewrite.

When I get done deobfuscating and rewriting the scripts, I think it will reach a point where it is no longer appropriate to keep calling it "AI+ 1.52", so we'll have to think of a new name and version number. =P

In the meantime, I guess I'll keep updating the ported map, which is steadily becoming increasingly outdated. I plan on putting Old Storm Spirit and Old Undying into the Fun Taverns for a Rev. 2, and then don't plan on doing anything on that particular map until 6.60 comes out. In between releases, I'll continue to work on deobfuscating and rewriting the parts of the script that need it.

That's the plan.

Wednesday, April 1, 2009

Hm, forgot to post this here

Ah well, by now you should have all figured out it's April Fool's Day, so go out and fool someone.

Anyway, here's the link to the latest "Rev. AWESOME" I posted on the forums, it's basically the incremental map, though it does include a fully completed Ramza character (with 20 classes, woohoo!).

Progress has slowed considerably, as I'm taking quite a bit more time to do other things in my life. Realistically though, it's tough for me to give up on this, haha. I'm working on deobfuscating the AI script, as working on my own script is making me realise just how much work went into the original script (thanks to both cloud_str and RGB) and it would be somewhat foolish to disregard everything they've done to date in making a script of my own.

So...perhaps finally sitting down and understand what the hell is going on and making changes to that script may be a more pertinent course of action. And one that will take a long, long time. =P

Anyway, map can be downloaded at the following links, have fun!

http://www.mediafire.com/?ounvzwlcnnm
http://rapidshare.com/files/216051291/DotA_Allstars_6.59_AIplus_1.52_Revision_AWESOME.zip
http://www.megaupload.com/?d=OUJFRTVY

Wednesday, March 18, 2009

More lack of update

The only thing I've done recently is finish up Ramza. Broken as all hell, but the system in place for this hero is almost enough to run an entirely different map. Maybe I should make a map from scratch, that could be a fun project for a while.

Still on the fence in terms of actual AI progress. I've half-started a new AI and half-started deobfuscating the existing script. And honestly, I'm half-ready to quit altogether. I'm getting a bit sick of the whining and the bitching. I don't even play DotA regularly anymore. Why do I bother spending so much of my free time putting effort into something I don't even enjoy anymore and putting up with the whining that I never enjoyed in the first place?

I think I need a vacation. A long one. This is starting to become a burden instead of a joy for me, and that's not a good thing.

Thursday, March 12, 2009

Fun Taverns

So, in the Fun Taverns (with the legacy heroes), we currently have:

Remade
-Old Invoker (6.12b)
-Old Lifestealer (6.48b)
-Old Silencer (6.12b)
-Old Morphling (5.84b)
-Old Stealth Assassin (5.84b)
-Old Pudge (5.51)
-Old Chen (5.64)
-Old Medusa (5.84b)

Extinct
-Gambler (6.06)
-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)
-Conjurer (5.51)

I want to add Old Storm Spirit (6.57b), Old Undying (6.57b), and the version of Morphling that can change attributes to the Remade tavern.

This means that there is one spot left for a remade hero, and three spots left for extinct heroes. I have half a mind to get rid of Void Demon and Astral Trekker because, let's face it, they're stupid heroes. That would make five spots for extinct heroes.

I may combine the attribute-change Morphling with the spell-change Morphling using a similar selection algorithm as the one that's been proposed for Formless, in which case there would be two spots left for remade heroes (and possibly multiple iterations of other previously remade/extinct heroes?)

So...for you people who want to see old heroes:

Remade:
1.
2.

Extinct:
1.
2.
3.
4.
5.

Fill in the blanks. No polls, I'm picking the ones I like. =P

Friday, February 27, 2009

DotA Allstars 6.59 AI+ (20090227)

http://www.mediafire.com/?ntonnlyk1oc

Mini-changelog:

-Fixed a serious bug that would cause the game to crash on group creation
-Changed Lord of Avernus's model to the one introduced in 6.59
-Gave Bat Rider an air-to-air attack while flying, which should remove the bug where he would permanently gain damage upon flying down
-Removed warning message for incomplete AIs when playing Deathmatch (or new Formless Mode)

*Formless Fixes
-Formless can now learn Quill Spray, Bristleback, Warpath
-Fixed a bug with Formless not being able to reset Clockwerk's abilities

And...

-Added new single-player mode: Formless mode (-formless, -fm), which will allow the player to play as Formless and cause the AI to cycle through heroes as they die. No limitations on duplicate heroes picked by AI (except Meepo, who has been disabled). Abilities are not lost when Formless dies, this may change in future versions. -fm can be combined with non-gamemode switches (like -fr, -st, -ne, etc.).

Enjoy!

Wednesday, February 18, 2009

Formless Mode!

Got bored yesterday and decided to try to implement this new single-player game mode. Provided that there is one human player (and any number of AI players), Formless mode will make the human player play as Formless, and every time an AI bot dies it gets assigned a new random hero (no limitations, so any hero is fair game and heroes can show up multiple times). Every time the player dies, Formless loses all of his abilities after he revives.

Kind of a semi-dm type deal, except that Formless is a constant. With the cycling AI players, this should significantly increase the number of combos that one will experience in a single game.

Currently only in the incremental map, which I'll post later after some fine-tuning to prevent some leaks. If it's popular enough maybe I'll pop it in the release as well. =)

Was going to post it today but I found a pretty serious bug in the mode, it'll take a while to fix and I'm a bit busy today. Guess you'll all have to be patient. =P

Saturday, February 14, 2009

Minor update

Still on break, not worrying about the map is treating me good. =P

Some marginal progress with the new AI, bots are currently EXTREMELY basic, having similar attack patterns to creeps, with the exception of being able to retreat to the nearest allied tower if no allied creeps are nearby (i.e. the wave is killed off), and the ability to retreat back if damaged. This will take a lot of working on before it's anywhere near presentable. =P

As for the AI+ map, made some of those graphical fixes that Overflow pointed out, but I don't anticipate releasing anything until 6.60 at the earliest. I kind of want to put Old Storm Spirit and Old Undying (6.57b) and maybe -er into the map, but we'll see how busy/lazy I am.

And Happy Valentine's Day, for those of you who celebrate it. My girl doesn't read this blog but she should know that she's been one of the biggest blessings of my life. =)

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!