Community Space Trader spec

Here’s a rough draft, I’m trying to err on the side of achieveability rather than creativity!

Space Trading Game Community Project Specification

Title:
Must be short, memorable & descriptive.

Concept:
Players fly around space in upgradable spaceships exploring, following quests, trading, space-mining or enjoying the leisure facilities of space stations.

Description:
A player starts with a few credits and simple spaceship docked in a space station. The space station has a workshop, a market, a leisure facility and a library. A casual player can launch immediately and fly around outside where there are convenient asteroids for target practice. Further off are planets which the player may go and explore. Planets may have space stations in orbit which can be friendly/neutral/hostile and may launch ships to assist/attack the player based on the player’s legal status: Fully lawful to outlaw. Destroyed ships drop their cargo which may be recovered. Players can dock at any space station (that they can get to!) and try out the facilities: Upgrade or repair the ship, trade, play minigames, check library for info on missions.
Each group of planets comprises a ‘zone’. There are many zones and the player can hyperspace jump between them.

Unique Selling Points:
So far, so Elite! What makes this different?

  • Accessible: runs in a browser so anyone can try it.
  • Visual variety: No two planets/ships are the same.
  • Minigames: Space stations may have 1 or more casual games to play (not necc. context related, showcase for developers).
  • Changeable - new planets/quests emerge as developers create/modify them.
  • Highscores - scores for overall best fighter, best trader, highscore lists for minigames.

Target Audience:
Anyone who’s bored, has a browser and likes flying spaceships! May exclude total novices due to flight mechanics. Ease of play should be favoured over realism for this reason. Ideally everyone who visits the game will enjoy some aspect of it, even if it’s just flying around looking at pretty planets.

Implementation:
Written in java (1.4,1.5?) to run as an applet in a browser.
The decision between software and openGL is a tough one. Software: always works but slow, OpenGL: fast, pretty but scary popup issues/technical probs.
My instinct is to go for procedurally generated graphics rather than fixed resources - easier to manage asset database if graphics are included in classes.
The game consists of 4 software elements;
loader
physics engine
renderer
GUI
These are all very small so they load fast. Initially the player is docked so the physics and renderer can be loaded at launch.
The loader loads the relevant class files for the current zone. Class files may be;

Planets
Space stations
Ships
Missiles
Cargo items
Asteroids (ie any passive objects)

These classes are all abstract and are implemented by developers. The loader simply has a list of classes to load and their locations.
Once loaded, classes are polled by the physics engine and renderer.
Typical class structure:

	class Planet
		String name
		Vector3D location	
		int[] textureData
		float rotation	 	
		... & other attributes	

		void init();
	class Ship
		String name
		Vector3D location	
		Vector3D orientation
		Vector3D[] vertexData 	
		Vector3D[] uvData 	
		int[] textureIndices
		int[][] textureData 
		float speed	
		int health
		Vector weapons
		Vector Cargo
		... & other attributes	
	
		void init(WorldState ws);
		void tick(WorldState ws);
		void collision(WorldState ws); (is this needed?)

The WorldState is simply a list of objects in that zone (ordered/culled by distance?).
So a developer fills in the methods for any classes they implement. In the init method they define the shape and textures of the ship, in the tick method the AI is implemented &c.
It would make sense to have a set of default models/textures available to avoid too much data replication & to let new developers get results quickly.

Unanswered questions:
Multiplayer: It would be brilliant implement some kind of multiplayer support - not MM! - but I’m sure PvP/collaborative play would be possible for a limited number of players.

Customisable ships: No reason why not as data is mutable in game, may present problems GUI-wise.

Data Persistance: save data for registered players?

Music/SFX: would be cool to have in-flight entertainment system where musicians can showcase.

Scripting/cutscenes: very useful for plotlines &c. but may cause camera/behaviour conflicts if not managed carefully.

Artwork: it’d be good to have an attractive & consistent look to the game interface.

Player control system. Mouse? Keyboard? Must be immediately accessable to a novice.

Publicity: Ways needed to get people playing/contributing to the game (the ‘hook’).

Edit: These spelling mistakes get everywhere…

I still think that having this “leisure center” is a mistake. It’s never been fun and won’t ever be fun in my opinion to be playing one game and then have another one within it. The exception lies within you still playing as your character. As in, rather than just helming the controls of a Mario clone that’s on an arcade, you’re actually playing as your character in a sidescroller. The point being that instead of including some very random mini-games in the center of our space game, we’re actually expanding the level to which you can interact with the universe.

