So! Right. Basics.
We’re going to kick off the MMJ campaign with one of the first things a lot of new modders do: Make your own playership. To meet the requirements of this Jam:
» Create a playable ship with 120 facings. …Yeah, I know, it sounds obvious, but it kinda needs to be said for the sake of completeness. Or something. <.< >.> ^.^; There’s a template for the XML file included below, courtesy of Xephyr.
» Make the ship at least reasonably balanced against official playerships. This is a bit subjective, admittedly, but if your ship has a top speed of .5c, two hundred device slots, and starts with a Hyperion reactor, an Ares plasma archcannon, hierosteel armor, and several million credits… yeah, no, that’s not balanced.
» Do not use any ship graphics from any official Transcendence material or existing mods. If you want to try your hand at making your own graphics, I heartily encourage this! Otherwise, there is a collection of available ships (designed by either myself or Xephyr) being offered for you to choose from. I’ll include a image showing available ships further down, too. Only one modder per ship design, please! If we run out, I’ll put together more and be deliriously happy that we got twenty people involved in this to begin with. The list of ships already claimed will be at the bottom of this post in the following format: Row #, column # (basic description): Claimant
» Properly place the ship’s thrust effects. They don’t have to be absolutely perfect, but try to get them close, at least.
» Please use equipment from the vanilla game on your playership. Not everybody has Corporate Command, Eternity Port, or all of the various mods that add new equipment.
» At your option, create your own armor HUD instead of using the one from the Sapphire in the template below. This one can be a bit tricky, but I do have a tutorial on the subject.
To modders who already know what they’re doing: Please don’t add anything like equipment compatibilities, linked weapon systems, or other advanced features to your playership. These are supposed to be simple playerships. …Besides, I may want to make adding nifty enhancements to these playerships the subject of a future Jam. ^.~
Once you have your ship finished, send me a copy of it so I can give it a test drive. If you’re using any of the offered graphics, just PM the XML code to me. If you’re using your own graphics, you’ll have to upload them and send me a link (and I can help with this, if necessary). If you have any questions, ask! That’s what I’m here for. You can either ask here in this thread, via PM, or on IRC — the link is on the main page, and I’m around pretty regularly.
…Oh right, I said I was going to include an XML template. Here ya go:
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TranscendenceExtension
[
<!ENTITY scYourPlayership "0xEDCB0001">
<!ENTITY rsPlayershipImage "0xEDCB0002">
<!ENTITY rsYourLargeImage "0xEDCB0003">
]>
<TranscendenceExtension UNID= "0xEDCB0000" apiVersion= "28" name= "February 2016 Mod Jam" >
<!-- The very first thing you need to define is the Human Space Library for any extension that extends the base game. You’ll always call this unless your extension is has its own libraries. -->
<Library UNID="&unidHumanSpaceLibrary;"/>
<!-- Resource UNIDs just define what image to use - they’re called later on. Use the exact filenames of the image and its mask.-->
<Image UNID="&rsPlayershipImage;" bitmap="PlayershipImage.jpg" bitmask="PlayershipImage_mask.bmp" loadOnUse="true"/>
<Image UNID="&rsYourLargeImage;" bitmap="PlayershipLarge.jpg" bitmask="PlayershipLarge_mask.bmp" loadOnUse="true"/>
<!--
These fields are what make playerships unique. I’ve filled in the fields with the Saphhire-class Yacht’s attributes.
manufacturer= Who manufactured the ship. This doesn’t have any effect in-game.
class= The ship’s class. Defining anything here will have the ship name come out as "x-class type" - eg. Wolfen-class gunship.
type= The type of the ship - eg. "gunship". If "class" is left undefined, then using this field will result in the name of the ship using just this field.
attributes=
characterClass= These two fields are used by adventures to tell which ships they can use. For vanilla, they’ll always be the same.
size= Size of the ship, from head to tail, in meters. Doesn’t have an effect in-game.
mass= The ship’s mass, in tonnes. Playerships are usually 30-150 tonnes. This has some effect on the ship’s inertia.
thrustRatio= Thrust to mass ratio. Determines how fast the ship accelerates.
maxSpeed= The ship’s starting max speed, in percent of light speed. This is usually between 15-25.
cargoSpace= Ship’s base cargo space, in tonnes.
reactorPower= Base reactor power. This is used if you don’t define a reactor in the <devices> section.
fuelCapacity= Reactor fuel capacity. Same as above.
maxArmor= The maximum mass of armour that can be installed on the ship - 1000 = 1 tonne.
maxCargoSpace= Maximum cargo space after being expanded
maxDevices= Maximum amount of devices that can be installed on the ship.
maxWeapons= Define this to limit the amount of weapons that can be installed, like on the EI500 freighter.
maxNonWeapon= Define this to limit the amount of non-weapon devicess that can be installed, like on the Wolfen gunship.
-->
<ShipClass UNID="&scYourPlayership;"
manufacturer= "Zubrin Systems"
class= "Sapphire"
type= "yacht"
attributes= "00200000_PlayerShip"
characterClass= "&unidPilgrimClass;"
size= "31"
mass= "30"
thrustRatio= "6.6"
maxSpeed= "20"
cargoSpace= "50"
reactorPower= "150"
fuelCapacity= "37500"
drivePowerUse= "20"
maxArmor= "6000"
maxCargoSpace= "150"
maxDevices= "8"
>
<!--
Armor
armorID The type of armour the ship starts out with.
count The number of armour segments - eg. the Manticore uses 6 segments, rather than 4.
-->
<Armor
armorID= "&itReactiveArmor;"
count= "4"
/>
<!--
Devices
The devices the ship starts out with.
-->
<Devices>
<Device deviceID="&itRecoillessCannon;"/>
<Device deviceID="&itClass1Deflector;"/>
<Device deviceID="&it15MWReactor;"/>
</Devices>
<!--
Manueverability stats:
maxRotationRate is how fast your ship turns
rotationAccel is how quickly your ship reaches its maxRotationRate
rotationStopAccel is how quickly your ship stops turning
-->
<Maneuver
maxRotationRate= "12.0"
rotationAccel= "3.0"
rotationStopAccel= "12.0"
/>
<!--
Items the ship starts out with in the cargo hold.
"4d6" is a dice roll stat - that means the game will roll a six-sided die four times and add those values to determine how much fuel rods you start out with, in this case. You can substitute that with an integer if you want.
-->
<Items>
<Item count="4d6" item="&itHelium3FuelRod;"/>
</Items>
<!--
Image and Effects
This is where you define the image the ship uses in-game.
imageWidth The width of each frame, in pixels.
imageHeight The height of each frame, in pixels.
rotationcount The number of frames the ship image uses. This will pretty much always be 120.
If your ship image is not a filmstrip-style image, but rather uses several columns, then you need to define rotationcolumns here, too
rotationcolumns= "12"
-->
<Image imageID="&rsPlayershipImage;" imageWidth="72" imageHeight="72" rotationCount="120" rotationcolumns= "12"/>
<!--
Thrust Effects
This can be hard to do if your ship render uses a strange projection or has odd engine placement.
type Type of thrust effect. Don’t worry too much about this one.
posangle An angle measured from a forward-facing bearing that indicates how the engine effect faces.
posradius A line, measured in pixels, drawn from the center of the ship, that places where the thrust effect is.
posZ The "height" of the image effect. You don’t need to worry too much about this, but you can experiment with positive and negative integers here.
rotation The rotation of the engine effect. 180 means it’s facing directly away from the back of the ship.
-->
<Effects>
<Effect type="thrustMain" posAngle="180" posRadius="7" posZ="0" rotation="180"/>
</Effects>
<!--
AI and Behavior
This effects how NPCs handle the ship, and how it appears on the intro screen. No need to worry too much about this.
-->
<AISettings
fireRateAdj= "30"
fireAccuracy= "90"
perception= "4"
/>
<!--
desc= Description of the ship, for the ship select screen.
largeImage= The large image, for ship select.
initialClass= Don’t worry too much about this.
startingCredits= The credits the ship starts out with. Works as a dice roll or integer.
-->
<PlayerSettings
desc= "The versatile Sapphire yacht strikes a good balance between a gunship and a freighter."
largeImage= "&rsYourLargeImage;"
initialClass= "true"
startingCredits= "10d100+1500"
>
<!--
HUD Elements
I won’t touch too much on these here.
-->
<ArmorDisplay>
<ShipImage imageID="&rsArmorHUDShip_Sapphire;" imageWidth="136" imageHeight="136"/>
<ArmorSection name="forward"
segment="0"
imageID="&rsZubrinArmor;"
imageX="0" imageY="0" imageWidth="52" imageHeight="29"
destX="42" destY="15" hpX="55" hpY="14"
nameY="8" nameBreakWidth="200" nameDestX="0" nameDestY="10" />
<ArmorSection name="starboard"
segment="3"
imageID="&rsZubrinArmor;"
imageX="52" imageY="0" imageWidth="22" imageHeight="59"
destX="92" destY="45" hpX="95" hpY="60"
nameY="30" nameBreakWidth="360" nameDestX="12" nameDestY="0" />
<ArmorSection name="port"
segment="1"
imageID="&rsZubrinArmor;"
imageX="142" imageY="0" imageWidth="22" imageHeight="59"
destX="22" destY="45" hpX="15" hpY="60"
nameY="52" nameBreakWidth="200" nameDestX="0" nameDestY="8" />
<ArmorSection name="aft"
segment="2"
imageID="&rsZubrinArmor;"
imageX="74" imageY="0" imageWidth="68" imageHeight="14"
destX="34" destY="103" hpX="55" hpY="105"
nameY="74" nameBreakWidth="360" nameDestX="12" nameDestY="0" />
</ArmorDisplay>
<ShieldDisplay shieldLevelEffect="&efShieldHUDDefault;">
</ShieldDisplay>
<ReactorDisplay>
<Image imageID="&rsZubrinReactor;"
imageX="0" imageY="0" imageWidth="256" imageHeight="60"/>
<PowerLevelImage imageID="&rsZubrinReactor;"
imageX="0" imageY="60" imageWidth="202" imageHeight="14"
destX="54" destY="9"/>
<FuelLevelImage imageID="&rsZubrinReactor;"
imageX="0" imageY="74" imageWidth="194" imageHeight="14"
destX="54" destY="37"/>
<FuelLowLevelImage imageID="&rsZubrinReactor;"
imageX="0" imageY="88" imageWidth="194" imageHeight="14"/>
<ReactorText x="62" y="22" width="154" height="14"/>
<PowerLevelText x="62" y="0" width="154" height="9"/>
<FuelLevelText x="62" y="51" width="154" height="9"/>
</ReactorDisplay>
<WeaponDisplay>
<Image imageID="&rsZubrinTargeting;" imageX="0" imageY="0" imageWidth="360" imageHeight="120"/>
</WeaponDisplay>
</PlayerSettings>
</ShipClass>
</TranscendenceExtension>
Ships chosen so far:
» Row 1, Column 3 (green with brown wings): Shrike
» Row 2, Column 4 (“thin silver ship”): relanat
» Row 3, Column 3 (“purple dream machine”): gunship256
» Row 3, Column 5 (“flying cargo hold”): Kacy
» Row 4, Column 1 (“liquid-fuel-tank-with-bracings”): Astraltor
» Row 4, Column 2 ("the base killer with two guns"): Artemisfowl333
» Row 4, Column 5 (black and grey with two engines): IronParrot
Submission status:
» Artemisfowl333 — Complete
» AssumedPseudonym — Complete
» Astraltor — Complete
» gunship256 — Complete
» IronParrot — Complete
» Kacy — Complete
» relanat — Complete
» Shrike — Complete
» Xephyr — Complete