[TOOL] Minimum Viable Prototype, framework for persistent campaign production(updated 9/2)

This is a system to allow the rapid creation and testing of extremely simple(Minimum Viable Prototype) campaigns with persistence.

Due to limited time and energy it is presented in a very rough form, the examples built for Fulcrum’s context. If I had to clean everything up and put it in a more portable form, it probably wouldn’t ever get released.

An MVP mission consists of a .level file with a few defined spawn points and optionally some harvestable asteroid distributions, and a .lua file with a list of enemy, ally, and player forces to spawn on the map. It has a working semi-hw1 style press button to end mission mechanism once all enemies are dead. Enemies will charge into the player at mission start, and allies will charge into the enemies. There are also values for if you want the player to load a persistent fleet from the previous mission or not, and what to use as their mothership if so. Note that the mothership needs to have parade formation associated with it or the game will crash if you try to load persists.

Some examples have been provided. They’re rough and uncommented. See previous note about time and energy. If anyone ends up taking it upon themselves to make a fancier or cleaner version with examples using stock assets I’d gladly link it from here.

If/when I put this system through its paces myself I’ll probably end up expanding it. I’ll try to share any significant improvements with you folks.


The code within is mine, except Mikail’s map functions, which are included because I use them in the maps. Those are his.

8 Likes

does the parade function have to define all of the ships that could be built or can it use generic spots?

1 Like

generic spots should be fine, it’ll just crash if you don’t have any parade data. I haven’t tested the limits of that too extensively though.

Do you just fight indefinitely? Or can you “win” the campaign? Interesting, nonetheless.

1 Like

Missions are won when all the enemies are dead. You can advance through a campaign to completion as normal.

My main idea here is to have something you can build really rough but functional missions to at least block out rough engagements, force concentrations, resource availability, and so forth, and then you can start replacing MVP code with full mission coding and pretty it up with events and custom behaviors.

There are a few features I think can be added to this framework to take it a lot further than it can already go. We’ll see if I can get to some this week.

4 Likes

The archive has been updated with some new features, with support for build restrictions and timed waves of new spawns from multiple locations. Examples have been updated to use these features, but documentation remains non-existent.

1 Like

Another update. No new features really, but now the examples are now playable entirely with stock assets.

3 Likes

Early in the HW2 days I started planning a sort of grammar system for missions. SUBJECT would do VERB onto OBJECT, and the scripts would translate that into mission actions. This is as far as I got:

Title: Event Classes
Purpose: Sort events into mutually-exclusive classes. Determine how classes 
can be combined & linked together. Create custom functions to "plug" 
different events into a mission's structure.

--------------------------------------------------------------------------------

SUBJECT		VERB			SBJ-MODIFIER	OBJECT			OBJ-MODIFIER

player		engage/defeat	wh/ undetected	player			in motion
sobGroup	defend/guard	w/i time limit	sobgroup		stationary
			capture/disable	w/o ability		subsystem		cloaked
			locate/detect	bef/ escape		volume			in hyperspace
			rendezvous w/	bef/ repair		point			docked
			move to			wh/ disabled	RU/debris		friendly
			hyperspace to	bef/ date		research item	neutral
			collect/salvage	w/i distance of	build item		enemy
			research		wh/ other event					w/ ping
			build			> not failed
			repair
			dock w/
			evade/escape
			avoid
			follow
			retreat

--------------------------------------------------------------------------------

OPJECT TYPES

sobgroup
	artifact
	base
	megalith

time limit
	time since beginning of event
	time since beginning of mission
	time since beginning of other event
	meta-date for multi-missions

--------------------------------------------------------------------------------

ACTION
	EVENT

movement
	move
	hyperspace
	rendezvous
	retreat
	follow
	avoid

sensors
	locate
	identify
	detect

special
	cloak
	EMP
	harvest

--------------------------------------------------------------------------------

STARTING MAP/SCENARIO CHARACTERISTICS
- player controls most territory
- player controls least territory
- narrow hostile corridor
- narrow terrain corridor
- lotsa platforms
- foggy
- radioactive

--------------------------------------------------------------------------------

ISSUES
- Can events be nested? Are they always linear and sequential?

PLOT IDEAS
- A unit is disabled! Complete the mission with the disabled unit intact.
- Infiltrate an enemy base and disable some equipment.

OTHER IDEAS
- create a grid of volumes. the player with the most ships in the most 
  volumes controls the area. (have to figure out how to weight the values)

[edit]

Sorry, forum software sucks and text is misaligned.

[edit]

Fixed.

3 Likes

I have one question how to do you use MVP Allies? What is the progress on making an ally in this game mode?