When you go to a planet, you should be able to get out of your ship. And when you get out of your ship, you should be able to do the things that you would normally!

  • Walk around and talk to random people, like in an RPG. Get special missions this way, or learn important plot-based elements.
  • Leave the city and go hunting for some sort of resource that you can later sell, whether it’s gathering berries or collection ivory. This would be like in an adventure game, or Oregon Trail.
  • Get in a fight with some thugs, requiring you to control your blaster rifle. Basically like Contra or Commando.
  • etc.

I think the possibilities for sub-games that are thematically part of the actual game are enormous, and could easily occupy all the people who want to do little minigames as part of this one. But having an arcade just doesn’t make an sense to me, especially because this is supposed to be the future, right? Why would people be playing a game that looks as bad as the stuff that’s showcased on this forum (I’m not saying it actually looks bad, I’m saying that in the future the technology would be nuts and all this will be way outdated)? It doesn’t make sense on a number of levels for someone to go to an arcade and start playing Centipede while they’re in the year 3,000 flying a space ship around.

Hi, Simon. Good work on the specification! And well done for taking on such a thankless task.

Now, to illustrate why the task is thankless… :wink:

The game you describe is basically Elite in a browser, with some sort of user(/developer)-generated content.

Aside from the way developers plug in content, it’s all very generic. (“Is there a feature you’d expect in a Space game? We’ve got it in ours!”) At the moment it doesn’t seem inspiring for either players or developers. There’s got to be some original ideas in there! (For instance, why spaceships? I want to explore to travel among the stars in a giant intergalactic fish!)

Eagerly awaiting your next draft,
Simon

I think the way to distinguish yourself is in style and gameplay. When described at this level most games in any genre would sound pretty similar. I think the spec is a great start and what is really going to matter is the visual style and the combat flight mechanics. On paper Halo would sound pretty similar to every other generic FPS but they polished the look and feel of the game to a highly immersive and fun experience. Diablo is another example of a game that on paper would sound pretty dull but if you really focus on what makes a game fun you can get something great. Also the fact is nothing like this has been done in Java means even if we produce something that is not quite up to Freelancer but running in a browser would still turn a few heads.

On the mini-games side of things, although I am opposed to them in general I think we could get something that doesn’t detract too much from the main experience. Calling it an arcade or leisure center is a mistake, I think if you called it a game arena or something similar and had it feel like and important part of the universe (Ian Banks: Player of games esq) then I think you could work in some strategic games that feel like futuristic versions of chess with tournaments etc. I think Demonpants suggestion of a split-genre game where the main engine has mini game sections for completing tasks (Quest For Glory series or Super Star Wars) is VERY hard to do well. I have seen a ton of bad examples of this and can’t think of a single really good implementation. That is not to say it can’t be done but getting them to feel seamlessly integrated and fun would be hard.

Sure! That’s kinda the point - though the framework is very basic (it’s meant to be) - the real good stuff starts when people start developing material. You want a giant fish? No problem - you have full control over your poly data; you can make it swim and everything!

Maybe I should have emphasised this point more: The amazing thing about this project is that it gives developers limitless creative potential within a stable and understandable framework. Anything is possible! The idea is that if someone wanted to make a fish-ship they can easily do that and make it ‘live’ in the game.

The core idea is that both artists and coders have a contextualsed place in which to show off their skills.
The underlying game is an Elite clone but that’s a good thing: poeple understand it and it’s an excuse to travel through a weird and wonderful universe!

Awesome start Simon, and so quick. Great stuff!

I don’t see anything wrong with a project that is essentially Elite with a lot more configurability and user content based activities. Elite was a great game and is still worshipped by a great community. However, at the time of release user generated content was basically non-existent. So, if the emphasis is on mixing a classic game concept with user generated content I reakon thats a real goer. From a developer’s perspective I think the challenge of writing a game a nice as Elite is pretty average, but making it as configurable as the Sims or Spore is brilliantly complicated (while maybe slightly more simple than those two, because well, it’s space, there’s less to see ;).

At least as you’ve explained them so far I agree with the others that embedding unrelated mini-games into the stations is a bit wierd and probably not a selling feature. That shouldn’t stop someone designing and building an arcade on their station that you can play games in as well as trading. It just wouldn’t be an inherent part of the system.

Technology-wise, why not choose JPCT - you can have bother rendering (software and GL) and a really well known and mature engine at the same time.

