The background story would be what it used to be: Player is on some other planet in some base that has been overrun by the alien/mutant/zombie/robot/terrorist/whatever enemies. Player's main mission is to capture the base back.
== Start Level ==
- * The start level functions as a safe zone for player, return back to it after missions
* Mission selector: has multiple missions, mission types/goals randomized when entering the level
* Has a shop for player to buy/sell health, energy, ammo, weapons, extra lives, powerups
* And a place to equip the equipment on player (can't carry everything at the same time)
* Mission selector, shop and equipment interfaces can be just simple text lists
* Shop and equipment interfaces can appear in mission levels in coop and DM (only when just re/spawn or if player used the "map" console command)
* Saving only allowed in the Start level (is it possible to disable saving in other levels?)
- * Level chosen for the mission is randomized
* Spawn points for enemies/characters: same level don't play the same twice
* Multiple entry/exit zones for player: start/end the mission from one of these (don't end mission immediately on touching the exit zone, require confirmation)
* Maybe some func_walls that are set on/off randomly (inaccessible areas shouldn't contain any mission goals)
* Attack Mission: try to capture the area from enemies
* Defence Mission: enemies try to capture the area from player (ignoring it in the mission selector would result in losing the area)
* Mission Goals: kill all enemies, free hostages, get item, turn devices/bombs on/off (some goals need to be completed within a time limit)
* The mission levels should also work as DM levels
- * Get more money and inventory to the shop (better stuff from harder missions)
* Capture or keep the area
* Exiting/dying before mission goals are complete: Mission Failure (mission can continue if player has extra lives)
* Lots of civilian/hostage casualties could result in Mission Failure or losing a lot of money (more money loss if it's player killing them)
- * Capturing all the areas in the game would result in player victory
* The last area can be a final mission with boss enemies
* If player has 0 health, 0 lives and can't buy more, player loses and the game ends in enemy victory
* Player's money can go negative, if it's too negative, the enemies win
* If player loses all areas, the game ends in enemy victory (failed/ignored too many defence missions)
Player would have multiple ammo types for each weapon to have more stuff to buy from the shop without needing to model lots of weapons (that would probably be very similar in function). If all the things are bought from the shop, it would be unnecessary to model item pickups. There could be some couple openable boxes that could contain any basic item. Mission goal items should have some models too.