Sign up Calendar Latest Topics
 
 
 


Reply
  Author   Comment  
woodat

Registered:
Posts: 25
Reply with quote  #1 
Ahoy hoy!

With the new year and the sporatic artemis games going at our local gaming venues, a few of us were wondering if there has been any more consideration to implementing a way to more directly stream commands into the game?  Something along the lines of an API or the like so we can build custom consoles and controls easier? 

I've already done a few controls using arduinos for the input and keyboard/mouse emulation, but it's clumsy and unreliable at best.  As such, and since there's been so many calls for it over the last few years, if there has been any look into this for one of the next releases?
ryleyra

Registered:
Posts: 3,007
Reply with quote  #2 
The add on project called Glitter was very much this, and it's foundation was a set of what I think you would call API modules called ArtClientLib. I think both are on indefinite hiatus, but it's worth looking into. Some pretty incredible tools have been built on them.

Search for the terms, you should find them. Unfortunately, though, the two packages aren't officially supported, and the APIs had to be reverse engineered. Subsequent releases may break them.

Arkantos

Avatar / Picture

Registered:
Posts: 457
Reply with quote  #3 
I'm the principal maintainer of ArtClientLib. It's not so much on hiatus as it is that the major issues have been resolved and there haven't been any Artemis releases in a while. I definitely plan on updating it with the next release of Artemis.
locqust

Avatar / Picture

Registered:
Posts: 70
Reply with quote  #4 
Actually Arkantos that reminds me, I used Artclientlib for a custom console the other day. I had to modify the libary files to change keystroke packet. The current setup on github only works if the gm console is sending keystrokes. I've modified it to have both working now. Did you want the changes forked properly off 2.5.0 and later merged if you're happy with it?
Arkantos

Avatar / Picture

Registered:
Posts: 457
Reply with quote  #5 
I'm actually in the process of migrating the project to Maven and refactoring the package structure, so maybe create an issue and include the changes in it?
woodat

Registered:
Posts: 25
Reply with quote  #6 
Much appreciated Arkantos! The work decrypting the artemis protocol and (if I'm reading your doco correctly) inject command packets sounds like just the trick to create custom consoles.  I look forward to giving it a try
Arkantos

Avatar / Picture

Registered:
Posts: 457
Reply with quote  #7 
Yes, ArtClientLib has the ability to use custom protocols on top of the standard Artemis protocol. Obviously, the Artemis server will not understand any custom packets, but they could be intercepted by a man-in-the-middle proxy. Let me give an example.

Let's say that you have a multi-bridge setup, and you'd like to create a custom console for an admiral who will direct the entire fleet. The admiral would have four specific abilities: 1) see the entire sector on his/her screen, much like science; 2) see comm chatter between vessels; 3) send messages to the comms officer of any ship; 4) set waypoints for ships which appear on their maps.

To accomplish this, all the ships would connect to a proxy server, which in turn would pass data through to the actual server. The admiral would connect to the proxy server with their custom console, but none of the admiral's commands would be relayed to the actual server (since it wouldn't know what to do with them).

The server would send all world object updates to the admiral so that it can see everything, just like the science console does. It would also pass along any comm messages sent by player ships or friendlies so that the admiral can keep track of chatter.

To send a message to players, the admiral's console would send a custom packet which would contain the recipient ship's ID (or 0 for all player ships) and a text message. The proxy would intercept this message and respond by sending the message to the comms officer(s) of the recipient ship(s). The server would be unaware that this happened, and the comms clients would think the message originated from the server (since, as far as they know, they're connected to a real server).

Waypoints would be handled the same way. The admiral would select a ship and a location in the sector, and their console would send a custom waypoint packet to the proxy server. The proxy would intercept the packet and send a generic mesh object at that location to the consoles of the target ship. This would cause the waypoint to appear in the sector map for them to see. The proxy would also monitor the ship's position, and automatically delete the waypoint once the target ship is close enough to it.
ryleyra

Registered:
Posts: 3,007
Reply with quote  #8 
!!!! Those are pretty revolutionary ideas! In fact, I don't see why someone couldn't create a proxy communications server that would extend in-game comms to include player input text. It would have to be on a separate client from Comms, but it would do the job as well as TeamSpeak or Ventrilo. Heck, it could handle video transmission!
locqust

Avatar / Picture

Registered:
Posts: 70
Reply with quote  #9 
Quote:
Originally Posted by Arkantos
I'm actually in the process of migrating the project to Maven and refactoring the package structure, so maybe create an issue and include the changes in it?


Will do [smile]
Previous Topic | Next Topic
Print
Reply

Quick Navigation:

Easily create a Forum Website with Website Toolbox.