Home » Stars! 2.6/7 » The Bar » Stars 3
Stars 3 |
Thu, 24 April 2014 12:02 |
|
platon79 | | Chief Warrant Officer 3 | Messages: 185
Registered: February 2004 Location: Norway | |
|
As most people know, the sequel to Stars 2, Stars Supernova Genesis, died and never hit the shelves.
As some people know, Jim Lane, one of the main members on the supernova team, and Jeff continued development on a low-graphics stars 3.0 after the fall of supernova. You can read about it in the old rec.games.computer.stars thread "Stars Supernova Genesis Beta", at https://groups.google.com/forum/#!searchin/rec.games.compute r.stars/stars$20supernova$20genesis$20beta/rec.games.compute r.stars/Ib3WDthwZDg/kywf5-bAtggJ
As you can see in this thread from august 2006 at https://groups.google.com/forum/#!searchin/rec.games.compute r.stars/jim$20lane/rec.games.computer.stars/aW7Sm670jgI/pszT i47pxOUJ the stars 3 project was still alive at that time.
This made me wonder if there was still some hope of it having continued as a hobby project, and maybe entered some sort of playable state after all these years, or just died? I didn't find any other threads about this project, and decided to do some digging. What had happened to the stars3 project? Was it still alive?
I did a lot of digging, and actually managed to get in touch with Lim Lane. This was my question:
To Jim:
Me and some fellow norwegians have recently begun playing the good old
masterpiece stars 2 again. (Which I have played a lot over the years) I long
ago learned of the tragic fate of the sequel, stars supernova Genesis, but
only recently read about your hobby project, stars 3, which looked really
promising and exiting. But the last i read about it was from 2006, so I
became really curious; Is the project still alive? Is it long dead and
buried? Do you still tinker on it now and then? Is it finished but not
released to the public? I would really like to know.
Yours sincerly
Runar Holen
And I received this response from Jim:
Greetings, Runar:
Stars 3 unfortunately died a long time ago. Jeff McBride and I worked on it
for a few months, but the need to earn a living interfered with both of us.
I doubt that any project of that scope would be noticed on desktop platforms
any more. The features that made Stars! 2 so good were about depth of game
play. Supernova had deeper game play than S!2, and also had the publisher
backing needed to do the kind of graphics essential for all but casual games
anymore. Stars! 3's game play would have been even better than Supernova's,
but we never had any budget for outside art - we were going to reuse the S!2
art with a few small new things added by volunteers / friends. Even in
2005/2006 or so, that probably wouldn't have been enough. We had hoped that
the former S!2 community would be interested enough to keep S!3 afloat, even
with bad art. Today, that community has long since moved on to other things.
A project of that scale would be better suited to Android today than to
desktops, but it doesn't look possible to earn a living with it there,
either.
I'm afraid that unless either Jeff or I wins a lottery or one/both of us
inherit from rich relatives that we don't know we have, Stars! is gone. A
shame; I joined the Supernova project because S!2 was one of the very few
computer games that I've ever enjoyed playing more than a few times.
-James Lane
So that is it I guess. I am really hoping that he or Jeff wins the lottery.
Report message to a moderator
|
|
| |
Re: Stars 3 |
Thu, 24 April 2014 16:40 |
|
platon79 | | Chief Warrant Officer 3 | Messages: 185
Registered: February 2004 Location: Norway | |
|
Inquisitor80 wrote on Thu, 24 April 2014 12:24is it not possible for them to release the code for S3 or S2 ??
if they do so then it can become an opensource project
i would love to see it made into a java app that can be run on all platforms
logging into a browser to do my turn would be epic. or logging in from work, take a turn, or just to look at something....
please?
You should read all the posts in the first link I provided from RJ Ladd (Jim Lane). (And remember that there is a page two...) They are very interesting reads, and also explain why it is almost a hopeless project to do things with the original stars2 source code. Ok, here is a couple of snippets:
I have an ownership stake in the SN code, but not in the Stars! 2
code. I've got the Stars! 2 code, but I can't release it.
Jeff and I had intended to at least release a version of Stars! 2 with
no copy protection, but I don't have the right to do that myself,
either.
Stars! 2 requires Visual C version 1.5 to compile. If there is a ghod,
Jeff and I should be the only people left on the planet who still have
VC 1.5 available. You might think that it would be easy to modify the
source to compile under a more recent version of VC. From personal
experience, I can assure you that you'd be mistaken. Very mistaken.
........
I tried to do that at one point. You'd find it hard to believe how
difficult it is to fix those bugs.
Stars! 2 was a Win16 game. Yup, Win16, with all its segmented memory
glory. 64K segments. Nowadays, a 64M segment sounds small. S2 was
written originally as a part time fun project by a couple of people
who were bored by their work on the guts of Excel, and who were
experts are wringing the last tiny bit of performance out of the
segmented Win16/8086 architecture. Shoehorning a universe the size of
a S2 game into Win16 took a great deal of skill. When they started,
they never expected that it would become a product, and didn't care at
all about code maintainability
.....
VC 1.5 supports the Win16 features that the Stars! 2 code depends on.
It isn't just 16 vs 32 bit ints (although that's a significant issue).
There are the different kinds of pointers for near and far data, the
different memory models, etc. Not to mention the Win16 API itself,
which newer versions of VC do not include. (Windows continues to
support the Win16 API via the compatibility box, but the VC compiler
no longer supports writing to that API.)
You're right about the bit-mapped structures. In addition, since
everything had to fit into 64K segments, larger data structures are
very carefully packed into 64K. Some of the game limits (16 players,
max number of ship designs, etc.) are due to the bit packing in
structures, and some (like the limited number of fleets or minefields
that can exist) are due to packing arrays of structures into 64K
segments.
All of these limits can, in theory, be releaxed. But the code, by a
couple of young and foolish Microsofties, was not written to be
maintainable. There are places where bit packed structures are packed
or unpacked by code that uses shift-and-mask operations with immediate
constants, i.e. "(foo & 0x1C) >> 2". That's a lot of lines of mostly
uncommented code to go through, finding, understanding and replacing
mysterious constants. There's a lot of implicit retyping of data via
pointer abuse. Also, given the extremely tight memory constraints (no
more than 640K available in the entire machine), there are global
variables that are used and reused many times for many different
purposes.
Understanding what the code is trying to do is hard enough. Changing
it without breaking things is harder. Much of the code makes very
little sense unless you remember the oddities of the Win16
environment.
Keep in mind, again, that Jeff & Jeff did not start writing Stars!
intending it to be anything more than a part time diversion for
themselves and a few friends. Stars! 2 was hacked together, not
engineered.
Over time, as Stars! evolved from the first demo for J&J and friends
through Stars! 2.6, the game design reached a remarkable level of
quality. IMNSHO, Stars! 2 is the best multiplayer 4x game ever
written, and its quite good for single player, too. No 4x game has
good AI, although some cheat enough to make their AI look better than
Stars! 2. (AFAIK, with one small exception, Stars! 2 AIs don't cheat
at all. SN AIs cannot cheat; they have exactly the same access to
exactly the same info as any other players. No Stars 3 AIs have been
written, but they would also be incapable of cheating. Really good
strategic AI is incredibly hard to write; perhaps impossible.) But the
code, frankly, is a nightmare.
The code in the SN engine (written in C) is quite a bit better than
Stars! 2 (also in C). The Stars 3 code (in C++), what there is of it,
is very clean and maintainable. But Stars! 2 has the minor advantage
of being complete and available.
Jim Lane
Report message to a moderator
|
|
|
Re: Stars 3 |
Thu, 24 April 2014 17:58 |
|
|
Thanks for digging that out and getting in contact to inquire about Stars!3.
And it is quite obvious that the "Let's make it an open source project" approach isn't feasible, unfortunately.
Report message to a moderator
|
|
| | | | | | | | | | | | | | | |
Re: Stars 3 |
Tue, 27 May 2014 15:24 |
|
mrvan | | Officer Cadet 1st Year | Messages: 220
Registered: May 2014 | |
|
Here's what I would do if I were to rewrite stars!:
- Strict server/clients architecture
- All information between server and clients in json (or XML if need be)
- Server is a python* program that generates new turns based on old universe plus orders
- Server accepts partial orders as well as complete orders and can be queried for all existing state
- Base client would be a web based client that functions much like the current client
- Other clients could do various automation tasks and store partial orders, notes, messages etc on the server
- AI would also be a client like any other client. Cheating is replaced by 'handicap' flags on the server
By having a very modular server/client design, multiple people can work on different aspects effectively; and multiple clients can exist and compete with each other.
At the moment, I am completely willing to contribute to a rewrite, but I lack the time to do it on my own, so I would only be interested if 2+ more people are willing to commit serious time. I can do back-end or front-end, I don't really care.
*) this is about what *I* would do, after all . Ultimately, server side language does not matter that much, but something high-level (+portable +open source) like python is probably more efficient than something like C or C#.
Report message to a moderator
|
|
| |
Re: Stars 3 |
Wed, 28 May 2014 06:17 |
|
m.a@stars | | Commander | Messages: 2765
Registered: October 2004 Location: Third star to the left | |
|
mrvan wrote on Tue, 27 May 2014 21:24Here's what I would do if I were to rewrite stars!:
- Strict server/clients architecture
Wholeheartedly agree. Divide the beast into manageable chunks and conquer it!
Quote:- All information between server and clients in json (or XML if need be)
... or any other reasonably compact & efficient protocol.
Quote:- Server is a python* program that generates new turns based on old universe plus orders
Can the "snake" easily manage large in-memory data & tables? I guess it can be multi-threaded?
Quote:- Server accepts partial orders as well as complete orders and can be queried for all existing state
Quote:- Base client would be a web based client that functions much like the current client
Quote:- Other clients could do various automation tasks and store partial orders, notes, messages etc on the server
Quote:- AI would also be a client like any other client. Cheating is replaced by 'handicap' flags on the server
Quote:By having a very modular server/client design, multiple people can work on different aspects effectively; and multiple clients can exist and compete with each other.
Quote:At the moment, I am completely willing to contribute to a rewrite, but I lack the time to do it on my own, so I would only be interested if 2+ more people are willing to commit serious time. I can do back-end or front-end, I don't really care.
I've been doing "back-end" for some time now, but lack of serious time keeps progress slow.
Quote:something high-level (+portable +open source) like python is probably more efficient than something like C or C#.
By what definition of "efficient" is that?
So many Stars, so few Missiles!
In space no one can hear you scheme! Report message to a moderator
|
|
| | |
Re: Stars 3 |
Wed, 28 May 2014 11:26 |
|
mrvan | | Officer Cadet 1st Year | Messages: 220
Registered: May 2014 | |
|
[quote title=m.a@stars wrote on Wed, 28 May 2014 06:17]mrvan wrote on Tue, 27 May 2014 21:24
[...]
Wholeheartedly agree. Divide the beast into manageable chunks and conquer it! [..] :yes::nod: &c.
Thanks! Now just to find the time...
[quote title=m.a@stars wrote on Wed, 28 May 2014 06:17]mrvan wrote on Tue, 27 May 2014 21:24
Can [python] easily manage large in-memory data & tables? I guess it can be multi-threaded?
Python can easily manage large arrays and lists. If needed, packages like numpy/scipy can offer extremely fast matrix manipulation. If it could be done on a single floppy, it can certainly be done in python .
Multithreading is available and quite easy to set up and locks etc are well supported. However because of the interpreted nature it only speeds up IO / external processes, not loops (there is a 'global interpreter lock'). If you have really serious calculations to do, it is probably best to do that part in a different language. You can integrate C code in python seamlessly (you replace one module and the rest of the code doesn't notice the difference). However, I would be surprised if this would be necessary
m.a@stars wrote on Wed, 28 May 2014 06:17Quote:something high-level (+portable +open source) like python is probably more efficient than something like C or C#.
By what definition of "efficient" is that?
Yes sorry, I could have been more clear there. I meant developer-time efficient as pointed out by XAPBob.
Anyway, as you state the problem is finding serious time. Where did my college days go?
I did get one other enthousiastic response in a PM so maybe we can do something. The question is also: can we somehow convince more of the community to come back if we have a more modern client? Developing a game for the <50 active users of this forum doesn't sound like a very efficient use of time (even if it can be good fun).
Report message to a moderator
|
|
|
Goto Forum:
Current Time: Thu Apr 18 22:22:02 EDT 2024
|