Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Kernel64

#61
I'm having a hard time figuring out the necessary point values to set into the target. How did you do it? What function did you use to find the proper location?
#62
AI Development / Re: my AI
March 21, 2010, 03:31:18 AM
There are a few links here that point to that.

My advice is watching what others have done, atm. That might give you a good starting point.
#63
Well, it's a long term goal. Something that *may* happen. It's not entirely impossible, wouldn't you agree?
#64
Indeed.

There should be some other way, but I guess making a custom function with those would serve its purpose?
#65
Ah, yes. Figured it out. Edited.

It was actually ordered like that.

Include "TriggerLibs/Zerg0"
Include "TriggerLibs/ZergFuncs"

Thanks man!
#66
have you looked into the overseer code? Those thinks that check nearby enemies.

I haven't really gotten into this part yet myself, and having trouble with accessing even the ChronoBoost thing which works with other AI projects.

Anyway, if I get to this part and figure something out, I'll post them.
#67
Just add, say your custom library of functions are within ZergFuncs.galaxy:

include "TriggerLibs/ZergFuncs"

from where you would call the functions. Say if you're looking to call them from Zerg0.galaxy, just add the above at the top of Zerg0.galaxy.

having other extensions other than .galaxy is something to be tested yet.

This function below allows you to command overlords at will. The command given here is a move command, where the point is chosen by the function:

AIPlacementNearbyFindTest (...);

and is used by:
OrderSetTargetPoint(...);


This isn't perfect. But to use this, disabling the code at Zerg.galaxy in the function AINewUnitZerg (int player, unit u) where overlords are given to scout seems to be necessary.

The goal of this function is to make the overlords stay at creep spots and drop creep there whenever lair is up.

void CommandOvie(int player, int CTown){
order ord;
point OTarg;
unit Ovie;
       
        Ovie = AIGrabUnit(player, c_ZU_Overlord, c_prioScriptControlled, AIGetTownLocation (player, CTown));
        OTarg = AIPlacementNearbyFindTest (player, UnitGetPosition(Ovie), 20, c_ZB_CreepTumor);
        ord = AICreateOrder(player, c_AB_Move, 0);
        OrderSetTargetPoint(ord, OTarg);
        if (UnitOrderIsValid(Ovie, ord)) {
            AICast(Ovie, ord, c_noMarker, c_castHold);       
        }
        else {}
}
#68
AI Scripts / Re: IAI v2.1a (Stable)
March 19, 2010, 10:13:06 PM
Edit:

For Terran, I think it wouldn't be smart to do a marine push, unless the toss is teching. If the AI uses double rax reactors, it should build bunkers at the front. Bunkers are essential, just after the OC comes with the second Mule.

BO: for double rax reactor...
8/11 Barracks
9-11 scv.
at 11/11 refinery, use two scvs.
Once barracks is complete, OC. supply still at 11/11.
second rax, then supply. reactor for first rax,
pump rines, then 2nd reactor.

The key here is mules. If it can be done, the AI building 3-5 bunkers at your choke will be enough to hold the player long enough for Ravens with missile. This is very easy to counter though.

First four rines should have bunker at the enemy choke, while there are   only 2-3zeals. So, it's not wise at all.

Rushes with Terrans should come from reapers, imo.


Not a pro as well. But try this:

10/10 drones
10/10 Overlord
10/18 Pool <-- do this first prior to 13drones
10/18 +3 drones
*once 13th drone is in production
13/18 extractor
wait...
Pool pops, etractor pops,
12/18 +6 lings, +queen, harvest gas(3)
17/18 make +1 lings, ovie
*make sure to harass with 4lings, but wait for a full 6lings before fully engaging
Upgrade ling speed whenever 100/100 min/gas is available, pumplings
(optional: make evo chamber, +2 drones.)

Idea is to limit the Protoss zealots one by one. However, a good human player can defeat this by:

