CMB:SimplifyTesting

From Bohemia Interactive Community
Revision as of 11:47, 25 January 2009 by WGL.Q (talk | contribs)
Jump to navigation Jump to search

SimplifyTesting

Goals

  • Showcase what testing is all about
  • Explain how to simplify the task
  • Offer tools to support and simplify testing

Preface

A crucial part is to have your development setup right and all decent tools available.

Make sure that both is true for your setup.

General tips

  • Use window mode to avoid load times from ALT+Tab and therefore easily be able to switch been the game and the OS. This is also useful for game loading times to be able to do something useful meanwhile. (ArmA:_Startup_Parameters):
-window
  • Use -x and -y along with window mode to be able to have another app visible on the screen. Alternatively get a second monitor. (ArmA:_Startup_Parameters):
-window -x=800 -y=1024
  • Alternatively you can modify the arma.cfg located in your .\profiles\Users\STANDARD-OS-USER folder. You can define the start area (x & y) as well as the width and height. In other words you can leave the area left/right either/and below/above the arma screen "blank" for your text editor or any other app.
// Example for 1280 x 1024 windows resolution with two line taskbar.
winX=0; 
winY=0;
winW=1280;
winH=960;


No top window bar
Window mode with reduced screen size


  • Use noPause mode to keep the gaming running even without focus for non MP environment. Testing in the MP editor makes this no longer needed. Yet with the SP editor you can load a mission more easily and bit faster. (ArmA:_Startup_Parameters):
-noPause
-noSplash 
  • Use profiles to put the profile folder within your arma folder to access it more easily. Use name to call a specific profile for testing. (ArmA:_Startup_Parameters):
-profiles=Profiles -name=test
  • Modify your test.ArmAprofile to the very lowest settings to reduce low times and get most FPS:
blood=0;
viewDistance=1;
terrainGrid=50;
precision=8;
sceneComplexity=1;
shadingQuality=0;
shadowQuality=0;
soundEnableEAX=0;
soundEnableHW=0;
anisoFilter=-1;
TexQuality=-1;
postFX=0;
useWBuffer=0;

Launching the game

Everything related to configs requires the game to be (re)started to parse the config files.

To reduce the A1 startup time you can utilize the following tweaks:

-world=empty
  1. Move your .\arma\addons folder to .\arma\addons\addons
  2. Adapt all your standard arma launch paths to use -mod=addons; (and more if needed)
  3. Create the folder structure .\arma\mas\addons
  4. SVN checkout the MAS repository to .\arma\mas
  5. Copy anims.pbo from .\arma\addons\addons to .\arma\mas\addons
  6. Adapt dev launch paths to use -mod=mas; (and more if needed)

MAS repository data:

URL of repository:
User:
PW:

Testing areas

SP editor

  • Benefits of the SP editor:
    • A
  • Direct launch:
-world=intro "c:\games\arma\Profiles\users\myUser\missions\myMission.intro\mission.sqm"

MP editor

  • Benefits of the MP editor:
    • A
  • Direct launch:
-host

Dedicated server

You can easily setup a dedicated server on your own computer. Especially with a multi core system the performance is fine.

  • Benefits of the dedicated editor:
    • Only way to properly test a MP mission for locality and performance.
  • DS configuration:
  • Direct launch:

Buldozer

Debug

The game will write errors of configs and scripts to a file called arma.rpt. Check the page for the file's location.

The meaning of some errors is explained there as well as on its talk page. However most error messages are rather easy to understand from the naming and given output.

Any script error message happening during the game will be put in the arma.rpt.

Dedicated server

Note that while testing on a dedicated server it will write an arma.rpt there as well. So make sure to check both the client and the server.

Write to arma.rpt yourself

You can use these two commands to debug strings to arma.rpt:

  • localize
localize 'my Debug String'; // => 'String my Debug String Not Found'
  • createVehicleLocal
'my Debug String' createVehicleLocal [0, 0, 0]; // => 'Cannot create non-ai vehicle: my Debug String'

With format['%1',_myVar] you can convert code to string.

localize format['%1',_myVar];
format['%1',_myVar] createVehicleLocal [0, 0, 0];

Unpacked files