Important Message

You are browsing the archived Lancers Reactor forums. You cannot register or login.
The content may be outdated and links may not be functional.


To get the latest in Freelancer news, mods, modding and downloads, go to
The-Starport

Important (!) [Archetype findings

The general place to discuss MOD''ing Freelancer!

Post Mon Aug 30, 2004 5:26 am

Important (!) [Archetype findings

Gang, I've registered here just for posting this.

While doing some boredom-driven .ini-surfing in my FL directory, I stumbled across this:

[Archetype
ship = rh_elite
ship = rh_gunboat
solar = depot

A quick search in the forums revealed that nobody knows something definite about this, except that this block is only present in systems where SP-missions take place, and to just ignore it.

But to me it was obvious that this is kind of a preload-list, used to cache data that might become useful. And almost immediately I asked myself; "What if we start actually using this?"

Well, took me some minutes to collect a list of the most common archetypes, including all ships, all engine and weapon sounds, some solars and even more sounds. The result looked like this:

***moved to next post, because message was too long***


Took me some more minutes then to inject this into every system.ini (UltraEdit's "replace in files" was a REAL time-saver here )

And now, after playing through the SP-campaign for the Nth time, and doing some freelancing inbetween and afterwards, I can say the result of said modification ist just AMAZING :
There is NO noticeable disk-activity except for when systems initialize or some speech kicks in; the annoying "3-second-freeze" when leaving tradelanes or an NPC convoy is about to zap in is GONE; and it helps A LOT in smoothing out Battleship-Encounters(TM).

Memory usage increases by about 50 MB, but (a) this list can be condensed somewhat to save memory, and (b) given the fact that even I with an uber-l33t 5$-per-hour-job can afford half a GB Ram in my machine, I believe that additional memory cost in this range is not an issue.

Next on my list is caching the most common voices to reduce disk-lag even more.


Hope this helps.

Edited by - bitterMan on 8/30/2004 6:32:38 AM

Post Mon Aug 30, 2004 5:28 am

Here's my current archetype-caching list:

[Archetype
ship = bh_elite
ship = bh_elite2
ship = bh_fighter
ship = br_battleship
ship = br_destroyer
ship = br_elite
ship = br_fighter
ship = br_freighter
ship = br_gunboat
ship = bw_elite
ship = bw_elite2
ship = bw_fighter
ship = bw_freighter
ship = co_elite
ship = co_elite2
ship = co_fighter
ship = ge_armored
ship = ge_csv
ship = ge_fighter
ship = ge_fighter2
ship = ge_fighter4
ship = ge_fighter5
ship = ge_fighter6
ship = ge_large_train
ship = ge_large_transport
ship = ge_lifter
ship = ge_liner
ship = ge_miner
ship = ge_prison
ship = ge_repair
ship = ge_train
ship = ge_transport
ship = ku_battleship
ship = ku_destroyer
ship = ku_dragon
ship = ku_elite
ship = ku_fighter
ship = ku_freighter
ship = ku_gunboat
ship = li_cruiser
ship = li_dreadnought
ship = li_elite
ship = li_elite2
ship = li_fighter
ship = li_freighter
ship = no_fighter
ship = no_gunboat
ship = or_elite
ship = or_osiris
ship = pi_elite
ship = pi_fighter
ship = pi_freighter
ship = rh_battleship
ship = rh_cruiser
ship = rh_elite
ship = rh_fighter
ship = rh_freighter
ship = rh_gunboat
snd = asteroid_explosion
snd = atmospheric_buffeting
snd = by_no_torpedo
snd = cargo_doors_close
snd = cargo_doors_open
snd = cargo_jettison
snd = childexplosion4
snd = chomp1
snd = chomp2
snd = chomp3
snd = cloak_no_battleship
snd = cloak_no_fighter
snd = cloak_no_fighter_srtc
snd = cloak_no_gunboat
snd = cloak_osiris
snd = cloak_rh_battleship
snd = cloak_rh_cruiser
snd = cloak_rh_fighter
snd = cloak_rh_gunboat
snd = conveyor
snd = conveyor_operating
snd = cruise_backfire
snd = cruise_disrupt
snd = csx_flash01
snd = csx_large01
snd = csx_large02
snd = csx_large03
snd = csx_large04
snd = csx_large05
snd = csx_monster01
snd = csx_sectional01
snd = csx_sectional02
snd = csx_sectional03
snd = csx_sectional04
snd = csx_sectional05
snd = debris_explosion1
snd = debris_explosion2
snd = debris_explosion3
snd = debris_explosion4
snd = depot_close_sound
snd = depot_open_sound
snd = depot_wallah
snd = depot_wallah_srtc
snd = door_hangar_close
snd = door_hangar_open
snd = door_medium_close
snd = door_medium_open
snd = engine_br_cruise_loop
snd = engine_br_cruise_start
snd = engine_br_cruise_stop
snd = engine_br_fighter_kill
snd = engine_br_fighter_loop
snd = engine_br_fighter_start
snd = engine_br_freighter_kill
snd = engine_br_freighter_loop
snd = engine_br_freighter_start
snd = engine_br_large
snd = engine_br_small
snd = engine_bw_cruise_loop
snd = engine_bw_cruise_start
snd = engine_bw_cruise_stop
snd = engine_bw_fighter_kill
snd = engine_bw_fighter_loop
snd = engine_bw_fighter_start
snd = engine_bw_freighter_kill
snd = engine_bw_freighter_loop
snd = engine_bw_freighter_start
snd = engine_ci_cruise_loop
snd = engine_ci_cruise_start
snd = engine_ci_cruise_stop
snd = engine_ci_fighter_kill
snd = engine_ci_fighter_loop
snd = engine_ci_fighter_start
snd = engine_ci_freighter_kill
snd = engine_ci_freighter_loop
snd = engine_ci_freighter_start
snd = engine_ku_cruise_loop
snd = engine_ku_cruise_start
snd = engine_ku_cruise_stop
snd = engine_ku_fighter_kill
snd = engine_ku_fighter_loop
snd = engine_ku_fighter_start
snd = engine_ku_freighter_kill
snd = engine_ku_freighter_loop
snd = engine_ku_freighter_start
snd = engine_ku_small
snd = engine_li_cruise_loop
snd = engine_li_cruise_start
snd = engine_li_cruise_stop
snd = engine_li_fighter_kill
snd = engine_li_fighter_loop
snd = engine_li_fighter_start
snd = engine_li_freighter_kill
snd = engine_li_freighter_loop
snd = engine_li_freighter_start
snd = engine_li_medium
snd = engine_li_small
snd = engine_nd_small
snd = engine_no_cruise_loop
snd = engine_no_cruise_start
snd = engine_no_cruise_stop
snd = engine_no_loop
snd = engine_no_medium
snd = engine_oe_h_fighter_kill
snd = engine_oe_h_fighter_loop
snd = engine_oe_h_fighter_start
snd = engine_pi_fighter_kill
snd = engine_pi_fighter_loop
snd = engine_pi_fighter_start
snd = engine_pi_freighter_kill
snd = engine_pi_freighter_loop
snd = engine_pi_freighter_start
snd = engine_playership
snd = engine_playership_kill
snd = engine_playership_land
snd = engine_playership_land_rumble
snd = engine_playership_land_turbine
snd = engine_playership_launch
snd = engine_playership_launch_rumble
snd = engine_playership_launch_turbine
snd = engine_playership_rumble
snd = engine_playership_start
snd = engine_rh_cruise_loop
snd = engine_rh_cruise_start
snd = engine_rh_cruise_stop
snd = engine_rh_fighter_kill
snd = engine_rh_fighter_loop
snd = engine_rh_fighter_start
snd = engine_rh_freighter_kill
snd = engine_rh_freighter_loop
snd = engine_rh_freighter_start
snd = engine_rh_medium
snd = engine_rh_small
snd = engine_thruster
snd = exhaust
snd = exterior_thruster_sound
snd = fire_capship
snd = fire_capship_forward_gun
snd = fire_countermeasure
snd = fire_cruise_disruptor
snd = fire_dry
snd = fire_laser1
snd = fire_laser2
snd = fire_laser3
snd = fire_laser4
snd = fire_laser5
snd = fire_mine_regular
snd = fire_mine_tracking
snd = fire_missile_emp
snd = fire_missile_homing
snd = fire_missile_regular
snd = fire_neutron1
snd = fire_neutron2
snd = fire_neutron3
snd = fire_neutron4
snd = fire_neutron5
snd = fire_no1
snd = fire_no_capship
snd = fire_no_cruise_disruptor
snd = fire_no_torpedo
snd = fire_particle1
snd = fire_particle2
snd = fire_particle3
snd = fire_particle4
snd = fire_particle5
snd = fire_photon1
snd = fire_photon2
snd = fire_photon3
snd = fire_photon4
snd = fire_photon5
snd = fire_plasma1
snd = fire_plasma2
snd = fire_plasma3
snd = fire_plasma4
snd = fire_plasma5
snd = fire_pulse1
snd = fire_pulse2
snd = fire_pulse3
snd = fire_pulse4
snd = fire_pulse5
snd = fire_tachyon1
snd = fire_tachyon2
snd = fire_tachyon3
snd = fire_tachyon4
snd = fire_tachyon5
snd = fire_torpedo
snd = gate_close_sound
snd = gate_open_sound
snd = ge_s_thruster_01
snd = ge_s_thruster_02
snd = ge_s_thruster_03
snd = ge_s_thruster_04
snd = hanger_doors_closing
snd = hanger_doors_opening
snd = hh_large_heavy01
snd = hh_large_heavy02
snd = hh_large_heavy03
snd = hh_large_light01
snd = hh_large_light02
snd = hh_large_light03
snd = hh_large_medium01
snd = hh_large_medium02
snd = hh_large_medium03
snd = hh_nomad_heavy01
snd = hh_nomad_heavy02
snd = hh_nomad_heavy03
snd = hh_nomad_light01
snd = hh_nomad_light02
snd = hh_nomad_light03
snd = hh_nomad_medium01
snd = hh_nomad_medium02
snd = hh_nomad_medium03
snd = hh_rock_heavy01
snd = hh_rock_heavy02
snd = hh_rock_heavy03
snd = hh_rock_light01
snd = hh_rock_light02
snd = hh_rock_light03
snd = hh_rock_medium01
snd = hh_rock_medium02
snd = hh_rock_medium03
snd = hh_small_heavy01
snd = hh_small_heavy02
snd = hh_small_heavy03
snd = hh_small_light01
snd = hh_small_light02
snd = hh_small_light03
snd = hh_small_medium01
snd = hh_small_medium02
snd = hh_small_medium03
snd = hum_tl_pulse
snd = hum_tl_ring
snd = interior_thruster_sound
snd = jump_flight
snd = jump_in
snd = jump_out
snd = jump_out_traumatic
snd = l_missile_launch
snd = med_explosion1
snd = med_explosion2
snd = med_explosion3
snd = med_explosion4
snd = null
snd = object_on_fire01
snd = object_on_fire02
snd = on_fire_loop
snd = outpost_wallah
snd = proj_ast_coll
snd = r_missile_launch
snd = ring_close_sound
snd = ring_open_sound
snd = rtc_engine_li_fighter_loop
snd = rtc_engine_rh_small
snd = rtc_exterior_thruster_sound
snd = rtc_rumble_cruiser
snd = rtc_rumble_destroyer
snd = rumble_battleship
snd = rumble_bw_fighter
snd = rumble_bw_freighter
snd = rumble_bw_h_fighter
snd = rumble_ci_fighter
snd = rumble_ci_h_fighter
snd = rumble_cruiser
snd = rumble_destroyer
snd = rumble_fighter
snd = rumble_fp7_lifepod
snd = rumble_freighter
snd = rumble_gas_collector
snd = rumble_gas_miner
snd = rumble_gunboat
snd = rumble_h_fighter
snd = rumble_lifter
snd = rumble_liner
snd = rumble_manufac_platform
snd = rumble_miner
snd = rumble_nomad
snd = rumble_oe_h_fighter
snd = rumble_pi_fighter
snd = rumble_pi_freighter
snd = rumble_pi_h_fighter
snd = rumble_shipyard
snd = rumble_solar_large
snd = rumble_solar_medium
snd = rumble_solar_plant
snd = rumble_solar_small
snd = rumble_station_large
snd = rumble_station_small
snd = rumble_trading_depot
snd = rumble_trading_outpost
snd = rumble_transport
snd = rumble_utility_small
snd = sever_debris
snd = sh_br01
snd = sh_br02
snd = sh_br03
snd = sh_bw01
snd = sh_bw02
snd = sh_bw03
snd = sh_ci01
snd = sh_ci02
snd = sh_ci03
snd = sh_ku01
snd = sh_ku02
snd = sh_ku03
snd = sh_li01
snd = sh_li02
snd = sh_li03
snd = sh_no01
snd = sh_no02
snd = sh_no03
snd = sh_rh01
snd = sh_rh02
snd = sh_rh03
snd = shield_offline
snd = shield_rebuilt
snd = ship_levitation
snd = thunder
snd = tl_disrupt
snd = tl_enter
snd = tl_leave_successful
snd = tl_leave_traumatic
snd = tl_regenerate
snd = tl_ring_whoosh
snd = tl_wind_ext
snd = tl_wind_int
snd = tractor_complete
snd = tractor_interrupted
snd = tractor_loot_grabbed
snd = tractor_operating
snd = turret_doors_close
snd = turret_doors_open

Put this into every system's main .ini file and don't forget to close the [archetype bracket. Take note there's systems where the [archetype block is already present, just append the above list in that block.

Version history:

0.1 initial list (ships, solars, ship sounds, engine sounds, weapon sounds, rumble sounds, various impact sounds, dockring and jumpgate sounds)
0.2 removed solars
0.3 *all* sounds but voices and music/ambience now cached, list sorted

Edited by - bitterMan on 9/3/2004 7:46:28 AM

Post Mon Aug 30, 2004 7:04 am

This is very.....very..............very very very very very very VERY VERY interesting! Thanks for the share

Post Mon Aug 30, 2004 8:29 am

Wow, this is a great discovery.

Post Mon Aug 30, 2004 8:35 am

Very good stuff. That lil bit of memory increase doesnt really hurt.
tnx, very good find!

Fjord

---------------------------------
Excelcia Mod Leading Developer

Post Mon Aug 30, 2004 10:30 am

Yes, the [archetype settings do load up a sort of "cache" for the archetypes of ships, solars, projectiles, etc. I have been fooling around with them for the past couple of weeks because I found that those archetype settings can severly mess up some custom ships. I noticed that when I had all the archetypes in there, the the system took about 10 times as long to load up. My machine is pretty fast, so everything has always ran smoothly for me anyways. From what it looks like though, those archtype settings are all client side, and don't effect the server performance at all. With a fast machine, caching those archetypes doesn't seem to make too much of a difference in performance, just takes longer to load up the system. . .

Post Mon Aug 30, 2004 11:27 am

Surely it would affect a server though, being the fact that the NPC's are server side - hence remove population from a system on the server, regardless of what the player files say, there will be no npcs for them. That way, it must load on a server - as well as the player having to "call" the archetypes from their side, the server will have to anyways as well?

Whether it would make a slightest bit of difference would be interesting - as would how much mem the server would use if it did this for 10 systems due to having players in those ten systems.

Post Tue Aug 31, 2004 9:40 am

The server calls the NPC's, but not the archetypes. Or, I guess I should say the server doesn't call up the textures in the cmp files. That's what the [Archetype setting at the beggining of the system ini file does (for ships and solars, obviously not for sounds), it loads up the textures into memory. The server does not do this at all. That's why players can have different "skins" on their ships, but no one else on the server will see those custom skins, it's all client side.

Post Tue Aug 31, 2004 11:03 am

I woulda thought the models would require preloading - not the skins.

Oh well - cheers

Post Tue Aug 31, 2004 11:16 am

So you put this in the system ini?

--------------------------------
Leader of the Republic Mod Team.
"Criminal Organisations don't just spring up overnight. It's a conspiracy" - overheard on a a Liberty comm frequency

Post Tue Aug 31, 2004 6:41 pm

Yeah. Just look at %FLDIR%/data/universe/systems/li01/li01.ini, there's already a quite lengthy archetype block present. Just append there, no need to care about the same lines multiple times: the vanilla Li02.ini has two rh_elite entries and it doesn't show silly results

UPDATE: I believe the solars are not needed, 'cause they are considered "static" objects and are already loaded during initialization, removed them from the list.


HTH, bM.

Post Wed Sep 01, 2004 9:45 am

Ok, so let me get this straight: by adding these ship entries into the system ini file, the game runs quicker?
So, if we were to put BASE entries in, would that make it even quicker? i.e. archtype = depot (or whatever)?

--------------------------------
Leader of the Republic Mod Team.
"Criminal Organisations don't just spring up overnight. It's a conspiracy" - overheard on a a Liberty comm frequency

Post Thu Sep 02, 2004 5:13 am

It doesn't run any faster. But. Harddisk-activity while in flight is reduced, or moved to when you enter the system, so to say. Initialization of systems actually takes longer, but you don't get as much disk-lag (I'd call it 'micro-freezes') when flying through the system. Leads to a more smooth gameplay.

I believe caching solars (bases, planets) has no effect, as they are already defined in the system's .ini.


UPDATE: Ho hum, caching voices is NOT realistic. I've compiled a list of the NPC pilot's chatter, 16123 items long. Yes, sixteen thousand
Li01.ini grew to about 1 MB size. When entering NY, my machine swapped itself to death in a matter of seconds


HTH, bM.

Post Thu Sep 02, 2004 7:11 am

So if I put JUST the archtypes of ships we KNOW are in the system, it takes up only a tiny bit more disk space and should work as wlel as having all of them there.

--------------------------------
Leader of the Republic Mod Team.
"Criminal Organisations don't just spring up overnight. It's a conspiracy" - overheard on a a Liberty comm frequency

Return to Freelancer General Editing Forum