WARFRAME Wiki
Advertisement
WARFRAME Wiki
Photo-4
“It's taking longer than I calculated.”
This page is actively being worked on and may not be completely correct. Please assist in making this page accurate. See WARFRAME Wiki:Research on ways to perform research on this game. Click here to add more info.

The WARFRAME Wiki relies on many Lua modules to automate content creation at scale to deliver accurate, relevant, and timely information to wiki readers.

Rationale[]

Since WARFRAME is a live-service game with regular updates and hotfixes, there is a need for a up-to-date community-ran repository of knowledge to document the latest information on the game. As software, video games store their game objects as structured data which means that there is a relatively easy way to translate in-game items to more programmatic representation in the form of data with attributes and properties.

Using Lua scripts in the Module namespace, we are able to share a single source of truth of most game objects by storing them on the wiki's Data Stores. This way editors can:

  • Deduplicate effort spent editing articles, only needing to edit one place to have all the relevant articles updated with that data
    • Reduces the need of external scripts or editing tools like AutoWikiBrowser
      • Thus lowers the barrier of entry to mass-editing articles
  • Maintain content that tend to be repetitive in structure (e.g. wikitables with hundreds of rows)
  • Perform data processing and statistical analysis (e.g. data aggregation, probability distributions)

Module Navigation[]

Issues[]

  • Lua scripts are ran in a sandboxed environment on the MediaWiki wiki engine, being restricted to 50 mebibytes of memory usage and 7-seconds CPU runtime
    • Cannot use web APIs in Lua scripts
  • No native version control or DevOps in developing Lua scripts in Module namespace
    • No code reviews, CI/CD, code branching, different environments (development, staging, production)
    • Have to manually copy code from a test page to production or directly edit production code
  • Lack of tooling around developing Lua scripts in a MediaWiki context
    • Niche development community
  • Hard to create unit tests for code
    • Not traditional web development
  • No native database query language
    • No programmatic CRUD operations in updating data stores without external scripts
  • High-level programming may not be as performant as using more lower-level languages (e.g. developing PHP extensions that run on MediaWiki)
    • This is an issue that concerns wiki farm infrastructure and software engineering team more than wiki editors/administrators

See Also[]

Advertisement