Project

General

Profile

Game Design and Game Development Resources » History » Version 43

quintus, 05/19/2025 11:47 AM

1 1 quintus
# Game Design and Game Development Resources
2
3
This page lists useful resources that can explain how to design games in general. It also lists resources for a specific subtopic of game design, the structure of the game's code. Try to divide this page with useful subheadings that group the links.
4
5 42 quintus
## Game design in general, excluding code-related topics
6
7
* [Differences between an Adventure game and a CRPG](https://www.filfre.net/2011/08/defining-the-crpg/). In a nutshell, an Adenture game focuses more on predefined puzzles and story, whereas a CRPG lets the players develop their own narrative within a given set of rules that form a simulated world.
8 43 quintus
* [The 14 Deadly Sins of Graphic-Adventure Design](https://www.filfre.net/2015/07/the-14-deadly-sins-of-graphic-adventure-design/). Basically boils down to: Do not make “puzzles” which require the player to try out every single item he ever collects in the game, *especially* if you use a limited-space inventory, as it would require the player to walk hither and dither for no use. There should always be a kind of logical connection between the item to use and the puzzle to solve. Article has several counter-examples.
9 42 quintus
10 1 quintus
## Story Design
11
12 2 quintus
* The master himself on "Fairy Stories" (sic): J.R.R. Tolkien, On Fairy Stories (1939). In: C.S. Lewis (editor), Essays presented to Charles Williams. William B. Eerdmans Pub., Grand Rapids 1947.
13 9 quintus
  * Easier to find reprint: J.R.R. Tolkien, Tree and Leaf. George Allen & Unwin (Publishers) Ltd, London 1964. ISBN: 0 04 820015 8.
14 1 quintus
  * [English Wikipedia summary](https://en.wikipedia.org/wiki/On_Fairy-Stories), [German Wikipedia summary](https://de.wikipedia.org/wiki/On_Fairy-Stories). Reading the original is recommended, but Tolkien's English is very elaborate and for a non-native speaker quite challenging. There's a German translation around somewhere, but Tolkien heavily draws from language specifics, thus the essay cannot really be fully understood in another language than English.
15
16 27 quintus
* Appearently an early good example of applying these principles is System Shock, as [documented here](https://www.filfre.net/2021/03/system-shock/).
17
18 41 quintus
* Two fundamental princinples oppose one another in game story design: “clock time” and “plot time”. [This discussion of The Last Express](https://www.filfre.net/2023/10/the-last-express/) goes over the concepts and exemplifies them with said game, which is said to be one of the classics of computer gaming.
19
20 1 quintus
## Code Design
21
22
### Game coding
23
24
* [Robert Nystrom, Game Programming Patterns](http://gameprogrammingpatterns.com/) (web version is free of charge, consider buying the hardcopy)
25
* OpenGL tutorial: https://learnopengl.com/
26 4 quintus
* [HN discussion on enemy pathfinding](https://news.ycombinator.com/item?id=22848106)
27 5 quintus
* [Generating organic patterns with L-systems](https://jsantell.com/l-systems/)
28 6 quintus
* [Small study on small custom game engines](https://gist.github.com/raysan5/909dc6cf33ed40223eb0dfe625c0de74)
29 7 quintus
* [This person wrote a custom C++ game engine from OpenGL scratch in 30 weeks with a team size of 11 persons](https://www.undefinist.com/hydeandseek)
30 8 quintus
* [Background on programmatical colour handling](https://peteroupc.github.io/colorgen.html)
31 14 quintus
* [GameMode](https://jonathancarter.org/2020/08/11/gamemode-in-debian/), sets various OS configuration parameters on Linux while a game is running
32 15 quintus
* [Efficient memory management with handles instead of pointers](https://floooh.github.io/2018/06/17/handles-vs-pointers.html) ([lobste.rs discussion](https://lobste.rs/s/4xcla1/handles_are_better_pointers))
33 23 quintus
* [Ray Tracing in One Weekend](https://raytracing.github.io/)
34 28 quintus
* [Procedural Content Generation](http://pcg.wikidot.com/)
35 29 quintus
* [Random scattering: Creating Realistic Landscapes](https://www.gamasutra.com/view/feature/1648/random_scattering_creating_.php)
36 36 quintus
* [Bullet3D physics tutorial](https://www.raywenderlich.com/2606-bullet-physics-tutorial-getting-started) (targetted at iOS, but the concepts extend to other platforms).
37 1 quintus
38
### Coding in general
39
40 3 quintus
* If you need to refresh your C++ knowledge: [learncpp.com](https://www.learncpp.com/)
41 21 quintus
* Stay up to date with latest C++ concepts by following [lobste.rs on C++](https://lobste.rs/t/c++)
42 3 quintus
* How to properly organise C++ header files: [Kieras, C++ Header File Guidelines (2015)](http://www.umich.edu/~eecs381/handouts/CppHeaderFileGuidelines.pdf)
43 18 quintus
* Highly recommended article on API design: [Henning, acmqueue 2007/4, 24: API Design Matters](https://queue.acm.org/detail.cfm?id=1255422) (PDF available)
44 10 quintus
45 31 quintus
### Abstract topics
46
47
* Transformation
48
  * [Transformations in OpenGL](https://open.gl/transformations)
49
  * [Quarternions in Ogre](https://wiki.ogre3d.org/Quaternion+and+Rotation+Primer)
50
  * [Rotation matrices](https://en.wikipedia.org/wiki/Rotation_matrix)
51
  * [Vector math (German)](https://de.wikipedia.org/wiki/Vektor)
52
53 32 quintus
### Ogre specifics
54
55
* Blender's Y axis is [Ogre's default Z axis](https://ogrecave.github.io/ogre/api/latest/tut__first_scene.html#CoordinatesSystems). Consequently, models exported from Blender with [blender2ogre](https://github.com/OGRECave/blender2ogre/) into `.mesh` format appear rotated in Ogre without further adjustments. The upwards-pointing axis in Blender [cannot be changed](https://blender.stackexchange.com/q/471). Early versions of the blender2ogre exporter had a transformation option to auto-rotate a mesh on export from Blender, but the option was dropped around 2007. The [now recommended solution is to rotate Ogre's camera accordingly](https://forums.ogre3d.org/viewtopic.php?t=28302) and simply disregard Ogre's default setup.
56 33 quintus
  * Turns out the option has been reimplemented meanwhile. The exporter now calls it "Swap Ax" and it's right the first point under "General" in the exporter menu.
57 32 quintus
58 10 quintus
## Dungeon design
59
60
* [Dungeon map generator](https://dungeonscrawl.com/)
61 22 quintus
* [Hobbyist creating a modded dungeon for an existing game, quite interesting read](https://blog.tcharles.fr/for-a-better-dungeon/)
62 11 quintus
63 20 quintus
## World design
64
65
* [Lighting tutorial](http://www.itchy-animation.co.uk/tutorials/light01.htm)
66 25 quintus
* [How Barcelona developed, illustrated with maps over time](https://www.geografiainfinita.com/2017/05/la-evolucion-de-barcelona-a-traves-de-los-mapas/) (Spanish)
67 26 quintus
* [Blend Swap -- liberally licensed Blender assets](https://www.blendswap.com/)
68 37 quintus
* [OpenGameArt -- large collection of 2D and 3D graphics under liberal licenses](https://opengameart.org)
69 20 quintus
70 34 quintus
## Graphical ideas
71
72 40 quintus
- [Aperiodic monotile](https://cs.uwaterloo.ca/~csk/hat/)
73 34 quintus
- [Truchet tiles](https://en.wikipedia.org/wiki/Truchet_tiles): Many interesting floor or wall patterns from very simple tiles
74 35 quintus
- [Wallpaper groups](https://en.wikipedia.org/wiki/Wallpaper_group), or: how to make a graphic tile properly
75 39 quintus
- [Generative art](https://generativeartistry.com/tutorials/)
76 34 quintus
77 11 quintus
## Miscellaneous
78
79
- [Monastery Plan of St. Gall](http://www.e-codices.unifr.ch/de/list/one/csg/1092). This plan dates to the 9th century and gives the ideal form of a monastery. [English Wikipedia](https://en.wikipedia.org/wiki/Plan_of_Saint_Gall), [German Wikipedia](https://de.wikipedia.org/wiki/St._Galler_Klosterplan)
80 12 quintus
- [Passauer Kunst](https://de.wikipedia.org/wiki/Passauer_Kunst) (“Art of Passau”) Superstitional believe in the Middle Ages that certain papers from the city of Passau could make you invulnerable.
81 13 quintus
- [British Museum's Historical Travel Guide to Edo](https://blog.britishmuseum.org/historical-city-travel-guide-edo-tokyo-early-19th-century/). The [Tōkaidō](https://de.wikipedia.org/wiki/T%C5%8Dkaid%C5%8D) may serve as inspiration for our fantasy world's most important street.
82 19 quintus
- [Montezuma's headdress](https://en.wikipedia.org/wiki/Montezuma%27s_headdress), a featherwork crown of unknown history from the Aztec empire.
83 24 quintus
- [How to Write Cuneiform](https://blog.britishmuseum.org/how-to-write-cuneiform/) -- might be useful for a script system in the game.
84 30 quintus
- [Mile stones](https://de.wikipedia.org/wiki/Meilenstein), to be placed among the overworld for orientation ([English](https://en.wikipedia.org/wiki/Milestone))
85 38 quintus
- [How to create a waving flag in GIMP](https://graphicdesign.stackexchange.com/a/2611)