Ambrosia Garden Archive
    • Simulated Networking?


      Before you go getting weird on me, like I'm scribbling in the holy bible of Nova here, hear me out. Since mods are fully allowed for Nova, as is evident in this forum, does that include minor additions to the game's programming, as long as it remains for non-profit, user community enjoyment purposes? My reason for asking is because of a little idea I came up with recently, and the fact that I may know somebody with the brains to make it work.

      - Nova SIMULATED Networking -

      Although the prospect of an EVNMMORPG (wow) is impossible with the limitations of the engine and the fact that Matt Burch has locked the code vaults on the EV series, a slightly different, semi-networked option isn't too far out of the field of possibility. One of EVN's biggest issues that would be encountered with a networked environment is how do you overcome the issue of people jumping from system to system at different speeds? Theoretically, people would end up in different time periods entirely in the space of a couple of weeks in-game.

      However, here's a novel concept. If a little bit of extra code was added into the game engine, it could be set to generate what is really just a data output log, detailing all the player's actions each day he's in the game. If this log were then used to correspond with client computers running the "Networked Nova" game, a player whose jumps take three days could receive a simple report when entering the system that details the simple actions taken by the other players in the time he was in hyperspace. Although players would indeed get "left behind" in the timestream by those who take only a day to jump, the faster ones would essentially write the timeline ahead of their other counterparts, encouraging them to get faster ships. Perhaps a small storyline could even be scripted in which time travel plays a major element. Essentially, this log file could also be put to use generating random dude resources in the game, up to a maximum of whatever, simulating players actually encountering each other, the dude resources calculated using the output files of the other players, creating ships that match their combat statistics (weapons, shields, etc), and would fight if such is their nature. A player who does more trading missions than anything else would appear under the "trader" government to others, even though its just a simulated version of him/her, and alternatively, the dude resource of a player who on average blows up every ship in the system in a matter of minutes would automatically gain the "xenophobic" tag, and assault any other player who crosses their path. All the while, players receive brief informational dialogs when entering each system, telling them what planets have changed hands, and who is now a most wanted criminal and such. In theory, players who play notoriously could and would appear as bounty ships to the others, if their wanted level was high enough in the systems they frequent. Likewise, players who routinely blast apart these bounty targets would have rather merciless dude resources to any other players with wanted ratings.

      And all this done with just a few log files, in theory.

      It'd take quite a bit of work, and it depends on whether or not my friend (who would program it) moves away at the end of this summer, but if not, it could be done, assuming the community would condone and benefit from it, that is.

      In essense, it wouldn't really be a networked version of Nova, but rather, an automatically user-contributing form of such, making it SEEM like a networked version, through just a simple form of networking (just log file transfer), nothing overly complicated, aside from adding code into the engine via plug or direct hack.

      Tell me what you think! I cannot make any promises though, just to warn you.

    • Well why don't you get your somebody with the brains to try doing this and tell us how he gets on 🙂

    • I'm not sure Ambrosia would like you tinkering with the engine code. Besides, what about all the many plug-ins that players use? Especially conflicting plug-ins?

    • Maybe some way to detect what is loaded (From Nova Files, and Plug-ins folders) could be established, or, since the Debuglog can tell what is loaded and not, just utilize that, though, that would end up leading to many, many issues, like many transfer servers or whatnot.

      Dunno how exactly the logfile transfer would be taking place, but it could be an issue.

    • Well, doing this is in a legal grey-area. It all depends on whether the coder attempts to decompile the EVN code. The addon itself is another separate program with its own license and such. However, it is a modification to the EVN code, which has a restrictive rights-reserved license. It will seriously infringe on on this if it is possible to bypass the registration fee/license code/whateveryoucallit by using this addition.

      If the coder decides to offer ambrosia publishing rights to the program, and mburch agrees to the addon, then legally s/he is in the clear, because I doubt ambrosia would push legal action against a program that they publish. Thats just shooting yourself in the foot. Someone needs to get an ambrosia employee to loook at this topic.

      This post has been edited by LNSU : 13 July 2007 - 07:34 PM

    • One issue I find with this idea has nothing to do with legality. Say that there are two players playing the game. One of them has a faster ship than the other, but on average each makes about the same number of jumps per hour played. The result from your system is that the slower player won't see the faster player at all, while the faster player may see the simulated slower player. Moreover, there would be a lot more than just log files involved, as you will have to program in how it simulates the players, which, depending on your ambitions, could be the hardest part.

      Sadly, unless you get a significant number of people playing the addon at once, I can't see the idea taking off. If I just wanted to play with my friends, for example, I'd want to actually play with my friends, not some random simulated people. But unless you get a lot of people playing in the same simulation there won't be enough action to merit bothering, especially if someone is flying slow ships which may never see the faster ships.

      That is, unless you establish "historical" log files before the game starts. But then, you know... it's not even really "simulated multiplayer" anymore. It's just... simulated.

      Personally, even if the idea is theoretically possible I find it not worth the efforts practically to execute it. There is a plug-in which adds a ton of pers ships, and really, I think that's about as good as you're going to get. Which, in my opinion, isn't all that bad.

    • Pardon me for asking (and please excuse me for not reading this carefully, I have wake up early tomorrow), but wouldn't this be possible, in a sense (not necessarily the "feasible" kind), by passing periodic pilot or debug logs as input to some kind of program that modified a version of the data files or a plug-in? Of course, you'd have the problem of those only getting loaded when you start the game up, and quitting and starting the game repeatedly wouldn't exactly be fun.

      If I remember correctly, the networking system in the game Spaceward Ho! was basically a matter of sharing the game file -- writing to the game file allowed other clients to know when people were finished with their turns, and what they had done in that turn. This sounds like a similar type of thing, except you'd need to run some simple program -- server-side, perhaps -- in order to get this to work. The timing would be real hard though, and the quitting/starting of the game would have to be overcome somehow.