Slick2d Final war 3

Hi,
I’ve been working on this game for several years.
Final war 3 is a sequel in a row of topdown starship combat games. Final war 2 was quite popular and one day I decided that I would like to remake it so it is even better and runnable on modern day computers. Also I wanted to add plenty of cool features I had in mind. So I started working on FW3.
My goal was to reuse all what was working in FW2 and build on top of it.
Now I realized, that I am not really sure when I will be able to finish FW3 with original stand alone content. And I think it is about time to make the game available at least in the state it is. So I will make the current version freely available as open beta with the Star Trek mod.
And I will continue with the development further to the best of my abilities. Maybe driven by the players requests for features.

fw3 0.64 ST RC02.zip

Here is a trailer :

Hi,

I tried your game. It looks impressive. You put a lot of work into it. Did you work alone on it?
I would like to play with some random people over the world, is there any working public server?

I have problems to figure out the controls, can you help me in this?

Hi,
thanks.
Ad coding - yes, I am working alone on that. That’s why it is taking so long to progress.
Ad public server - no. Sadly I do not currently have support for any dedicated server. As exaggerated as my original scope was, dedicated server was not on the list of features :slight_smile: But I might try and do one in future. Currently it is only possible to play via some VPN/tunelling service e.g. LogMeIn (hamachi) or someone has to have public IP.
Ad controls - check the readme.txt file in the main folder. Is there something in particular, what does not work for you, or you could not figure ? Maybe I forgot something or there is something not very well described in the readme file…

Yes, everything is well described.
However, when I want shoot by pressing e.g C key (must it be upper case?), shoots are very rare and not exacly at the time I want it.
What to do to shoot every time I press the key?

No, upper/lower case does not matter.
I suppose there could be multiple issues. The controls are described, but the game mechanics not - I have to write it down somehow.
So to lighten things up a bit - every weapon has a loading time, firing arc and range. The loading time of “primary” weapons is usually between 6-12 seconds. But for secondary (torpedoes - usually under key “C”) is typically 20 or 40 seconds. So that might be one reason of not firing.
The status of loading is displayed on tactical panel in the bottom right corner - but not all ships are finished yet, so some of them lack this display.
The firing arc and range - the weapon will fire only, if the target is within firing arc and within range.
Most weapons also have “chambers” - which basically means how many rounds are loading at the same time. So you can load up e.g. 3 torpedoes simultaneously in 20 seconds, and then fire them one by one within one second.
All together could cause some confusion.

So - it will NOT fire everytime you press the key.
It will fire if you press the key, the weapon is loaded/charged and the target is in firing arc and in range.

Or - having all this info - does it still seem to you, that it does not fire as it should ? If yes, what ship are you flying ?

Thanks for explanations.
Now I understand it better.
I tried several ships, but most of the time I was using Galor CL-CC or Akira CA-FS and at the beginning it was rather random choice:).
The problem is when the game starts, a lot of things are going on. Then I want to fire because I’ve noticed an enemy ship but nothing happens.
Is there any description about weapons and their damages, range, firing rate etc. ?

Here are some guidelines on how to play the game and understand the mechanics. First the bacis, then some advanced controls.

Fundamental game basics :
FLIGHT CONTROLS :
To move your ship, use numpad :
8 - accelerate
2 - decelerate
4 and 6 - turn
5 - full stop

CAMERA AND HUD CONTROLS :
Esential keys to control the game are camera related :
1 and 2 zoom in and out
3 autozoom camera (on/off)

TARGETING :
FW3 is “target oriented” game. To be able to fire any weapon at all, you must have a target locked.
T next target
N nearest target

FIRE CONTROLS :
Most ships has weapons and these are divided into groups. Mostly into 2 or 3. You control each group by following keys (from group 1 to group 3) :
A S D for volleys (shot from every possible weapon in that group)
Y X C for single shots (one shot, not necessarily supported by all weapons, some are linked and only allow volley fire)
Q W E munition/settings switching (some ships has different settings or types of munition available)
More info on how weapons work follows below.

SHIELDS :
arrow keys - shield reinforcements from battery (500TJ per usage) - you can manually reinforce target shield with energy from your battery (if you have enough). In such case, 500 TJ is moved from battery to selected shield. This process can not be reversed.

OTHERS :
TAB chat
F10 screenshot
Esc - quit game