8/10 +1pylon (boost on nexus for next two probes)
11/18 +1Gate (boost on nexus for next two probes)
13/18 +1Gate (do not boost on nexus)
15/18 +1Zealot, +1Pylon, +1 probe (boost on gate)
18/26 +2Zealot, (boost on gate) ...etc.

The ling attack comes at 3:30, at that time, 2 zeals should be out, then 3rd. Choke hold with 3-4 probes is very essential and would kill the lings fast, until more zeals, and stargate.

Phoenix should be the toss' main agenda, to get back at the zerg, and even defeat it quite easily.

That ling maneuver will work only if the zerg persists, and keep the attack front at 6lings vs 2 zeals at choke. With probes as zeal support, zerg should just maintain the harass, without risking his lings, limiting to 12 lings. The idea is to just keep those probes from harvesting minerals and gas. But when the 3rd zeal is out, then 4th, the toss should be safe.

Regardless, it seems to be a gamble. But with the evo chamber up, zerg should be able to shift to spore, expo, once the 16 zerglings are out and no success has been made at breaking the choke point. 16 lings will serve as defense against those zealots. If the enemy risks opening his choke, those lings can kill some probes, fast.

Hope this helps.
#69
Attached are the files.

Attached all these since I have no recollection of what exactly and which ones I've tampered. I'm sure though that one of these contained that thing where the engine jumps to the next state.

Zerg will remain within Opengrnd.

All the functions are inside the Zerg0.

It's not clean, but you should see what's happening.

I'm using the said OrderList (currently just arrays) as a list, where queuing or stacking happens.

Stacking on top is important to this process, since sometimes, I want the AI to prioritize a Train/Build/Expo, and I see that in the future, military will use this often.

You'll see in the Zerg0 how this happens, and how it shows that even if a current order in the list isn't finished, another one can be placed on top of it. etc.

Anyway, tell me what you think could be improved.
#70
Yes. Having it as a plug-in with that awesome launcher. The launcher is beautiful since it's more of a developer's launcher.

The speed is very, very, very, very much helpful. I used to spend hours just watching the AI noob its way 5 mins through every time. But now, whoop! Whip! and aha!

Seriously, I'm just so happy these exist.

Have you tried the Launcher? It's the one with the simple interface. Haven't used anything but this launcher.

Edit:
Doix,
Do you have one that has the Normal Speed at Faster, and faster at the same crazy-awesome speed now?
#71
Sweet!

I'll be working with these in a few.
#72
Progress:

Have made a simply prototype of an engine that uses the orderlist which can be stacked on to or queued into with commands.

The AI's personality is currently based on randomization, and my plan is to use the modular blocks to add a list into the Order List. This Order list is a simple collection of arrays which are translated into AITrain/AIBuild/Expo.

It would be interesting to see if it's possible to parse from a text file. This way, we can maybe make an AI editor which people can use to define their custom personalities, order blocks, etc. and share them. We can then make a simple form that reads from other files and bunch them together. This way we'll have more scripts to play with.

The idea of the engine is that, it uses blocks to have a guideline for proactive behavior. Reactive modifies how those orders are executed, and sometimes skipped altogether, proceeding to the next block, when called for.

I'll post it up when a more stable one is available. Then anyone can use it for further development.
#73
Dude! This is awesome man! Thank you! :cheers:
#74
AI Help Section / Re: c_stockIdle vs c_stockAlways
March 18, 2010, 08:02:30 PM
I left setstock for good, but may use it to store the state of a base once in a while.

I think what happens with that 6-0 thing is that, since, say, OpenGnd0 is like a while, looping until a new state is looped over and over, the engine is told to stock 6, then 0, then 6, then 0, then 6.

And after the state is exited, whoever the last number gets the attention gets the prize. It's like a lottery for both those setstocks.

So, I use AITrain/AIBuild/AIExpand instead.
#75
AI Scripts / Re: AMAI2 - V0.23
March 18, 2010, 07:53:55 PM
The toss AI isn't using Chrono Boost. :(