Postgame Replay / Debriefing

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!).

14 Likes

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.

1 Like

The raw data would be great! Oh, the possibilities…

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.

http://forum.ironhelmet.com/uploads/db4495/107/dc3512e78a2bcb4a.gif

As I see it, the minimum data that would be necessary for a simple visualization are these three files:

  1. dictionary of players - {playername: color, shape}
  2. dictionary of stars - {starname: x-location, y-location}
  3. 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.

1 Like

I’d love to have battle information. You could “easily” animate a flash whenever a battle above a certain size (changing with time) took place.

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.)

I recently posted the 10-day battle GIF in this thread … so you might want to bookmark that for future stuff if interested.

some tips.

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.

1 Like

Thanks for the information, Jay.

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 :stuck_out_tongue:

@tlwest I’m not currently saving off a snapshot of the data every hour. Its on a todo list but its not as easy as it sounds for a few reasons.

@lookupANDY you should change your name to lazyANDY!

1 Like

Yes, I thought about that but I couldn’t be bothered :stuck_out_tongue:

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.

  1. put into adressbar in browser (some browsers wont paste the prefix javascript:)
  2. tweak coords to your liking so whenever you use this function it gets you to the same position
  3. press u to save screenshot. Save as .jpg
  4. 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. :blush:

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:

read the new thread

#I moved this to it’s own, updated thread

1 Like

Absolutely fantastic.
Love your work mate.
Kudos.

Is that… the galaxy that pacman comes from??

Can you elaborate?

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.

just lots of little things.

Jay

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}

and then let us set up our own hourly cronjobs.