HUD DESCRIPTION
[url=http://finalwar3.com/screenshots/ScreenShot-10-06-2017-16-56-53.png]


[/url]

Some details available when pressing F3
[url=http://finalwar3.com/screenshots/ScreenShot-10-06-2017-17-30-07.png]


[/url]

SUBSYSTEMS :
Your ship has some primary and secondary subsystems.
Primary are engines, weapons and shields.
Secondary are secondary engines (FTL), battery, tractor beam, sensors, cloaking device.

Primary :
ENGINES :
Engines are quite simple system. They move your ship. Ships have limited max speed, acceleration, turning speed (these vary from ship to ship). Parameters can be affected slightly by energy allocation (see energy management). When engines are damaged, it will affect their performance.

SHIELDS :
Every ship has 4 shields segments. Each segment is independent and has some basic power (e.g. 7000 TJ). Shields protect ship from incoming fire. When they are depleted, damage will go into your armor and hull.
In addition to overall strength, shields also has “immediate capacity” which is usually 25% of the total value. If the shield takes more damage over short period of time it will collapse for few seconds, even though the total strength is higher than 0 and damage will leak through.
Shields recharge slowly overtime (depending on allocated energy). And they can be reinforced by energy from battery.

WEAPONS :
Weapons can be divided into two main types : beam and projectile. In general, each weapon has a recharge (loading) time, range, firing arc and of course power. Reloading time and range depend on weapon type. Firing arc and power depend on the exact weapon on the ship.

BEAM :
These are direct energy weapons. Typically primary weapons on ships - weapon group 1. Their common reload time is 12 seconds and range around 6km. Firing arc vary from 45° to 270° or even 360°. Usual power varies between 300 TJ and 1000 TJ. Ships usually have 1-4 beam weapons. 

PROJECTILE : 
Projectile weapons usually do have "chambers". Meaning that the are loading more than one shot at the same time. So a ship with a torpedo launcher with 4 chambers can load 4 torpedoes simultaneously and then fire them within a short time. 
These can be of two subtypes : 
Pulse weapons - energy powered, non-guided weapons. Sometimes used as supplement or instead of other primary weapons on some ships - in weapon group 2. Their reloading tend to be a bit lower and range around 5km. Their firing arcs are quite narrow. These weapons usually have 4 chambers and are oriented forward.  
Torpedoes - secondary guided weapons - in weapon group 3. They activelly track targets. Reloading time and warhead depends on exact type of torpedo. Basic photon torpedoes have reload time of 20 seconds and warhead of 270 TJ. Heavier torpedo types have reload time of 40 seconds and warhead of 540 TJ. Range is around 9km, Most ships have torpedo launchers oriented forward and backward. Usually with more than 1 chambers. Torpedoes are not energy powered (reloading even without assigned energy) but every ships carry only limited amount. 

ARMOR :
Armor is ships second layer of protection when damages goes through shields. When ship is hit, the damage is first mitigated by the armor. It can be also fully absorbed by the armor, if it is strong enough. With more damage, the armor is reduced and as the armor is weaker, the more damage goes through to the main hull.
The strength of armor is expressed in TJ equivalent - so it is easily compared with weapon damage or shield capacity.

HULL :
Hull represents the state of the ship. As it gets damaged, more and more subsystems stop working. At 30% of integrity the ship is no longer operational, but it can still be repaired by it’s crew. At 10% of integrity the ship is derelict and no longer repairable. When hull drops below 0% it is destroyed completely.
The strength of hull is also expressed in TJ equivalent - so it is easily compared with weapon damage or shield capacity.

Thanks!

Wow! I see how deep your game is:). I really appreciate your work.
I admire when people are working alone on such complex games.

I will practice play a little bit and then I will give you more feedback.

Advanced controls :
FLIGHT CONTROLS :
You can also use 7 and 9 - for high energy turns, but these consum energy from your battery (more on that later)
Most ships also have FTL engines (warp). You can enter/exit warp by pressing 0. You move faster, but your turning is very limited.

CAMERA AND HUD CONTROLS :
4 and 5 toggle symbols and colors (when zoomed out max to tactical view)
6 toggle target info modes (more info is displayed about target)
7 ships overview
8 advanced hud (some additional info - like marker on ships targeting you etc.)

TARGETING :
SHIFT + T or N to cycle through allied ships
CTRL + N - nearest target attacking me
/ (Numpad) shows dialog for entering target number (number of ships are visible next to them, when this dialog is active)
U - cycle through targeted subsystem on target (SHIFT+U to cycle backwards)
CTRL+U cycle through your ship subsystem repairs (SHIF+CTRL+U to cycle backwards)

TRACTOR BEAM :
H - you can use tractor beam to hold your target. Your position and distance will be interlocked, and you will move together. The vector of your movement is a result of you and your target mass and engines power. So tractoring larger ships is generally contraproductive. Tractoring smaller more agile ships can be important to be able to hit them. Tractor beam consumes energy from battery and has limited range (about 2.4km)
Tractor beam has some “coherence” which can be disrupted by damage. So tractor beam lock can be repelled by fire.

SHIELDS :
CTRL+UP raise shields
CTRL+DOWN lower shields (lowering shields is necessary when in shipyard for repairs)

CLOAKING
Numpad *
Klingon and Romulan ships are equipped with cloaking device. When engaged, it hides the ship from enemy sensors and the ship is invisible and not targetable. There is currently no way how to detect cloaked ship. However - the cloaking provides only some amount of “cover” so the ship must go to “silent mode” to be effectivelly cloaked. That means lowering shields and not firing any weapons. Firing weapons will automatically decloak you. Shields are lowered and raised automatically. Also, you are vulnerable against blind fire or shots targeted to other ships. You should evade those. Because without shields, they can cause critical damage fast and also any impact will reveal you for a brief moment, which could be enough for enemy ship to lock on your location and fire - revealing you again and with luck - keeping you revealed. Also your engines exhausts can be detected, if you allocate more energy to engines than 30% - your cloaking device might not be able to compensate.
When active, cloaking device also consumes some amount of additional power from battery.
You current status “cloaked/revealed” is visible on bottom left InfoPanel (next to radar)

ENERGY MANAGEMENT :
You can relocate energy from your main reactor among your main systems : weapons, shields and engines. Nonassigned power recharges battery. Ship systems works optimal with assigned 30% of energy. Adding more energy can give better outcome, but the advantage is non-linear so routing 60% of energy to weapons will not give you double reloading time. In fact the efficiency of system per 10% of energy assigned is following : 0% 33% 66% 100% 125% 145% 160% 170% 175% 178% 180%.
Energy in weapons affects recharging time of energy based weapons (so torpedoes are not affected)
Energy in shields affects recharging speed and also immediate capacity - this is quite important, because removing energy from your shields will leave you susceptible to damage.
Energy in engines affects your speed.
weapons - Ins Del
shields - Home End
engines - PgUp PgDn

Types of ships
The ships are categorized in two ways :
According to their relative strength :
FF - Frigate
DD - Destroyer
CL - Light cruiser
CA - Heavy cruiser
BC - Battlecruiser
DN - Dreadnaught
BB - Battleship

According to their role : 
EX - Explorer - Intended for exploration/scouting. Have better sensors and engines and decent weaponry.
ES - Escort - Designed for protection of weaker ships. They are surprisingly heavy armed to eliminate threats quickly. But they tend to have weaker shields, because it is not expected that they will be a object of an attack. They also have powerful engines. To keep with allies or to pursue enemies. But they have weaker sensors. 
CC - Command cruiser - Versatile ships well equipped for any task. Good engines, sensors. Well armed and shielded. And equipped also for scientific or diplomatic missions. 
WS - Warship - Ships designated primarily for battle. They have powerful weapons and shields to be able to hit not be afraid of retaliation. Their engines and sensors are less effective though. 
FS - Fire support - Ships carrying heavy weapons to support allied ships but keeping distance. Therefor they have good sensors, but weaker engines and shields. So they should not be in the middle of the fight. 
SC - Science - Not well equipped for battle and usually slow engines. But they have state-of-the-art sensor equipment.

Hi
First of all I must say that you did a great job. The game looks great especially considering that it was made by one man. Now some constructive criticism:

  1. The UI is a mess. No progress bars, no info on what is going on before the fight. You should separate the local game with bots from the net fight. Make some instant action option in the main menu. Also it took me like 5 minutes to understand how to assign myself to a ship. Why don’t you assign the player to the first ship by default?
  2. The very space fight feels too ‘arcadish’ compared to the all the options available. Either make the game more complicated or drop most of the options.
  3. As mentioned above shooting is quite confusing. I get it that phasers need to charge, but at least you should indicate somehow that the buffers are empty.
  4. Sometimes it’s hard to tell if you are moving or now. The game is asking for a kind of a parallax.

I am working on a space shooter myself. Could you give me some hints on how you made explosions. Also AI - is it some custom algo?

Hi,
Thanks :slight_smile:
Ad 1) ah… UI… at first I though you are speaking about AI :slight_smile: Yeah, the menu is a bit non-user friendly. But what exactly are you lacking ? I have there some basic info :
“Left click to add ship, right click to remove it.”
“Left doubleclick beside the ship to assign yourself to the ship, right click on your name to remove yourself.”
What other instructions would you suggest ?

