Members | Sign In
All Forums > Mission Scripting
avatar

[Mission] Invasion - Faithful recreation of the built in Invasion Mode for (1.702)

posted May 22, 2013 19:38:14 by badgeguy
Alright,

I have finally finished what I believe to be a working version of Invasion in mission form for a Single Bridge. Now, this is a beast of a mission file (1.3 MB uncompressed, 18,000+ lines of code), but it includes maps for Single Front, Double Front, and Siege, Terrain types for Barren, Interesting, and Very Interesting, Time limits from 5 to 45 minutes in 5 minute increments (as well as unlimited), Difficulty levels 1 through 11, and sub-missions.

Game Master has 10 seconds from the start of the mission to designate the Time Limit, Difficulty Level, Map Type, and Terrain Type before the mission begins with Defaults set at a 25 minute game at level 5 on a very interesting Siege map. Time is set using 1-9 for timed and 0 for unlimited games, Difficulty is Q thru P for 1-10 and L for level 11, Map Types use S, D, and F for Single, Double, and Siege, respectively, and Terrain is designated using B, N, and M for Barren, Interesting, and Very Interesting, also respectively. If all items are selected, the game forgoes the remaining time in the 10 second timer and begins. The Space Bar will inject defaults to all options not set, and the Z key will randomly select Map and Terrain type. Finally, the X key will end a game in progress.

There are limitations as to the ability to completely and absolutely recreate Invasion.

1) I am unable to introduce sub-missions that include weapons generation speed increases for the space stations, nor am I able to increase shield generators on the Artemis. All other sub-missions (more nukes, more coolant, more energy) are included. Additionally, due to the complexities of random sub-mission generation and tracking, it was necessary to reduce the random selection of support craft from 12 down to the bare minimum of 6, so you will see the same IDs for support craft from mission to mission.

2) I do not have the exact formulas for calculating fleets and Skaraan enemy sizes, strengths, and starting locations, but I do believe that what I have is faithful to the difficulty levels in the core Invasion game, after an extensive 2 week evaluation of fleet sizes, strengths, an locations. If someone has better information as to the ranges for fleet strengths and starting locations based on the map type, I would be more than happy to update the data.

3) Due to the size of the script, I believe that this will cause weaker servers to have a laggy main screen display under the stress, and will require a beefy dedicated server to have an optimal experience.

I would love to hear your thoughts, suggestions, questions, and/or bugs that you may have and/or discover in the running of this script. Thank you very much to all of you for all of your help in teaching me the scripting language, its limitations, work-arounds, and general support. Specific thanks to lucas99801 for the impetus and support to begin this project, and Hissatsu and RussJudge for the Mission Editor that made life much easier in the coding of this monstrosity. It is funny how such a little thing such as limitation of the time selection could cause me to do such a thing. ;)

I hope you all enjoy this and find it useful.


Mission - Invasion (1.282 MB / 97KB zipped)
page   1
11 replies
avatar
lucas99801 said May 22, 2013 21:59:03
Sounds fantastic, is this built on the Invasion script I started? Also, why set the time limit when you could create a key to lock in the values and begin the game? 10 seconds doesn't seem like a lot of time, also, difficulty could be set when selecting the mission.
Hosting a Mumble (Murmur) server @ tsnfenrir.no-ip.org
Having trouble connecting to the TeamSpeak channel: http://tsnfenrir.no-ip.org/ts3
Helm Script for Numerical heading input: https://dl.dropbox.com/u/10193809/ArtemisHelmFSW.zip
Twitter: @lucas99801
Facebook: /lucastarnold
avatar
lucas99801 said May 22, 2013 22:10:53
After looking through I can tell it is not, haha.

But I'm glad my limited scripting skills/logic match up with yours in just about every event!

One big difference I am seeing is that the script I was writng up had numerous locations for base spawns, supported all 6 default ships (in numerous locations), and had a variety of formations for building interesting/very interesting sectors. Mine only has support for Siege at the moment though.

But I'll be looking through your setup for tips on spawning enemies based on sector layout ;)
Hosting a Mumble (Murmur) server @ tsnfenrir.no-ip.org
Having trouble connecting to the TeamSpeak channel: http://tsnfenrir.no-ip.org/ts3
Helm Script for Numerical heading input: https://dl.dropbox.com/u/10193809/ArtemisHelmFSW.zip
Twitter: @lucas99801
Facebook: /lucastarnold
avatar
lucas99801 said May 23, 2013 09:31:05
Looking through your script made me realize how ugly mine was. Dedicated 3 hours to a complete rewrite. Need more side missions, but I believe it's fully functional at just 200kb
Hosting a Mumble (Murmur) server @ tsnfenrir.no-ip.org
Having trouble connecting to the TeamSpeak channel: http://tsnfenrir.no-ip.org/ts3
Helm Script for Numerical heading input: https://dl.dropbox.com/u/10193809/ArtemisHelmFSW.zip
Twitter: @lucas99801
Facebook: /lucastarnold
avatar
lucas99801 said May 23, 2013 09:44:46
Also, I'm not sure the Failure and Release Events are necessary, as the missions are impossible to complete if either entity is destroyed before their leg is engaged.

Sorry for all the separate posts. Have had very intermittent bursts of thought regarding the script, glad you got it finished for the Con!
Hosting a Mumble (Murmur) server @ tsnfenrir.no-ip.org
Having trouble connecting to the TeamSpeak channel: http://tsnfenrir.no-ip.org/ts3
Helm Script for Numerical heading input: https://dl.dropbox.com/u/10193809/ArtemisHelmFSW.zip
Twitter: @lucas99801
Facebook: /lucastarnold
avatar
badgeguy said May 23, 2013 14:45:20
Lucas,

