Schemaverse Visualizations

414 views
Skip to first unread message

Blake Burkhart

unread,
May 16, 2012, 12:36:11 AM5/16/12
to schem...@googlegroups.com
Has anyone done any visualizations of the game yet?

I haven't really started coding to play the game properly yet, but I thought I'd try visualizing it. And well I hadn't played with Mathematica recently. It always seems to be a quick way to make visualizations (fighting the PostgreSQL/JDBC connection is a different matter though.

I've just plotted out the planets colored by conqueror. Yesterday's and todays maps are attached, approximately 24 hours apart.

The Mathematica document has planet names and conqueror on tooltip hover, the PNGs attached obviously don't.
Left purple is massconfusion, blue is anewworth, orange is derpfish, yellow is funbuster, right purple is blossom. The 80 black dots yesterday were NULLs (they seem to have all gone away).

PNGs attached.

--
Blake
May 14, 2012.png
May 15, 2012.png

MassConfusion

unread,
May 16, 2012, 8:36:58 AM5/16/12
to Schemaverse
Wow, very cool Blake.
The closest I ever came to this was doing something similar in excel a
few months ago, didn't look anywhere near as good as this though.
This would be awesome to see if it was setup to grab a snapshot every
3-6 hours so you could watch everyone's progression over the entire
round.
>  May 14, 2012.png
> 125KViewDownload
>
>  May 15, 2012.png
> 88KViewDownload

Ian Haken

unread,
May 16, 2012, 3:31:22 PM5/16/12
to schem...@googlegroups.com
It's been awhile since I've toyed with it, but I made a visualization tool in GTK awhile ago which looks fairly similar. It is pretty cool to view the time-lapse over a round.

I attached an old screenshot where you can see my fleet leaving my home planet to conquer new planets. I also attached a current screenshot... ignore the fact that my fleet is a bit broken and is heading off into the abyss.
schemaverse3.png
Screenshot-3.png

Christopher Browne

unread,
May 16, 2012, 7:52:41 PM5/16/12
to schem...@googlegroups.com
On Wednesday, May 16, 2012 12:36:11 AM UTC-4, Blake Burkhart wrote:
Has anyone done any visualizations of the game yet?

No, and I suppose I'm thinking about the game mechanics in an exceedingly abstract/symbolic way, as my evaluations of "that works" have been based on looking at whether equations work out, or "did my ship head to the planet I thought it was going to?"

Mighty interesting to see this.
 
I haven't really started coding to play the game properly yet, but I thought I'd try visualizing it. And well I hadn't played with Mathematica recently. It always seems to be a quick way to make visualizations (fighting the PostgreSQL/JDBC connection is a different matter though.

I've just plotted out the planets colored by conqueror. Yesterday's and todays maps are attached, approximately 24 hours apart.

The "ultimate" thing would be to animate this, with an image per tic.  The list of CONQUER events would be usable to this end.

I suppose you start by seeding with the initial planet ownerships, and you could pretty successfully approximate that by marking them *all* black/NULL, and then updating with the current tic's CONQUER events.  That approximation might miss the initial home planets; that's unlikely to be material to the animation.
 
The Mathematica document has planet names and conqueror on tooltip hover, the PNGs attached obviously don't.
Left purple is massconfusion, blue is anewworth, orange is derpfish, yellow is funbuster, right purple is blossom. The 80 black dots yesterday were NULLs (they seem to have all gone away).
PNGs attached.


Not surprising that the NULLs are gone; they're arguably the "easiest" targets, as they have no previous tenant to even *possibly* need to evict...

anewworth

unread,
May 17, 2012, 1:46:52 AM5/17/12
to schem...@googlegroups.com
I put this together yesterday to view the current state of the game. Icons filled with red are current attacks.


Time lapse view would be cool, I will have to work on that tomorrow.

MassConfusion

unread,
May 17, 2012, 8:53:05 AM5/17/12
to Schemaverse
That is very slick, all it needs is a way to select a player and
generate that with a specific symbol for them so you could easily tell
which one you are.

Abstrct

unread,
Jun 24, 2012, 4:13:30 PM6/24/12
to schem...@googlegroups.com
Hi All,

I just received confirmation from the DEFCON contest folk that this year we will have a projector and screen up at our booth at DEFCON 20. This pretty exciting as I think it is guaranteed to bring a lot more attention to the game.


So now that we have the hardware, I need to figure out what is going to be on the screen. Off the top of my head I am visualizing:


1) Top ten leader board - Pretty easy. Already done mostly just maybe need to make it looks nice

2) Overall planet map - Very similar to the work already done by Blake, Chris and Anewworth but would be best with a couple additions:
  - Auto-refreshing each time the tic updates to keep the screen updated. 
  - I also think it would be really neat if we can let people choose a unique colour and unicode character combination to represent their player.

Auto-refreshing seems trivial and unique representations is going to be very easy to add on the database end. Would it be a big deal to change to visualizers that have already been made to grab this data for each player and use it as the point?

3) Close up view of a portion of the map where battle is taking place. 

I assume this part would be very similar to the map representation but would be visualizing the ships around a planet instead and finding a way to represent attacks. It would be easy to figure out where to show, just picking the spot with the most ATTACK actions in the event log during that timeframe. 


Of course I am open to any other cool ideas you may have for putting up on the screen too. We certainly have lots of data to work with like flight paths, full event logs, giant stats logs, and social things too like the twitter feeds etc.


So, realistically speaking:
- How easy does this sound to pull off?
- How much can we get done before DEFCON 20 (July 26th)?
- What can I do to make developing this worth while for everyone involved? 


Thanks for your input on this!
-Abstrct

anewworth

