Menu

Specification

Daniel Vale

Overview

The Stars! Nova specification is under development. Initially our specification consisted of a single statement: Clone Stars!

There are some exceptions:
* Stars! has some bugs.
* There are some additional options we will/would-like-too include in Stars! Nova. The keyword here is option. Players shall be able to select a classic Stars! game.
* There are some allowable deviations from the Stars! functionality.

This document will firstly cover the exceptions. It will then attempt to describe Stars! functionality in some detail, primarily to bring together information about Stars! that has been provided elsewhere and discuss it in terms of what will be included in Stars! Nova.

Shall Should May

In the context of this document the words shall, should and may have the following specific meanings:
* Shall - Is used to specify a required feature of Stars! Nova 1.0. It is also a Core feature in terms of the [[Task_priority_guidance|Priority Definitions]].
* Should - Is used to specify a required feature of Stars! Nova 1.0. Is is also a desirable feature in terms of the [[Task_priority_guidance|Priority Definitions]].
* May - It is allowable, but not required, for Stars! Nova to function in the way described. It is left to the developer to determine the most appropriate implementation.

Exceptions - Differences between Stars! and Stars! Nova

Bugs

The following bugs have been sourced from:
* http://www.starsfaq.com/rgcsfaq.htm#bugs
* http://starsautohost.org/sahforum/index.php?t=msg&th=2387&start=0&rid=917&S=b97979107ba93e05a4f366a3429bec27

Each bug is given with a title, a description of the current behavior in Stars! and the intended behavior in Stars! Nova.

Race File Corruption

''If you edit the race name in a race file can cause the file to become corrupt. This is especially common when making the race name shorter than before. To get around this, when editing the race name, either edit it one letter at a time (saving and re-opening each time) or copy the race data into a new file by hand.''

Stars! Nova shall allow editing of the race name without corruption.

Random Race

''If at any point during the race creation you select random race but then de-select it, it can cause the race to generate a random race every time you use it to play a game with it. This is because the random tag within the file is not unselected. Though it has been reported by others, I did a recent test of this, but could not activate it.''

Stars! Nova shall persist the last selection made.

32k Ship Limit Per Fleet

''There is a limit of 32k of any one type of ship in a fleet (32,767 to be precise). If you try and merge two fleets together which would push the ship count over this limit (i.e. a fleet with 25k chaff and another with 10k), stars has a few problems. If done manually, the ship type will disappear from the fleet readout, but re-appear in the next generation (you will only lose ships in excess of the 32k). But if done using the "merge with fleet" waypoint order, all the ships of that type will disappear. This is because when the integer (16 bit - signed) holding the number of ships goes over the 32k limit it becomes negative, and as you can't have a negative number of ships, it reads as 0.''

Stars! Nova shall enforce all fixed limits (rational: for game balance).

When manually merging fleets, if a selection would exceed the ships per fleet limit, Stars! Nova shall prevent that selection. This may be by disabling the selection or raising an error message.

When carrying out a merge order, if the given merge order can not be carried out in its entirety then it shall not be carried out at all. The merge order shall be canceled and a message generated.

Stars! Nova may present an option at game creation to modify any of the Stars! [[Limits]]

AR Starter Colonies

''Starter colonies for AR races will not contribute excess resources to research, unless the build queue is cleared first (using the clear button) or the hull design changed / upgraded. This is due to the "build Starter Colony" order invisibly blocks the end of the queue despite the fact that it has already been completed.''

Stars! Nova shall contribute excess resources to research from all systems.

Failing to Close to Range 2 with Sappers and R2 Beams

''In the battle VCR, if a token of ships is armed with both sappers and range 2 beams, and is facing an enemy token for which it has enough power in its sappers to completely take down its shields to 0dp in a single turn, then the ship will not attempt to move into range 2 in that turn even if it has spare movement points and regardless of the given battle orders (even with maximize damage). If the token lacks the sapper firepower to deplete all the shields then the token will close to range 2 as normal. The exact logic code-wise behind this bug has not been figured out yet. ''

Stars! Nova shall ensure ships with the maximize damage order will always close range if they have beam weapons.

Copy Protection Activates When Editing an Allies Turn File

''When you save an submit a turn and then transfer the .x file to another computer (which is being used by another player in the game) and then re-open the turn and then re-save and submit before finally turning over the file to the host, it can cause the copy protection to kick in. The solution is to open the turn file up, delete the .x file while stars is still running and then save and submit, the newly created .x file will be safe to send to the host for generation. The reason for this bug is that the machines hardware hash is only written to the .x file when the .x file is being created and not updated on subsequent save and submit, whereas the stars serial number is updated each time. When you open up your allies turn file, his hardware hash is already encoded into the .x file, but when you update the file with a new save and submit, your stars serial number is added to the file replacing his. Thus the host during generation sees the same serial number on two turn files but both with different hardware hashes. For more information, see the section on the Copy Protection Features www.starsfaq.com/copy_protection.htm. ''

