Members | Sign In
All Forums > Mission Scripting
avatar

Artemis Galaxy - Grand Artemis Campaign development

posted Jun 08, 2013 17:59:45 by MattStudley
Hello everyone, long time player, first time poster...

After looking over the mission scripting language over the past few months, an idea came crashing into my head like a lemon - wrapped around a golden brick. I finally started to put it on paper. I'm not sure if this is the right place to post this (development or here?), but let me know if you all like this concept:

Artemis Galaxy:


“The Torgoth are coming in from the east. The Krailens from the north. I could destroy the enemy fleets with a volley of nukes, but is this sector worth it? The USFP forces to the west might need those very nukes to defend their outpost. Will this sector's resources be worth the ammunition used to capture it?” -Captains log, U.S.F. Crow, Sector C-7 in the Echo Quadrant.

What is it?

Artemis-Galaxy is a strategy RPG “wrapper” around the Artemis Spaceship Bridge Simulator written by Thom Robertson. It's purpose is to create an environment that allows for larger scale Artemis campaigns where multiple bridge crews can work together against a common goal – liberating an entire quadrant from enemy hands.

How does it work?

AG works by arranging multiple Artemis maps onto a grid, and then tracking traits (such as who “owns” the sector, how many Torgoth are currently there, etc...). The AG “engine” would adjust those numbers as crews complete missions in those sectors.

Crews play sectors by clicking on a grid-sector on a larger map. When the captain decides that they want to play that sector, AG would take a base mission XML file, add in enemy fleets and friendly stations based on the current state of that sector (and neighboring sectors!), and present it to the captain as a downloadable zip.

The crew plays through the mission, protecting their stations or conquering enemy territory. The mission log gets generated as they play, and the captain submits this mission log back into the AG website. The mission log provides information such as how many nukes fired, enemies destroyed, and if the crew was destroyed. The sector, and surrounding sectors, are then all updated to reflect the result of that mission.

Multiple bridge crews could play in a single campaign map, and would have to work together to attack or defend strategically important sectors. They would also have to keep an eye on ammunition consumption. Ship losses become problematic as there are only so many resources to go around, and a crew might want to retreat from a sector instead of risking the loss of an expensive battleship.

Additional Concepts / Features:

Sector Capturing: Sectors can only be captured if there is a USFP sector adjacent, and there is no obstacle impeding your travel to that sector (see below).

Sector Barriers: Certain sectors can only be captured from specific directions. This allows grand-scale natural obstacle, such as giant asteroid fields that protect a sector from a certain side.

Sector Difficulty: Sectors vary in difficulty. A sector that has a high economic or tactical value might be very hard to take, with the enemy fleet directing lots of carriers to it. Other sectors might be more desolate, and have very little in the way of enemy resistance.

Turn Based: The map updates on a turn basis. Currently I am thinking each turn is a week in real time, allowing weekend crews to play without needing to disrupt the work week to defend a sector from attack.

Sector production: Sectors only produce so many resources per “turn”. Sectors owned by enemy fleets produce more ships per turn. Sectors owned by the USFP generate ammunition and Ship-Points (S.P. To be used to replace lost ships.)

Sector Reinforcement: Following the same sector obstacle rule, enemy sectors can be reinforced from adjacent enemy sectors. If an adjacent enemy sector has extra ships available, it will send them to help out the sector being attacked. They will fill in from that border of the map, too.

Sector Attacks: If an enemy sector has extra ships, it will attack an adjacent USFP sector. If the USFP sector is not reinforced by a bridge crew in time, the sector is lost to enemies, and needs to be captured again.

Crew Registration: A captains registers a ship, and the crew signs on with that ship. Crew members can serve on other ships, too. Captains sign up for campaigns.

Who:
This is being developed by me, Matt Studley, initially. I am probably going to be looking for help, especially with generating the blank mission files needed. If you are experienced in any of the technologies below and want to help, contact me.

Technologies:

ASP.net / C#.net 4.5
Visual Studio Express 2012 for Web
Jquery
Considering Bootstrap
SQL Server 2012 Express

Contact Info:
Any questions, please post below or PM me.
page   1
6 replies
avatar
MichalTorba said Jun 10, 2013 10:06:28
First of all let me say, that it is brilliant concept and I endorse it fully. I'd even be tempted to help if technologies you plan to use were different (I'm more of a Java kind of guy)

Some notes:

What will your end product look like? Is it supposed to be on-line public dedicated server administrated by you (and associates) players will connect to? Or is it campaign-creating tool for all the players to use, like a new mode of play only managed from outside the game?

If it's the second case, you're making a few assumptions that do not neccesarely make sense. If the gameplay should be turn based, than it's logical that each crew instead of being limited by "turn time" (which heavily impedes real life stuff) should work on an action system. If there are only two crews, and they do 48 hours marathon on a con they should be able to play out the whole campaign, and NOT in one turn. I'd see it as sending the command "end turn" when all action points are spent (or the crew doesn't want to do anything yet waiting for resources).

If it's the first case... I'd still advocate for action points system (though the time limit on turn time should be fixed than). You would also need some kind of system of relying messages from crew to crew to decide the course of action.

How will each individual sector within game be created? Parametrised creation of Invasion Mode games? Custom campaign missions?
avatar
MattStudley said Jun 10, 2013 12:44:09
MichalTorba, thanks for the endorsement! Even if the tech isn't your cup of tea, I welcome the feedback and the conversation, as it helps me out. If you want to poke around, I can send you the github repo URL.

To answer your questions:
What will your end product look like? Is it supposed to be on-line public dedicated server administrated by you (and associates) players will connect to? Or is it campaign-creating tool for all the players to use, like a new mode of play only managed from outside the game?


In it's final version, it's going to be an online dedicated server - so that would be your first case. That being said, I'm open sourcing this. If someone wants to host a private instance, they are by no means prevented from doing so.

Here's a more detailed view of how crews would interact with the system: A ship captain registers the ship, and they then enroll that ship in one or more campaigns. A campaign contains the quadrant map, which is made up of Artemis game map "sectors". Multiple ships can play in multiple campaigns at a time. Bridge crew can crew multiple ships, if they want.

I imagine the user being initially greeted after log in with a list of their current campaigns. When a user clicks-through to a campaign they are in, I envision the end product will show an X by Y grid "quadrant" map. When you click on each sector in the grid you'll get some information to pop-up or display in a dock about that sector. These sectors will contain thumbnails of the actual Artemis map, so when stitched together into the quadrant map you can see the larger-than-sector features. The quadrant maps could range in size from 3x3 to 10x10 or more, depending on how epic a campaign the crews want.

Here's a rough example of what a 3x3 map might be like:


f it's the second case, you're making a few assumptions that do not neccesarely make sense. If the gameplay should be turn based, than it's logical that each crew instead of being limited by "turn time" (which heavily impedes real life stuff) should work on an action system. If there are only two crews, and they do 48 hours marathon on a con they should be able to play out the whole campaign, and NOT in one turn. I'd see it as sending the command "end turn" when all action points are spent (or the crew doesn't want to do anything yet waiting for resources).

If it's the first case... I'd still advocate for action points system (though the time limit on turn time should be fixed than). You would also need some kind of system of relying messages from crew to crew to decide the course of action.


Action points are a good idea. I can see your point where a few bridge crews that get together and slam out some missions would be disheartened if they had to wait a week for their next turn. Let me mull this over, but at first glance I like your idea better than mine :). If a bridge crew can't make it though, but 4/5 crews spend their AP, how should that 5th crew be handled? Should there be a concept of Admirals, players with elevated privileges that can force a turn?

For Crew messaging, are you thinking real-time communications? I am thinking more of a forum not unlike this one as a place where bridge crews can plot and develop strategies. As another idea, maybe Comms would monitor the forums/site and relay battle results as they were reported. Given that AG is already dynamically generating missions, there could be a general "orders" relay come through the Comms station for that sector that was entered by an Admiral or respected captain. I have nothing written in stone here and am open to ideas.

How will each individual sector within game be created? Parametrised creation of Invasion Mode games? Custom campaign missions?


Each sector will be a dynamically generated campaign mission downloaded as a zip.

Here's a more detailed view of how some of those mechanics would work:

Each sector will have a base map that has natural features (asteroids, nebulae, singularities, space whales, etc...). I will be building these manually using the Mission Editor... and if anyone wants to help me out there, I wouldn't object... at all. ;)

As to how it works at play-time: When a ship captain "checks-out" the sector to fight in it, the AG system looks up data on the sector in question and it's neighbors. It will then generate a new mission XML file based on the "base" mission with enemy fleets and outposts added in. Once the new XML is generated, it gets packaged in a ZIP file for the captain to download.

Outposts will be created on borders with friendly sectors, and enemy fleets will be created just off-screen of the borders with enemy sectors. Sectors have a concept of currentAmount, FullAmount, and MaxAmount for each enemy ship and munition.

Outposts will contain the difference between the Full Amount and the Max amount of a munition from the friendly sector that "sent" the outpost to help you. The same mechanic works for enemy vessel types.

So if the enemy sector to the east has 6 carriers, and it's considered full at 4 carriers, it's going to send 2 carriers to reinforce the sector you are currently fighting in, and you'll see those two carriers (along with whatever else the sector had to spare) come in from the east side of the sector.

If the sector to the west, which is friendly, has six nukes and is considered full at three, then the outpost spawned on the west side of the map will have three nukes on board.


So this was a long post, but I hope it fleshed out the ideas a bit more for you. Let me know what you think!

- Matt
avatar
MichalTorba said Jun 10, 2013 17:37:40
If a bridge crew can't make it though, but 4/5 crews spend their AP, how should that 5th crew be handled? Should there be a concept of Admirals, players with elevated privileges that can force a turn?

Well, there always should be one elevated player that created the campaign. He could take the role of admiral and advance turns as needed. You can also leave the forced turn timeout as a configurable option, if there will be crews so inclined (like people at TSN RP who play every week either way and wouldn't mind).

For Crew messaging, are you thinking real-time communications? I am thinking more of a forum not unlike this one as a place where bridge crews can plot and develop strategies. As another idea, maybe Comms would monitor the forums/site and relay battle results as they were reported. Given that AG is already dynamically generating missions, there could be a general "orders" relay come through the Comms station for that sector that was entered by an Admiral or respected captain. I have nothing written in stone here and am open to ideas.


Thought of Comms coordinating on a larger scale is appealing. It would work well for groups that enter missions at mostly the same time, and that should be the majority. Oh, and with simple one-to-one communication with the Admiral about permissions to use nukes etc. Of course it would work better in a different gameplay model, real-time one where enemy attacks could trigger after the crews are in the game in another sector. And it's not a neccessary feature since people taking part in the same campaign could organise themselves on teamspeak or something.

If the sector to the west, which is friendly, has six nukes and is considered full at three, then the outpost spawned on the west side of the map will have three nukes on board.


I'm not sure how that would work. Do you set the outpost to set amount of nukes it has at the beggining of a mission? Or do you restrict the amount of nukes that outposts in that mission can generate? Also, what if the players decide not to fight for that sector too hard? Just do hit&run harass approach? Players might want not to allocate excess resources to a map they think they're going to loose (and I assume that failure means that resources that were in that sector are gone, and probably converted into crouiserPoints for the enemy).

Aaand I don't think that when entering a mission only the adjacent sectors should take part in providing resources. That would cause safe sectors (surrounded by safe sectors) to not be able to help much in the war effort. And since players can strike into anything that is adjacent to their territory we assume there is quite good supply backbone.

So to conclude this line of thought, players should have the ability to move their resources around (only between sectors that are not under attack this turn at least). Of course in respect to resource limits one sector can hold.

That brings me to another point - how will sector production work? Do we set each sector to producing certain types of goods (SP, missile types)? Or do they all generate SPs, and missiles are generated automatically?

I was also thinking about some time of timed missions. Since you get every other information from a game that ended, you could also extract mission time. Then, missions could be challenging even in well-defended sectors - if for example enemy has an experimental weapon, and if mission isn't over in 30 minutes players loose. Though that's probably a v1.5 feature :P
avatar
MattStudley said Jun 10, 2013 21:56:40
It sounds like there is a definite need for players who have elevated privileges that can force turns when necessary. I like the idea of calling them Admirals, and I have a feeling they won't be limited to just pressing the "End Turn" button.

I'm not sure how that would work. Do you set the outpost to set amount of nukes it has at the beggining of a mission? Or do you restrict the amount of nukes that outposts in that mission can generate?


I made a few diagrams to help walk through the processes that I have in mind. First, take the quadrant map :


I noted the ammunition and enemy fleet counts in each sector in the format of current#/full#/max#. The sector in the middle is the one the player is attacking, noted in yellow. The red sectors will be sending ships to help the yellow sector, and the blue sectors will be sending ammunition in the form of stations to help the player's war effort.

For the sector being attacked, it is not claimed / owned by USFP, so no stations are present from this sector . It has 3 carriers, 10 Cruisers, 6 Battleships and 3 Dreadnoughts that will be in the central sector fleet.

In the NW sector fleet, which is the fleet sent from Sector A-1, there would be 1 Carrier, 2 Cruisers, 1 Battleship and 1 Dreadnought. Sector A1 would keep 2 Carriers, 8 Cruisers, etc... for its own defense.

Sector C-3, in the Southeast is friendly, and would spawn a station in the SE corner of the map in the embattled sector. It would start with 1 nuke, 8 homing, 0 ECM, and and 1 Mine. Note that the C3 has no spare ECMs (It has 4 current out of 6 Full), so it can't send any more ECMs. I call stations created this way "outposts", and they can produce munitions while playing like any other Artemis game session station would. I am thinking about tracking how many munitions stations produce vs artemis fired, and subtracting the difference between them from the sector's stores.

Repeating this process for each surrounding sector, we see that attacking the central sector in this case was a rather poor strategic move:


Also, what if the players decide not to fight for that sector too hard? Just do hit&run harass approach? Players might want not to allocate excess resources to a map they think they're going to loose (and I assume that failure means that resources that were in that sector are gone, and probably converted into crouiserPoints for the enemy).


You bring up a valid point. If ammo gets sent to that sector, then it's staying there. What would you think of an option in the "start battle" dialog where you select which sectors you want to send their outposts and reinforce you? That would let you pull from just a single sector if you only wanted to harass the enemy fleet.

Aaand I don't think that when entering a mission only the adjacent sectors should take part in providing resources. That would cause safe sectors (surrounded by safe sectors) to not be able to help much in the war effort. And since players can strike into anything that is adjacent to their territory we assume there is quite good supply backbone.


I have considered a bubble effect, where Sector A1 fills A2 fills A3, which is where the fight is. I could also see Admirals being able to manually move resources from sector to sector, in order to bolster the embattled sectors.

Another concept to think about is that once sectors have maxed out ammo, they can start producing ship points. The idea for this is that you can't re-build a fallen ship on the front lines. You need to find a sector with enough SP to rebuild your ship. And I would think if you lose a USFP Dreadnaught, it's going to require a very valuable sector to rebuild it.

That brings me to another point - how will sector production work? Do we set each sector to producing certain types of goods (SP, missile types)? Or do they all generate SPs, and missiles are generated automatically?


Each munition and enemy ship has a cost associated with it. Sectors produce X amount of resources per turn, which can be spent on those items. So if a sector produces 4,000 resources per turn, and dreadnoughts cost 1000 resources to build, then that sector could build 4 dreadnoughts in a turn.

When a quadrant is created in AG each enemy ship or munition is assigned a sector and that assignment has a current amount, full amount, max amount, and production-weight associated with it. The production weight controls what the sector would prefer to produce.

For example if an enemy sector is set to produce cruisers 30% of the time, carriers 10% of the time, and battleships 60% of the time you'll see the battleship count rise quickly in that sector. There will be other ship types built too, but battleships will be the focus.

During each turn, the sector produces as much as it can. If it prefers to build carriers but can't afford to make any more, it will start producing smaller ships until it exhausts its production for that turn.

Friendly sectors will do the same thing, but for ammunition and ship points. The way I have it now, Ship points are counted as a munition.

The production weights can be varied pretty easily, so it wouldn't be a lot of work, engine-wise, to allow an Admiral to tweak each claimed sector's production preferences. That might be a 1.1 option though.

I was also thinking about some time of timed missions. Since you get every other information from a game that ended, you could also extract mission time. Then, missions could be challenging even in well-defended sectors - if for example enemy has an experimental weapon, and if mission isn't over in 30 minutes players loose. Though that's probably a v1.5 feature :P


This sounds cool. I've also thought about roaming fleets as well with elites in them, moving from sector to sector surprising the players. I do think that these are .next features, but good to have none the less.

I'm enjoying the dialog and it's helping me see some areas that need work, so thank you!


avatar
MichalTorba said Jun 10, 2013 22:45:30
I'm enjoying the dialog and it's helping me see some areas that need work, so thank you!


I actually find it relaxing, considering the rest of the stuff I should be doing right now :P Ok, let's see...

While reading through the description of how the ships were created a thought came to my mind. What will be the difficulty level of later stages? I mean, it seems that without any custom adjustments we have an exemplary snowball effect in place. In 3x3 layout, when enemies own 6 sectors, and players put them down to 5, they have ~15% (or so, don't wanna do the math right now) lower ship output, while players have higher ammo output. If difficulty level was constant, first battle would be the hardest. Adjusting difficulty once linearly as shown in your quadrant diagram (pink - medium, red - hard) is also not enough, both because there will be fewer ships each time, and because sectors of the same tier would be consequently easier to conquer as game progresses. And on the other hand players should feel that their conquers give them some real advantage, because I don't think racing games trick (AI is never too much behind) will do it.

I didn't notice before that sectors on diagonals are also adjacent. That changes some things, and probably it's a good choice.

Will AI (ok, I know it's simple algorithm, but still) always act that way, which is sending in full defense? In this scenario it would seem, that although attacking middle sector brings fleets from everywhere to defend it, it also means that a turn is over in one epic battle, enemy has no more ships to spare on attacks. As long as players each turn tie enemy in a fight for the center, and destroy more ships that enemies produce per turn they will win.
Hmm... Yeah, that requires going into more details on turn order. Untill now I assumed that turns are only player thing, at turn end game does what it needs, says where spare enemy ships (if there are any) will attack and voila. However if they had their own turn... Maybe restrict players to one attack per turn, and the rest action points are for movement and defense... Ok, I'm gonna stop now, I want to hear your thoughts before nitpicking and changing them to my image (again :P)

I am thinking about tracking how many munitions stations produce vs artemis fired, and subtracting the difference between them from the sector's stores.

Munitions are hard... Normally Artemis starts with full compliment of missiles it's able to carry. That could lead to using more than they had and not depleting any from starbases. Now, it might be possible to change that in MissionScript (I know nothing about it for the moment). But in a hard battle players will need missiles on board, and getting them from outposts would take forever (so holding off enemy fleet for loading missiles would not work). You could subtract missiles they get on board at the start from outposts in play... But that would require server-side knowledge of what ship/s will go on that mission. And if there is more than one, and not enough ammo they would somehow need to decide who gets what....
Munitions are HARD.



avatar
MattStudley said Jun 11, 2013 00:09:04
I mean, it seems that without any custom adjustments we have an exemplary snowball effect in place.

I do see the potential for a snowball effect that you pointed out. Based on a 3x3 map, I can see my current model needing to adjust the difficulty of sectors to get much harder as players progress. In the database that drives all this, the sector difficulty and sector production are controlled independently, so in a 3x3 the sectors can definitely get their difficulty cranked to better stand up against the players.

Another mechanic we haven't touched on yet is how players lose sectors. Each turn, if a enemy sector has extra ships and is neighboring a claimed sector, it will send those ships to that sector. The friendly sector will begin to accumulate enemy ships, and even though it's still "friendly", the original enemy fleet assignments it had (ie the full and max numbers) remain. If enough of the enemy fleet "fills-in" from neighboring sectors, the sector flips and becomes unclaimed again.

In a 3x3, this isn't a big deal since a bridge crew or two can cover all the ground pretty quickly. In a 5x5 or bigger, a three bridge team will need to start carefully looking at where they spend their actions. Sectors that were easily captured can be easily lost if they don't spend time cleaning out the enemy raiders. Hard sectors should be hard - Taking them should really risk the loss of a ship (or three), but be very much worth it since it can be defended and can produce vast amounts of munitions and ships.

Tying this back up to above, assuming that ships can only fight one battle per turn (which is what I'm leaning towards), and three ships are deployed to take a particularly hard sector, leaving just a skeleton crewed scout ship left to defend three other sectors... You can be sure you're going to lose a sector that turn. Especially if there is a sector being attacked from five sides.

Also - terrain plays a role. Some sectors have obstacles that prevent ammo and ships from filling in from certain directions. One 3x3 feature in a larger 10x10 map I have envisioned is called the "Crucible": A large ring of asteroids with a particularly powerful singularity at it's center. Combined with nebulae in the area, it's unique metallurgic properties allow the station there to produce vast quantities of goods. In essence, it's a 3x3 feature where A2 is the only sector that can access B2, and B2 has so many resources that there is a GIANT fleet that fills into A2, and an even bigger one inside B2. Very, very valuable, but next to impossible to capture. I can see map design helping mitigate the snowball effect to an extent.

Will AI (ok, I know it's simple algorithm, but still) always act that way, which is sending in full defense?


Well, I think for 1.0 they will. If a bridge crew wants to go draw enemies out into a sector so that their sister ship can take a neighboring sector, I think that's a valid, fair tactic. Based on how hard some sectors might be, I think this tactic might even be required!

Munitions are HARD.


I can't find a good solution either. 1.0 might just have a flat rule that says "If you shot it, you spent it." It's not great but at least it's straight forward. I think the idea would be that you brought the original ship load out with you as you deployed to the sector, and as you leave the sector you top-off on your way to the next sector.

Multiple bridge crews in a single sector still need a lot of figuring out. Three bridge crews in dreadnoughts could easily double the number of munitions in a sector, firing more than the sector has. I imagine this would zero out the sector, and will probably leave it at that for 1.0.

How to record it though - with three bridge crews submitting results, and not all at the same time either... I'll have to think on this.
Login below to reply: