Members | Sign In
All Forums > Mission Scripting
avatar

n00b who doesn't know what he's doing asks for help...

posted May 15, 2012 01:49:24 by ringo080884
I have not even an inkling on programming and couldn't follow the GUI mission editor tutorials. Are there any mission editors for programming illiterates like myself or am I just out of luck? I have an idea for a small series of missions, but would feel like a violator of Wheaton's Law if I asked someone to script it for me. Advice for the n00b?
page   1
7 replies
avatar
Hissatsu said May 15, 2012 05:41:04
Well, in order to make missions, you do have to have at least some understanding of programming. Its not that hard actually. I remember how I started out being a programmer in my childhood - you start by getting into the role of someone who orders someone with simple orders. Then you add an understanding of "current program state" - that is, before you told it "set variable X to 1", it considers it being 0. After you tell it to be 1, its 1, until you tell it otherwise. And so you become a programmer.

If you don't understand simpliest aspects of programming, you'll have hard time understanding what happens in your mission, why it happens this way and not that way, and what's wrong.
avatar
dhmholley said May 15, 2012 07:36:26
One of the easiest ways to tackle writing a mission for a newbie is probably to break it down into chunks.

First, write out a list of stuff that needs to happen for your mission to work. Then break down those items into smaller chunks. Then smaller. You literally want to break them down as small as they can go, to individual actions.

For example, if you want to have a NPC ship dock at a starbase and upload a virus, and have the Artemis follow what's going on, you might break it down like this:

* Create NPC ship
* Create starbase
* Create Artemis
* Tell NPC ship to fly to starbase
* Tell NPC ship to drop its shields
* Broadcast a message to Science telling it that the NPC ship is transferring a lot of data to the starbase
* Tell NPC ship to wait at the starbase for a while
* Broadcast a message to Science telling it that the data transfer is complete
* Tell NPC to raise its shields again
* Broadcast a message to Comms which says "Ahahaha! You fools! Now I have infected your starbase, and the universe will be mine!"

And right there, you have a simple plan of some plot which takes place on a mission. The reason you've broken it down into chunks like this is twofold. Firstly, you've analysed in detail what steps you've taken to make something happen. You might even come up with new ideas to make the mission more complicated or interesting.

But the second is the most important as a newbie - it allows you to tackle mission scripting bit by bit. Because of the way the mission scripting works, you can go through each of those steps, learn how to script them, and then move on to the next. By the time you're done doing each step individually, you have a full mission.

The other piece of advice is not to make things too complicated for yourself. If you write simple missions first, you'll quickly learn how things work. Then when you move on to more complicated ideas, you'll be better at it and won't get stuck on things as much.
The unofficial Artemis Wiki - your handy reference guide to just about everything.
avatar
Hissatsu said May 15, 2012 11:16:13
2 dhmholley
Unfortunately, Artemis mission scripting is not the best first pick at programming, because a lot of stuff in it is not very convinient, sometimes even doesnt make sense, you have to create workarounds.

For example:
* There is no "if player ship is not docked" and you have to make complex structures to have something work if player ship isnt docked to a station.
* It is not intuitive that if i set some variable to 1.9, condition "if variable < 1.1" will be true.
* It is not intuitive that any variable starts at 0 (in most languages your either are forbidden to read uninitialised variables, or their value is undefined, aka random).
* It is not intuitive that "if timer finished" continiously is true after it finished
* It is not intuitive that angle of ship as property is in radians, and it is 0 when looking down, while angle of ship at creation is in degrees, and it is 0 when looking up
* There is no simple way to check if ship has an angle of 0 (because angle of 0.000001 is a negative number ~-PI and angle of -0.000001 is a positive number ~PI)
* There is no way to copy one value into another value, except copying same property (which serves very little sense, and is mostly useless except for mutating object into something else)
* There is no way to have math operations on values (for example, set some value to product of two other values)
* If you create more than one named object with same name, conditions like "if_object_property" are only checked against first created object, and statements like set_property also work for the first created object only.

I doubt it would be easy for someone who has no knowledge in programming to start with making Artemis mission - it requires having some knowledge to understand and work around its limitations
[Last edited May 15, 2012 11:16:42]
avatar
dhmholley said May 15, 2012 12:15:34
Hissatsu, you're absolutely right. Artemis would be a terrible way to teach someone to become a programmer. I think what the OP was after though was a strategy for scripting Artemis without needing much programming knowledge.
The unofficial Artemis Wiki - your handy reference guide to just about everything.
avatar
ringo080884 said May 16, 2012 02:37:02
dmholley is correct. I love Artemis and want to make some missions to incorporate into a p&p rpg as a semi-larping element to draw my players more into the story. Unfortunately, I am programming illiterate and don't really have the time to learn an entire programming language as I am in school full time year round (I get 6 weeks off per year, 3 weeks in December and 3 weeks in August) and will be moving next summer to begin my graduate work. I was hoping there was a GUI based mission creator or editor that doesn't require a strong base in programming language. I tried the one recommended on the wiki, but the tutorial is nigh impossible for me to comprehend.
[Last edited May 16, 2012 02:48:55]
avatar
madings said May 20, 2012 17:00:27
Hissatsu said:
* There is no simple way to check if ship has an angle of 0 (because angle of 0.000001 is a negative number ~-PI and angle of -0.000001 is a positive number ~PI)


Thanks for that, by the way. As a side note, when the docs said the angle was in radians I assumed that meant it would range from 0 to 2pi, not from -pi to +pi. That helps explain some problems I was having with my own script. (of course if I was just allowed to print out the values of properties or variables to the log or a comm message or the screen in *any* way it would make finding these things out a lot easier... grrrrrr....

Now that I think of it, that's probably the one single thing I'd find the most useful in mission scripting - the ability to debug what the heck is going on by printing the values of things. Right now I have to rely on the annoying range narrowing method (i.e. if value = 0, print zero, if value >0 and <10, print "value is in (0,10)", if value >=10 and < 20, print "value is in [10,20)" etc...) And then when figuring out which range that is, then go back and narrow it down more until I finally have the exact value figured out after several iterations of this. That's really annoying to have to do that.

avatar
Hissatsu said May 20, 2012 20:59:29
2 Ringo
You know what, why not? I agree to help write the mission code after your script.

I'm currently in progress of fine-tuning my editor, and have some spare time. In order to make my editor better, I do need experience in using it. So... I'm trying to make a mission of my own. But I'm an awful storymaker so it doesnt progress very good (I made some cool effects like a scripted warp jump animation, going from sector to sector in one mission, selecting mission chapter at mission start, beaming cargo/away teams and so on, but I'm stuck since I cant make a valid plot for all of this...)

So, I got the knowledge and motivation to make mission code, you got the script writing abilities that I lack. I'm all in for cooperating. If you got the script, I'm willing to write the mission code for it.

Write to starsabre@gmail.com and lets discuss what you have in mind.
[Last edited May 20, 2012 21:02:38]
Login below to reply: