3DGC:Design
3D Game Comparison - Game vs. game. No hype; just facts.™
Revision as of 06:24, 29 July 2007 (edit) Eep² (t|c) New page: =Classification= There are different ways of designing this "database"'s classification system using MediaWiki. ==Categories== The most obvious classification system is with categories. U... ← Previous diff |
Current revision (21:00, 13 January 2010) (edit) (undo) Eep² (t|c) m →'''Wiki markup comparison''' - more namespace examples |
||
(16 intermediate revisions not shown.) | |||
Line 1: | Line 1: | ||
- | =Classification= | + | 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== | ||
There are different ways of designing this "database"'s classification system using MediaWiki. | There are different ways of designing this "database"'s classification system using MediaWiki. | ||
- | ==Categories== | + | ===Categories=== |
- | The most obvious classification system 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=== | ||
+ | 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 (''<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'''=== | ||
+ | <table border cellspacing=0 class=sortable> | ||
+ | <tr valign=top> | ||
+ | <th>System | ||
+ | <th>Markup | ||
+ | <th>Advantages | ||
+ | <th>Disadvantages | ||
+ | |||
+ | <tr valign=top> | ||
+ | <th>Category/Page | ||
+ | <td> | ||
+ | * [[:Category:Games|Games]] | ||
+ | ** ''[[Game]]'' (or [[:Category:Game|''Game'']]) | ||
+ | |||
+ | * [[:Category:Years|Years]] | ||
+ | * [[:Category:Genres|Genres]] | ||
+ | * [[:Category:Companies|Companies]] | ||
+ | |||
+ | * [[:Category:Engines|Engines]] | ||
+ | ** [[:Category:Camera|Camera]] | ||
+ | *** [[pan]], [[perspective]], [[zoom]]; [[shaking]] (in [[:Category:Effects|Effects]]) | ||
+ | ** [[:Category:Lighting|Lighting]] (subcat of [[:Category:Effects|Effects]] or | ||
+ | *** [[:Category:Lighting effects|Lighting effects]]?) ([[lighting effects]]) | ||
+ | *** [[:Category:Shading|Shading]] ([[shading]]) | ||
+ | **** [[pixel shading]], [[vertex shading]] | ||
+ | ** [[:Category:Physics|Physics]] ([[physics]]) | ||
+ | *** [[:Category:Collision detection|Collision detection]] ([[collision detection]] | ||
+ | ** [[:Category:Texture|Texture]] ([[texture]]) | ||
+ | *** [[:Category:Texture filtering|Texture filtering]] ([[texture filtering]]) | ||
+ | *** [[:Category:Texture mapping|Texture mapping]] ([[texture mapping]]) | ||
+ | **** [[bumpmapping]], [[environment mapping]] ([[reflection]]), [[mipmapping]] | ||
+ | |||
+ | * [[:Category:Sound|Sound]] | ||
+ | ** [[:Category:Sound effects|Sound effects]] | ||
+ | |||
+ | * [[:Category:Characters|Characters]] | ||
+ | ** [[:Category:Actions|Actions]] | ||
+ | *** [[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 | ||
+ | ** [[:Category:Vegetation|Vegetation]] | ||
+ | *** [[flowers]], [[plants]], [[trees]] | ||
+ | |||
+ | * [[:Category:Environment|Environment]] (level/world design) | ||
+ | ** # environments: [[level]], [[map]], [[world]], [[zone]], etc | ||
+ | ** [[:Category:Locations|Locations]] | ||
+ | ** [[:Category:Effects|Effects]] | ||
+ | *** [[: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|Effects]] ([[effects]]; see also [[:Category:Physics|Physics]]) | ||
+ | ** [[: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]] | ||
+ | ** [[:Category:Particle effects|Particle effects]] | ||
+ | *** [[blood]], [[debris]], [[dust]], [[explosions]], [[fire]], [[gas]], [[shards]], [[sparks]], [[smoke]], [[spray]], [[steam]]; see [[weather]] | ||
+ | ** [[:Category:Reflection|Reflection]] | ||
+ | *** [[environment mapping]] | ||
+ | *** [[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|Objects]]--see [http://tnlc.com/eep/compare/gameform.html] for extensive list | ||
+ | ** [[books]], [[candles]], [[doors]], [[flares]], [[furniture]] ([[beds]], [[chairs]], [[desks]], [[tables]], etc), [[lights]] ([[flashlights]], [[lanterns]], [[torches]], etc), [[keys]], [[ladders]], [[ropes]], [[scrolls]], [[staffs]], [[weapons]], [[windows]] | ||
+ | ** [[:Category:Weapons|Weapons]] ([[melee]]/[[ranged]]?, general type/kind only?)--see [http://tnlc.com/eep/compare/gameform.html] for extensive list | ||
+ | *** [[:Category:Bows|Bows]]/[[bows]] | ||
+ | *** [[:Category:Guns|Guns]]/[[guns]] | ||
+ | *** [[:Category:Projectiles|Projectiles]]/[[projectiles]] | ||
+ | **** [[arrows]], [[bullets]] | ||
+ | *** [[:Category:Swords|Swords]]/[[swords]] | ||
+ | |||
+ | * [[:Category:Surfaces|Surfaces]] | ||
+ | ** [[dirt]], [[grass]], [[gravel]], [[metal]], [[mud]], [[plastic]], [[sand]], [[snow]], [[stone]], [[water]], [[wood]] | ||
+ | <!--** [[:Category:Dirt|]] | ||
+ | ** [[:Category:Grass|]] | ||
+ | ** [[:Category:Sand|]] | ||
+ | ** [[:Category:Stone|]] | ||
+ | ** [[: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> | ||
+ | * 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 | ||
+ | * 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 style="background:#797b86"><th>Namespace | ||
+ | <td> | ||
+ | *[[Game:Games]] | ||
+ | ** [[Game:Tomb Raider]] | ||
+ | |||
+ | * [[Effect:Effects]] | ||
+ | ** [[Effect:weather]] | ||
+ | ** [[Effect:wind]] | ||
+ | |||
+ | * [[environment:level]] | ||
+ | |||
+ | * [[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 | ||
+ | <td> | ||
+ | * [[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> | ||
+ | |||
+ | ===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).'' | ||
- | ==Namespaces== | + | ====[[mw:Dynamic Page List|Dynamic Page List (DPL)]]==== |
- | Perhaps the next most obvious classification system is with namespaces for games (''game:''), companies (''company:''), engines (''engine:''), characters (''character:''), effects (''effect:''), etc. | + | 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. |
- | ==Dynamic Page List== | + | ====[[mw:Semantic MediaWiki|Semantic MediaWiki (SMW)]]==== |
- | Using [[mw:Extension: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. | + | 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= | + | ==Comparison table== |
- | So far I've tried 2 extensions for the [[comparison table]] but one is easy-to-use but very limited and the other is more difficult to use and more customizable (but still not enough for my needs). | + | 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). |
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).