I know Raynor Ai may not be the most popular Ai mod, but it's time to upgrade this and finish what was started so long ago just for the sake of completing it. If you're not familiar with this Ai, here is a little background, it's purpose, what it lacks, and where I'd like to see it go.
Background Info + Objectives:
Raynor Ai is a non-cheating Ai meaning it's script does not contain the give_money command. It's original form was created for an Ai war in which Ai's fought over premade replays. This in itself was very challenging, because I was somewhat new to Ai scripting whereas Racine was, and still is in my eyes, the KING of Ai coding. Racine being the "player" that he is, built an Ai that was clearly intended for human play, whereas my Ai was more robotic in nature. The robotic personality won out as would be expected in an Ai vs. Ai contest, and Raynor Ai was born. Later, it was decided that the 2 ai's would be combined, refined and made into a fun little mod for human play. Sadly this synthesis never happened.
Fast forward 3 years. We now have a forum, as well as a handful of participating coders and active users/testers. SCraft Ai is still pretty much a yawn tho considering what can be done with UMS triggers and map-making. An Ai fusion project has stirred up hopes, and attempts to bridge this gap, but will the goods ever be delivered? I don't know, but Raynor Ai is just a script that needs finishing.
Where to now? The first step would be to examine it's current 2.0 form and go from there. 2.0 is a great Ai, but has some issues:
RANDOMNESS... PRIORITY #1. It may be fun the first few times around, but it's one-track play gets old quickly. Luckily we have a few (very very few) non-cheating Ai codes now sporadically laying around this site that can be explored, refined, tweaked, and incorporated into the Ai.
OVERCROWDED MAINS. Not an issue w/ Zerg, but looking at some replays, it appears both Terran and Protoss are building way too many buildings in their mains. I think a max combo of 6 military buildings (gateways, stargates, barracks, factories, starports) should try to be implemented. This combo can be different, but should not go beyond this. The Ai will need to rely on expos to gain more buildings.
POWER-MASS-TECH ratio. This by far is the tuffest challenge without the freedom that the give_money command provides. The first 3 minutes is absolutely crucial that the Ai either mass or power. It can't do both. There is also ~20 peons/main hardcoded which necessitates a rather quick expo if the game hopes to extend into any kind of mid-game. Tech and weapon/armor upgrades must be kept to the bare minimum as well in the early stages. I think Raynor Ai does a good job with this early (3 minute) game, but closer examination may reveal otherwise.
MID-GAME and beyond. Here's where my lack of "playing" skill is reflected most. Though I am a student of Starcraft, and I understand the fabrics of what makes a good game, what seems like a decent challenge sometimes isn't very challenging at all to others.
BOMBS OVERHEAD... duck for cover. No matter how much is improved upon, the bottom-line is that this Ai will ALWAYS be a pushover. It will never be very challenging; at least not 1v1. This can be very disappointing and very discouraging as ppl continually rip through this Ai, but that's the price. It sucks, but in the end that's all there is. It's just something you have to live with. Raynor Ai is the best non-cheating Ai SCAIEdit can produce and nothing more.
YOUR HELP/INPUT? I will start posting code as well as playable "blocks". Your comments, tests, revisions, or own code will be of great help. This will not be an overnight project. I will start with Protoss, as judging by the Ai vs. Ai contest, it appears to be the strongest and therefore probably needs the least amount of work. This simple concept has frustrated a lot of coders aspiring to write that perfect non-cheating Ai that quite frankly just isn't possible. All one can do is make sure it works as efficiently as it can resource wise, be bug-free, and contain a few surprises along the way.
Thnx to everyone that has supported this project.
PLAYABLE TESTS WITH FULL RANDOMIZATION Protoss vs. Terran: Raynor_PvT_2.02.zip ( 339.66K )
Number of downloads: 252 90% complete; missing island build + zealot rush (will link to PvZ script). Zealot-goon build, DT-Rush, Pure-Goon build, Quick expo-build
I'm going to help you, as well as I can. The only problem is i don't understandt anything from AI coding. But I'm going to play your AI and I will give you some suggestions how to improve the gameplay. I'm realy happy about this project. GL
I hope those guys don't abandon that project. And if they do, I hope they at least leave us with their file cabinet. Maybe we can decipher their madness.
RaynorAi update: Here is the PvT 2 gate goon/zealot block. This version has all 3 rush blocks enabled, i.e. attack1 = 4 zealots, attack2 = 7 dragoons, attack3= dragoons, zealots, 3 dt. The final script will randomly skip 1, 2 or even all 3 attacks. Sometimes rushes can catch players off-guard, but mostly they tend to unfortunately be a waste of units for the computer. They are needed however to keep the player guessing and from going nuts on early expanding etc. An aggressive non-cheating computer tends to be slightly easier than one that delays attacking in favor of a larger build-up.
Try it 1v1 if you must, but probably a 1v2 non-cliff game such as hunters will be its best environment. Again, don't expect some fantastic challenge... as it ain't gonna happen. That's not the point of this project. Here is the code for this block: Simple... very Simple
Update: Raynor DT_rush block v1.00 A little different than Blizzard's approach. Dt's arrive a few seconds earlier than Blizzards and with 2 instead of the one + 2 zealots that might distract from the 2 dt's. Definitely will catch players trying to go big metal and delaying detection. This will be an easy foe if it is thwarted. It is included for the randomness and to keep players in check as stated. A 2nd and 3rd gateway in favor of the forge/cannons allow for a quick transition back to the main branch. Summary: 2 dt's + 2 zealots first attack, followed by mass zealot/goon expo then returns to main build. Here is the code. *"goto no_rush3" ties back into main build.
Thx for watching the replay so fast. The map is from a korean mapper, i found it on mapdori I liked to play this AI. It was tough at the beginning. But when i got all those tanks, it rushed every new unit into my blockade. Can't you tell the AI, that it'll wait till it gets some more units to break the blockade? If it would've got some more zealots, it would have been harder to hold. I like the idea of adding some Archons to the armee. Don't know how affective the stasis are. Some d-webs would be great too. I'm going to play this script again and i wanna try out the dt rush script too. Will upload a replay package afterwards. Again thx for watching.
This why is the very reason why we are behind the fusion project so we can maybe do more things. As it stands now there is now way of making the computer realise how big a enemys force is or wait until it gets more units to break the blockade. There is no such commands like a enemy_owns_population 120 go to xxx (etc). But as it currently stands only the script can be modified, not how the engine handles / decides where to send the units or whatnot. =[
I watched the replay, it gave me a massive insight into how i should make my script, simple. I may go and rewrite alot of it again as its slightly messy. Thanks for showing the way to code baja ;].
glad you're excited to work on some Ai coding again. Yes, would be nice if the computer could decide whether to put pressure on w/ a small army or hold off a bit until it had a stronger force. I have seen in the campaign scripts a code "wait_force". Maybe there's a definition in the pinned SCAIEdit command topic for it.
I watched ptars replay once again, and I feel the early build orders for that block are in good shape. Just need to work on the middle and later script looks like. more build up and some more tech. Wonder how that game would have went if you had played against 2 toss? (you're too good for 1v1 Raynor = gg.)
The next upload (goon-rush) will also have an improved main build that all these scripts will eventually lead to.
Had a go at the zeal/goon AI build order in a 2v1. It was quite tough and I haven't played for months and since the timings were the same i could only just beat each attack with straight up play. It would have had me if it had continued massing goon/zeal, expanding and constant attacks, instead of teching up and not meeting its resource target for the last attack loop to take effect. Might have beat me even sooner with greedy expansions and constant joint attacks, but hey thats 2v1. gw so far its definately strong without abuse.
Thnx for the replay. Very nice playing! The scv ramp block was a good one.
Am working on the mid-game and later game w/ next upload of the pure goon build. These two exes. were mainly a test of the 5-10 minute opening builds. Which appear to be pretty good. A little more tweaking on the later game, and this is about all one can hope for. Once all the blocks are combined, should be a decent game. The main goal is fun and bug-free script. Thnx again for the replay/input. Will update soon with the next installment.
You know, how about giving the AI the abilty to recover and keep playing if its main is destroyed. Also, can you have the AI run from its base and rebuild if it gets owned?
Just a thought, a 14 nex into --> 3 gate goon, robo might be good, this ai is designed for 2v1 is it not? Say if one ai put on constant pressure, like the zealgoon build does, so you cant get greedy, and one powered really hard off 3 gases into maybe carriers/zeals and goons with arb, or even recall, you'd have to play extremely well to survive it, somehow harassing the greedy ai whilst defending the aggressor, and turtling off 2 bases + maybe an island wouldnt really work when the maxed p carriers come knocking.
I think the ai needs some compensation for having no micro or common sense, else you can happily block with siege first, and take on tons of them at once with the predictable attacks until you max and then roll them over. (que blizzard comps), being especially true for THIS mu.
imo, it would be nice if there was a build that didnt attack until it's high in supply or gets attacked first, typical of tvp where its suicide for the p to strike first unless its timed or early on, so as to starve the turtling t player out, if thats a possibility.
dt drop might be nice aswell, prob wouldnt work earlygame->comp cant micro, but midgame if an average t doesnt get harassed at all at the start and forgets to turret up around their main later on, might keep them on their toes and teach em not to. . All this for the 2v1 assumption tho, two different but intelligently linked bo's would beat a good player 2v1, the same build *2 could be a challenge at first, but then you can just counter normally and then should be easy, as shown in the rep. dunno if its just random anyway, probably meets a means to an end all the same, but would be nice if comps could branch off even the same build different ways.
oh and as an afterthought comp should get upgrade round about when the player does, especially applies if its early i think, and it could have done with more gates lategame and another main-->if you've got round to that yet. Hope that helped even if only a little bit.