unread,
Jun 26, 2012, 10:52:33 PM6/26/12
to schem...@googlegroups.com
Sounds awesome, I am definitely willing to put some work into this.

As you said, making the map update automatically is not a very big problem, thought it would probably just be on a set amount of time instead of on each tic. A color/character combo for each user would also be pretty easy as well.

The closeup view of the battle should be relatively easy, but we might need to cap the number of ships that can be represented.

-Marc

Abstrct

unread,
Jun 27, 2012, 6:58:17 PM6/27/12
to schem...@googlegroups.com
Oh man that's great news! I really appreciate your help with this :D

So I just went in and added some new columns for everyone in my_player:
symbol character(1)
rub character(6)


Everyone has the ability to update this themselves. To see another player's, you can use the new functions that are also available to everyone:

get_player_symbol(username)
get_player_symbol(id)
get_player_rgb(username)
get_player_rgb(id)


As for the close-up battles, I recently imposed a 2000 (living) ship limit to all players not too long ago. This should hopefully make the close-ups of battles a lot more manageable to visualize compared to the 100k ships in one location you use to see. 

Anything else I can help with? Im certainly not a visual guy but if you need anything regarding queries, server resources or changes to how something works just let me know. 

-Abstrct

anewworth

unread,
Jun 28, 2012, 11:00:04 PM6/28/12
to schem...@googlegroups.com
Cool, if you want to work on figuring out the query to get the battle area that would be great.

Also is there going to be a default color/character that players will be assigned automatically, or should I just auto-generate it for them if they dont pick one?

Marc

Abstrct

unread,
Jul 3, 2012, 5:40:56 PM7/3/12
to schem...@googlegroups.com

I would just auto-generate the colour/character combo if somebody doesn't have it set. 

I started working on a couple queries that may help you, one for the close up shot, and another to find some flight paths. They may not work out perfectly for you yet but if you need them tweaked a bit just let me know. 


This first query finds a random attack event that has taken place and then finds all the events that are also taking part around it within the last couple tics. You may want to add another where clause for excluding certain events like MINE_SUCCESS or change the tic_history to zero to only get the events from the latest tic. 

 
WITH 
settings as (SELECT 20000 as radius, 5 as tic_history),
attack_event as (SELECT ID, location FROM event WHERE action in ('ATTACK') LIMIT 1)
SELECT 
BOX(CIRCLE(attack_event.location,settings.radius)) ,  
event.* 
FROM 
settings, attack_event, event 
WHERE
event.location @ BOX(CIRCLE(attack_event.location,settings.radius)) 
AND event.tic >= (SELECT last_value-settings.tic_history FROM tic_seq)
order by tic desc;



This next query will grab five random ship flight paths from the ship_flight_recorder table along with a ship_id you may not care about and a player_id which you can use to find the colour/character combos. 

WITH ships AS (select ship_id, count(*) as count from ship_flight_recorder where tic >= (select last_value-2 FROM tic_seq) group by ship_id limit 5) 
SELECT 
  sfr.ship_id, sfr.player_id, path(polygon(array_to_string(array_agg(sfr.location),','))) 
FROM 
  ships, ship_flight_recorder sfr 
WHERE 
  sfr.ship_id in (ships.ship_id) group by sfr.ship_id, sfr.player_id;


Since these access tables you normally can't get to, I have granted your account select privileged on event and ship_flight_recorder. This will just be temporary until we configure a visualizer role. 

As I said above, I really don't think these queries will be final so just let me know if you need them tweaked in a way that makes it easier on your end.

-Abstrct 

Marc Neuwirth

unread,
Jul 5, 2012, 4:57:38 PM7/5/12
to schem...@googlegroups.com
Awesome thanks, can you make the top ten leader board that you use on
the front page of the site a view?

Abstrct

unread,
Jul 5, 2012, 10:45:01 PM7/5/12
to schem...@googlegroups.com
No problem. It is in the public server as the view leader_board (although has not been actually committed to the repo yet)

-Abstrct


On Thursday, 5 July 2012 16:57:38 UTC-4, anewworth wrote:
Awesome thanks, can you make the top ten leader board that you use on
the front page of the site a view?

Marc Neuwirth

unread,
Jul 5, 2012, 11:31:23 PM7/5/12
to schem...@googlegroups.com
Awesome, thanks. Can you also add the user id as well?

Marc Neuwirth

unread,
Jul 10, 2012, 1:01:03 AM7/10/12
to schem...@googlegroups.com
I have the closeup view working sort of alright, can you give access
to the user 'visualization' instead of 'anewworth' as that is the user
that I am using to query the DB

Abstrct

unread,
Jul 10, 2012, 1:11:38 AM7/10/12
to schem...@googlegroups.com
Can't wait to see it :D 
I moved the permissions over to the visualization account for you.

On Tuesday, 10 July 2012 01:01:03 UTC-4, anewworth wrote:
I have the closeup view working sort of alright, can you give access
to the user 'visualization' instead of 'anewworth' as that is the user
that I am using to query the DB

peinguin Feranda

unread,
Sep 24, 2013, 12:32:33 PM9/24/13
to schem...@googlegroups.com
Hi. I wrote bot on javascript.

But then I felt the need to watch the fight. Therefore, if you type the command "map" in the console, we see planets and ships. As your, following capture other planets and enemy - in your field of vision.
If you zoom = 1 is quite slow. But at the maximum approximation, very quickly you can watch the battlefield.

Abstrct

unread,
Sep 24, 2013, 3:01:20 PM9/24/13
to schem...@googlegroups.com
This sounds really neat!  I am looking forward to trying it out later today.

Thanks for sharing. If I have any comments I will be sure to let you know.
Reply all
Reply to author
Forward
0 new messages