Multiplayer - I’d be really interested in the challenge of writing a game where your real time game happened solo but you had an effect on a persistent world by playing. There’s some really interesting security issues there (and it’s something I want to work into another project I’ve wanted to write for a while ;)).

One thing I think was missing in a lot of Elite games is Epic Missions. A lot have individual missions but I always wanted a story line to pop up that I could kinda chase through by completing missions and finding out info - or deducing stuff for yourself. If this could be something that could be easily built on that’d be cool too. Last game I played that had a good few of these was Privateer.

Again, nice work and thanks for taking up the challenge :slight_smile:

Kev

I see I’m not the only one for UGC as the future of gaming. Letting people who are good and passionate about telling stories but not good technically to generate content is the way to go. But to accomplish this, you need to build one kick ass story/level editor. If UGC is going to be the driving point of this concept… the tool you publish along with the game will be a big challenge.

Jack

I agree. I would like to see the missions/quests to be part of much larger story line. perhaps by choosing different missions you effect the development and ultimately the larger story?

I admit I was never the one to spend hours upon hours in Elite. Some of my friends were though, and back in the good old “Hot Seat” days when computers were rare, I got some “guest time”.

Now, I have some opinions to share. The challenge is wording them so they’re not misinterprated.

The Universe:

  • I’d like to think of the universe as something infinite. However, in computer games, inifite is kind of hard to achieve. With randomised procedural content only, it’s practically achievable, but my gut tells me it’s going to be generic and dull after a while. So, I’d like a fixed universe. I’m going to compare it to the world map of Pirates!. There are towns with harbours of different sizes (Planets with spaceports and cities ++), there are winds and weather (solar storms, nebulas, etc.) affecting travel routes, there are pirate ships, other travellers etc. There are treasure maps to ancient treasure or bounty, etc. Hopefully by now, the comparison is noticable. I don’t really care how many dimensions we represent the universe in, as long as there is some kind of “galactic” map.

In space ports:

  • It would be cool if space ports could include a dynamic economy. Assuming we’re having some sorts of multiplayer, the space ports could act as hubs where players can buy and sell items in stores, and the stores’ economy would be global and driven by demand. Back to the reference of Pirates!, perhaps the “Gold Train” is in town? :wink: (offering epic missions?)

Exploration in space:

  • Here, I’m thinking Guild Wars. You set out with your ship (possibly with friends if multiplayer, or some hired AI ships if not. Or alone, for that matter.) and you explore an open-ended universe, or you follow missions. You don’t really meet other players here. Space has to feel like space, but at the same time it must be anything but dull.

I’m rather unsure what I think about going down to planets and exploring them in detail. Although it would be really cool, it might come at the expense of making space more dull, and that for me is a no-go.

Once again, you two should check out Escape Velocity. It has 6 storylines that are all very satisfying. You basically play through these main story missions to get really good ships and to become more powerful, while the large plethora of smaller missions on the side allow you to have all the regular space-type gameplay.

@sws - Yes, you’re totally right that it is very very difficult to accomplish the game-within-a-game thing. But, I think we should either do the minigames this way or not at all. Like I said, having futuristic arcades doesn’t make sense to me.

My input:

  • SP / MP?
    I still think a MP game would create more interest for players.

While Artificial Life would have to be added in both games, in a MP environment the players would fill up half of that.

@ Making a better Elite:
I think we should have more variety in missions.
Fed-Ex, hauling, head-hunting or raids can all be fun.

Even just being able to buy different ships already creates goals that people will want to achieve.

Detail: Null cost travel
Something I would not want is ‘null cost travel’ as I call it. Meaning: does travel cost me (in fuel or something)?
If the scope were just a combat game, it would not matter, but as this game is a trading game, IMHO it should be a vital part.

Also a nice money well.

@Detail: wear and tear:
Stuff should wear over time and need to be fixed/replaced.
This would not only help the economy (fixing needs basic resources and replacements need finished components) but also serves as a money well.

@Detail: Money income balance:
As I had mentioned elsewhere, IMHO low risk = low income.

If you are a miner, you should not be able to haul in massive amounts of money without having to pay something in doing so.
Maintenance, crew, mining rights and taxes.

EvE f.i. it was easy to amass large amounts of money by mining.
I’d have preferred to trade but that was a) less profitable b) more difficult because c) the economy was shot and overfed by mass production.

Which also leads to:

@Detail: Economy:
Naturally in a trade game the economy needs a lot of attention.