You should separate the local game with bots from the net fight.
Why ? I made it unified by design. Because currently there is no “story” mode. So basically everything is an “instant action” and then it does not matter, if only with bots, or with players as well.

Why don’t you assign the player to the first ship by default?
Well, in the long run, this would be countereffective - and as mentioned earlier, you probably just missed the info in the textfield.

Ad 2) Hm, here I do not understand what you mean.

Ad 3) This is a common criticism - most ships do have tactical display, wher you have indicators of weapons and their status. When they are green, you can fire. Some ships are still not finished, so they lack this. However this is also why I added some indicator directly next to your ship in the middle - small green arrows pop up, when some weapon is charged. This should be enough. See the HUD explanation above.
The problem with weapon indicators is, that there is a huge variation of how many weapons ship could have. Sure you can fit nice big indicators for ships having 4 weapons, but there are some ships having 15 or 30 separate weapons and then you can’t scale it up properly.

Ad 4) True. There is some small number of “moving stars”, but in some situations it is not ideal.

Ad explosions : for explosions I used the slick2D Pedigree particle editor. But to know what to do I also learned a lot from TimelineFX editor. There is a lot of examples and if you decompose a complex explosions, you can learn from what building blocks are they composed. And how those blocks are defined - color, alpha, grow, movement speed and directions, randomness etc. Typically an explosions consists of many subsystems - some shockwave, some sparkles, one or two main fire clouds, many fireballs moving toward random directions…

