Snowball effect

April 12, 2009

As per usual with these sort of things, it started out as a simple render which turned into a simple animation and then turned into a short animation. Things are chugging along, and I now have about 26 seconds of footage, and music to put it all together with. It’s going to take a while for sure, as I’m going to have to do things that I really don’t have an effective way of doing. However the same could have been said about the clouds featured in the video. Not to mention the sheer length of the final video just means there is a whole lot of work that needs to get done. 

I had wanted to do something planetside because it would be fun to have more stuff around the models. The trouble wasn’t so much the terrain. The hardest part of terrain is finding a suitable source image. The real trouble is with the clouds. After some thought I figured out an efficient system of generating clouds. It’s very light on the render engine. Most frames won’t take longer than 15 seconds to render, and looks well enough for my purposes. I’ll keep updates on what’s going on with the video. For the time being, here are a couple stills from it. 


I ship Ace Combat/Everything

April 11, 2009

A great many things I do tend to be inspired by Ace Combat, and this is no different. I was watching the Ace Combat Zero intro movie and decided to do a sort of melding of the two universes. 

First thing first, I needed missiles. I imported all the missiles from Freelancer into Lightwave. It’s actually pretty interesting to note that although Freelancer only uses one missile model and one torpedo model, each house actually has its own variant of missile, torpedo, and launcher. However even if they were ingame, you would never be able to tell, as the missiles had to be small enough to fit into their appropriate launchers. I actually did not even realise that missiles had a physical model at all until I resized them during the development of Itano Circus. 

The missiles pictured above are modified and resized versions of the vanilla Freelancer missiles. The fuel tank looking thing to the left and right of center are new. I don’t have any immediate use for these armaments as I am only using two of them at the moment, but it’s good to have. 

The Defender model itself has also been slightly modified to add hardpoints so that the missiles can specifically attach to something on the hull rather than just float there like I tend to usually do. 

Update 1: The Dagger is going to be the bad guy. Ingame, the Dagger is a light fighter, so its armament is a little lighter. I imagine it would a short range rapid response fighter similar to the MiG-29, so I’ve given it an external fuel tank. 


Thoughts on Capital Ships in Freelancer

April 10, 2009

A lot of Freelancer mods try to incorporate capital ships into regular play. Obviously, Freelancer was never intended to have flyable capital ships. Because of this, it is very difficult to implement capital ships in a manner that is both natural and balanced.

Each mod takes a different approach to capital ships. Some go for the “realistic” route, where the bigger the ship the more armor and guns it has. Others try to give the ships specific roles and make them specialized. 

In terms of creating a mod that is overall balanced, and not dominated by any one ship, the latter option is the only option. 

 If you make the ships better the bigger they get (which is fairly realistic), then I can guarantee you that the entire game will turn into one huge capital ship brawl when it comes down to competitive combat, with the victor being decided by who has bigger ships. Many mods try to balance this out by making the ships expensive, but this is never a solution. Cost will only delay the inevitable, not restrict capital ships. 

If I were making a mod, I want the entire game to be balanced with itself in such a way that fighter pilots don’t become obsolete, and capital ships don’t become the be-all end-all to the game that realistically they would be. It’s all about roles. Every ship class must have a specified role and purpose, and you cannot keep the fighter world separated from the capital world. They exist in the same game, and they must also be balanced against each other. 

For practical application, this is what I would do for capital ships. I am using generic names because I really don’t care what you want to call the classes, its just a name. 

Fighter Craft:

Light Fighters – These guys are the air superiority, they are best at killing fighters, but are useless against capitals, and also likely too quick to be hit by most capitals as well.

Fighters – These are all around ships. They have no real specialty, but they are decent at performing both the anti-capital and anti-fighter role. Jack of all trades, master of none.

Bombers – These are dedicated anti-capital ships. When a capital ship needs to go down, this is what you send in. However it must be careful of anti-fighter capitals and fighters.

Small Capitals:

Anti-Fighter – Small capital specifically designed for killing fighters. Decent armor, but stands no chance against capital ships with anti-capital weaponry.

Light Anti-Capital – Small capital specifically designed for taking out capital ships. Have awful fighter defense, a couple bombers could knock one out easy. However they are the best capital-ship solution for taking out other small capitals.

General Purpose – Small capital equivalent to the Fighter. It is not specifically good at one particular thing, rather it is decent at all roles. A specialized capital would perform far better, but lack versatility of the General Purpose.

Large Capitals:

Heavy Anti-Capital – Large capital ship with incredibly thick armor. Almost entirely devoid of fighter defense. However it will steamroll any other capital ship that comes its way.

Examples: 

Fighter – Counters are light fighter, anti fighter small capital, general purpose small capital.
General Purpose Small Capital – Counters are light anti capital, heavy anti-capital, bombers to some extent.
Heavy Anti-Capital – Counters are heavy anti-capital and bombers. Bombers can easily kill a heavy anti-capital as it lacks a reliable anti-fighter defense.

With the above setup, the entire game as a whole is balanced. Each ship has a role, purpose, and at least two counters. You must be tactical with your fleet composition and attacks. You need to assign priority targets to create a weakness in their fleet, and then exploit it. 

This also creates a meta-game. A game outside of the game itself. Outside of how you will tactically perform in battles, you must consider strategically what your opponent is going to field, and then field counters to his fleet. 

