Page 1 of 2 12 LastLast
Results 1 to 50 of 62

Assault map (released) - debarq - playable 2 coop. vs 1 AI

  1. #1

    Assault map (released) - debarq - playable 2 coop. vs 1 AI

    Hi all,

    Here is a playable beta version "assault map" for 2 players against one AI. I am posting it as it is to get some feedback especially for balance and online multiplayer testing (don't know if it works).

    The plot is to invade the AI's land starting from a small area while facing growing opposition.




    The map behaves mostly as a campaign map (expansion triggers a response), the difference is that you can play in cooperation. I wanted to make a map that would require intensive cooperation / synchronisation between the two human players in order to beat the AI.
    The map works on skirmish, LAN and Online. I have tried a previous version on LAN with a friend and it worked as expected. It took about 1-2 hour and 5000+ dead (nearly 1000 on our side), so you may expect quite a lot of fighting...



    The above picture shows the zones of the map (green). Basic working principle is the following:
    - AI rebuilds/repairs/Reinforce units and buildings belonging to a zone as long as it owns at least one of its strategic points or relics.
    - AI sends units to attack and recover points that it does not own as long as the related recover point is not taken (red marks indiicate the related zone).
    - Bunkers are filled with squads when they are finished.
    - The AI will not attack the players base, it will only repair/rebuild/conquer the map to restore the initial state (same player, try again).

    Remarks:
    - All difficulty level are working. For multiplayer, player1 has to kill (select + Del key) the probe to increase game difficulty (works up to Insane).
    - lower diffiulty levels are achievable alone in skirmish (2nd player not active, AI in third position) but it is tough job (at least to me).
    - The map works with Darkcrusade. Using your favorite mod should not be a problem (as long as Imperial Guard is not too affected). There's a chance that it works with WinterAssault (not tested).

    General strategy is to take zones and hold them against a growing number of opponents (there are no resources limits on the AI side). The number of opponents depends mostly on the recover points that are still under control of the AI so expanding too fast may lead to an overwhelming counter-attack.

    There remains a lot of empty land. However, it already takes enough time to win, so I left it unused.

    The scar code that guides the defending units is generic. The intent is to make it easy to use to make other maps. No scar programming knowledge is necessary to use it (most of the work is done in Mission Editor). I posted a tuto here.

    Just tell me if you want to use / modify it on your own. If needed, I will try to help as time allows.

    Please don't hesitate to provide me with comments or suggestion, especially for balance.

    Lastly, special thanks to Argonaut for the survival maps from where I learned a lot about scar.

    Have Fun!

    Install:
    1 - download from here :
    http://dawnofwar.filefront.com/file/...86756x#1482665
    2 - unzip the 3 files in the directory : Dawn of War - Dark Crusade\DXP2\Data\scenarios\mp
    3 - map name is "3p1 debarq (1 or 2P vs 1AI)" (skirmish or multiplayer)

    ----
    10/01/08: Upgraded to v4. A few visible changes and level recognition now works (but only in skirmish). Only fixed level for multiplayer.

    19/01/08: Upgraded to v5.
    - Reliability is improved
    - Added multiplayer difficulty setting: a probe is created for the first 30s that player1 can kill (select and hit del) to increase the level up to insane.
    - Added entrenching squads control for defender
    - Balance: Easy level should now be easy even in single player skirmish. Standard is definitely playable alone.
    - For those who found it too easy, Advanced and Insane levels are now effective.
    - Defending units now change depending on difficulty. (a dozen basilisks and a few such things are added for levels higher than hard).
    - more room on the starting ship (especially for player 2). Witch Hunters can now start from position 2.

    20/01/08: CTD bug found and corrected. YEEESSS. Download updated.

    20/01/08: I went too fast (two stupid bugs). I have removed version in map name. This is now called 3p1 debarq (1 or 2P vs 1AI).

    25/01/08: v7: link update, scar unchanged, added minimap with zones frontiers.
    http://dl.free.fr/nw3pkiDdo/debarq_v7.zip

    02/02/08: v8 : link update, squad attached units added, icon added, improved graphics. Improved scar usability. Start ship size increased.

    18/02/08: 1.0 release on filefront : added an installer and a loading picture.
    Last edited by Dark40k; 18th Feb 08 at 10:36 AM.

  2. #2
    Sound great! Some impressive looking SCAR there too...I shall have a look with an AI buddy, although probably not today as I'm feeling too ill to look at the screen for much longer.

  3. Modding Senior Member  #3
    Always Tired Argonaut's Avatar
    Join Date
    Dec 2004
    Location
    Fareham, south UK.


    Looks good. Agressive AI isn't something I worked on, as I went for the 'hit them with a massive wave of enemies' method. It's impressive that you got the AI to react to the players actions - that's not easy to do effectively.

    @Fuggles- I've got man flu too - it's even worse than Bird Flu....
    "Dad, I don't want to get married when I grow up."
    "Why not son?"
    "well... I think I'd rather run my own life."
    O.o
    "Thanks for that son."
    -My son age 6.

  4. #4
    Member Jaguar-Lord's Avatar
    Join Date
    Feb 2007
    Location
    france
    "sync error detected" then CTD when trying a "direct join" game. Sorry... i'll try it 1v1.

  5. #5
    Thanks for the info Jaguar-Lord.
    I made some testing with an old slooow PC and I guess I have the same error on LAN (systematic sync error after 3-5s). I am working on it but with not much success so far.
    Where you using dissimilar configurations?

    It made it work better when the slowest config. creates the game and when 2 rules are removed (comment lines 197 & 863) but the game loose some of its interest. However I believe this will not prevent random sync errors.

    Did anybody have success playing in 1vs1 on skirmish?

  6. #6
    I think I have found part of the problems: AI Level detection does not work for multiplayer (AI is assumed human player except for the computer host).

    So only Easy setting will work for multiplayer (at least for LAN). This already is far from easy.
    I had the map working when the slowest computer is hosting the game.
    Is the map working (at least more than a few seconds) with Easy setting online?

    On the game side, I'd recommend quick start and high ressources settings. The only entry I found was to attack on the left side of the beach and get the border first.

  7. Modding Senior Member  #7
    Always Tired Argonaut's Avatar
    Join Date
    Dec 2004
    Location
    Fareham, south UK.
    You're right Dark40k. The settings for AI will differ on each peers machine and cannot be sorted out, I've tried to get it working before and it simply doesn't do it

    The way round it, is to get your code to check for something else that give the AI some indication of the players skill. In the survival maps, I used the tech level as something the AI looked at to gauge how good a player was. Someone who gets up through the tech tree fast is *generally* more of an acomplished player than someone who doesn't. You don't need to use the tech level, that's just something I used as an example, you could use the squad cap level, or anything else really.

    Generally, anything that checks the AI state can cause sync errors, as the AI SCAR commands were IMO designed for sole use on the single player scripted missions. For Multiplayer AI, Relic used the build/strategies/tactics folders that dictate more generic online AI actions.

  8. #8
    Its good... But we should have some more build space. I can barely fit one base, let alone two of them.

  9. Forum Subscriber  #9
    What the?

    The AI settings differ on each players machine in multi??? Since when? Dulce never did that when i coded it...(WA)

    How can the AI settings differ? When you do a comp stomp online, player1 hosts, sets to hard. Player 2 then doesnt load easy ai for no reason!

    You must have a loop to search for the first cpu, THEN get the difficulty of that cpu. Getting the difficulty of a player, who then ends up being human may not have the desired result (it might return the local ai, or more likely error).

    If this actually is messed up, then we need to work out exactly what is wrong, work out how to fix it, then get onto relic to fix it for a SS patch (or possible DC if it happens). The more information that can be provided, the better. Im sure it wasnt like this in WA, so something has happened. regardless, if its fecked up, could someone explain in detail please...

    Anyhow, very nice concept, and well implemented. You should start a new thread for your scar to explain to other people how to use it and how to add it to their maps, as the majority of the active dow modding populace isnt scar or even programming oriented. Well done!
    Dawn of War : Darkness Within Mod leader
    A linear campaign mod featuring inquisition daemonhunt and witchhunters mods. Check it out!

  10. #10
    Member Jaguar-Lord's Avatar
    Join Date
    Feb 2007
    Location
    france
    i tried the map 1vs1 because the multy does not work: i played chaos against the ig:

    it was ridiculously easy, i just waited enough to build 6 defiler and started bombarding the beach. I then pumped in enough pink horror squad to make a slanesh love parade addict sick to death and keep an automated flow of berserks to flood the beach and deep striked the obliterators in the hills.

    i crushed everything but this was utterly fun !!!!! The defending AI need to do soma attack from time to time imo to prevent the player to do such things.

  11. #11
    Hi all,

    Thanks for the feedbak. It's a pleasure to hear from users that enjoy the map.

    My basic intent was to prevent players from building any others building on the ship (yes! this should be a ship) or in sea . Players have to get on the beach and work some place free to add more buildings and tech up (hopefully this is coming in next version).

    Jaguar_Lord, I am really impressed. If you wish to, there is a mistake with level that you can fix. Search for line "elseif evel_CPU == AD_Standard then" in the 3p1_debarq_v3.scar file and add the missing l to level_CPU. Repeat for the next 3 lines and you may try up to hard mode.

    Incarnate, I added a short starting scar script to check for the cpu level. This looked like this:
    for i=1, World_GetPlayerCount()-1
    if Cpu_IsCpuPlayer(i) then
    print("player " .. i .. "is CPU")
    else
    print("player " .. i .. "is human")
    end
    end
    On LAN, the script provides different answers on two PCs. Only one PC finds the CPU player, the other one finds it is a human player.
    The problem is that Cpu_GetDifficulty() will return 0 on the non-hosting PC.
    I can see only two possibilities, but did not find any way to implement them :
    - find a way to get the game initial level setting (not through the AI setting).
    - transfer the AI level information to the non-hosting machines.

    Just for fun : I made a try with a dancing/moving pattern and so that the other machines could detect the AI setting. No good: it makes a sync error if it is scar based. I think it would be needed to get the script work through the Scar/AI interface so that it can be executed as an AI order. Too hard...
    Last edited by Dark40k; 8th Jan 08 at 11:43 AM.

  12. Forum Subscriber  #12
    Thanks for the info...i shall get onto relic to fix this.
    But two more questions before i do:
    Does cpu_get difficulty return the the value based on the local AI, or is it always 0? As in, if you change the non hosting AI to insane will it return easy??
    Is this problem only in DC, or is it apparent in WA and even DOW?

    I do not have two comps to LAN on unfortunately.
    I did a test with jaguar a while back on AI... i thought i tested this. I dug out the map and all i actually tested was if the playerid changes from machine to machine... doh!

    ps, update your first post so that the links work! The forum has a hack in place so that you cant post links in your first post. This is to prevent spambots. You should be able to update it now.

  13. #13
    I've had an idea about your AI woes... you could use your player name to set the global AI level.

    Granted it's a horrible workaround, but if you set Player 1's name as a number, 0 - 3, then the clients could pick up this number and run with it.

  14. #14
    Thanks for the links info Incarnate. Post update done.
    I tested only for standard difficulty in DC. I also noticed that the answer is 0 when using Cpu_GetDifficulty() for a true human player. I will try to make more testing.

    I agree with you fuggles, (also on the point that this workaround is realy horrible ). However, I see no reason why it shouldn't work.

    I tryed a little another solution which is to use 3 stategic points on the main base and monitor their status. Difficulty is set by the number that are taken before the attack. The level is locked when some event occurs (troops leave the ship for ex.). However its a bit difficult to code defenses modifications when ingame (not talking about rules retiming).

    Your workaround is much easier and far less risky for sync (which is already quiet a problem). But I thougt people would not find this acceptable.

  15. Forum Subscriber  #15
    It would sync out before you could change the player name...how would the other comps know what to change to without getting the cpu difficulty first? The host cant change its name..well shouldnt be able to change its name before the others without sync erroring.

    But that is irrelevant really... because here is the answer!
    Use the starting resources.
    From the dow wiki:
    * Easy: The AI receives only 30% resources.
    * Normal: The AI receives only 80% resources.
    * Hard: The AI has the same resource rate as a human player.
    * Harder: The AI receives 20% extra resources.
    * Insane: The AI receives 40% extra resources.
    just count the starting resources to work out if its a cpu, and what difficulty it is running at! Easy!

  16. Modding Senior Member  #16
    Always Tired Argonaut's Avatar
    Join Date
    Dec 2004
    Location
    Fareham, south UK.
    The AI %age at difficulties is the rate they receive income, not the starting income. Insane receives Req at a 40% faster rate than the player. Checking the opening req level will display 1000 req no matter what the difficulty level. This is why rushing Insane AI's is so effective as they are 'standard' difficulty levels, without reaching critical mass with req and power to steamroll you flat. Basically, you need to hit them hard early to gain 60% map control and even the playing field again.

    I think the Cpu_GetDifficulty() returns a nil value, rather than the local AI value. This is what I was on about when I said different machines load different AI

    The other commands for difficulty Difficulty_Get and Difficulty_SetForAll will only work with the single player difficulty settings selected for the missions. As in - Normal, Hard, Insane.

    Without fixing the localisation problem detecting the AI difficulty setting will always trigger a sync error. Even if you used Cpu_SetDifficulty() there will very likely be a sync error before the information is received.

    Congratulations on your seniority Incarnate. 'Bout time too!

  17. Forum Subscriber  #17
    Thanks
    Damn me for not reading the wiki entry fully, doh!

    Have you tried Modifier_Exists? we know the ai has a modifier applied, as you say. loop through them, then we should get a hit. There is no form of player_hasmodifier so i cant see a way of detecting which players are cpu through this, although in this instance dark40k has designed it for fixed starting locations so it isnt really important.

  18. #18
    Incarnate, with the player name I meant you literally change the host name at the menu screen. Instead of Fuggles I would join the game as '3'.

    That aside you could have scar positional triggers (move to x = difficulty y) or selection triggered difficulty (start with 3 units, click one to trigger difficulty, all 3 despawn). Random difficulty would work. I shall pore over SCARdoc later, although if you, Argo and Dark40K don't know, then it probably doesn't exist!

  19. Forum Subscriber  #19
    Just thought... you shouldnt change the host name in mutiplayer as it will probably fuck up your gamespy account...ie you log on with your host name. Or if you change your name to X, you might end up stealing their account or something equally stupid! Creating a public gamespy account for this map is an idea...but if any from 0-4 are taken then it buggers up the set.

    Yes, your positional trigger would work, it still involves a modicum of intrusiveness (ie all other players having to wait for player 1 to choose the difficulty in game), but if the modifier check doesnt work we have 1 method in the bag that definitely works. Hoo rah. The selection method wont work on multi because of the other comps not being able to detect the other players squad selection.

    EDIT: I just thought, think this is probably the first time in the history of this forum where we are having a discussion on scar with more than 3 people! Holy shit thats like a 1/3 population increase! if Jag started jumping in the scar side (which he can do too) then we have 5 people! AMAZING! This is a totally new experience * crys with joy
    Last edited by Incarnate; 9th Jan 08 at 2:52 AM.

  20. #20
    I've been thinking about this and resources could be the way to go.

    I forget exactly what the number is but the +req figure relates to the amount of req X you will receive in timeframe Y.

    I think Y is about 10 seconds, although I really want to say 12 for some reason.
    X starts at +20 req, or +20 energy if you are the eternally irritating necrons.

    This means that in the first 5 seconds (presuming Y = 10) that you will have an income of 1010 presuming that you have not spent anything.

    In T0, there is only so much you can spend, so if for the first 5 seconds you restrict the AI to being unable to build cappers, gens or barracks and lock out all potential reinforcing squads then the AI will be unable to spend anything.

    This then means that with the income variants brought about by the AI difficulties, if you took a req snapshot at 5 seconds in then could reasonably expect to get something like:
    1014 = very hard
    1012 = hard
    1010 = normal
    1003 = easy

    After this you would set the difficulty and unrestrict/unlock the AI.

    Thoughts?

  21. Forum Subscriber  #21
    The modifier method i proposed wont work either as modifier_exists requires the modifierid (which i was confusing with scarmodifier type).

    Fuggles, that method would require knocking out functionality for X seconds for all players (because we dont know which ones are the cpus). I think this is more acceptable . The get resource functions return a variable with about a million decimal places i think... meaning the test time could be as little as a 1/4 of a second. If not, you can always test it to see what the smallest time is that still allows accurate recognition.

  22. #22
    True, but in the case of this map we do know who is CPU based on starting point, but in general, a good old fashioned for loop could be on the cards

    The thing to do is have a 0 interval which does something (print maybe) when the get resource returns 1010 and see if it works. You could always call it 1 second in advance and monitor a >=1010 <=1009.5.

    TBH I personally will not be able to test anything like this until Tomorrow unfortunately.

  23. Forum Subscriber  #23
    I dont have dow on this comp, so i havnt tested it:
    Code:
    --stuff coded by incarnate
    import ("scarutil.scar")
    import("wxpscarutil.scar")
    
    function AItest()
    	Rule_AddOneShot(cputest, 0.25)
    end
    
    Scar_AddInit(AItest)
    
    --this is run by default by the init at game start, it gets the difficulty and saves it to a table.
    difficulty = nil
    function cputest()
    	local t_val = {0.015, 0.04, 0.05, 0.06, 0.07}
    	local count = World_GetPlayerCount
    	for i = 1, count do
    		local player = World_GetPlayerAt(i-1)
    		if World_DoesRaceUseRequisition(Player_GetRace(player)) == true then
    			res = RT_Requisition
    		else
    			res = RT_Power
    		end
    		 gathered = Stats_PlayerResSpent(player, res)
    		 for j = 1, 5 do
    			if gathered == t_val[j]
    			and j ~=3 then
    				difficulty =j
    			end
    		end
    	end
    	if difficulty == nil  then
    		difficulty = 3
    	end
    end
    
    --only works after the second interval 0.25 seconds.
    function Community_Cpu_GetDifficulty()
    	return (difficulty - 1) 
    end
    
    --change any names before using this
    function Community_Cpu_IsCpuPlayer(playerid)
    	local playername = Player_GetDisplayName(playerid)[1]
    	if string.sub(playername, 1, 8) ~= "Computer" then
    		return (false)
    	else
    		return (true)
    	end
    end
    I used the property of playernames to detect computers... computers are always called Computer1, 2 etc! If you change the name, just call this before you do and store it.
    The difficulty is done as hinted by fuggles, i used the stats function to get the resource they got in 1/4 second and related that to how much they should have at that point (it doesnt matter if the AI spends it, as its a stats function). test it, its probably buggered as im knee deep in VBA at work at the moment so confuse the two

    EDIT: oh yeah, usage instructions... save in your scar directory as something.scar, then import it in whichever file you need. Or just copy and paste in the file in the first place. It provides two callable functions, the same as the old ones just preceeded with Community_.

    EDIT2: Tested, working in skirmish, needs lan testing:
    Code:
    --Community.scar coded by incarnate 9/1/08
    import ("scarutil.scar")
    import("wxpscarutil.scar")
    
    function AItest()
    	Rule_AddOneShot(cputest, 4)
    end
    
    Scar_AddInit(AItest)
    
    --[[lLOCAL!! -this code should be loaclised to this file]]
    
    --this is run at 4 seconds.
    --it compares the fraction of the computer/human res.
    function cputest()
    	local t_val = {2/9,6/8,1,11/9,11/8}
    	local difs = {"easy", "standard", "hard", "harder", "insane"}
    	local count = World_GetPlayerCount()
    	for i = 1, count do
    		local player = World_GetPlayerAt(i-1)
    		if Community_Cpu_IsCpuPlayer(player) == false then
    			human = player;
    			if World_DoesRaceUseRequisition(Player_GetRace(player )) == true then
    				res = RT_Requisition
    			else
    				res = RT_Power
    			end
    			humgath = Stats_PlayerResGathered(Player_GetID(human), res)
    			break
    		end
    	end
    	for i = 1, count do
    		local player = World_GetPlayerAt(i-1)
    		if Player_GetID(player) ~= Player_GetID(human)
    		and Community_Cpu_IsCpuPlayer(player) == true then
    			if World_DoesRaceUseRequisition(Player_GetRace(player)) == true then
    				res = RT_Requisition
    			else
    				res = RT_Power
    			end
    			gathered = Stats_PlayerResGathered(Player_GetID(player), res)
    			 for j = 1, 5 do
    				if gathered/humgath == t_val[j]  then
    					difficulty = difs[j]
    					break
    				end
    			end
    			break
    		end
    	end
    end
    
    --[[LIBRARY]]
    
    --Can be called at 5 seconds, returns a string
    function Community_Cpu_GetDifficulty()
    	return (difficulty) 
    end
    
    --change any names before using this
    function Community_Cpu_IsCpuPlayer(playerid)
    	local playername = Player_GetDisplayName(playerid)[1]
    	if string.sub(playername, 1, 8) ~= "Computer" then
    		return (false)
    	else
    		return (true)
    	end
    end
    I messed Version 1 up with some stupid mistakes. This reliably pulls cpu_iscpuplayer at any time, but it can only return the difficulty after 5 seconds. Its a bit long winded, but lets call it 1.0 and improve it.
    Last edited by Incarnate; 9th Jan 08 at 3:42 PM.

  24. #24
    Excellent!!
    I am pretty sure this can be easely included in my code. Players have sufficient business on there own for the first few seconds and wont notice the delay. I will try to add it tomorrow (too late now).

    Thanks a lot to everyone.

  25. #25
    Interesting problems, I've not got much time right now to help.

    I do know that the game data will be local - you could set the player name and it's fine, it's in no way links to gamespy accounts, since it rather does it the other way around: When the map starts, the names are set from the accounts.

    But I don't know what problems it might cause in other areas, nevermind the confusion it'd cause.

    And most scar functions can work in multiplayer fine (the win conditions are multiplayer after all!), although I have no idea why the "host" sees things differently unless the installs are different. It's a problem you'd not be able to find out about except this extensive testing
    Finaldeath

    Current DOW information on modding + FAQ - A good read for new and old modders alike!
    RDN Wiki Temp Location - Help, tutorials, Mod Tools info.

  26. #26
    Member s1_ONE's Avatar
    Join Date
    May 2005
    Location
    sometimes here, sometimes there
    I have no idea why the "host" sees things differently unless the installs are different.
    The fact is that the game is based on the host DC version, & unless you have different engine files (not really sure bout that, bcos im running multi with custom textures, but it might be another question) the game starts as usual.

    I know that hacks are possible in the .ini files, but dunno about the Data files..
    - Rem tene verba sequentur -



  27. #27
    I have heard about these hacks, can they be command line called? That might be a solution.

  28. Forum Subscriber  #28
    Well, i have two updates. 1 is, no they cant be hacked through command. I did a load of testing today for other reasons, and relic have removed io, and os libraries, and dostring among others so we cant use the engine to write files of our choosing.

    2 is, i did some further testing on the above code (although not on multi), and found some errors, due to me using exact fractions. The new version rounds up and down, and checks both values for the one that fits. Also fixed the necron bug, as necron stats are halved for resources. I tested this in all game speeds, and it is reliable. i have not tested it on a map greater than 1v1, but the code should support it (it finds the first human and compares it with the first comp, using the new cpu check code)
    Code:
    --Community.scar coded by incarnate 10/1/08
    import ("scarutil.scar")
    import("wxpscarutil.scar")
    
    function AItest()
    	Rule_AddOneShot(cputest, 4)
    end
    
    Scar_AddInit(AItest)
    
    --[[lLOCAL!! -this code should be loaclised to this file]]
    
    --this is run at 4 seconds.
    --it compares the fraction of the computer/human res.
    function cputest()
    	local t_val = {3,8,10,12,14}
    	local difs = {"easy", "standard", "hard", "harder", "insane"}
    	local count = World_GetPlayerCount()
    	for i = 1, count do
    		local player = World_GetPlayerAt(i-1)
    		if Community_Cpu_IsCpuPlayer(player) == false then
    			human = player
    			if World_DoesRaceUseRequisition(Player_GetRace(player )) == true then
    				res = RT_Requisition
    				hum = 1
    			else
    				res = RT_Power
    				hum = 0.5
    			end
    			humgath = (Stats_PlayerResGathered(Player_GetID(human), res))
    			break
    		end
    	end
    	for i = 1, count do
    		local player = World_GetPlayerAt(i-1)
    		if Player_GetID(player) ~= Player_GetID(human)
    		and Community_Cpu_IsCpuPlayer(player) == true then
    			if World_DoesRaceUseRequisition(Player_GetRace(player)) == true then
    				res = RT_Requisition
    				rac = 1
    			else
    				res = RT_Power
    				rac =2
    			end
    			gathered = (Stats_PlayerResGathered(Player_GetID(player), res))
    			for j = 1, 5 do
    				if math.ceil((gathered/humgath)*10*rac*hum) == t_val[j]
    				or math.floor((gathered/humgath)*10*rac*hum)== t_val[j]  then
    					difficulty = difs[j]
    				break
    				end
    			end
    			break
    		end
    	end
    	if difficulty == nil then
    		difficulty = "Difficulty was not detected"
    	end
    	print ("difficulty = ".. difficulty)
    end
    
    --[[LIBRARY]]
    
    --Can be called at 5 seconds, returns a string
    function Community_Cpu_GetDifficulty()
    	return (difficulty) 
    end
    
    --change any names before using this
    function Community_Cpu_IsCpuPlayer(playerid)
    	local playername = Player_GetDisplayName(playerid)[1]
    	if string.sub(playername, 1, 8) ~= "Computer" then
    		return (false)
    	else
    		return (true)
    	end
    end

  29. #29
    So, I've tried the last release (v4) of the map twice with a friend this afternoon on LAN. We took Space Marines & Witch Hunter for first game. Next game was with Chaos & Witch Hunter. There was no sync error at all () nor any really odd behavior. DC was running in normal mode, not dev with Witch Hunters Mod Public Beta.

    We had to use a slightly different map so that Witch Hunters have a little more room to get their first two buildings on the ship. I will see to it for next update.

    It seemed the map was much easier with chaos compared to space marines (although I know very little about chaos playing).
    When I finally produced defilers, conquering the beach was not very difficult. I thought there was not such a difference between defilers and dreadnoughts and surely not this way.

    I think I will have to see if I can manage entrenched Heavy weapon squad to increase defense.

    Can someone tell me if it now works when playing online? Any comment on balance or defense improvement would also be very welcomed. Or just simply how long it took you to win (for us it was 1st=110min, 2nd=60 min).

    PS. Incarnate, I've checked the Cpu_IsCpuPlayer() function and the answer is always false on the non-hosting computer whatever the level. However, I forgot to check Cpu_GetDifficulty() . I'll give it another try if necessary.
    Last edited by Dark40k; 12th Jan 08 at 2:58 PM.

  30. Forum Subscriber  #30
    That just checks if the player is human or not.. it reads the player name and sees if it contains the word computer, if so.. its a computer! That has nothing to do with difficulty. And its community_cpu_iscpuplayer... not cpu_iscpuplayer... the second is the broken one!

    Ill try and organise an online meet to test and play!

  31. #31
    Member Jaguar-Lord's Avatar
    Join Date
    Feb 2007
    Location
    france
    i have aproblem with the map now:

    i tried to play it a second time and sudenly i CTD while my berserkers were stroming the beach !!!

    i'll try to reproduce the error and know where it may comes from in -dev mod (i hope i'll catch some hints about the cause before all goes donw the swell pit)

  32. #32
    Thanks for the information about the crash, Jaquar-Lord, and I'm really sorry about it. Where you capturing a point when it happened? I had a CTD once that I didn't understood while capturing a point but it never happened again.

    Generally speaking, I would also really be interested if some players could send me savegames, especially when they found that conquering the map was not sufficiently difficult. Many thanks in advance.

  33. #33
    OK, I have pushed a new version of the scar code (first post with update comments).

    Thanks for all the proposals I got for multiplayer difficulty setting.
    I finally went (after much thinking) for the probe sacrifice instead of resource monitoring which I agree would be better (no user interaction).
    My problem is I provide pre-captured points (sometimes with listening posts) to both CPU and Players. I must confess I did not find courage enough to compute what is the expected standard level and then get the difficulty level from it.
    Further, I am not sure if mods may tune resources or not: I try to avoid compatibilities issues as much as possible.

    For all that have tried the map before, I have expanded difficulty: easy is easier and insane is much harder .

    Lastly, I need some players to test the map (single skirmish, multiplayer lan or online) and send me some feedback. This would really help.

    Thanks to all of you.

  34. #34
    I have found what the CTD bug was.

    After testing I found that the AI tries to recreate listening_posts even if all components are disabled using Cpu_EnableComponent(). This happens only ones, afterward the AI appears to stop this behaviour .
    The double creation (the scar code does recreate posts too) was the reason for the CTD.

    I had to use Cpu_Enable() to stop the AI from messing around with the map.

    I have updated the link.

    Edit: Updated once again for some stupid bugs. Made a try in Easy as SM. Game won in 77min, Cpu lost 2045 units, I lost 975.
    Last edited by Dark40k; 20th Jan 08 at 11:14 AM.

  35. #35
    Member Jaguar-Lord's Avatar
    Join Date
    Feb 2007
    Location
    france
    i'll try the new version on skirmish and on multiplayer via Lan and via gamespy.

  36. #36
    Member PikachuMarine's Avatar
    Join Date
    Oct 2004
    Location
    Cambridge, Terra
    Gave this map a try last night (single-player with space marines). All I can say is WOW!

    I'd say it's a good adaptation of the Normandy Landings D-Day 1944. Even with a fully tanked-up upgraded army charging in, you can't really dent the first line of defense. I wasn't trying particularly hard, but this map you've done certainly needs strategy rather than turtling and massing before surging en masse.

  37. #37
    Thanks for the comment. Where you playing standard or harder level?

    I mostly play space marines and I guess I have designed the defense mainly to counter them. I had it easier with chaos maybe because of invisibility that is not efficiently countered.

    Further, the map difficulty is probably much harder for those that have not previously analyzed the defensive position using the Mission Editor (I had not thought about it).

    So, below is the strategy I have been using so far. It works in easy but I am not sure for higher levels. Basilisks in zones 4 & 5 should be painful for higher levels.

    I think I would be fun if everyone could post what they have done, tried or suggest strategies (in coop or alone).



    Possible SM strategy for debarq map


  38. #38
    Member s1_ONE's Avatar
    Join Date
    May 2005
    Location
    sometimes here, sometimes there
    WotE helps alot, plus ivan healing rate&apothecary make your troop mass very resistant..

    Or you can just pick out another race like tau/orks & play imba ^^

    (btw this map on insane is really nice.. but if i try 1v1 vs insane i simply cant conquer fast enough.. not a matter of army wiped out, but simply the fact the BB+constant turret drop spread my firepower & sm tanks with lascannon miss too much)

  39. #39
    Insane level only limited by rebuilding rate! Wow...
    Thanks for the infos.

    Were you playing on LAN or online? I am craving to know if Online now works or not.

    In Advanced, rebuilding occurs after 60s, this value is reduced down to 30s for Insane. Should the Advanced rate be kept for Insane or something between the two?

    Note: The value can be tweaked for insane by editing the scar code and edit the line nbr 1555. It should read (each cycle is 5s long):
    Repair_Entity_InitWaitCycles = 6

  40. #40
    We finally got through in Insane on LAN!! We played SM + Witch Hunters with high resources + quick start settings.

    Game lasted 137min (getting on the hill was hell) with following scores:
    Space Marine= 2711 kill 1755 dead 1041 buildings destroyed
    Witch hunters= 2389 kill 1383 dead 959 buildings destroyed
    Computer= 3138 kill 5100 dead 27 buildings destroyed

    We finally had to build in water to get full tech and get on the hill. Tight cooperation was an absolute necessity and mistakes were sanctioned with the complete destruction of assaulting squads. Great fun!

    I have posted the (long) replay if any are interested.
    http://dl.free.fr/nJZNO26sw/Replay_Insane_v7.zip

  41. #41
    Member s1_ONE's Avatar
    Join Date
    May 2005
    Location
    sometimes here, sometimes there
    Ive played vs insane 1v1 and it went ok, but when i tried 2v1 insane with standard setting tau+orks vs ig, once we got the beach/after destroying the BB then game crashed... dno why..

    Next time ill go for tau or orks in 1v1 insane
    cakewalk cakewalk.. ^^

  42. #42
    Resident AI guy thudmeizer's Avatar
    Join Date
    Sep 2004
    Location
    North Toronto, Canada
    Hmmm.. shouldn't it be 2 AIs vs 1 Human? How can 1 AI player be anything remotely competitive against the 2xbrain of a human? Does the 1 AI have massive bonuses?

  43. #43
    The scar code generates/moves troops based some rules defined in the map. There's no AI connection so far: compensation is through number.
    One thing that could improve things would be to have a limited AI that would handle short range tactics and special abilities but leave the general strategy and troops positions to the code.
    I keep thinking about it but feel it would be very hard to get working.

    s1_ONE, I am really impressed you find it cakewalk in 1v1. Could you please send me a replay or suggest anything that could make it hard to your feeling?

    There is also an option to make things harder: I could not test it effectively but i had the game running with the 3rd player human instead of AI. Orders can be sent and special abilities can be used. However, the scar code keeps providing orders to all iddle units (meaning you have to keep them moving/attacking to keep control).
    Don't know if it is interesting nor if it is stable (difficult for me to be two players at a time).

    Concerning stability in multiplayer, was it CTD or sync error? For crashes especially, I need the last 10 lines of the warnings.txt and of scarlog.txt in the logfiles.
    I have tried a few dirty things but I could not get the game to crash.

  44. #44
    Member s1_ONE's Avatar
    Join Date
    May 2005
    Location
    sometimes here, sometimes there
    the cakewalk is related to orks/tau races, due their potential sluggaz/drones spam.. that give you a shield against incoming fire...

    with sm&other races the difficulty is fine.. maybe there arent enough space to build, so usually the player is forced to build near the beach...

  45. #45
    Thanks for the infos.
    I agree with the space problem: I wanted players to be forced to get a hold on the beach without the vehicules. I feel now that it is too hard in highest levels and further not much fun: squads need too much micromanagement to avoid getting slaughtered.

    Concerning Online playing (Gamespy), We have finally sorted out the connection to be able to test.
    In v7, we had no problems at all for a fast 30min test in easy.

    Once again, if anyone does have a problem please send me the infos (warnings.log for CTD, console for sync or scar crashes).
    Last edited by Dark40k; 27th Jan 08 at 1:20 PM.

  46. #46
    played 2 (Lan) vs 1 marines vs guard and this went fine
    only problem is guard don't use all their units (additional squads from mods) presumably due to scar programming is there a way to change this?? Will do it meself if I could but can;t see where in the long scar this is listed (plus don't speak french )

    this is a great idea and really is worth a good look, adds some new challenges, would also liek to try a map against ork/eldar etc.

  47. #47
    Glad you like the idea.

    The debarq map was created in DC standard, so only standard units could be used. I chose to do it so that players can get their prefered race without problems.

    If you want to use a mod that adds some units to guards, you will have to find a way to change the mod that Mission Editor uses (I don't know if this can be done). Adding mod specific units would then be easy :just place them on the map and assign groups.
    On a more general note, see the tuto to turn any map you want into an assault map.

    So far, squads can upgrade weapons and lost members are replaced up to a maximum. These are defined in the level parameters and can be edited (this part is in english and explained in the tuto).
    I still have to find a way to attach a commanding squads. But this will only make sense if I can find a way to use special abilities in a not too stupid manner. And this is far from easy...

    If anyone makes a map with a different defending race then I would gladly adapt the code. I also plan to regroup parameters so as to allow this change to be easy (most of the work is already done).

  48. #48
    will have a go and let you know how i get on

    I use the autoabilities mod to get my own people to use special abilities, didn't notice if any of the computer used them though (was too busy fighting for my life)

    I will probably at some point have a go at making a map based on bunker 149 whereas you have to assault across the river and take on enemy holding the building (the reverse of how i normally play it)


    Will let you know how it goes.

    Cheers

  49. #49
    I'm not sure of this but I think the autoabilities mod should indeed trigger computer abilities. However, the units I used in the map don't have many of these and its no surprise it didn't have a noticeable effect on the defending side.

    In theory, the "support mod" (from CutterShane too) that's dedicated to artillery should be much more effective in the debarq map, at least for hard levels: there are a few (a dozen...) basilisks. This should make things even harder for players.

    Thanks for mentioning this mod, it raises a lot of possibilities.

  50. #50
    New version is now available with attached units (I am still stuck with the special abilities ).

    The biggest update is that it now should be much easier for anyone to change the defending race or tune parameters. See the tuto thread update for info.

    I tried my best for the graphics but the result quality remains low. If anyone wants to improve this map, I would most welcome his help.

Page 1 of 2 12 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •