General Question Career Mode

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,616
Reaction score
2,336
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
Another feature I would like to add later is a "Mission control" functionality via the server. Not fully real-time, but even a modern mission control has some delays and not all data instantly available. But also, there we would again have some user rights management problem to solve, etc.

The more generic the user rights are defined and handled, the easier it is to extend the system later and the easier it is to check for security issues.

---------- Post added at 17:13 ---------- Previous post was at 17:07 ----------

IMHO, an automated open-source evaluation plugin for such a system without some anti-cheat feature right from start is a social train-wreck waiting to happen.

Well, it could also be a train wreck from the other end then. Humans are not always fair.

I think we should do automatically what we can, and what we can is a matter of how much time we invest into it. But for example, if the plugin can send some state vector data in 2-5 second intervals, we can provide a plot of the mission and let somebody verify if for example somebody used the scenario editor for tweaking the mission.

But we can do a lot there to sanity check the data before a human needs to look at it already - for example, if there are sudden jumps. Maybe we can even detect if somebody used a prerecorded playback of a mission (But I am not sure if this is already cheating).
 

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,403
Reaction score
581
Points
153
Location
Vienna
Well, it could also be a train wreck from the other end then. Humans are not always fair.

That much is true, of course. If you take a look at what I've written back then, that is also why I've proposed to display the reviewer's "performance" in a list. You can then see if one is particularly unfair in contrast to others. Social pressure, so to say.

---------- Post added at 17:40 ---------- Previous post was at 17:31 ----------

As an idea for user convenience, there could be a plugin that automatically bundles up a certain mission status (meta-data, credentials, logs) and sends it to the server. On the server-side, an automatic evaluation process runs and rates the mission. This process could be encapsulated in a tool, which in turn can also be used by the user offline to pre-evaluate his flight. However, the actual committing of results is only done on the server-side for the "official" account, never on the client-side.

Sure, with this tool you could rig a log to cheat the tool, too. Nothing stops the admin to check the evaluation manually by means of watching the recorded flight post-committing, though, and subsequently correct the values.
 

martins

Orbiter Founder
Orbiter Founder
Joined
Mar 31, 2008
Messages
2,448
Reaction score
462
Points
83
Website
orbit.medphys.ucl.ac.uk
I think its clear, some basic stuff should be around:

[...]
6. It makes sense to have a default universe there for the start.
7. A VSA is always assigned to an active universe, it must select a universe during creation. Its possible to move a VSA to a new universe.
8. A player can be active in multiple VSAs at the same time.
[...]

While I have to admit that I never got into the VSA thing (it always sounds as if it is more about admin than actually flying, which isn't my definition of fun :lol:), here is a (potentially naive) idea:

Would it be possible to have multiple VSAs assigned to a single universe? This could open the door to a competitive element (i.e. a race), for example first to establish a settlement on Mars, etc. Ideally this wouldn't just mean two VSAs operating by themselves in isolation and comparing notes at the end, but some sort of interaction (e.g. competing for resources).

This would then require a synchronisation of the different VSAs of some sort, which I have no idea how to do in practice short of a full-fledged multiplayer mode.
 

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,403
Reaction score
581
Points
153
Location
Vienna
This would then require a synchronisation of the different VSAs of some sort, which I have no idea how to do in practice short of a full-fledged multiplayer mode.

And even in a full-fledged multiplayer mode, a common resource-universe (E:D, anyone?) causes troubles if you think about time-warp, which I suppose will be necessary for most timelines.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,616
Reaction score
2,336
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
While I have to admit that I never got into the VSA thing (it always sounds as if it is more about admin than actually flying, which isn't my definition of fun :lol:), here is a (potentially naive) idea:

Would it be possible to have multiple VSAs assigned to a single universe? This could open the door to a competitive element (i.e. a race), for example first to establish a settlement on Mars, etc. Ideally this wouldn't just mean two VSAs operating by themselves in isolation and comparing notes at the end, but some sort of interaction (e.g. competing for resources).

This would then require a synchronisation of the different VSAs of some sort, which I have no idea how to do in practice short of a full-fledged multiplayer mode.

Yeah, finally a person who understands me. :thumbup:

The universe idea is also for fixing other issues there, like the required add-ons that must be installed. Instead of making this a "by VSAs discretion", a player could already get the required add-ons listed when joining a universe.

Also, by having multiple universes, there could be multiple such competitions at the same time or at different difficulty. For example, when an universe runs for a longer period of time, it will get increasingly harder to new players to find their place there, while a new one offers more chances.

And that way, the bases of the other VSAs could also be added to the scenario, so, even if it is closer to PBEM than true multiplayer, you could see some progress of the other teams in Orbiter.

But that is still a pretty far distance to get there. Maybe we might even need to find a way to limit the number of VSAs then per universe or another mechanism to make the scenarios playable.

---------- Post added at 18:09 ---------- Previous post was at 17:56 ----------

And even in a full-fledged multiplayer mode, a common resource-universe (E:D, anyone?) causes troubles if you think about time-warp, which I suppose will be necessary for most timelines.

Maybe we can prevent it, by keeping the gameplay single player. Like PBEM in that sense.

For example, we can have a "universe date", which is the current date of the universe on the server when a mission is created. When a mission is ongoing, the resources for that mission are not available, so can't be used in parallel. When a mission is done, the resources are returned to the server including the MJD at which the mission is finished. Then, the resources could still be kept reserved until the "universe date" of the server reaches this date. The universe date of the server would then be defined as the lowest available universe date of a resource.

For example:

Its star date 10000
VSA A creates a mission M1A and assigns vessel V1A to it.
VSA B creates a mission M1B and assigns vessel V1B to it.
Mission M1A finishes at star date 10002 - but universe date remains at 10000 because V1B is still at 10000.
V1A remains reserved.
Mission M1B finishes at star date 10001 - V1B is now at 10001 and is already available for a new mission M2B at star date 10001.
V1A remains reserved.
Mission M2B finishes at star date 20000 - V1A is now available at 10002 and V2B is reserved until 20000...

With two vessels and VSAs, it might look a bit unfair, but if you have more vessels and missions active it could be relatively easy to progress.

By defining a deadline for the missions, you could easily prevent the server getting frozen by somebody not flying the mission at all. If somebody does not fly, you could even add a penalty to the vessel for "obstructing traffic" and encouraging the players to better fly badly than not at all. But even using the mission deadline as reference would already be punishment enough.
 

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,403
Reaction score
581
Points
153
Location
Vienna
What about the classic "supply station/outpost" scenario in your model? Let's say both VSAs schedule a mission to supply a station with e.g. water, and the competition in this case is who is faster. VSA A pilot flies a faster trajectory (perhaps more DV), but does so almost in real-time. VSA B pilot flies a slower trajectory, but uses time-warp. As a result, B is faster in real-time, so hands in the mission result earlier, but slower in sim-time, so he should not have been able to drop the cargo at all. When A eventually hands in his result, the conflict needs some resolution.

Would your model simply restrict parallel racing, because one of the VSAs reserves the resource "target-station"?
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,616
Reaction score
2,336
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
Would your model simply restrict parallel racing, because one of the VSAs reserves the resource "target-station"?

Right now - yes. Maybe there can be a good solution regarding stations, but I doubt it.

For example: You have an assembly mission to install a module at port 1 and at the same time a resupply mission that also docks to port 1. Who wins?

I think parallel racing would still be possible by having your resources ready earlier than the competition.

Also, we could maybe get more interaction by allowing "subdivided missions". For example, one sub-mission consists of flying vessel 1 to port 3 of a space station for refueling. The next sub-mission would then fly the refueled vessel to Mars. This way, reserving on a docking port-level would work without blocking a docking port for too long, the progress on the station is still visible, but we would get more restarts of Orbiter, which might annoy players.

Doing updates to the scenario progress internally by an Orbiter plugin would be possible (I believe), but I can't imagine yet how to do it. We would need a limited history of the universe then for making it work. The plugin would then get a changeset of the universe from the server and a MJD when the changeset can be applied to the scenario. Of course, time warp would then result in changes getting applied instantly, because they already happened in the past, which could be bad if you are right in the middle of the changes....can of worms.
 
Last edited:

jedidia

shoemaker without legs
Addon Developer
Joined
Mar 19, 2008
Messages
10,877
Reaction score
2,131
Points
203
Location
between the planets
I think we're getting ahead of ourselves. Let's first have a basic project setup to code in, please :lol:
 

Xyon

Puts the Fun in Dysfunctional
Administrator
Moderator
Orbiter Contributor
Addon Developer
Webmaster
GFX Staff
Beta Tester
Joined
Aug 9, 2009
Messages
6,926
Reaction score
794
Points
203
Location
10.0.0.1
Website
www.orbiter-radio.co.uk
Preferred Pronouns
she/her
I think we're getting ahead of ourselves. Let's first have a basic project setup to code in, please :lol:

Sure, where do you want to put it?
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,616
Reaction score
2,336
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
I think we're getting ahead of ourselves. Let's first have a basic project setup to code in, please :lol:

Well, fastest start would be getting a git repository done with a Maven workspace created with the Dropwizard archetype. Which IDE do you want to use? I have Netbeans and IntelliJ here.

---------- Post added at 20:24 ---------- Previous post was at 20:23 ----------

And who wants to do the eye-candy/web design? :rofl:
 

jedidia

shoemaker without legs
Addon Developer
Joined
Mar 19, 2008
Messages
10,877
Reaction score
2,131
Points
203
Location
between the planets
Well, fastest start would be getting a git repository done with a Maven workspace created with the Dropwizard archetype. Which IDE do you want to use? I have Netbeans and IntelliJ here.

Sounds good. Intelij all the way here. Though with Maven or gradle it's not a big issue if multiple people work in different IDEs in my experience, since all the build information is IDE independant.

And who wants to do the eye-candy/web design?

Depending on what we're going for I can do some coding, but I'm definitely not the guy you want deciding what it looks like.
Speaking of what we're going for, since we're working with REST the most obvious thing would be to have the frontend be a completely independant application in something like Angular2 or Ember served by an nginx server, or does Dropwizard have a frontend integration of some kind?

EDIT:
It also might be a good idea to throw swagger into the project setup right away.
 
Last edited:

Xyon

Puts the Fun in Dysfunctional
Administrator
Moderator
Orbiter Contributor
Addon Developer
Webmaster
GFX Staff
Beta Tester
Joined
Aug 9, 2009
Messages
6,926
Reaction score
794
Points
203
Location
10.0.0.1
Website
www.orbiter-radio.co.uk
Preferred Pronouns
she/her
Sounds good. Intelij all the way here. Though with Maven or gradle it's not a big issue if multiple people work in different IDEs in my experience, since all the build information is IDE independant.



Depending on what we're going for I can do some coding, but I'm definitely not the guy you want deciding what it looks like.
Speaking of what we're going for, since we're working with REST the most obvious thing would be to have the frontend be a completely independant application in something like Angular2 or Ember served by an nginx server, or does Dropwizard have a frontend integration of some kind?

EDIT:
It also might be a good idea to throw swagger into the project setup right away.

So now you've essentially three codebases; the server and API, the frontend, and the Orbiter tie-in? Seems logical to give each of them a git repository on github or similar.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,616
Reaction score
2,336
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
Speaking of what we're going for, since we're working with REST the most obvious thing would be to have the frontend be a completely independant application in something like Angular2 or Ember served by an nginx server, or does Dropwizard have a frontend integration of some kind?

EDIT:
It also might be a good idea to throw swagger into the project setup right away.

Dropwizard is pretty much frontend agnostic - it just supports template processing. Which on the other hand means, you are absolutely free to do what you want, as long as it is based on REST.

(Dropwizard first popped into my universe researching microservices. That is where it really gets fun.)



---------- Post added at 22:55 ---------- Previous post was at 22:54 ----------

So now you've essentially three codebases; the server and API, the frontend, and the Orbiter tie-in? Seems logical to give each of them a git repository on github or similar.

One repository, but three components would be better IMHO... they are all related to each other, it makes no sense to develop them separate.
 
Last edited:

jedidia

shoemaker without legs
Addon Developer
Joined
Mar 19, 2008
Messages
10,877
Reaction score
2,131
Points
203
Location
between the planets
Dropwizard first popped into my universe researching microservices. That is where it really gets fun.

Yeah, I know that kind of fun... :shifty:

One repository, but three components would be better IMHO...

I must admit that I'm not familiar enough with the organisation structure on Github. On Bitbucket I'd make three repositories in one project.

EDIT:
I guess the frontend choice would depend largely on what it actually has to do, which I can't quite make out yet. If we need a complex UI with dynamic data loading I'd absolutely advocate for angular2 (not to be confused with angular.js. Completely different animal!), if we just need some forms to display and store data in roughly tabelaric fashion a template engine might be enough...
 
Last edited:

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,616
Reaction score
2,336
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
Well, we could also combine both worlds, I am sure - can't the frameworks handle plain HTML iframes? I think Ember.js would be a fun choice because NASA also uses it, but yeah, angular2 would make more sense for such a project.

Also I think we should start out monolithic initially - UI, backend and DB should be one artifact - we still need to figure out how to do it right and we can still later refactor it to split it into separate artifacts, especially if we already get a good horizontal structure into the sources.

On the other hand, I agree that the UI project could be quickly made separate and simply use the Java server as backend. Its just about getting some answers to the first questions quickly.
 

jedidia

shoemaker without legs
Addon Developer
Joined
Mar 19, 2008
Messages
10,877
Reaction score
2,131
Points
203
Location
between the planets
I think Ember.js would be a fun choice because NASA also uses it

It might also be interesting to take a look at it since I never worked with it. But I can't be bothered to go back to plain js from typescript...
 

IronRain

The One and Only (AFAIK)
Administrator
Moderator
News Reporter
Donator
Joined
Oct 11, 2009
Messages
3,484
Reaction score
403
Points
123
Location
Utrecht
Website
www.spaceflightnewsapi.net
If one also want to have a mobile app, please let me know. Especially if there's a REST API, this should be fairly easy to add later in the project.

BTW, I'm also willing to host Gitlab CE, if that works for anyone. I've been thinking of doing that anyway, for the O-F community as a whole. People who want private repo's can create their own repo's, and if you want to work together on a project, you just create a project with multiple members.

I can have it running later today, just need to know if it's okay for anyone.
 
Last edited:

Xyon

Puts the Fun in Dysfunctional
Administrator
Moderator
Orbiter Contributor
Addon Developer
Webmaster
GFX Staff
Beta Tester
Joined
Aug 9, 2009
Messages
6,926
Reaction score
794
Points
203
Location
10.0.0.1
Website
www.orbiter-radio.co.uk
Preferred Pronouns
she/her
Gitlab is pretty good, we use that in work (though I made then pay for EE). I could tie that into ohm too, if I ever get round finishing that rewrite...
 
Top