Stars! Nova shall not have any copy protection as it is under a GNU license.

Stars! Nova may implement additional battle orders or further customization to battle orders. If implemented these shall be disabled in a strict Stars! rules game. There may be individual options to control which orders are allowable in a game.

Netscape email attachment corruption

''When sending emails using Netscape, it will treat small attachments of an unknown file type as text (7bit byte) instead of binary (8bit byte) and so truncates the leading byte, this can lead to corruption of turn files sent this way. The solution is to tell it that the various stars file types should be sent MIME encoded.''

This is not a Stars! issue but a Netscape issue and will not be addressed in Stars! Nova.

Stars! Nova may provide LAN and on-line modes to conduct direct file transfers between the client and server. This may use a TCP/IP protocol.

Font Problems When Using a Non-English Version of Windows

''When playing stars on a non-english version of windows, there can be a few problems with fonts used in stars, the most noticeable of these is in the player scores dialog where the player names are written horizontally, making them overlap each other. This is due to the fact that Microsoft has used different file names for the various fonts in each language version of windows. ''

Stars! Nova fonts shall work correctly on the developer's system, as configured.

Stars! Nova should correct any font issues reported by testers.

Stars! Nova may support other languages and environments.

Chaff

''The game mechanics will cap the kills inflicted by missiles to the number of missiles fired (i.e. one missile = one kill). Also the targeting algorithm favors weakly armored targets (in relation to cost in resources and boranium). These two facts can be taken advantage of. The cheapest armed ship you can build is a scout or frigate with an x-ray laser and QJ5 engine. If you build 1000's of these, the enemy's missiles will target these first. The problem is that the targeting algorithm doesn't take into consideration the fact that to kill a frigate with an Armageddon missile is actually wasting 1005 points of damage in overkill. So with enough chaff you can effectively nullify the enemies missile firepower. But note that the "one missile = one kill rule" doesn't apply to beams, so beamers will eat through chaff very quickly.''

Stars! Nova shall implement this behavior.

Stars! Nova may implement an option to disable this behavior. This may be by having the targeting algorithm consider overkill.

Split Fleet Dodge:

''(Sort of) Fixed in JRC4''

''An attacking fleet can only attack ships at the same location. If you split your fleet into many smaller individual fleets and diverge their movement orders, an attacking fleet can only engage one of them (the one with the largest mass will be targeted - though there may be a bug with this). A change was made in the JRC3 patch to stop multiple chasing fleets from all attacking the same target when this was done.''

Stars! Nova shall implement this behavior.

Stars! Nova may implement optional battle orders to counter this tactic. This may be done by splitting the pursuing fleet.

UR/CE Scrapping

''Races with CE get half price engines, and races with UR get to reclaim up to 90% of resources and 70% of minerals that went into the ship/fleet. However when scrapping at another races starbase, Stars doesn't take into account the fact that CE races get half price engines and the resources given are based on the full amount. A ship that is mostly engine (scout with pricey engine), can be used between an alliance to generate "free" resources and minerals. This has been partially countered now that gifted or alien ship (i.e. not built by that race) are considered 30% cheaper in working out scrapping.''

Stars! Nova should track the actual build cost of ships and use this cost when calculating resources and minerals from scrapping.

Battle Board Overload

''The battle board can only handle a maximum of 256 tokens (shared among all races present). Excess tokens are simply left out of the battle. The tokens selected are based on fleet number, so the lowest numbered tokens would fight and the other left out, though each player is guaranteed (256 / players present) number of tokens. This can be taken advantage of by splitting off 256 chaff (or other cheap ship type), doing a split all on the 256 chaff fleet and then merging the rest of the fleet with the highest numbered ship. This would allow you to "dodge" the battle for the price of 256 chaff. Or simply keep some of more vulnerable ships out of battle (i.e. bombers and freighters). Most players would consider the deliberate use of this to be "cheating" unless specified by the host prior.''

Stars! Nova may have the same feature. Further consideration/discussion is required.

0.2% Minimum Damage

