I would love to see a graphical replay of a full game after it is complete (a la Civilization).
As I envision it, there would be a starmap and a timeline (from the first to last tick). It could animate automatically at various speeds, or you could scroll through manually tick by tick. The color+shape of its current owner is the only info needed about each star. If a battle happens at a star on a given tick, there would be a little explosion or other graphic. This would scale up in size based on the number of ships destroyed (logarithmically, perhaps?).
Beyond that, it could be accompanied by graphs of various intel items, but the starmap+timeline alone would make for an awesome feature (and would be quite shareable!).
Indeed, if resources for such a tool is a problem, perhaps Iron Helmet could release the data for a game in some format (CSV or something) after it is over.
I’m massively curious what’s available from a historical perspective, but I can easily imagine the community producing a visualizer or three that takes that data and replays it in various forms.
we’ll there are a few dedicated individuals already side loading their own scripts, perhaps I can add some tools to make it even easier to access the data and make snapshots.
I posted the GIF below in this IHG thread … but it’s difficult to share because it is my view of the galaxy and it shows information I would not want others to see. I.e. a quickie fix/update by Jay would be some sort of option that provides an “observer” point of view - the current “u” keyboard shortcut (nor “z”) does not do that.
As I see it, the minimum data that would be necessary for a simple visualization are these three files:
dictionary of players - {playername: color, shape}
dictionary of stars - {starname: x-location, y-location}
turn-by-turn star log - {ticknumber: {starname, playername, shipcount} for each star}
Visualizing battles would require another file of carrier movement data:
4) {carrierid, carrierowner, shipcount, departurestar, departuretick, arrivalstar, arrivaltick} for every carrier trip.
JSON files would be my preference, but I suck at frontend/viz stuff so I shouldn’t really be choosy.
Very, very nice. That’s exactly the sort of post-game log I’d love to see. (I play among friends, so the post-game debriefing is often the most fun part of the whole experience.)
You can use the url trition.ironhelmet.com/gameu/number to load the game with an uncompressed version of the scripts. (gameu - the u is for “uncompressed”)
To make the easier even easier to access, I’ll make it so you can bring up the main game model from the console in the next version. You can then just open the js console then type window.NeptunesPried.universe.galaxy and you will get all the fleets, stars, players ect ect that you can see in your game.
You could then start making regular archives of this data.
Do you currently save the the historical “master data” anywhere, or only the current situation. (I suppose saving every hour could start taking space, but this is text, so…)
Wow cool! Could you also use this to keep track of who got what tech when? This is the kind of info that’s handy to know as it gives you a hint as to who is trading with who - I’m always too lazy to manually keep track of it
This function will remove warpgates, infrastructure, ships (stationed or midflight), all paths and will change stars within scanning range so they appear like not yours.
put into adressbar in browser (some browsers wont paste the prefix javascript:)
tweak coords to your liking so whenever you use this function it gets you to the same position
press u to save screenshot. Save as .jpg
reload page to get rid of it
Note: Chrome won’t let you paste javascript: in adressbar due to security reasons so I added one additional character, which you need to delete.
Just press CTRL+V,Home,Del,Enter.
Firefox won’t even launch the function, you would have to enable it in settings, or put it in the Console F12, without the keyword javascript:
We its not really any one thing that super complicated. Like all of Neptune’s Pride, it’s just a lot of simple things.
If we wanted a data snapshot every hour I would have to have some kind of process that keeps a track of when snapshots are due and save them out as required when the game is requested by a player. If a player opens the game every 6 hours for example I would need to advance the game clock 1 hour, save a snapshot and repeat 6 times. Something like that.
I would then need some kind of interface for requesting the snapshots from the server and playing them back.
We would probably want some system to animate between one snapshot and the next. There is no notion of a carrier animating around at the moment.
I’m probably seriously misunderstanding something… but can’t it be a step at the end of the current tick processing code that dumps the star and player information in a database?
Alternatively, let us do it ourselves by providing a “take snapshot RIGHT NOW” api. For example, I call Neptune's Pride and it returns JSON:
{stars: [each star is the exact same as NeptunesPride.universe.galaxy.stars with private data stripped],
players: [each player is the same as NeptunesPride.universe.player but with all the private information removed],
tick: current tick number}