@Detail: crew
As discussed in the other topic, crew should also be added and should require payment.

Basically all these can also be viewed as ‘RPG’ stats and thus could easily be justified. :slight_smile:

Not sure hows thats related to UGC (user generated content)? Fantastic story lines are great - and I agree they’re missing from a lot of this type of game. Does Escape Velocity provide the ability for instance for users to design their own ships and weapons, or better still space stations and planets :slight_smile:

Kev

Yes and no. It has a hugely elaborate plug-in system that allows you to make absolutely anything you want - new planets, missions, ships, etc.

That being said, in-game customization ends with your ship type and the weapons/items you’ve got on it. You can also dominate planets which changes things a bit, but otherwise there’s not much in the way of changing the universe other than via missions.

I was responding to the mission comment, specifically. They wrote hundreds of pages of storyline for EVN and that turns into long mission chains. Along the way stuff happens, like if you’re doing the psychic storyline your powers get stronger and therefore your “ship” (a psychic shell around you) gets bigger and stronger. Or if you’re doing the living ship race storyline you start to learn to see the gaps in reality and the way it’s all put together, so you can start cloaking, splitting your torpedos into multiples, etc. Not to mention there’s a lot of cool text stuff like “10 warriors come to challenge you but you use the weave to incapacitate them all” or whatever.

Beyond “typical game design”, here’s what I probably can do well:

  • Economy
  • Languages (I’m thinking alien languages, the big universal translator, etc)
  • Quest system
  • Tying content together.
  • Realtime Combat system

I’ve coded on and administered a Mud since 1994, so I’ve worked quite a bit in these areas. Of course that was not graphical, but the core functionality remains the same.

Single player, but dynamically loaded mods can obviously download non-real time content (eg highscores).

As for mini-games. Its not a design consideration if content generators can fully customize their shace station’s UI, which I think is critical in making space station “feel” different anyway. So its not an important decision.

If ship definitions are loaded by .class loading which the spec suggests, then customizable ships could be added much later. This approach brings some serious scope for serialization issues though.

As I have said. I will commit to contribute if JOODE is the physics. If that’ the case I inherently volunteer for the physics and collision detection. I would need someone to spec. the format of game data (how will designers define the collision geometry, center of gravity of ship, thruster power and locations etc.).

Hers my opinion on other things:-

Fixed space map! Essential for decent content.

I like Escape Velocities content, but the 2D approach bugs me for space. You can’t have big ships becuase they don’t fit on the screen well. If people wanted 2D would have to be able to change the zoom. I think 3D is better anyway.

I don’t like dynamic economies. Either it is implemented well and you don’t notice it OR the whole economy is screwed and your screwed as a result (negative experience). As a developer you gain nothing from it. When I say dynamic economy I mean if I dump loads of resources at X will it affect potentially Y. Is the process of inter space station tranding simulated? I don’t like this approach becuase its difficult to know if its going to be unstable and impossible to debug. I don’t mind something simpler like prices are proportional to distance to the element producer. You can then notice destroying sources of economic value. I don’t think the players trading resources should be ever significant to the long term wider economy, its unrealistic for one thing. E.g. an oil tanker got prirated a few months ago. That is our biggest trading ship, on the worlds most valuable resource. It change the global oil price 2-3% on the day it happened, which is neglible compared to the impact that even threateing to go to war does on the price of oil (because the sources are under threat). So I don’t like fine grained dynamic economies, but I do like high level politics and supply chain modifications to have (predictable) impacts.

As for content:- a large overarching theme which is triggerered sporadically through the main free style playing experience.
I think we should fix the race of the player to be human. Humans are new to the universe. There are a few other “main” races. The game ends when one race has dominated the entire galaxy or something (unique ending for each race, different race = different moral code of ethics).

Dev.s develop independently sectors which are mostly comprised of non-main races (trade opurtunity, element source, maybe a few special missions and scripted major local events like planet loss). They can write content knowing the player is human, but with stronger allegances to 1 of 5 main races). If a main race captures a space station it should overwrite it’s UI.

Main races initially won’t take over space stations on their own. It should be special mission provoked. But if the galaxy is large, they might have to automatically in the mid game. The important final take overs should player provoked again.

Possible races. Human (startrak military feel, diplomacy and fighting). Trading race (bit like ferrengi, their takovers are not military based). Maybe a good race (angelic like race, they take over but for good reasons like harmony). Robotic race (assimilate!, reconfigurable ships :wink: ). Warrior race. Human rebel race (crime). That kind of thing.