Yes, that is true, but I want to release the craft or station to be able to be assigned a new mission at the next timer if the previous one failed. I check to see if an object is already assigned an outbound mission as to not assign it a second outbound. Additionally, if the recipient object is destroyed before you get to the sending object, I do not want the "Transfer complete. Please proceed to Tr22 to deliver the supplies." message coming up on comms screen if Tr22 no longer exists. Some cleanup is necessary to prevent this.

Rusty
avatar
xavierwise.tsn said May 24, 2013 18:24:13
May I ask... why? I hope I don't seem rude, but I am curious as to why design a mission script that emulates the invasion mode?

I can see that if I wanted to add in a feature or two (the fuel collection system for example) then I could easily do it within this script. Where there other reasons for creating this script too? I'd love to know.
avatar
Captain said May 24, 2013 20:21:26
Feel what I understand it involves several features. One of these is timing. For Cons people want to run missions for different time periods you can't set in the vanilla version. Also regular mods can be added. I can't think of any other reasons though.
To Mankind
And the hope that the war against folly may someday be won, after all

Isaac Asimov
avatar
badgeguy said May 30, 2013 19:42:21
@xavierwise.tsn

I am not taking it as rude. I can see why people might think it is a fools errand, but there were numerous reasons, personal and community based, as to why I embarked upon this task.

1) First and foremost, to teach myself the scripting language and its limitations/capabilities.

2) I had a convention to run where I would be manning it myself for 16 hour periods over 2 days and needed a way to control the game in the other room without monitoring it constantly.

3) The time limit restriction was the largest part of that restraint, with 25 minutes giving the crew the most amount of play time, while giving enough time to change crews out without feeling rushed or having to wait around to start the game.

4) Additionally, though the default settings make startup a breeze, the option to change them through the GM console allowed me to start a game for any time amount necessary, as did come up numerous times when crews destroyed themselves in under 10 minutes. The ability to start again for another 15 minutes gave all players very similar amounts of time at the simulator regardless of their outcome.

5) Killing the crew with an outside ship after a certain amount of time meant that I would have to heavily monitor the game, have additional equipment for the additional ship, and bring the players experience to an end in a negative fashion, specifically their failure through destruction, rather than one of survival for the time limit allotted. Positive experiences bring people back.

6) I felt that the Invasion game gave the best feel of what Artemis is to those that have never played before without the need to follow some preset list of commands that can accompany a hard coded mission. They were free to explore and learn what it was about.

7) To that point, I did not want people that returned to Artemis throughout the weekend dealing with the same scenario over and over again, but to experience a new situation each time.

8) And with the mission mimicking Invasion, those that went out and purchased the game would be familiar with the built in option of Invasion, not looking for something that was not included in the package. There were people who after playing the game at the convention, went and purchased it, while still at the convention, and started playing on laptops in the lobby.

9) And finally, I had read often enough in the forums that people had desire to include different mission functionality into Invasion, but that was not possible due to it being hard coded into the game. Now, players have that option, if they so wish.

I know that all of this work may be for naught in a few months if 2.0 comes out that soon, but at least I accomplished what I needed for the convention, I learned a great deal about missions, and I enjoyed the process. As the script relies upon no special AI commands, nor special skins or sounds, it may be possible to run this under 2.0 with just minor modifications, but that is to be seen in time.

-Rusty
avatar
MichaelMesich said Jun 03, 2013 23:57:55
Ha! Number 5 is a dig at me, but that's cool. My experience is it gives them a bit of an exciting WTF? moment at the end. Sometimes it's a mercy kill, sometimes they give me a run for my money (though I admit I'm way over-powered and the goal is to end the session after-all!) They still come back for more and I now actively request space for a viewing gallery as there were always people in there watching even if they'd already played it.

But then I'm also watching over one bridge the whole time and can easily afford this bit of levity on my own part.

My tune may well change if I need a higher churn-rate or start managing multiple bridges at conventions, though. So thanks for your efforts!
avatar
badgeguy said Jun 04, 2013 00:22:01
It was not meant to be a "dig" at you. Your method of ending the game with a great, ship destroying battle can work, I just happen to know the type of players that I have at the convention that I am running Artemis for and they cheer having survived the 25 minutes, considering many are on the brink of destruction at the time. After an hour or two, I could see a final "Kobayashi Maru" experience as bringing a waning game to a climactic conclusion for the crew.

I did have a couple of games where the ship was damaged beyond repair (read: All DamComs dead) with the enemy closing, but too far away to actually go down in a firefight without a wait. The Captains asked if there was a self destruct code and I obliged with the system procedure, but it lacked a little of the drama of entering codes and a countdown.

I am even planning on placing a self destruct code sequence for all bridge members to be involved in, if things go really, really, wrong, for the next convention. This will be with a set of 3 keystrokes in sealed envelopes for each bridge member to enter. The captain will hand out the sealed envelopes with 2 of the three letters in the codes to each player and the last envelope will be his/hers with the station order and the last letter of each code. This will prevent any players who have prior knowledge of the codes existence from being able to attempt the sequence as well as giving the captain total control over the option. Oh, yeah, and I will add a recoded computer voice with the countdown for the detonation.
avatar
Mike_Substelny said Jun 04, 2013 01:31:30
I love the idea of the computer voice. My programming partner and I have an as-yet-unpublished mission script "The Ultimate Weapon" for which each crew member is handed a sealed envelope with secret codes and orders. So far the players love it!
"Damn the torpedoes! Four bells, Captain Drayton!"

(Likely actual words of Admiral David Farragut, USN, at the battle of Mobile Bay. Four bells was the signal for the engine room to make full steam ahead).
Login below to reply: