About

# Asset Nexus Unlimited

## What this game is

Asset Nexus Unlimited is a top-down 3D multiplayer co-op game. The players are
a crew recovering assets for a company: they go down into an underground
facility, start the reactor and protect it, hold off the monsters, restore
power to the freight lift, and finally haul the goods out.

What I wanted to make is a short but genuinely fun co-op experience. It's like
a theme-park ride: players don't need to commit long-term, and in a single
session they still go through getting ready, fighting and getting out, and
feel the fun of finishing a job together with other people.

## How to play

- Open the page, type a name (or leave it blank for a codename), and join a
  site or start a new one. A site holds up to four; send a friend the link in
  the address bar and they land in the same site.
- To see the multiplayer side, open a second window (an incognito one counts)
  and join the same site.
- First-time players start in a tutorial, then fly back to the surface by
  helicopter.
- **WASD** to move, **mouse** to aim; **left-click or Space** to fire (hold for
  automatic); **E** to use (lift, shop, reactor); **Q** to drop what you're
  holding; **G** to ready a grenade, then click to throw; **X** to vote ready
  in the break between waves; **M** to mute; **Esc** for the menu.
- Pick up a rifle on the surface, take the lift down, press E at the reactor
  to start it, hold out for six waves, then leave on the freight lift.
- What stays: your name, stats, the leaderboard and run records are saved
  for good. A site itself is temporary: once everyone has left, it's cleared
  after a minute, and the next crew starts fresh.

## What counts as good, to me

My design thinking is influenced by *The Art of Game Design* (Schell). My
reading of some of its ideas is that a game should give players a problem to
solve, and its goals should have value inside the game. Here the problem is
the threat of the monsters, and protecting the reactor matters because of the
recovery job: it powers the lift that carries the goods out.

What I value most is the fun of co-operation itself, and immersion. Players
should know the shared goal and be able to face the pressure together; the
carefully tuned art, lighting and sound give the job a sense of being there.
Sound is in, but because of time it's less polished than the art. If players
don't know where to go, mistake teammates for enemies, or the fighting has no
pressure, then even with every feature working, the experience hasn't reached
my goal.

Controls should be clear with immediate feedback, and should look after
players on a trackpad. The picture should run smoothly, never broken by
performance problems, and above all there must be no serious bug that stops
play.

## What the checks enforce, and what can only be judged

Enforced by automatic checks in `spec/`:

- Players in two browsers are told apart; the same person coming back is the
  same person; nobody can take what another player is holding.
- Different sites can't see each other; a site holds at most four.
- An enemy's stats never quietly change with the wave; a tougher enemy always
  looks different.
- Turrets can't seal off a passage entirely.
- In the tutorial, one player's shots never affect another player's targets.
- The server survives malformed messages and floods, and a client can't
  teleport.

Held by rules, but in the end judged by eye: models, colours and controls
follow [`docs/art-and-interaction.md`](docs/art-and-interaction.md) (for
example, a held gun is gripped the normal way, trackpads are first-class, and
vivid colour is kept for things that glow).

Only playtesting can judge: whether co-operation is fun, whether the setting
draws people in, and whether players know what to do next.

## What I chose not to build

- No long-term progression or replay loop: for the reasons above, even if I
  built it, probably nobody would actually play through it, so it's better as
  one visit that's complete in itself than a game that needs long commitment.
- No complex roles or co-ordination that needs several people acting at once:
  another person means more firepower and another direction covered; "1+1=2"
  is enough. Complex co-op mechanics also cost players more to pick up.
- No accounts or logins: a name is only for the leaderboard. It's simpler.
- No friendly fire: teammates are never against each other. The picture is
  deliberately blurry, so telling friend from foe is hard, there are a lot of
  monsters and players' fire is dense. I like games with friendly fire myself,
  but leaving it out fits the "theme-park ride" idea better.
- Enemies don't quietly get stronger: difficulty comes from what you can see
  (how many, what kind), not hidden numbers. This is also a personal
  preference; I don't like stat changes you can't see.

## References and inspiration

- Jesse Schell, *The Art of Game Design: A Book of Lenses*, 3rd ed. (CRC
  Press, 2019); read in Chinese as 《游戏设计艺术(第3版)》, trans. 刘嘉俊 et
  al. (Publishing House of Electronics Industry, 2021). The ideas of
  experience, problem-solving and goals with value inside the game; these are
  my readings of it.
- *Buckshot Roulette* and *Lethal Company*: a pixelated picture lets players
  imagine the detail the models lack, and builds tension. The game itself
  isn't meant as horror. *Lethal Company* also inspired the setting of
  recovering assets for a shady company.
- *Titanfall 2*'s Frontier Defense: the main gameplay reference, activating an
  objective, protecting it and surviving.
- *Escape from Duckov*: showed me a top-down twin-stick game can carry
  something light with a story; a fixed viewing distance also lowers how much
  detail the models need.
- *Arc Raiders*: a sci-fi post-apocalyptic reference used while exploring the
  art and prompting, not something the final picture copies.
- James Gurney, *Color and Light: A Guide for the Realist Painter* (Andrews
  McMeel, 2010), and his posts on gamut masking
  ([Color wheel masking](http://gurneyjourney.blogspot.com/2008/01/color-wheel-masking-part-1.html),
  [Gamut masking method](http://gurneyjourney.blogspot.com/2011/09/part-1-gamut-masking-method.html)):
  the basis of the facility's colour system, many hues all greyed into one
  family, with only things that glow allowed to be vivid.