In short, here's how I would prioritize these aspects of the game:
[list=1]
- Stability
- Polish up the flightsim interface some, at least till we're really happy with it.
- Have an initial combat / damage system, even without the Systems thing. We could just do a "unit system" - the ship is one system, and damage anywhere damages the ship as a whole.
- Systems
- AI - develop in tandem with the combat system
- GUI
- Planets
- FPS
- Fleet View
- Networking
[/list:o]
In long:
Personally, for me, I'm all about the
stability - I think that what we have should work as well as it can, given time. As you said, it's not as much fun, but I think is better software development policy to debug as you go along, rather than save everything for the end. That way, when a new bug comes in, you have a better idea of where to start looking (i.e., the most recent code you've added), rather than having the whole program (and all prior-known bugs) be the potential offender(s).
The same goes with the interfaces. If there's obvious ways we can clean up, optimize, or
polish the flightsim interface we have already, we should do that now, while it's fresh on our minds (well, yours anyways... ;-) ). I'm not saying that we have to code to sqeeze every possible frame out of the interface at this point, but if there's something obvious we can do NOW, we should.
In short, let's make sure what we have works as well as it can, then move on to bigger and better things.
Combat and
Damage: No real ideas yet on that, at least not concrete enough to really start discussing. However, this might be something we should work on as soon as possible, since combat will be a major part of the game. I agree that damage should be as System-local as possible (especially, e.g., that a hit to the front doesn't take out the engines for no reason - make it as realistic as possible).
Systems: I'm learning Python at the moment, and I'm gonna try making some sort of Systems system in Python so we can see how that's going to work. I don't know how much of a neural network problem it would be - seems like a standard graph connectivity problem, at least to me. **dusts off data structures textbook** I personally would put it further down on the list (get some more of the programming aspects of the game up and running), but it seems pretty important to you. And pretty interesting to me, so I'm up for it.
Artificial Intelligence: We would have to have something worth that intelligence (or at least be working towards it). I have not seen your code, so I do not know for certain whether an AI at this point is worthwhile / feasible based solely off the demo. As I said earlier, I would like to try coding an AI, at least a simple one. We can start making this now, or after we make a combat system, depending on how tightly you want the AI integrated into the game. Also, I would make it as separate as possible from the main game logic - the NPCs will more than likely running their own separate client-like programs and connecting to the server that way.
GUI: GUI programming is something that I have admittedly have no real experience in. We might want to get started on that one, if nothing else than to have a menu to select paramaters and options for the game.
Planets: I think Vegastrike's interface to planet landing is fairly good - when you get close enough to a planet, you receive the option to land on it. If you so choose, then it immediately cuts to after you have landed. We could also do something where you actually land on the planet, but that's up to y'all.
First-person and
Fleet Modes: Since it sounds like y'all have already started on the FPS part, I would say let's do more with that interface first, then move onto the Fleet Mode. It all depends on what would be easiest to do, and what direction you want the game to go next.
Networking: Admittedly, networking is a weak suit of mine. I did find that
Raknet networking library you metioned. However, I noticed that the license for the code is shareware / commercial if the project is not released under the GPL. Since whitelynx said the project is not open-source, then that would require that we purchase a commercial license. Until we have something a lot more concrete (i.e., we're ready to talk to publishers and get some real money to fund this thing), I don't think we should be looking at commercial licenses for anything. I know I'm a developer on the game now, but I'm not ready to pay for any libraries this early in development.
There are some alternate projects we could use. The
VOS project is supposed to be using Crystal Space or something like that, so we might could look at them. I was considering using them for the networking in my game. However, I'm not up on network programming like y'all probably are, so I'll leave that up to you. Or we could just add a networking plugin to CS / CEL... :-)
So there you have it.