Sign up Calendar Latest Topics
 
 
 


Reply
  Author   Comment  
13Clocks

Registered:
Posts: 27
Reply with quote  #1 
I built a thing!  It's called Diana, and it's a small application designed for simple Artemis automation.  Do you want to raise shields when you go to red alert?  Do you want to go to red alert when you run out of energy?  Now your ship can do it for you.

When you open it, you will be confronted with a text area.  Type your rules into this, with the following format:

IF
energy is below 300
THEN
go to red alert

IF
ship is at red alert
energy is below 800
THEN
raise shields

You can have as many rules as you want at once.  Just make sure to put an empty line between them.  If it doesn't understand what you've written, it will just ignore it.

Once you've done that, click the Artemis menu and select Connect.  You can then enter the server's IP address.  It will connect to the first ship as an observer console.

This is very much in beta, and I'm releasing it now as much to get a feel for where I should take it in future, and whether the community wants something like it, as to propose it as a product.  Currently, it supports raising shields, going to red alert, and requesting dock.  I wanted to add converting torpedoes to energy and back again but for some reason Artemis 2.6 doesn't like that.  Conditions supported now are low energy, red alert, ship in reverse, shields raised, ship docked, ship at warp.

Let me know what you think!

 
Attached Files
zip Diana 1.0.zip (780.32 KB, 2 views)

Longbowman1346

Avatar / Picture

Registered:
Posts: 539
Reply with quote  #2 
This is great!  It could actually make Red Alert do something other than make noise and lights!  Could it manipulate a preset in Engineering?    IF ship is at red alert THEN use preset 1 (or whatever it might need make it work.)


__________________
Captain -  TSN Belisarius BS-108
"Pax per consilia et maxime armis." -  "Rescindentes venator ad venationem." 

(Deane Geiken)
13Clocks

Registered:
Posts: 27
Reply with quote  #3 
Quote:
Originally Posted by Longbowman1346
This is great!  It could actually make Red Alert do something other than make noise and lights!  Could it manipulate a preset in Engineering?    IF ship is at red alert THEN use preset 1 (or whatever it might need make it work.)



Presets are tricky.  I don't know how the Preset Manager communicates with Artemis, so I can't fake it.  Diana works by pretending to be all consoles at once and sending the sorts of commands that Artemis expects to hear, so being the engineering preset manager would be tricky.  I definitely have power and (as a lower priority) coolant and heat on my list of things to implement, though, so, if you're comfortable typing all your presets into Diana, and if -- and it's a big if -- the library I'm using for connecting to Artemis works, the next release will have all sorts of engineering goodies.

Let me know if you use it in an actual game and if it works!
13Clocks

Registered:
Posts: 27
Reply with quote  #4 
Diana 0.2 "Hephaestus" is out!  Download it from the top of the thread.  It's got some minor performance and quality of life enhancements, support for Artemis installs somewhere other than C:\Program Files (x86)\Artemis, and, most importantly...

(drum roll please...)

Power and coolant!  Lines like "set primary beam power to 200%" and "set rear shield coolant to 2" all work!

Also -- this was in Diana 0.1 as well but now's as good a time as any to mention it -- there is support for comments.  Any line starting with # is disregarded, so you can have rulesets that look like this:

#Raise shields on red alert
IF
red alert
THEN
raise shields
set front shield coolant to 3
set rear shield coolant to 1
set front shield power to 125%
set rear shield power to 110%

Or even:

#Keep moving forward: destroy the ship as soon as it goes into reverse
IF
ship is reversing
THEN
#Set all power to 0.
set front shield power to 0
set rear shield power to 0
set primary beam power to 0
set impulse power to 0
set sensors power to 0
set torpedo power to 0
set maneuver power to 0
#Overheat the warp drive
set warp power to 300%
set warp coolant to 0

 
Attached Files
zip Diana 0.2.zip (421.14 KB, 4 views)

Spirit02

Registered:
Posts: 7
Reply with quote  #5 
Very cool!

Reminds me a lot of something a mate of mine wrote.
He studied computer systems engineering, and was my favourite engineer when we played.

He wrote a program to play as the engineer.
In 90% of cases it ended up being better than having a competent human player play as engineer.
MarkBell

Avatar / Picture

Administrator
Registered:
Posts: 1,850
Reply with quote  #6 
Let me preface this by saying I think this is a neat program.  It clearly took some work to do packet and instruction interpretation, which is way beyond my limited hack code [smile]

I feel like automating actions in Artemis sort of misses the mark.  You could have a 100% efficient computer-run ship, but why play Artemis then?  This might be a bit theoretical, but I kind of feel like Artemis is the most fun when everything isn't running perfectly - you get a lot more cross talking and shouting and high fiving and skin-of-your-teeth sort of games.  If you want the computer to handle power allocation and scanning and whatnot, and the player interaction is just on weapons or helm - there's a lot of games out there that might be more fun (and certainly better looking) than Artemis.

All that being said, that's definitely 110% my own opinion.  I have the luxury of being able to play with a lot of different people in person pretty frequently, and my game experience may be different than most.  If your crew is having trouble getting more than 3 or 4 people together to play, having an AI engineer might help everyone focus on other stations more.

__________________
Note - this is in no way intended to be an official position of Thom or Artemis, as I am not an official representative of the creator or game.
13Clocks

Registered:
Posts: 27
Reply with quote  #7 
Quote:
Originally Posted by MarkBell
I feel like automating actions in Artemis sort of misses the mark.  You could have a 100% efficient computer-run ship, but why play Artemis then?  This might be a bit theoretical, but I kind of feel like Artemis is the most fun when everything isn't running perfectly - you get a lot more cross talking and shouting and high fiving and skin-of-your-teeth sort of games.  If you want the computer to handle power allocation and scanning and whatnot, and the player interaction is just on weapons or helm - there's a lot of games out there that might be more fun (and certainly better looking) than Artemis.


Personally, I completely agree with you.  In fact, I have somewhat restricted Diana in order to keep Artemis challenging.  The system I'm using to communicate with Artemis is capable of being extended to keep track of the entire game world.  I considered implementing rules such as "IF ship is within 10000 of a Skaraan ship THEN raise shields and load an EMP", but I decided against it because Diana is not meant to be the brain of a 100% efficient, computer-run ship.

I meant, and still mean, for Diana to be used to automate fairly dull "standing orders".  For example, on my bridge, my weapons officer is under standing orders to replicate as many homing torpedoes as he can as soon as we dock with a space station.  If Diana supported homing torpedo replication, I would definitely have started setting it up before every session to take that load off his mind.  Also, if you watch Star Trek, Kirk will sometimes just order "Red alert".  This sends all hands to battle stations, raises shields, charges weapons, et cetera.  Since the bridge crew are all interested in what is happening on the main viewer, I assume that at least some of this is done automatically.  My own crew have a similar set of things they do when going into battle, and automating some of them might make us more able to focus on the "big picture".

In summary, Diana is essentially the Engineering preset manager, but for the entire ship rather than just one console.  It can't fly the ship, and it will never be able to.  Kirk tried that, and it didn't go well.

That said, if anyone knows enough about machine learning to collaborate with me on teaching a computer to play Artemis "properly", I would be very interested in seeing what tactics it comes up with.
notsabbat

Avatar / Picture

Registered:
Posts: 1,178
Reply with quote  #8 
Hmmm....It does make for some interesting possibilities and I already do stuff design-wise to limit "advantages" to station, so I can imagine having more options would break the game for my group. It is an interesting concept
__________________
-Captain of the TSN Gungnir JN-001
-Eastern Front online group member
-My continuing bridge build:
http://artemis.forumchitchat.com/post/immersion-bridge-build-in-progress-7335195?pid=1290158413
ryleyra

Registered:
Posts: 2,868
Reply with quote  #9 
I can see this limiting mistakes for beginning players. I wouldn't want the game to do this by default, but as an add-on I think it's a great idea.

Of course, the crew has to keep in mind that it's going. It wouldn't do for Comms to sound Red Alert and Helm to raise shields, only to realize shields were already up and he lowered them. [biggrin]
Spirit02

Registered:
Posts: 7
Reply with quote  #10 
Mark, I completely agree with your sentiments. I should probably have mentioned the only time it was used was when it was said mate's turn to be the engineer. He wanted to see if he could write something that would be as good as he was.

Given that largely he was better than his AI, it actually ended up being more interesting because things didn't run as well as when he was the engineer.
13Clocks

Registered:
Posts: 27
Reply with quote  #11 
New version out!  Diana 0.3 "Aphrodite" brings a huge update in terms of appearance.  Instead of a standard text box, you can now write your rulesets in a beautiful custom editor with line numbers and syntax highlighting.

This version also, for the first time (I can't believe I forgot this), comes with the licenses for the various third-party libraries it uses.  Just go to File>Show licenses to see them.

As usual, I'm posting it here and on the top post.

Diana development is going to be a lot slower now, partly because I am busy but partly because I can't see anywhere major for it to go.  Any ideas or thoughts would be welcome.  I'm working on cleaning up the code ready for the full open-source release, so stay tuned.  You'll be able to file pull requests in a few weeks at most!

Diana screenshot.png

 
Attached Files
zip Diana 0.3.zip (778.45 KB, 1 views)

ryleyra

Registered:
Posts: 2,868
Reply with quote  #12 
I can also see this being useful for a reduced crew. Automating Engineering and Comms can be very helpful for a two-crewman bridge.
13Clocks

Registered:
Posts: 27
Reply with quote  #13 
Diana 1.0 "Janus" is out, supporting multiple ships (and thus PvP) as well as a few speed improvements.  More importantly, though, it's now fully open source at https://github.com/Michaelkielstra/Diana.

In a way, this is the end of the road for Diana.  All the features I originally wanted are in place, and I'll be focusing more now on fixing any bugs that the community reports.  You are welcome to contribute any and all code of your own, for new features as well as for fixes.  I've had a lot of fun building this, and I hope you have a lot of fun using it.  Forward the TSN!

 
Attached Files
zip Diana 1.0.zip (780.32 KB, 1 views)

mattssheep4

Avatar / Picture

Registered:
Posts: 42
Reply with quote  #14 
So, potentially could this be used for mission scripting?
__________________
Subkommanant Matthew Vaj, XO ISN Invictus, 4th Hunter Group, 2nd Space Flotilla | TSN RP Community - Listen to our Fleet News Service!

Intelligence Officer of the Cygnus Campaign

13Clocks

Registered:
Posts: 27
Reply with quote  #15 
Quote:
Originally Posted by mattssheep4
So, potentially could this be used for mission scripting?


Not really, no.  Mission scripts have to make the sorts of decisions that servers make: which enemies are where, which stations have which munitions, et cetera.  Diana can only make client decisions: raise shields or not, go to red alert or not.  It connects to the server pretending to be another client console.  It will work with scripted missions the same way it will work with a standard siege scenario, but it wouldn't really be useful for writing them.

Plus, everyone who downloads the scripts would have to set Diana up too.
Previous Topic | Next Topic
Print
Reply

Quick Navigation:

Easily create a Forum Website with Website Toolbox.