Anonymous edits have been disabled on the wiki. If you want to contribute please login or create an account.


Warning for game developers: PCGamingWiki staff members will only ever reach out to you using the official press@pcgamingwiki.com mail address.
Be aware of scammers claiming to be representatives or affiliates of PCGamingWiki who promise a PCGW page for a game key.

Difference between revisions of "Template:Middleware"

From PCGamingWiki, the wiki about fixing PC games
(moved multiplayer and anticheat arraymaps inside main ifs, added GameSpy property)
(added multiplayer section 'needed' check for anticheat)
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<div class="container-pcgwikitable"><table class="pcgwikitable template-infotable" id="table-middleware">
+
<noinclude>{{#cargo_declare:
<tr class="template-infotable-head">
+
_table=Middleware
<th scope="col" style="width: 230px;"></th>
+
|Physics=List (,) of String
<th scope="col" style="width: 120px;">Middleware</th>
+
|Audio=List (,) of String
<th scope="col" style="width: 470px;">Notes</th>
+
|Interface=List (,) of String
 +
|Input=List (,) of String
 +
|Cutscenes=List (,) of String
 +
|Multiplayer=List (,) of String
 +
|Anticheat=List (,) of String
 +
}}</noinclude><includeonly>{{#ifeq:{{#var:section}}|API|{{#vardefine:section|Middleware}}|[[Category:Invalid section order]]}}{{#if:{{{physics|}}}{{{audio|}}}{{{interface|}}}{{{input|}}}{{{cutscenes|}}}{{{multiplayer|}}}{{{anticheat|}}}|<div class="container-pcgwikitable"><table class="pcgwikitable template-infotable" id="table-middleware">
 +
<tr class="template-infotable-head table-middleware-head-row">
 +
<th scope="col" style="width: 230px;" class="table-middleware-head-parameter"></th>
 +
<th scope="col" style="width: 120px;" class="table-middleware-head-middleware">Middleware</th>
 +
<th scope="col" style="width: 470px;" class="table-middleware-head-notes">Notes</th>
 
</tr>
 
</tr>
  
 
{{#if: {{{physics|}}} |
 
{{#if: {{{physics|}}} |
<tr class="template-infotable-body">
+
<tr class="template-infotable-body table-middleware-body-row">
<th scope="row">Physics</th>
+
<th scope="row" class="table-middleware-body-parameter">Physics</th>
<td>{{{physics|}}}</td>
+
<td class="table-middleware-body-middleware">{{{physics|}}}</td>
<td>{{{physics notes|}}}</td>
+
<td class="table-middleware-body-notes">{{{physics notes|}}}</td>
 
</tr>
 
</tr>
 
}}
 
}}
 
{{#if: {{{audio|}}} |
 
{{#if: {{{audio|}}} |
<tr class="template-infotable-body">
+
<tr class="template-infotable-body table-middleware-body-row">
<th scope="row">Audio</th>
+
<th scope="row" class="table-middleware-body-parameter">Audio</th>
<td>{{{audio|}}}</td>
+
<td class="table-middleware-body-middleware">{{{audio|}}}</td>
<td>{{{audio notes|}}}</td>
+
<td class="table-middleware-body-notes">{{{audio notes|}}}</td>
 
</tr>
 
</tr>
 
}}
 
}}
 
{{#if: {{{interface|}}} |
 
{{#if: {{{interface|}}} |
<tr class="template-infotable-body">
+
<tr class="template-infotable-body table-middleware-body-row">
<th scope="row">Interface</th>
+
<th scope="row" class="table-middleware-body-parameter">Interface</th>
<td>{{{interface|}}}</td>
+
<td class="table-middleware-body-middleware">{{{interface|}}}</td>
<td>{{{interface notes|}}}</td>
+
<td class="table-middleware-body-notes">{{{interface notes|}}}</td>
 
</tr>
 
</tr>
 
}}
 
}}
 
{{#if: {{{input|}}} |
 
{{#if: {{{input|}}} |
<tr class="template-infotable-body">
+
<tr class="template-infotable-body table-middleware-body-row">
<th scope="row">Input</th>
+
<th scope="row" class="table-middleware-body-parameter">Input</th>
<td>{{{input|}}}</td>
+
<td class="table-middleware-body-middleware">{{{input|}}}</td>
<td>{{{input notes|}}}</td>
+
<td class="table-middleware-body-notes">{{{input notes|}}}</td>
 
</tr>
 
</tr>
 
}}
 
}}
 
{{#if: {{{cutscenes|}}} |
 
{{#if: {{{cutscenes|}}} |
<tr class="template-infotable-body">
+
<tr class="template-infotable-body table-middleware-body-row">
<th scope="row">Cutscenes</th>
+
<th scope="row" class="table-middleware-body-parameter">Cutscenes</th>
<td>{{{cutscenes|}}}</td>
+
<td class="table-middleware-body-middleware">{{{cutscenes|}}}</td>
<td>{{{cutscenes notes|}}}</td>
+
<td class="table-middleware-body-notes">{{{cutscenes notes|}}}</td>
 
</tr>
 
</tr>
 
}}
 
}}
 
{{#if: {{{multiplayer|}}} |
 
{{#if: {{{multiplayer|}}} |
<tr class="template-infotable-body">
+
<tr class="template-infotable-body table-middleware-body-row">
<th scope="row">Multiplayer</th>
+
<th scope="row" class="table-middleware-body-parameter">Multiplayer</th>
<td>{{{multiplayer|}}}</td>
+
<td class="table-middleware-body-middleware">{{#arraymaptemplate:{{{multiplayer}}}|Middleware/multiplayer}}</td>
<td>{{{multiplayer notes|}}}</td>
+
<td class="table-middleware-body-notes">{{{multiplayer notes|}}}</td>
 
</tr>
 
</tr>
{{#arraymap:{{{multiplayer}}}|,|x|[[Multiplayer middleware::x| ]]{{#ifeq:{{lc:x}}|gamespy|[[GameSpy::true| ]]}}|}}
 
 
}}
 
}}
{{#if: {{{anticheat|}}} |
+
{{#if: {{{anticheat|}}} |{{#if:{{#var:multiplayer}}||{{#vardefine:multiplayer|needed}}}}
<tr class="template-infotable-body">
+
<tr class="template-infotable-body table-middleware-body-row">
<th scope="row">Anti-cheat</th>
+
<th scope="row" class="table-middleware-body-parameter">Anti-cheat</th>
<td>{{{anticheat|}}}</td>
+
<td class="table-middleware-body-middleware">{{#arraymaptemplate:{{{anticheat}}}|Middleware/anticheat}}</td>
<td>{{{anticheat notes|}}}</td>
+
<td class="table-middleware-body-notes">{{{anticheat notes|}}}</td>
 
</tr>
 
</tr>
{{#arraymap:{{{anticheat|}}}|,|var|[[Anticheat middleware::var| ]]|&#32;}}
+
}}</table></div>{{#ifeq: {{NAMESPACE}} | | {{#cargo_store:
}}</table></div><noinclude>{{Documentation}}</noinclude>
+
_table=Middleware
 +
|Physics={{{physics|}}}
 +
|Audio={{{audio|}}}
 +
|Interface={{{interface|}}}
 +
|Input={{{input|}}}
 +
|Cutscenes={{{cutscenes|}}}
 +
|Multiplayer={{#var:multiplayer middleware}}
 +
|Anticheat={{#var:anticheat middleware}}
 +
}}}}|{{ii}} ''No middleware information; you can <span class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} edit this page]</span> to add it.''}}</includeonly><noinclude>{{Documentation}}</noinclude>

Revision as of 07:33, 23 September 2021

This template defines the table "Middleware". View table.

Documentation for the above template (sometimes hidden from view).
Description

Table to list middleware used by a game.

Arguments
  • physics - Middleware that simulates physics against objects in-game, e.g. Bullet Physics Engine, Havok, PhysX.
  • audio - Middleware that provides support for audio playback, e.g. FMOD, Miles Sound System, Wwise.
  • interface - Middleware that assists with rendering or the design of in-game user interfaces, e.g. Flash, FreeType 2, Scaleform.
  • input - Middleware that provides support for or assists with input systems/controls (keyboard, mouse, gamepads, etc), e.g. Object Oriented Input System (OIS).
  • cutscenes - Middleware that provides cutscene or pre-recorded video playback support, e.g. Bink Video, Smacker.
  • multiplayer - Middleware that provides the base of multiplayer support or assists with other aspects related to it (matchmaking, etc), e.g. Steamworks, GameSpy, Epic Online Services.
  • anticheat - Middleware that protects against cheating or assists with other aspects related to it (anti-cheat, matchmaking, etc), e.g. PunkBuster, VAC, Easy Anti-Cheat.
Syntax
===Middleware===
{{Middleware
|physics          = 
|physics notes    = 
|audio            = 
|audio notes      = 
|interface        = 
|interface notes  = 
|input            = 
|input notes      = 
|cutscenes        = 
|cutscenes notes  = 
|multiplayer      = 
|multiplayer notes= 
|anticheat        = 
|anticheat notes  = 
}}
Related

These sub-templates consolidates the given input and automatically outputs links for well-known middleware.