3DGC:Design
3D Game Comparison - Game vs. game. No hype; just facts.™
Revision as of 20:52, 4 August 2007 (edit) Eep² (t|c) →'''Wiki markup comparison''' ← Previous diff |
Current revision (21:00, 13 January 2010) (edit) (undo) Eep² (t|c) m →'''Wiki markup comparison''' - more namespace examples |
||
(11 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]] | + | * [[:Category:Companies|Companies]] |
- | * [[:Category:Engines]] | + | * [[:Category:Engines|Engines]] |
- | ** [[:Category:Camera]] | + | ** [[:Category:Camera|Camera]] |
- | *** [[pan]], [[perspective]], [[zoom]]; [[shaking]] (in [[:Category:Effects]]) | + | *** [[pan]], [[perspective]], [[zoom]]; [[shaking]] (in [[:Category:Effects|Effects]]) |
- | ** [[:Category:Lighting]] (subcat of [[:Category:Effects]] or | + | ** [[:Category:Lighting|Lighting]] (subcat of [[:Category:Effects|Effects]] or |
- | *** [[:Category:Lighting effects]]?) | + | *** [[:Category:Lighting effects|Lighting effects]]?) ([[lighting effects]]) |
- | *** [[:Category:Shading]] | + | *** [[:Category:Shading|Shading]] ([[shading]]) |
**** [[pixel shading]], [[vertex shading]] | **** [[pixel shading]], [[vertex shading]] | ||
- | ** [[:Category:Physics]] | + | ** [[:Category:Physics|Physics]] ([[physics]]) |
- | *** [[:Category:Collision detection]] | + | *** [[:Category:Collision detection|Collision detection]] ([[collision detection]] |
- | ** [[:Category:Texture]] | + | ** [[:Category:Texture|Texture]] ([[texture]]) |
- | *** [[:Category:Texture filtering]] | + | *** [[:Category:Texture filtering|Texture filtering]] ([[texture filtering]]) |
- | *** [[:Category:Texture mapping]] | + | *** [[:Category:Texture mapping|Texture mapping]] ([[texture mapping]]) |
**** [[bumpmapping]], [[environment mapping]] ([[reflection]]), [[mipmapping]] | **** [[bumpmapping]], [[environment mapping]] ([[reflection]]), [[mipmapping]] | ||
- | * [[:Category:Sound]] | + | * [[:Category:Sound|Sound]] |
+ | ** [[:Category:Sound effects|Sound effects]] | ||
- | * [[:Category:Characters]] | + | * [[:Category:Characters|Characters]] |
- | ** [[:Category:Actions]] | + | ** [[:Category:Actions|Actions]] |
- | *** [[bow]], [[climb]], [[crawl]], [[crouch]], [[dance]], [[drink]], [[duck]], [[eat]], [[drop]], [[hit]], [[hop]], [[jump]], [[kick]], [[lean]], [[punch]], [[roll]], [[run]], [[sit]]. [[skip]], [[sneak]], [[stab]], [[stand]], [[shoot]], [[strafe]], [[swim]], [[swing]], [[tumble]], [[vault]], [[walk]] | + | *** [[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:Player characters]] | + | ** [[:Category:Footprints|Footprints]] |
- | ** [[:Category:Non-player characters]] | + | *** [[:Category:Surfaces|Surfaces]] |
- | ** [[:Category:Animals]] | + | ** [[: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:Breath effects]] | + | ** [[:Category:Breath effects|Breath effects]] |
*** [[cold breath]], [[fire breath]], [[poison breath]] | *** [[cold breath]], [[fire breath]], [[poison breath]] | ||
- | ** [[:Category:Dust effects]] | + | ** [[:Category:Dust effects|Dust effects]] |
- | ** [[:Category:Lighting 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]], [[fire]], [[gas]], [[shards]], [[sparks]], [[smoke]], [[spray]], [[steam]]; see [[weather]] | *** [[blood]], [[debris]], [[dust]], [[explosions]], [[fire]], [[gas]], [[shards]], [[sparks]], [[smoke]], [[spray]], [[steam]]; see [[weather]] | ||
- | ** [[:Category:Reflection]] | + | ** [[:Category:Reflection|Reflection]] |
- | *** [[envrironment mapping]] | + | *** [[environment mapping]] |
*** [[mirrors]], [[water]] | *** [[mirrors]], [[water]] | ||
- | ** [[:Category:Shards]] | + | ** [[:Category:Shards|Shards]] |
*** [[glass]], [[wood]] | *** [[glass]], [[wood]] | ||
- | ** [[:Category:Smoke effects]] | + | ** [[:Category:Smoke effects|Smoke effects]] |
- | ** [[:Category:Spray effects]] | + | ** [[:Category:Sound effects|Sound effects]] |
- | ** [[:Category:Steam effects]] | + | *** [[:Category:Footsteps|Footsteps]] |
- | ** [[:Category:Water effects]] | + | ** [[:Category:Spray effects|Spray effects]] |
+ | ** [[:Category:Steam effects|Steam effects]] | ||
+ | ** [[:Category:Water effects|Water effects]] | ||
*** [[bubbles]], [[current]], [[drops]], [[ripples]], [[splash]], [[waves]] | *** [[bubbles]], [[current]], [[drops]], [[ripples]], [[splash]], [[waves]] | ||
- | ** [[:Category:Weather effects]] | + | ** [[:Category:Weather effects|Weather effects]] |
*** [[clouds]], [[fog]], [[lightning]], [[rain]], [[snow]], [[wind]] | *** [[clouds]], [[fog]], [[lightning]], [[rain]], [[snow]], [[wind]] | ||
*** [[transitions]] (can also apply to levels) | *** [[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, [[ladder]]s, [[rope]]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|]]--> |
- | * [[cutsene]]s, [[FMV]]s, [[inventory]] | + | * [[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> | ||
+ | * Less typing | ||
+ | * Default classification system with auto-generated lists | ||
- | <td>Default classification system with auto-generated lists | ||
<td> | <td> | ||
* Mixing same-named articles and categories causes redundancy (redirect to categories only?) | * Mixing same-named articles and categories causes redundancy (redirect to categories only?) | ||
Line 113: | Line 142: | ||
* Camera [[pan]] ([[view pan]], [[camera pan]]?) -> object [[pan]] ([[pans]]?) | * Camera [[pan]] ([[view pan]], [[camera pan]]?) -> object [[pan]] ([[pans]]?) | ||
* sprite (computer graphics) -> sprite (fantasy creature) | * sprite (computer graphics) -> sprite (fantasy creature) | ||
+ | * level (environment term) -> level object | ||
+ | * map (environment term) -> map object | ||
- | <tr valign=top><th>Namespace | + | :Combining a noun (object) with its verb (action) on the same page may just be easier. |
+ | |||
+ | <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>Name conflicts less likely | + | * [[environment:level]] |
- | <td>Must use extension to generate lists | + | |
+ | * [[objects]] | ||
+ | ** [[object:bow]] | ||
+ | ** [[object:dirt]] | ||
+ | ** [[object:level]] | ||
+ | |||
+ | * [[actions]] | ||
+ | ** [[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 | <tr valign=top><th>Subpage | ||
<td> | <td> | ||
- | [[game]] | + | * [[game]] |
- | * [[game/Tomb Raider]] | + | ** [[game/Dirt]] |
- | + | ** [[game/Rune]] | |
- | [[effect]] | + | * [[company]] |
- | * [[effect/skid mark]] | + | ** [[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) | ||
- | <td>Name conflicts less likely | ||
- | <td>Must use extension to generate lists | ||
</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 |
|
|
|
Namespace |
|
| |
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).