''Stars records damage to armour in a fleet/stack as in 1/512ths (0.2%). Any shots in combat (that do armour damage) will be rounded up to the next 1/512th of the total armour in the stack. Normally this isn't an issue, but can be abused. By Building 100+ DDs or nubs with alpha/beta torps, and splitting them into individual fleets just before combat, you will fire a very large amount of slavos (100 fleets of nubs with 9 slots each with beta torps = 900 salvos). Normally these would only do a little bit of damage, but because they are all individual salvos they will each do 0.2% damage, and with 900 slavos that is 180% damage. Which would kill one enemy token/stack outright and damage another by 80%, and this is per round of shooting. The number of missiles per slot won't increase the damage, but having 2 or 3 in the slot will give you a second or third chance to make that salvo hit (missed missiles don't damage armour). Note that shields aren't calculated this way. And the 0.2% rule doesn't override the one missile = one kill rule, so when the stack is at 99% damage you will still need one missile per ship to do the killing blow. The best counter tactics for this are first to split up your fleet into several smaller tokens (thus it will only kill part of your fleet), and to have gatling armed beam ships (as they do damage to each token in range).''

Stars! Nova shall track damage using double precision floating point numbers.

False Public Player Scores

''Stars calculated actual resources during the middle of the generation, but calculates resources displayed in public player scores at the very end of the turn. This can be taken advantage of, by uploading pop from each of your planets using waypoint 1 orders (i.e. after movement) and then dropping them back as a waypoint 0 order (ie before movement). This doesn't affect actual output, but can significantly lower your reported resource output from which your score is largely based. This could prevent other players realizing that you are running away with the lead (and thus ganging up on you) until it is too late. Though this could backfire if you are caught, as other players would know that you are hiding something so may to gang up to stop you (which is exactly what you are trying to prevent).''

Stars! Nova should report planet populations using the number of colonists on the planet when production is calculated.

North/South Minefield Immunity

''NOT Fixed in JRC4

There is an unusual bug in which there are no minefield hit checks done do a fleet traveling exactly due north or due south. Though the checks are carried out if there is even 1ly of east/west movement. This could allow a player to travel through a minefield at warp 10 with a 0% chance of hitting a mine. Most players would consider deliberate use of this bug to be "cheating".
(link to one of the threads about this in the Academy)''

Stars! Nova shall check all fleet movement for minefield hits.

===East/West Speed Bump Minefield Immunity===
''Fixed in JRC4

A similar bug to the one above, but this time affecting only speed bump fields for fleet traveling due East or West.''

Stars! Nova shall check all fleet movement for minefield hits.

SS Pop Steal

''Fixed in JRC4

The robber baron scanner can steal minerals from an enemy player, though a player cannot usually steal enemy colonists. Though in the J patch, the check for seeing if the player wishes to steal enemy colonists was disabled when using the waypoint 1 task option (Transport|colonists|load all). This was not intended. This bug has been proved to unbalance the game when used. Most if not all players would consider use of this bug to be very serious "cheating" unless "specifically" stated by the host prior the start of the game.
JRC4 Fix caveat: Mineral transfers must be done by hand, not as a waypoint task.''

Stars! Nova shall prevent the loading of colonists from other races.

Stars! Nova should allow loading of minerals as a waypoint task.

Free Population Hack

''Using a memory editing utility it is possible to create colonists out of thin air, limited only by a players freighter capacity, with the help of a memory editor. This abuses a lack of a viability check for loading colonist from an uninhabited planet, usually you cannot load more colonists than you drop down in a turn, but a memory editor can be used to trick the user interface into believing that you had dropped down millions of colonists, and the host doesn't double check these figures. Use of this in a multiplayer game would be considered by most players to be a totally inexcusable cheating offence.''

Stars! Nova shall check all values sent in an .orders file.

Stars! Nova shall raise an error message if illegal orders are detected and prevent generation of the next turn. It may be possible for the host to force turn generation with illegal orders, however a message shall be sent to all players that this has been done.

Cheap Starbase

''If you build an EMPTY starbase on a planet which has no base yet, and finish it to 99%, then next turn you can still EDIT the design, add all the weap and armor you like, and the base is still 99% finished. This means you only pay 1% of the full armed base, and 99% for the empty base.''

Stars! Nova shall count and track all partially constructed ships and starbases. Modifying designs shall be prevented once construction begins. It shall only be possible to change the design after recovering the design slot by deleting the design and thereby loosing (without the benefit of scrapping) all partial (and any complete) ships or starbases of that design.

Mineral Upload

''Stars! allows you to upload minerals to any fleet in orbit that does not belong to you. You can even do this if that fleet does not have a cargo hold. This causes the minerals to "disappear".
People have abused this bug to deny the salvage of a battle from their enemy by uploading the minerals from the surface to the enemies warfleet/bombers.''

Stars! Nova shall allow the uploading of minerals to any fleet in orbit (or downloading to any planet).

Stars! Nova should process orders such that any ship will first collect minerals it has been ordered to collect (salvage), then collect minerals passed to it by another player. This may be done by placing minerals uploaded into a temporary salvage packet. Excess minerals in orbit at the end of a turn shall fall back to the planet.

Target List Overload

''The fleet lists that popup when you right click in the scanner pane and the blue diamond of the waypoint tile will only list 100 fleets. So when someone has 101+ fleets at the same coordinates (in orbit of a planet for instance) you can NOT target fleet 101 or higher (these are the fleets with the highest fleet #s.)
You can use the "Other fleets here" list to select (but only view) the higher fleets.''

Stars! Nova shall allow fleets to target any fleet that is currently being detected.

Space Dock Armor slot Buffer Overflow

''If your race has ISB and RS, building a Space Dock with more than 21 SuperLat in the Armor slot will result in some sort of error. 21 SuperLat gives a Space Dock 16,000 armor, 22 SuperLat gives it 49,518 Armor. For a full 24 SuperLat stack, you get a whopping 51,018 armor. In comparison, a Death Star for an RS AR tops out at 31,500 armor (not including M.T. toys). {quote Matt Laub}
Race has to have the RS LRT and starbase hull has to be Space Dock to trigger this bug. ''

Stars! Nova shall calculate the correct armor values for all combinations of LRTs and starbase hulls.

ISB trumps IT gate scanning

''Improved Starbases makes gates invisible to some IT gate scanning. ITs can't see ISB gates with 150kT/600ly gates and infinite/800ly.
This may seem like a limited liability, however, there is often a fairly long period where infinite/800ly gates are the best that can be built, before the 100ly/infinite or infinite/infinite gates can be built. {quote LEit}
Note that the other race only needs the ISB LRT, they do not have to build a Space Dock or an Ultra Station to make their gate invisible, any hull will do.''

Stars! Nova should allow ITs to conduct gate scanning on races with the ISB trait.

Starbase Friendly Fire

In battles where a starbase is present, the player owning the starbase can change the "attack who" in his default battle orders to make friends fire upon eachother.

Stars! Nova shall only allow tokens to target and fire on their enemies.

Crash Stars Bug

When Player 1's fleet 1 is at a planet with a starbase other than an orbital fort and the final player has a starbase design occupying his 10th starbase design slot stars can crash, the exact circumstances that cause the crash still need to be figured out since something else seems to also be required for the crash to happen but the above circumstances do need to occur for the crash to take place. (Ways to avoid the crash are for a dummy race to be placed in the final slot so the 10th starbase slot is never used, for player 1 to keep his fleet 1 away from planets and for it not to be destroyed either in a battle or in a minefield or to have an experienced player as the final player and for them not to use the 10th starbase slot.)

Stars! Nova shall not crash under this condition.

Options

Stars! Nova may include any feature not in Stars! so long as it is possible to disable that feature. Stars! Nova shall have a single game setup check box that allows quick selection of a 'Strict Clone' mode. Selection of the 'Strict Clone' mode of play shall disable all optional features.

Deviations

For a variety of reasons it is not desirable, practical or even possible for Stars! Nova to be an exact clone of Stars!. An exact clone of Stars! would be ... Stars! and there would be no point producing it. These deviations are split up into those that are desirable (are the reason for making a clone in the first place), those that are for practical reasons (maintainability, extensibility, playability, producibility, etc.) and those that are less desirable but have been determined to be acceptable.

Desirable Deviations

  • Stars! Nova should run on a 64 bit operating system. (rational: because many modern operating systems are now 64 bit)

Deviations for Practicality

  • Stars! Nova may be written in C# (rational: because Ken Reed started it to learn C#)
  • Stars! Nova may have a larger CPU/Memory footprint than Stars! (rational: because Stars! was built for windows 3.11 and was resource constrained.)

Acceptable Deviations

  • Stars! Nova may not be able to load games produced in Stars! (rational: because Stars! Nova file formats have been redesigned and it is not considered necessary to support the old formats.)
  • Stars! Nova may not be compatible with third party tools produced for Stars! (rational: because Stars! Nova file formats have been redesigned and it is not considered necessary to support the old formats.)

Stars! Nova Detailed Functional Specification

This section is under development.

This section is a place to record detailed information on what Stars! Nova is supposed to do. It is not an explanation of how Stars! Nova implements features but rather, reference material for Stars! Nova developers to use when designing or implementing features for Stars! Nova.

Much of this information is expected to be based on reference information for Stars! Where insufficient information is provided in this specification, refer to the following websites or check the functionality in Stars! itself:

[Cargo Specification]


Related

Wiki: Developer Documentation

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.