Combat mechanics. Yeah no-one like real physics, heavily dampened, but real in the sense of loss of engines(?). Special moves! I think this is what would make space combat cool again, driven by RPG stats. Targetting is important to get right. We will need a big discussion at some point.

Traveling should not be a waste of time! Fully automized travel. All the way from space station to space station (?). (interuppted for randoms)

RPG elements. Your officers rank. Not all ships will have all possible officer designations. As a human, your core skill is deplomacy = dialogue options. Other elements:- tactical, medical, engineering, espionage. Main races will always have slots on their ships for whatever their core theme is. Thus main line stories can involve stories around members of your crew or have crew prerequisite). Random encouters can also depend on one of your crew. But definatly some events will have to be possible without any officers. I like officers becuase its a further set of parameters for designing “the perfect ship”.

The player only owns one ship. Escorts are possible. And becoming an escort is possible. Massive (scripted) fleet battles between main races.

Also add mundane bonuses to game stats (speed of ship, weapon power etc.) which is a function of non-officer crew stats + relevant officer stats). i.e. a good officer makes his crew better. Good crew is better than crap crew. Crew and officers can come from any race for race modifiers. Robots make good engineers etc. You should probably see some kind of penalty for an overly mixed crew (random criminal damage at space station = fines, random failures of special move deployment).

I am not the kind of person who cares if anything he suggests is not implemented. This is just my 2c, and I am happy to work on this project under anyone’s 2c. The only major thing that affects me is whether JOODE is used or not. And if its not I am still happy to work on this, but it will have to be much more at my own pace.

Tom

Oh yeah. As I have said. I think community organization will be a key feature of this project. Would it be possible to link a wiki to applet serving? So the current game jar (precompiled by devs locally) in CVS or SVN or whatever is pointed to by wiki pages (modifiable only by devs of course). You can create multiple wiki pages with different params passed to the game jar for backdoors into different test functionality.

It would keep the wiki lively and give testers an easy ride.

@t_larkworthy
I’m thinking much along the same lines as yourself - get the framework up then let individual or groups of devs do what they dig most.
As for JOODE, I don’t think it matters what the physics engine has under the hood - must be compact though…
Like the races idea - gives it a bit more plot foundation.

I think allowing UGC would be a world of pain, but it would be good to make it as easy as possible for new devs to contribute - there’s plenty of space!

I’m not so comfortable with too much micro-management - I’d much rather go for diverse content and ‘epic quests’.

I think that landing on planets or walking around in space stations would increase the scale of the project to an unmanagable size. It would also require masses of extra art assets.

So is this where we’re up to?;

We build a basic physics/render/trade framework which is almost content-free and get it stable. (2 months?)
We then encourage devs to participate by giving them some planets and some default code to modify/extend.
Devs work individually or co-operatively to generate content within a broad overarching theme.
New content is added to the game as it is developed so other people can watch/test the development as it happens.
When the content becomes rich enough (8 months, a year?) we have a ‘grand opening party!’.

[quote=SimonH]Maybe I should have emphasised this point more: The amazing thing about this project is that it gives developers limitless creative potential within a stable and understandable framework. Anything is possible! The idea is that if someone wanted to make a fish-ship they can easily do that and make it ‘live’ in the game.
[/quote]
I’m wary of the emphasis on user(/developer) generated content in this project. My concern is that it’s difficult to tell the difference between a plan that says 90% of the project will be contributed by users, and a plan that says nothing at all.

I’d feel more comfortable with the concept if a couple of points were fleshed-out.

  1. How would the submission of content be moderated?

At one extreme, the project director(s) could request specific bits of content, or assign bits of content as tasks to specific developers. Submitted content would be reviewed, and often rejected or re-written. I’m guessing that this approach is more controlling than people have in mind.

At the other extreme, submissions could be completely un-moderated, with each user/developer having their own zone which they can populate however they see fit. But I can’t see how a playable game would emerge from this. (For example: Want more credits? Then come to my galaxy where there are lots of unarmed cargo ships to pirate! Think the game’s too difficult? Then write you own Ship class and give it infinite hit points!)

  1. What is the range of allowed interactions between game objects (Ship, Planet, Missile, etc.), and how are they aware of one another?

