3DGC:Design

3D Game Comparison - Game vs. game. No hype; just facts.™

(Difference between revisions)
Jump to: navigation, search
Revision as of 13:21, 4 August 2007 (edit)
Eep² (t|c)

← Previous diff
Current revision (21:00, 13 January 2010) (edit) (undo)
Eep² (t|c)
m '''Wiki markup comparison''' - more namespace examples
 
(12 intermediate revisions not shown.)
Line 1: Line 1:
-Originally designed for a [http://tnlc.com/eep/compare/database.html database], conversion to MediaWiki presents some problems:+This page is MediaWiki-specific but see http://tnlc.com/eep/compare/database.html for general design ideas.
-This page is MediaWiki-specific but see http://tnlc.com/eep/compare/database.html for general design ideas. +Originally designed for a database, conversion to MediaWiki presents some problems:
==Classification== ==Classification==
Line 7: Line 7:
===Categories=== ===Categories===
-The most obvious is with categories. Unfortunately, these can quickly clutter up the bottom of pages if there are too many. Categories could be named like namespaces (i.e. ''Game:Tomb Raider'') but why not just use namespaces then to reduce having to type the link ('':Category:Game:Tomb Raider'' vs. ''Game:Tomb Raider'')?+The most obvious is with categories. Unfortunately, these can quickly clutter up the bottom of pages if there are too many (if categories could be displayed in an organized way instead of by declaration or alphabetically...) Categories could be named like namespaces (i.e. ''Game:Tomb Raider'') but why not just use namespaces then to reduce having to type the link (''[[:Category:Game:Tomb Raider]]'' vs. ''[[Game:Tomb Raider]]'')?
===Namespaces=== ===Namespaces===
Line 14: Line 14:
===Subpages=== ===Subpages===
Less obvious is using subpages (''games/Tomb Raider'') but they may be easier to manage than namespaces, although I'm not sure how DPL (see next section) can handle them. Additionally, subpages are automatically transcludable via template calls (''<nowiki>{{/Tomb Raider}}</nowiki>''). Less obvious is using subpages (''games/Tomb Raider'') but they may be easier to manage than namespaces, although I'm not sure how DPL (see next section) can handle them. Additionally, subpages are automatically transcludable via template calls (''<nowiki>{{/Tomb Raider}}</nowiki>'').
 +
 +===Pages===
 +Even less obvious is just using pages (''Tomb Raider'') and, with an [[#Extensions|extension like Dynamic Page Lists (DPL)]], categories really aren't necessary. Not having categories means not duplicating same-named pages/categories (or redirecting to one or the other) but explicitly require an extension like DPL or embedded [[Special:Whatlinkshere]] lists.
==='''Wiki markup comparison'''=== ==='''Wiki markup comparison'''===
Line 20: Line 23:
<th>System <th>System
<th>Markup <th>Markup
-<th>Adavantages+<th>Advantages
-<th>Disadavantages+<th>Disadvantages
<tr valign=top> <tr valign=top>
-<th>Category+<th>Category/Page
<td> <td>
-* [[:Category:Games]]+* [[:Category:Games|Games]]
-** ''[[Game]]'' (or ''[[:Category:Game]]'')+** ''[[Game]]'' (or [[:Category:Game|''Game'']])
-* [[:Category:Years]]+* [[:Category:Years|Years]]
-* [[:Category:Genres]]+* [[:Category:Genres|Genres]]
 +* [[:Category:Companies|Companies]]
-* [[:Category:Companies]]+* [[:Category:Engines|Engines]]
-* [[:Category:Engines]]+** [[:Category:Camera|Camera]]
-** [[:Category:Camera]]+*** [[pan]], [[perspective]], [[zoom]]; [[shaking]] (in [[:Category:Effects|Effects]])
-*** [[pan]], [[perspective]], [[zoom]]+** [[:Category:Lighting|Lighting]] (subcat of [[:Category:Effects|Effects]] or
-** [[:Category:Lighting]] (subcat of [[:Category:Effects]] or+*** [[:Category:Lighting effects|Lighting effects]]?) ([[lighting effects]])
-*** [[:Category:Lighting effects]]?)+*** [[:Category:Shading|Shading]] ([[shading]])
-*** [[:Category:Shading]]+**** [[pixel shading]], [[vertex shading]]
-** [[:Category:Physics]]+** [[:Category:Physics|Physics]] ([[physics]])
-*** [[:Category:Collision detection]]+*** [[:Category:Collision detection|Collision detection]] ([[collision detection]]
-* [[:Category:Sound]]+** [[:Category:Texture|Texture]] ([[texture]])
 +*** [[:Category:Texture filtering|Texture filtering]] ([[texture filtering]])
 +*** [[:Category:Texture mapping|Texture mapping]] ([[texture mapping]])
 +**** [[bumpmapping]], [[environment mapping]] ([[reflection]]), [[mipmapping]]
-* [[:Category:Characters]]+* [[:Category:Sound|Sound]]
-** [[:Category:Actions]]+** [[:Category:Sound effects|Sound effects]]
-*** [[bow]], [[climb]], [[crawl]], [[crouch]], [[dance]], [[drink]], [[duck]], [[eat]], [[drop]], [[hit]], [[hop]], [[jump]], [[kick]], [[lean]], [[punch]], [[run]], [[sit]]. [[skip]], [[sneak]], [[stab]], [[stand]], [[shoot]], [[strafe]], [[swim]], [[swing]], [[vault]], [[walk]]+ 
-** [[:Category:Player characters]]+* [[:Category:Characters|Characters]]
-** [[:Category:Non-player characters]]+** [[:Category:Actions|Actions]]
-** [[:Category:Animals]]+*** [[bow]], [[break]], [[climb]], [[close]], [[crawl]], [[crouch]], [[dance]], [[dive]], [[drink]], [[duck]], [[eat]], [[drop]], [[fly]], [[hit]], [[hop]], [[hug]], [[jump]], [[kick]], [[kiss]], [[lean]], [[lie down]], [[open]], [[pick up]], [[primp]], [[punch]], [[push]], [[roll]], [[run]], [[search]], [[shoot]], [[sit]], [[skip]], [[sleep]], [[sneak]], [[stab]], [[stand]], [[strafe]], [[shoot]], [[strafe]], [[swim]], [[swing]], [[talk]], [[throw]], [[tumble]], [[vault]], [[walk]]
 +** [[:Category:Footprints|Footprints]]
 +*** [[:Category:Surfaces|Surfaces]]
 +** [[:Category:Footsteps|Footsteps]] (subcat of [[:Category:Sound effects|Sound effects]]?)
 +*** [[:Category:Surfaces|Surfaces]]
 +** [[:Category:Player characters|Player characters]]
 +** [[:Category:Non-player characters|Non-player characters]]
 +** [[:Category:Animals|Animals]]
*** [[birds]], [[fish]], [[insects]], [[mammals]], [[reptiles]]--see [http://tnlc.com/eep/compare/gameform.html] for extensive list *** [[birds]], [[fish]], [[insects]], [[mammals]], [[reptiles]]--see [http://tnlc.com/eep/compare/gameform.html] for extensive list
-** [[:Category:Vegetation]]+** [[:Category:Vegetation|Vegetation]]
*** [[flowers]], [[plants]], [[trees]] *** [[flowers]], [[plants]], [[trees]]
-* [[:Category:Environment]]+* [[:Category:Environment|Environment]] (level/world design)
-** [[:Category:Effects]]+** # environments: [[level]], [[map]], [[world]], [[zone]], etc
-** [[:Category:Interaction]]+** [[:Category:Locations|Locations]]
-** [[:Category:Puzzles]]+** [[:Category:Effects|Effects]]
-** [[:Category:Traps/hazards]]+*** [[:Category:Sound effects|Sound effects]]
 +*** [[:Category:Visual effects|Visual effects]]
 +** [[:Category:Interaction|Interaction]]
 +*** [[:Category:Actions|Actions]]
 +*** [[:Category:Puzzles|Puzzles]] ([[puzzles]])
 +*** [[:Category:Traps/hazards|Traps/hazards]] ([[:cat:Damage|Damage]]/[[damage]])
 +**** [[crushing]] ([[doors]], [[walls]], etc), [[falling]] ([[gravity]]), [[explosions]], [[impalement]] ([[spikes]], etc), [[water]] ([[drowning]])
-* [[:Category:Effects]] (see also [[:Category:Physics]])+* [[:Category:Effects|Effects]] ([[effects]]; see also [[:Category:Physics|Physics]])
-** [[:Category:Lighting effects]]+** [[:Category:Breath effects|Breath effects]]
 +*** [[cold breath]], [[fire breath]], [[poison breath]]
 +** [[:Category:Dust effects|Dust effects]]
 +** [[:Category:Lighting effects|Lighting effects]]
*** [[coronas]], [[flickering]], [[lens flare]], [[lightmaps]], [[shadows]] *** [[coronas]], [[flickering]], [[lens flare]], [[lightmaps]], [[shadows]]
-** [[:Category:Particle effects]]+** [[:Category:Particle effects|Particle effects]]
-*** [[blood]], [[debris]], [[dust]], [[explosions]], [[gas]], [[shards]], [[sparks]], [[smoke]], [[spray]], [[steam]]; see [[weather]]+*** [[blood]], [[debris]], [[dust]], [[explosions]], [[fire]], [[gas]], [[shards]], [[sparks]], [[smoke]], [[spray]], [[steam]]; see [[weather]]
-** [[:Category:Water effects]]+** [[:Category:Reflection|Reflection]]
-** [[:Category:Weather effects]]+*** [[environment mapping]]
-*** [[rain]], [[snow]], [[wind]]+*** [[mirrors]], [[water]]
 +** [[:Category:Shards|Shards]]
 +*** [[glass]], [[wood]]
 +** [[:Category:Smoke effects|Smoke effects]]
 +** [[:Category:Sound effects|Sound effects]]
 +*** [[:Category:Footsteps|Footsteps]]
 +** [[:Category:Spray effects|Spray effects]]
 +** [[:Category:Steam effects|Steam effects]]
 +** [[:Category:Water effects|Water effects]]
 +*** [[bubbles]], [[current]], [[drops]], [[ripples]], [[splash]], [[waves]]
 +** [[:Category:Weather effects|Weather effects]]
 +*** [[clouds]], [[fog]], [[lightning]], [[rain]], [[snow]], [[wind]]
 +*** [[transitions]] (can also apply to levels)
-*[[:Category:Objects]]--see [http://tnlc.com/eep/compare/gameform.html] for extensive list+*[[:Category:Objects|Objects]]--see [http://tnlc.com/eep/compare/gameform.html] for extensive list
-** [[book]]s, [[candle]]s, [[door]]s, [[flare]]s, [[:Category:lights]] ([[flashlignt]]s, [[lantern]]s, [[torch]]es, etc), [[key]]s, [[scroll]]s, [[staff]]s, [[weapon]]s, [[window]]s+** [[books]], [[candles]], [[doors]], [[flares]], [[furniture]] ([[beds]], [[chairs]], [[desks]], [[tables]], etc), [[lights]] ([[flashlights]], [[lanterns]], [[torches]], etc), [[keys]], [[ladders]], [[ropes]], [[scrolls]], [[staffs]], [[weapons]], [[windows]]
-** [[:Category:Weapons]] (melee/ranged?, general type/kind only?)--see [http://tnlc.com/eep/compare/gameform.html] for extensive list+** [[:Category:Weapons|Weapons]] ([[melee]]/[[ranged]]?, general type/kind only?)--see [http://tnlc.com/eep/compare/gameform.html] for extensive list
-*** [[:Category:Bows]]+*** [[:Category:Bows|Bows]]/[[bows]]
-*** [[:Category:Guns]]+*** [[:Category:Guns|Guns]]/[[guns]]
-*** [[:Projectiles]]+*** [[:Category:Projectiles|Projectiles]]/[[projectiles]]
**** [[arrows]], [[bullets]] **** [[arrows]], [[bullets]]
-*** [[:Category:Swords]]+*** [[:Category:Swords|Swords]]/[[swords]]
-* [[:Category:Surfaces]]+* [[:Category:Surfaces|Surfaces]]
** [[dirt]], [[grass]], [[gravel]], [[metal]], [[mud]], [[plastic]], [[sand]], [[snow]], [[stone]], [[water]], [[wood]] ** [[dirt]], [[grass]], [[gravel]], [[metal]], [[mud]], [[plastic]], [[sand]], [[snow]], [[stone]], [[water]], [[wood]]
-<!--** [[:Category:Dirt]]+<!--** [[:Category:Dirt|]]
-** [[:Category:Grass]]+** [[:Category:Grass|]]
-** [[:Category:Sand]]+** [[:Category:Sand|]]
-** [[:Category:Stone]]+** [[:Category:Stone|]]
-** [[:Category:Water]]-->+** [[:Category:Water|]]-->
 + 
 +* [[inventory]] ([[:Category:Interface|Interface]]?)
 +** design: [[store and use]], [[combine]], [[encumbrance]]
 +** [[map]]
 +** [[objects]]
 +** [[pickups]]
 + 
 +* [[:Category:Gameplay|Gameplay]]?
 +** [[cutscene]]s, [[FMV]]s
 +** [[difficulty level]]s, [[boss]]es
 +** [[linear]], [[open-ended]]/[[sandbox]]
 +** [[saving]]: in-level (anywhere, save points), end-level
-<td>Default classification system with auto-generated lists 
<td> <td>
-Games with simple names (like ''Rune'', ''Dirt'', etc) can conflict with object names (like a "rune") or surface types (like "dirt"). Lowercase names can help alleviate most of these conflicts but not these:+* Less typing
 +* Default classification system with auto-generated lists
 + 
 +<td>
 +* Mixing same-named articles and categories causes redundancy (redirect to categories only?)
 +* Games with simple names (like ''Rune'', ''Dirt'', etc) can conflict with object names (like a "rune") or surface types (like "dirt"); engine names like ''Steam'' and ''Source'' can conflict with the "steam" effect and "source" of something (though rare; or short for "source code"). Lowercase names can help alleviate most of these conflicts but not these:
* [[bow]] action -> [[bow]] weapon * [[bow]] action -> [[bow]] weapon
* Camera [[pan]] ([[view pan]], [[camera pan]]?) -> object [[pan]] ([[pans]]?) * Camera [[pan]] ([[view pan]], [[camera pan]]?) -> object [[pan]] ([[pans]]?)
 +* sprite (computer graphics) -> sprite (fantasy creature)
 +* level (environment term) -> level object
 +* map (environment term) -> map object
 +
 +:Combining a noun (object) with its verb (action) on the same page may just be easier.
-<tr valign=top><th>Namespace+<tr valign=top style="background:#797b86"><th>Namespace
<td> <td>
-[[Game:Games]]+*[[Game:Games]]
-* [[Game:Tomb Raider]]+** [[Game:Tomb Raider]]
-[[Effect:Effects]]+* [[Effect:Effects]]
-* [[Effect:weather]]+** [[Effect:weather]]
-* [[Effect:wind]]+** [[Effect:wind]]
-<td>+* [[environment:level]]
-<td>Must use extension to generate lists+
-<tr valign=top><th>Subpage+* [[objects]]
-<td>+** [[object:bow]]
-[[game]]+** [[object:dirt]]
-* [[game/Tomb Raider]]+** [[object:level]]
-[[effect]]+* [[actions]]
-* [[effect/skid mark]]+** [[action:bow]]
 +* [[surfaces]]
 +** [[surface:dirt]]
 +
 +<td rowspan=2>
 +* Name conflicts less likely
 +* Less need to use complicated/confusing Semantic MediaWiki to establish relationships (links between games and features)
 +* [[#Dynamic Page List|DPL]] can list links to specific namespace/subpages vs. to a page that can mean different things (noun vs. verb, action vs. object, etc)
 +
 +<td rowspan=2>
 +* More typing
 +* Must use extension(s) to generate lists
 +
 +<tr valign=top><th>Subpage
<td> <td>
-<td>Must use extension to generate lists+* [[game]]
 +** [[game/Dirt]]
 +** [[game/Rune]]
 +* [[company]]
 +** [[company/Core Design]]
 +* [[engine]]
 +** [[engine/Steam]]
 +** [[engine/camera]]
 +** [[engine/camera/pan]]
 +** [[engine/sprite]]
 +** [[engine/texture]]
 +** [[engine/texture/filtering]]
 +** [[engine/texture/filtering/anistropic]]
 +** [[engine/texture/filtering/bilinear]]
 +** [[engine/texture/filtering/trilinear]]
 +** [[engine/texture/mapping]]
 +** [[engine/texture/mapping/bump]]
 +** [[engine/texture/mapping/environment]]
 +** [[engine/texture/mapping/mip]]
 +* [[character]]
 +* [[character/sprite]] (noun)
 +* [[character/Sprite]] (pronoun)
 +* [[level design]] ("[[environment]]"?)
 +** [[level design/level]]
 +** [[level design/map]]
 +* [[action]]
 +** [[action/bow]]
 +** [[action/bowl]]
 +** [[action/duck]]
 +** [[action/jump]]
 +* [[effect]]
 +** [[effect/particle]]
 +** [[effect/particle/steam]] (particle effect steam vs. some other way to render it, as rare as it may be)
 +** [[effect/particle/water/drop]]
 +** [[effect/steam]] (general steam effect--necessary if "particle effect steam" exists?)
 +** [[effect/water]]
 +** [[effect/water/bubble]]
 +** [[effect/water/ripple]]
 +** [[effect/water/splash]]
 +** [[effect/weather]]
 +** [[effect/weather/rain]]
 +* [[object]]
 +** [[object/bow]]
 +** [[object/bowl]]
 +** [[object/dirt]]
 +** [[object/duck]] (quack)
 +** [[object/level]]
 +** [[object/map]]
 +** [[object/mud]]
 +** [[object/pan]]
 +** [[object/rune]]
 +** [[object/can]]
 +** [[object/can/soda]]
 +** [[object/can/food]] (aluminum/tin)
 +** [[object/weapon/bow]]
 +* [[surface]]
 +** [[surface/dirt]]
 +** [[surface/mud]] (wet dirt)
 + 
</table> </table>

Current revision

This page is MediaWiki-specific but see http://tnlc.com/eep/compare/database.html for general design ideas.

Originally designed for a database, conversion to MediaWiki presents some problems:

Contents

Classification

There are different ways of designing this "database"'s classification system using MediaWiki.

Categories

The most obvious is with categories. Unfortunately, these can quickly clutter up the bottom of pages if there are too many (if categories could be displayed in an organized way instead of by declaration or alphabetically...) Categories could be named like namespaces (i.e. Game:Tomb Raider) but why not just use namespaces then to reduce having to type the link (Category:Game:Tomb Raider vs. Game:Tomb Raider)?

Namespaces

Perhaps the next most obvious is with namespaces for games (game:), companies (company:), engines (engine:), characters (character:), effects (effect:), etc.

Subpages

Less obvious is using subpages (games/Tomb Raider) but they may be easier to manage than namespaces, although I'm not sure how DPL (see next section) can handle them. Additionally, subpages are automatically transcludable via template calls ({{/Tomb Raider}}).

Pages

Even less obvious is just using pages (Tomb Raider) and, with an extension like Dynamic Page Lists (DPL), categories really aren't necessary. Not having categories means not duplicating same-named pages/categories (or redirecting to one or the other) but explicitly require an extension like DPL or embedded Special:Whatlinkshere lists.

Wiki markup comparison

System Markup Advantages Disadvantages
Category/Page
  • Less typing
  • Default classification system with auto-generated lists
  • Mixing same-named articles and categories causes redundancy (redirect to categories only?)
  • Games with simple names (like Rune, Dirt, etc) can conflict with object names (like a "rune") or surface types (like "dirt"); engine names like Steam and Source can conflict with the "steam" effect and "source" of something (though rare; or short for "source code"). Lowercase names can help alleviate most of these conflicts but not these:
  • bow action -> bow weapon
  • Camera pan (view pan, camera pan?) -> object pan (pans?)
  • sprite (computer graphics) -> sprite (fantasy creature)
  • level (environment term) -> level object
  • map (environment term) -> map object
Combining a noun (object) with its verb (action) on the same page may just be easier.
Namespace
  • Name conflicts less likely
  • Less need to use complicated/confusing Semantic MediaWiki to establish relationships (links between games and features)
  • DPL can list links to specific namespace/subpages vs. to a page that can mean different things (noun vs. verb, action vs. object, etc)
  • More typing
  • Must use extension(s) to generate lists
Subpage

Extensions

Note: DPL and SMW appear to cause pages to load slower (lots of server calls, flashing the web browser statusbar like mad most of the time).

Dynamic Page List (DPL)

Using DPL, lists of pages linking to other pages (as well as pages in categories and namespaces) are possible. This may be the best option that will allow all classification schemes to be included/used.

Semantic MediaWiki (SMW)

This extension is similar to DPL in outputting lists of pages in categories and namespaces, but also allows more complex relationships between things. Unfortunately, it's a lot more complicated to use (even moreso than DPL), which makes it a last resort. Programmers still code for programmers, apparently...even if they claim to be "semantic"--try being "intuitive" and "user-friendly" instead.

Comparison table

So far I've tried 2 extensions for the comparison table. One (TemplateTable) is easy-to-use but very limited and the other (DPL) is more difficult to use but more customizable (yet still not enough for my needs).

Personal tools