Read Me
----------------------------------------------
Readme for VegaStrike version 0.1.0 Beta
----------------------------------------------
Vegastrike has finally reached the state of being in Beta!
This means that many user requests have been accomplished including sound, joystick support, cloaking, bolt weapons, and much, much more!
All of the ships are original, never before seen ships modelled by me.
Mail me any comments or suggestions to hellcatv@hotmail.com
I would welcome any changes or additions to shield.bmp that would make the shield look more realistic! Or any of the bolt weapons located in the textures subdirectory
-----------
Features:
-----------
-Joystick support for a full featured joystick
-Sound effects that make starships roar as they pass and zap as they die
-Bolt weapons with glowing lighting effects
-Cloaking that renders a ship partially/fully invisible
-All new starships
-Customizable fully working HUD with targetting displays, etc
- Customizable Alien Race logos that will change on all starships by editing TerranPriA.bmp and TechPriA.bmp
-Intelligent, Programmable AI
-Varied weapons on different starships
-Explosions that literally tear a starship into pieces
-Shields That Glow upon hit (in the location hit)
-Customizable missions
-Stars that fly past as you explore the system
-BSP Trees that allow one to fly close to a starship, and in the runway of (well formed) models...unlike the victory from WC3.
-the Normal Force which bounces starships off of each other
-----------
Controls:
-----------
Arrow keys: Flight Sim style turning
\ full throttle
backspace zero throttle
=,+ accel
- decel
t target
m change active missile
g change active gun
Shift-T switch targetting computer mode to navigation mode
Shift-W shift weapons computer mode to damage mode
ENTER fire missile
space Fire Guns
TAB Afterburners
*,ins Spin Right
/,del Spin Left
~ (hold down, engage shelton slide)
Joystick controls do various undocumented things. Check out vegastrike.config and edit any key bindings you wish for Joystick and/or keyboard
F1 toggle cockpit/background display
F2 left
F3 right
F4 back
F5 Chasecam
F6 Panning Cam (s,a,w,z pan)
F11 Zoom in
F12 Zoom out
--------------------------------------
Editing Missions
--------------------------------------
How to make Vegastrike Missions
An example mission(this is stored in the test1.mission file)
A mission must begin with the headers:
<mission>
<variables>
<var name="defaultplayer" value="blue"/>
<var name="mission_name" value="4 versus 4" />
<var name="splashscreen" value="bad_guys_vs_good_guys.bmp" />
<var name="system" value="sol" />
<var name="description" value="4vs4.txt" />
</variables>
Currently all of these options are ignored except for the "system". it loads sol.system as the star system (which is in XML and stores all present planets)
The only other system included in this beta release is the blank.mission
which has 1 planet, 1 sun and 2 starbases.
After this, comes the actors in the mission, the flightgroups of fighters.
<flightgroups>
You must begin the flight group tag as above, and terminate it after all of your flight groups
<flightgroup name="blue" faction="confed" type="nova" ainame="default" waves="8" nr_ships="3">
The name will be used later for targetting and offset purposes. The faction is a faction listed in factions.xml (should be self explanatory 0 is neutral 1 is happy -1 is mad) Currently confed and aera are the two active factions. AI must be default in this version as no ohter AI scripts are yet written. nr_ships indicates how many starships will be in this flight squadron.
<pos x="10000.0" y="0.0" z="3000.0"/>
This indicates the flight group's position... be sure it is unique
<rot x="180.0" y="180.0" z="180.0"/>
<order order="tmptarget" target="omikron"/>
<order priority="0" order="superiority" target="enemy"/>
<order priority="1" order="bomber" target="omikron"/>
<order priority="2" order="escort" target="blue"/>
the rest is in development
</flightgroup>
you must end all flight group tags
continue with any other flightgroups... you can have as many as you want from as many named factions are you want...
</flightgroup>
</mission>
---------------------------------------
Editing AI
---------------------------------------
The AI is completely scriptable, and I have not spent all that long perfecting it. There are included instructions about editing the AI scripts yourself.
Currently there is only 1 AI personality. In the future there will be a method to assign different personalities to different starships.
it's the "default" personality.
2 files are responsible for the control of the "default" personality
default.agg.xml
and
default.int.xml
default.agg.xml means the "aggressive" AI. it controls what it does to aggressively bring its vengence upon its target.
When editing this file in notepad, you'll notice some tags and various numbers.
The first tag, AggressiveAI has a parameter time="4"
that's how often the AI checks if it should change its strategy. This time can be any integer value... it can revise its plan more often or less often. 4 has been good because most maneuvers can mostly complete in 4 seconds and it's a good time to revise plans
underneath the beginning tag exist a list of tags that describes the logic the AI uses to figure out its next strategy.
there are a number of tags you can specify for the aggressive AI: distance, threat, hull, fshield lshield rshield bshield rand
Each tag asserts if one of the tag-values above is between min and max.
The AI needs to make a CHOICE about what it does next, so it takes a look at the list of tags and determines if any of the assertions is true.
Nested statements mean that BOTH must be true. so you can say "if the distance is at most .5 and the hull is between .25 and .75 by writing:
<distance max=".5">
<hull min=".25" max=".75" script="afterburnerslide.xml">
</hull>
</distance>
this means "if the distance is at most half the range of my guns and the hull is between 1/4 and 3/4 of its capacity, then perform an afterburner slide.
It goes down the list of such assertions and chooses the appropriate AI script to run.
The facing and movement tags fill in the gaps where NONE of the list of the assertions are true and the ship is not either turning or moving anywhere:
<facing script="turntowards.xml">
</facing>
at the very bottom the </AggressiveAI> must show up to indicate that the AIscript has terminated.
The aggressive.int.xml is written out exactly the same as the aggressive.agg.xml
the difference is that scripts listed here INTERRUPT the current action!
An example from the game is:
<AggressiveAI close=".05">
<hull max = ".5" script="evade.xml">
<threat min=".4" script="afterburnerslide.xml">
</threat>
</hull>
<distance max=".03" script="turnaway.xml">
<!-- distance less than .1-->
</distance>
</AggressiveAI>
this says:
If the hull is at most half and someone is threatening me with a 40% chance to hit... then evade and then afterburner slide
OR
if someone is at most .03 of my max range away from me TURN AWAY!
this will interrupt the current progress of any scripts
So that's how to use AI scripts.
If you want to know more about writing actual maneuvers (like turnaway.xml which as you can see is in the directory) please contact me at hellcatv@hotmail.com
you need to have a heavy background in vector math.
© 2001 Daniel Horn, Patrick Horn, Alan Shieh, and Aleksander Rawass