The initial spec allows for an update step for each game object (change of position due to velocity, collisions, etc. as judged by the ‘physics engine’) and a render step, but what about interaction between game objects? This is surely where all the interesting stuff happens: missiles turn to track the player, lasers hit an enemy in its weak spot, pirates launch from their hidden base as the player passes, etc.

How would the code be structured to handle interactions? What functions would there be for allowing one game object to enquire about another game object? How would your AlienInvaderShip object know that my AlienTraderShip object is on the same side? How would a SmartMissile know that it can pass through a Cloud but not an Asteroid?

Could the spec have an opinion on these things?

Simon

[quote]As for JOODE, I don’t think it matters what the physics engine has under the hood - must be compact though…
[/quote]
Yeah I don’t think it matters either. Any thing missing in JOODE that is required will get added (or merged from JBullet, it has great collision detection). As for size of resultant jar, we should pack it in the deployment toolchain. So JOODE bloat should not be a problem (I’ll make it not a problem).

I have no expertize of selecting a decent renderer.

[quote]1) How would the submission of content be moderated?
[/quote]
CVS access + other dev.s nagging?

I think the overall story boards are quite important and need to be quite specific so contributers know the context they should submit to. I have tried to suggest some high level ideas which are important with respect to coding the engine. But for people to make anything we would need some hardcore race documentation (creative writers) and stories. Dev. Wiki? Submitters must be aware that is much more important that their contributions make keep the galaxy coherent and must be mature enough to change any of their content to the communities perspective. That said, if the economy is defined by the engine, then contributers would have to go out their way to create free money on a sector containing a few planets and a space station. Global content like ships will be awkward to balance. I know I am vocal with ideas but I don’t want any overarching responsability. I would want to have my own little collection of planets and station with which I populate with other peoples designs and ships, + a few unique sidequests. I would want to be reading a document on the galaxies creative styles + dos and don’ts to help me.

“2) What is the range of allowed interactions between game objects (Ship, Planet, Missile, etc.), and how are they aware of one another?”

Dunno, this is critical though. If I do physics, I would want an interface written to which I ensure my backend complies to, with which other developers interact with. This would support all the functionality the targeting system would need (spatial selections), the ships controlls would command (applying rotate ship clockwise action, I’ll work out which thrusters would to apply upto their maximum to acheive the desired action). Missiles and ship AIs would interact with it. I don’t want to write the core datatypes. I just want to implement the functionality implied by the core datatypes w.r.t. physics and spatial interactions. I am also not adverse to AI so I could aid someone with implementing that. I quite like the event driven model, so my engine would be emmitting “a hits b”. It would be upto an AI listener to decide that A is a space station and B was a laser fired by a ship so A does into hostile mode and adds B firer to its enemies list. A then can add itself to the active game step listeners so it can sequentially launch fighters and aim its guns. In effect game logic would be have to be given a hook with which for it to link itself to relevant event emmitters. So content must be able to add listeners when the user enters a territory (on load events). Some people don’t like event driven stuff, but a game loop equivalent obviously exists.

"How would your AlienInvaderShip object know that my AlienTraderShip object is on the same side? " factions? default AI.

“How would a SmartMissile know that it can pass through a Cloud but not an Asteroid” missile AI.

Shouldn’t really be a problem - why would anyone go to all the trouble of messing things up? I think a bigger problem will be devs agreeing to contribute key elements then failing to do so, rather than them filling the galaxy with junk!

I had thought that the tick() method could pass an ordered list of objects within ‘scanner’ range and some additional info (in collision true/false, hostility status of object &c). AI lite need only look at close objects for collision avoidance, deeper AI could look further for tactical planning. (Upgrade that scanner!).
An event-driven system would work for collision and initial sightings, but how deep does it go? Course changes of other ships? Missiles launched but not at user? A list would be easier to implement and easier to derive AI input from (but maybe less efficient).
I guess some communication system between ships would be needed for plot driving & group tactics. Maybe user-selected from a list of ‘standard’ calls?

WRT plot I think it would help to have some concise plot descriptions which convey the sense of the game.

Here’s my effort;
Having finally achieved hyperspace drive the human race becomes the 6th race in the Great Alliance, only to find that the warlike Kraaargs (or whatever) have betrayed their trust and rebelled, throwing the Alliance into chaos. Law breaks down and large parts of the galaxy descend into anarchy. In the year 2315 news arrives of a huge invasion fleet of unknown origin beyond the galaxy, which threatens to sweep away all opposition before them.
The only hope for known life is to reunite the Alliance through force or persuasion and drive off the invaders!