Announcement

Collapse
No announcement yet.

Headless Client Made Easy

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • [GUIDE] Headless Client Made Easy

    This post is intended to remove any fear of technical complexity an aspiring mission maker might have about using headless client for their missions.

    Introduction:
    I have been thinking about the good old times we have all had in pitched fire fights. Shooting at the many bad guys who were swarming from all sides, taking cover under a hail of bullets beside our wounded buddies. That awesome feeling after you clear a very occupied building. The conclusion I came to is that often times bigger battles are more fun. The problem is, servers are limited, computers are limited. They cannot reenact world war two. The solution to this is to spread the load, giving the enemy AI work to another server, and letting the main server focus on the rest of it. This is what the Headless Client does. The result is you can run more enemies with less performance degradation, or faster reacting enemies on a smaller scale. This is a win-win, good for every mission!

    The counter argument to the HC is largely one of complexity and difficulty; “Sure it could help me make better missions, but the headless client is difficult to use, and intimidating too.” Fear not! Monsoon has written a great guide, which I repost here for your pleasure. I knew nothing about this HC thing 28 hours ago, and thanks to him, I now have a working protoype. If I can do it, anyone can.

    How To Make a Mission Using Headless Client (HC);

    Step 1: Read this guide; http://www.clearbackblast.com/Files/HCtutorial.pdf. I take no credit, this is not my guide, complete credit to Monsoon for his awesome work.

    Step 2: Look at the example mission he provided with the guide. You can download both the example mission and the guide from mediafire here. http://www.mediafire.com/?4ckprava8ppqm48

    Step 3: KISS mission. Make a VERY simple headless client mission following the guide. Do not simply copy the example he provides. Make a few changes, add a few units. Change enough that you gain some idea what you are doing, but not so much it becomes complicated. This is to make sure when you are making your mission you understand how the HC interfaces with the rest of the mission.

    I am going to try and summarize the guide’s great walkthrough on making a simple mission here. But this is only a summary to keep you on track, an bare outline. Rely on the guide, not this summary.

    Generally you will need to:
    a. -- Place a unit titled HC on the map, make it playable. Make it invulnerable using “this allowDamage false.” Add a line to your mission.sqf forcing the HC to use that slot. (See guide).
    b.–Place a player.
    c.–Place your AI on the map.
    d.–Create parameter which sets HC on or off in your description.ext. (see guide).
    e.–Create an “AI ONLY” version of your mission with ONLY those units the HC should control.
    f.–Use a2mc.exe to create a script from that “AI ONLY” version. http://www.armaholic.com/page.php?id=18012
    g.Put in your Init file a bit of code to make the script of “AI ONLY” run from the HC, thus giving it the responsibility of creating and controlling those units.
    h.Modify the script provided in the guide to have the HC take control of whatever units you want that it did not create. (For instance sentries that the HC cannot really create.)
    i.At this point your mission itself in the editor should have ONLY the units not spawned by the HC. (At least the HC unit and the player if not more.)
    j.Consider if you want to use DAC (Dynamic AI Creator). If you do, read the guide section, and if you get it working, tell me how.
    k.Proceed to step 4.

    Step4: Local Testing the prototype: First test your basic mission locally without the headless client running. (testing to see if the script which the HC will be running works on your computer.) This can be done using the parameter explained in the guide. If everyone you put into the script spawns and runs through their waypoints, great.

    Step 5: HC Testing of the Prototype: Once you are ready to use the HC, edit your description file to set the default parameter setting from “off” HC (no HC) to “ON” (with HC). I had some issues with getting the parameter to work, so I just changed the default so I would not have to mess with it in game. Also, if you are not using DAC, remove the lines that reference it from your init, to avoid getting a “cannot find DAC.sqf” type error at the start. These should be lines 25-27, 33, and 38 of your init.

    Step 6: Go to an admin and setup a time to test your basic HC mission on bravo. The purpose of this is not to test the mission as it will be, but to make sure you understand HC so you don't waste hours later on.

    Step 7; If successful in your prototype, you can proceed on to make your mission with a new tool in your belt.




    Miscellaneous Tips: Some general notes to help you when making your mission based on my limited testing:

    --Read the guide slowly. It is worth it and you will save yourself time going back and banging your head in frustration later.
    --Remember to use "HC" as the name of the headless client, and make it invulnerable. You do not want it to die mid mission.
    --Remember the HC is not going to solve all your problems, in the guide he talks about some of the stuff it cannot do such as triggers linked to units and setPosASL commands. Don’t forget the server can hold a few guys as well, and you may need to mix the two to compensate for things the HC cannot do.
    --If you are not using DAC, remove the lines that reference it from your init, to avoid getting a “cannot find DAC.sqf” type error at the start.
    --If you are planning on using DAC, leave them in, and your bravery is commendable. The files themselves (DAC 3.0) has examples, scripts, and a very complete readme. If you master it, please spread the knowledge, it is a complex but apparently quite powerful tool. http://www.armaholic.com/page.php?id=10622
    --The parameter for the HC is set to “OFF” by default. Make sure you turn it on, either by changing the default setting in the init, or by changing it in game in the lobby before testing with the HC.


    Hope this helps aspiring mission makers overcome their fears and learn to love the HC!




    The next step in this guide will be more complete testing of the HC and Dynamic AI Creator (DAC). Look for that in a month or so.
    The question foremost in my mind is "what will bring the most tactical fun to the server?"

  • #2
    Re: Headless Client Made Easy

    Very well put together, Garthra. Your methodical approach will surely help players of all mission making skill sets incorporate this valuable feature into their scenarios.

    I will be tinkering with this once I get some of my free time back.

    Current ARMA Development Project: No Current Project

    "An infantryman needs a leader to be the standard against which he can judge all soldiers."

    Friend of |TG| Chief

    Comment


    • #3
      Re: Headless Client Made Easy

      Thank you very much for this, it sure makes things easier
      - - -

      Comment


      • #4
        Re: Headless Client Made Easy

        I'm working on a small coop mission, is it worth using HC for a mission with only 6 people? It's not going to be a ton of fighting.
        |TG-6th|Spaz

        "You the people have the power, the power to create machines, the power to create happiness. You the people have the power to make this life free and beautiful, to make this life a wonderful adventure."

        Comment


        • #5
          Re: Headless Client Made Easy

          Originally posted by Spaz View Post
          I'm working on a small coop mission, is it worth using HC for a mission with only 6 people? It's not going to be a ton of fighting.
          Spaz,
          I do not know how much a very small mission will benefit. In theory you should see better AI reaction times. However, how much better I do not know. If it is worth the effort is up to you.
          The question foremost in my mind is "what will bring the most tactical fun to the server?"

          Comment


          • #6
            Re: Headless Client Made Easy

            Since I'm having truble just getting objectives to work, I'm going to leave this one alone for a while. ;)
            |TG-6th|Spaz

            "You the people have the power, the power to create machines, the power to create happiness. You the people have the power to make this life free and beautiful, to make this life a wonderful adventure."

            Comment


            • #7
              Re: Headless Client Made Easy

              I just tested the DAC and got it working.

              I will be writing a guide on HC + Dynamic AI Creator soon.

              It is more complicated, admittedly, but allows a LOT of randomness to be factored into missions. If you are up for the challenge it is worth it.
              The question foremost in my mind is "what will bring the most tactical fun to the server?"

              Comment


              • #8
                Re: Headless Client Made Easy

                Can't wait for the guide! I'm going to see if I can make something simple but that works with a platoon size unit.
                |TG-6th|Spaz

                "You the people have the power, the power to create machines, the power to create happiness. You the people have the power to make this life free and beautiful, to make this life a wonderful adventure."

                Comment


                • #9
                  Re: Headless Client Made Easy

                  Thanks Gathra - will look at this for a little campaign I'm working on :)
                  sigpic

                  Comment

                  Connect

                  Collapse

                  TeamSpeak 3 Server

                  Collapse

                  Advertisement

                  Collapse

                  Twitter Feed

                  Collapse

                  Working...
                  X