Ad AI : yes, it is custom. Actually I figured quite reasonable and simple algorithms for basic fight already in my previous game FW2 years ago. It does not include any pathfinding or avoiding of negative effects like nebulae (for now).
Basically there are two main “scripts” :

  • strongest shield
  • air raid
    Strongest shield (as name suggests) rotates the ship with it’s current strongest shield towards the oponent.
    Air raid has two phases - fly toward the target, fire weapons, when near, break away and regain distance. Repeat.
    These two scripts are rotated randomly.
    Interestingly, this alone creates fair gameplay.

Then there are some secondary adjustments like - use cloaking (use it more often, if your shields are drained). Use tractor beam sometimes.

One important thing with AI is, that it might be quite easy to do hard AI without mistakes, but it is entirelly different to make an enjoyable AI for the player ! This is the reason why AI ships sometimes show their back to you. Otherwise of course I could enforce more the “strongest shield” rule and the AI will tirelessly turn on you and give you hard time. But it will not be fun to play.

BTW here is an additional video I made to one of the scenarios (referring the end of the Dominion war in ST:Deep Space 9) :


https://img.youtube.com/vi/e9sXP0koM4U/0.jpg

Good job man. What did you use for your GUI? nifty? twl? Or did you develop it by yourself?

I used TWL :slight_smile:

I changed settings to fullscreen and was unable to relaunch the game

> Error log <

Most probably the selected resolution is not supported in fullscreen. And the game still lacks some mechanisms like “revert to previous resolution, if current one is not confirmed by user in 15 seconds”
Quick fix would be to go to data\config\ and delete config-user.cfg file
If it does not exist, then in the same folder, open config.cfg with any text editor and change fullscreen=true to fullscreen=false

I will also check the logs, if the problem is somewhere else.
Sorry for the inconvenience.

EDIT :
I checked the logs, but it seems, that those are the logs from the session, where you changed the fullscreen, then exited the game. The problems visible in this logs are basically just warnings and should not be related.
To check your problem, I would need the log files generated after you launch the game again. Could be either the log with the timestamp, or the “log rerouted” files.

But I believe, that the steps mentioned above should help.

It works now, and that is the only log that had an error inside :confused: