Home » Stars! Clones, Extensions, Modding » FreeStars » FAQ
||Thu, 12 June 2003 11:54 |
Registered: April 2003
|- What is FreeStars?|
FreeStars is a project to write a clone of Stars! The first goal is to make it a fairly close copy (to the game play at least, look and feel is not as important).
- What are the design goals?
We want a fairly close copy to the game play, the first version we don't want to make many changes to, this is because the balance of Stars! is very good, and we don't want to break that. However, we intend to make some (most) of the rules easily modifiable. Also we intend to fix any obvious bugs. There are some 'bugs' that we don't consider bugs, like chaff.
There will be (at least) two executables. One for the player (client) to input their orders and display results. And one that is the host program (server) that will process turns and generate results. The server will not trust the client, so all orders in the .x file will be checked for validity. The .x and .m files will be initially open format (probably ASCII text, maybe XML), they will have to be encrypted at some point.
The server will not care what generates the .x files, so if some one wants to write a new client program, or a pre/post processor it should be possible, as long as we can publish the encryption algorithm. The server will therefore not send any messages in text format ("Fleet #3 was scrapped at"...) instead it will send a number and the client will have to display the text - this allows different language clients to play the same game.
We will not be writing an AI initially. However, you could conceivably write an automated turn processor. As long as it reads the .m files and generates a valid .x file, the server won't care where it comes from.
- Do you have support from Mare Crisium?
No. We are not getting anything from them. We would welcome it if offered however.
- Isn't this illegal?
I don't think so, as long as we don't make any money from it. However, I'm not a lawyer. If we become convinced it is illegal or will cost us to defend it, we'll probably drop the project.
- I've got some nifty ideas for improvements, where do I submit them?
Right now, we've got more then enough to do. We hope to make the final version easily modifiable without a new exe for each version, so save your ideas.
- There is something that desperately needs fixing, who do I tell.
If it's a bug, submit it to 'Known Bugs' under 'The Academy'. If it's a limit (like fleet limited to 512), we intend to keep the limits because they affect game balance (imagine an SD sending a few thousand MMLs into your space). If it's a feature you desperately want, see the previous question.
- Can you change the battle orders so I can target big armed ships or other classes of ships.
We could, but we won't. Chaff is a big factor in the balance of the game, and we don't yet feel we can adjust that and still have the game be as fun.
- Who is currently working on FreeStars?
Omnivore kicked off the project, and is working on general design.
Mithandir is working on a client program.
Summoner is doing some work on the server, mainly with movement and mines.
LEit is working on the server, dealing with scrapping and cargo transfers and ground combat so far.
Volcane is our full time tester, answering questions on how Stars! works.
- Who is in charge?
Onmi is normally in charge, however he's been absent from IRC for a while, and I (LEit) have taken it over somewhat.
- What progress has been made?
Omnivore has some design done, but not all. Lack of a full design hasn't stopped people from coding, however, which might be a bad idea.
Mithandir has the menus for the client.
Summoner has some code finished.
LEit has some code finished, although big parts are missing (for example scrapping code is written, yet the ship class is not)
- What programming languages are you using?
The server is being written in C++ (because Summoner and LEit both know that best).
The cleint is being written in Delphi (because Mithandir knows that best).
- What Operating System are you coding for?
Currently Windows. However the server is being written in pretty generic C++ so it should be fairly easy to port to other systems. The client code might be a bit harder to port, however, as long as the client can read and write the correct file formats, a new client could be written in any language on any OS.
- When will it be ready for beta testing?
A long time from now, if ever. This is a volunteer effort, and as such people may drop it and move on, so there is no way to estimate when it will be done with any accuracy. Also it is possible that everyone will stop working on it.
- I'd like to help, but I'm not a programmer.
We have several things that need to be tested as we write the code, so we do need people to testbed Stars! to figure out some of the fine points of the rules. There will be a separate thread for that.
- I'd like to help, and I am willing to write code.
Great! We need help. join the #FreeStars channel on IRC and ask around.
- How do I connect to IRC?
To get to our IRC channel, use your favorite IRC client and connect to a server in the StarLink.Org group(e.g. Phoenix.AZ.US.StarLink.Org), and /join #FreeStars. If you don't know what IRC is or how to use it, go to http://www.mirc.com/irc.html and start reading; or find some other intro-to-IRC page. There are quite a few of them on the web, seeing as IRC is a quite popular medium.
Note, however, that several of us are connected to IRC 24/7, however, we cannot be at the computer for that time, so we might not be talking, or even present, when you join us. Try saying hi or similar, and we might respond; if no one responds, try again later.
- I'd like to help with financial support.
Wow! While we appreciate your generosity and would like to take your money off your hands, this is a volunteer effort, and besides, if we make money from it, it might become illegal. We suggest that you support AutoHost or Starlink.org (the IRC servers we use).
[Updated on: Tue, 06 April 2004 20:41]
Report message to a moderator
|Re: FAQ --- keywords: cheating, encryption, compression, file format
||Wed, 10 November 2004 22:22 |
Registered: March 2004
|- How do you intend to stop people from cheating by messing with the files?|
First of all, the files are XML and open format. This means that editing it and putting in some "wrong" values will be quite easy. To deal with this, the server will do all the processing, and will check *everything* - it won't trust the clients to do anything right on their own.
This is the only known working method, closed-source with closed file formats doesn't help. Security through Obscurity - which is what that is called - simply doesn't work. *Someone* will figure out the file format, sooner or later, so we might as well have it open from the start and deal with it accordingly.
- What about cheating by looking at your enemy's files?
Getting a hold of other people's files is not going to be a problem, as we're intending to encrypt them(after compressing them). The exact details of this has not been figured out yet, as it will not be needed until the game is done and being played, and in the meantime it would just hamper us.
We will probably use some sort of public/private-key system, meaning that you are the only one that can decrypt your turn files, and the host is the only one that can decrypt your submitted turns.
When we get to that stage, we will look at and evaluate the various options, and select (at least) one that works for us.
- What if the host is changing my files?
Stopping a host from messing with your files is, frankly, impossible. The host must necessarily be able to read the files, and can therefore change them too - no matter what we do. Even if we put in tons of checks, the host can just modify the source(take out the checks) and recompile. This problem is common to all multiplayer games, not just (Free)Stars, and there is nothing you can do to avoid it; even with closed-source modifications are possible(hence the cracks of commercial games).
Because of this, all games will need a host that all players trust, in our case probably something like AutoHost. Of course, in a game of friends that trust eachother to not cheat, this is not a problem.
- If you're using XML, won't the files get very big?
Compared with today's HDs and bandwidth, I'll have to say no. Assuming you're not dealing with huge games with multiyear turns, the file size will probably be around a couple hundred KB per turn early game, and maybe up to a few MB lategame, of uncompressed XML. And XML, being pure text, compresses quite well (as a quick example, we have a 41KB TestGame.m1 file, compressed with bzip2 it gets to 5.7KB - 14% of the original size).
Nevertheless, we are intending to compress the files. As with encryption, the exact details haven't been hashed out yet, as we're not in that stage yet and it will just be a bother now. A couple obvious contenders are zlib and bzip2, but we will look through our options and evaluate them when we get to that stage(not before).
Report message to a moderator
Current Time: Thu May 26 23:03:57 EDT 2022