Using something like this, the ideal, general purpose fleet will be a balanced mixed of Fighter class, Small Capital class, and Large Capital class. Each class and subclass has specific roles and weaknesses that must be complemented by ships of other classes. 

I went back and forth with another Freeworlds developer on this, as he tried to produce fleets that would be uncounterable, and initially, I thought he had produced the dreaded broken fleet. However when I sat down and thought about it, every fleet has a counter. The more you try to emphasize one or two of the class types, the bigger a weakness you are creating for yourself. In the end, the only way to create a fleet that does not have an exploitable weakness, is to have one that is thoroughly balanced with all class types represented and supporting each other.


Guide to Duplicating Effects

April 8, 2009

So I figure I will try to put stuff that is vaguely useful. Protips of Freelancer modding I suppose. First off is this ALE effect tutorial. I wrote it on Starport, but it tends to get lost. It should be easy to find here. 

Why’s Guide to Duplicating Effects!

Duplicating effects is one of the most important things an effects modder needs to do as it is always the first step to creating a separate, new ALE. It took me a long while to figure out the full process, but I know it now, and here goes. 

First off, pick your effect. For this tutorial I will use the ku_missile02_drive.

First things first, extract the ku_missile02.ale from FX. ALE files actually tend to contain multiple effects, so you will typically not find exactly the effect name you are looking for, but something very close. 

With the ALE extracted, you now have two files. The ANL, and AEL. The AEL is your structure file. This defines what your components are, and their orders. I recommend you do not touch these numbers, as it is very easy to screw the entire effect up. What we are interested in though is duplicating the effect. You can mess around all you want later. For my example, I am going to make an effect called gf_supermissile02_drive. 

Open up the AEL first. Simplest way, replace (Ctrl-H in Notepad) all references of ku_missile02 with gf_supermissile02_drive. Here’s an example of a couple lines. 

____________________________________________________________________

Type = Layer0
[Section]
; ==> 1

Effect_Name = ku_missile02_drive

ULParams = 0, 0, 1

; *** Param #1
ANL_Nickname = Main_Node ; 0xEE223B51 3995220817
Parent = NULL
FX_Slot = 1
Slot_Flag = 0
; *** Param #2
ANL_Nickname = ku_missile02_drivethrust#1 ; 0xFF03EA94 4278446740
Parent = NULL
FX_Slot = 3
Slot_Flag = 0

____________________________________________________________________

And here is after.

____________________________________________________________________

Type = Layer0
[Section]
; ==> 1

Effect_Name = gf_supermissile02_drive

ULParams = 0, 0, 1

; *** Param #1
ANL_Nickname = Main_Node ; 0xEE223B51 3995220817
Parent = NULL
FX_Slot = 1
Slot_Flag = 0
; *** Param #2
ANL_Nickname = gf_supermissile02_drivethrust#1 ; 0xFF03EA94 4278446740
Parent = NULL
FX_Slot = 3
Slot_Flag = 0

____________________________________________________________________

Simple enough. Now do the same for the ANL. Simply replace all references to ku_missile02 with gf_supermissile02.

Pack up the files using hte ALE editor to create your TALE. Simply rename this to ALE  and you are good to go. Plop your ALE into whatever relevant folder, in my case, this would be the DATA\FX\WEAPONS folder. 

Not done yet! You have an ALE and effect, but the game does not know how to use it. So open up the relevant folder’s ini. In my case, this would be DATA\FX\WEAPONS\weapons_ale.ini. In this file is a list of all effects and their associated ALEs. Since I copied the ku_missile02_drive, I will find the entry for ku_missile02_drive, and duplicate it.

____________________________________________________________________

[VisEffect]
nickname = ku_missile02_drive
alchemy = fx\weapons\ku_missile02.ale
effect_crc = 81439903
textures = fx\smoke.txm
textures = fx\planetflare.txm
textures = fx\sarma.txm

____________________________________________________________________

And this then becomes…

____________________________________________________________________

[VisEffect]
nickname = gf_supermissile02_drive
alchemy = fx\weapons\gf_supermissile02.ale
effect_crc = 
3980468032
textures = fx\smoke.txm
textures = fx\planetflare.txm
textures = fx\sarma.txm

____________________________________________________________________

DO NOT FORGET THE EFFECT CRC. This is extremely important and easy to miss. Using the CRC and Hash code generator that you can find on Digital Brilliance, you must generate a CRC value for your effect. Copy and paste the name of your effect, not ALE, into the CRC generator. Then copy and paste the second value that appears in either the Unsigned CRC (highlighted in red) fields

Ok, so now we have a visible effect. The game still doesn’t know how to use it yet though. Now we need to go the general effects.ini which is found in DATA\FX\effects.ini. As before, I find the entry of the effect I duplicated and then copy and paste it, then change the name to match my stuff. 

____________________________________________________________________

[Effect]
nickname = ku_missile02_drive
effect_type = EFT_MISSILE_DRIVE
vis_effect = ku_missile02_drive
vis_generic = min_missile01_drive

____________________________________________________________________

Becomes…

____________________________________________________________________

[Effect]
nickname = gf_supermissile02_drive
effect_type = EFT_MISSILE_DRIVE
vis_effect = gf_supermissile02_drive
vis_generic = min_missile01_drive

____________________________________________________________________

And that should be all. From there, Freelancer should recognize your newly duplicated effect. Use the effect on whatever you need it to by calling it like you would any other effect.