> Reference Database

Languages/Creating your own language

.NET  7
Artificial Intelligence  7
  Group behavior  2
  Path finding  16
    A* and its derivatives  6
  Pattern recognition  1
  Steering behavior  2
  World interaction  4
Audio  0
  DirectX  8
  DSP  5
  Ogg Vorbis  2
  OpenAL  1
  Windows  1
Computer Science  2
  Algorithms & data structures  12
    BSP trees  8
  Encryption  12
  Randomness & noise  11
Data storage  4
  File formats  14
    Image  10
  Resource files  2
Game Development  20
  Cheat & crack prevention  10
  Input  3
  Timing  4
Graphics  27
  Character animation  6
  DirectX  24
    Optimizing  8
  Illumination  5
    Deferred lighting  7
    Global illumination  8
    Lighting models  6
    Screen Space Ambient Occlusion  4
    Shadow maps  18
    Shadow volumes  15
  Image processing & synthesizing  19
  Non-polygonal rendering  3
    Ray tracing  3
  OpenGL  12
  Particle systems  7
  Shaders  32
  Simulation  4
    Cloth  2
    Clouds & sky light  7
    Fire & smoke  4
    Liquids  12
  Surfaces & Meshes  7
    Implicit surfaces  6
    Parametric curves & surfaces  7
    Polygon reduction & LOD  3
    Subdivision surfaces  7
  Terrain  7
    Continuous LOD  12
    Generating data  4
    Voxel engines  2
  Text  6
  Transparency  1
  Visibility determination  16
Languages  5
  Assembler  20
  C & C++  25
    C++ exceptions  5
    Calling conventions  11
    Debugging  5
    Memory management  7
    Optimizations  6
  C#  4
  Creating your own language  13
    Garbage collection  7
  D  2
  Java  4
  Scripting  3
    JScript & VBScript  1
    Lua  6
    Other languages  8
    Perl  2
    Python  5
    Ruby  4
Mathematics  3
  Fourier transform  4
  Geometry  6
  Linear algebra, vectors & matrices  9
  Wavelet transform  5
Object design  3
Physics  5
  Body dynamics  8
  Collision detection  10
    Polytopes  6
Platform  2
  Linux  1
  Mac  2
  Windows  13
    COM, ATL & WTL  8
    Dynamically loaded libraries  6
    Hooks  5
    Input  2
    Networking  6
    Screensavers  3
    Services  1
    Shell  2
    Small executables  3
    Windows  8
Web Technologies  8

PxdScript Tutorials
March 2001 - Telemachos
This is a series of tutorials that describe how to design and implement a scripting language to be run with a virtual machine.

Writing a Compiler
January 2002 - Michelle Donalies
This is an article on how to write a compiler, complete with explanation of how to describe the syntax in Backus Naur Form, and how to best implement the parsing and compilation of the source code using C++.

Implementing a Scripting Engine
May 1999 - Jan Niestadt
This article implements a scripting language with a virtual stack machine. It talks about optimizations to the byte code. And also mentions high level constructs such as class inheritance etc.

FuBi: Automatic Function Exporting for Scripting and Networking
2001 - Scott Bilas
This article explains how the scripting engine in Dungeon Siege is able to automatically bind to the game engine's functions in order to call them efficiently.

Compiler Construction: A Practical Approach
Jan 2003 - F. J. F. Benders, J. W. Haaring, T. H. Janssen, D. Meffert, A. C. van Oostenrijk
This online book (246 pages) explains in detail how to design a programming language and how to write a compiler for it.

The Implementation of Lua 5.0
Feb, 2005 - Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes
This article gives a brief overview of the implementation of Lua 5.0. It shows a little of how the authors were thinking when designing the language, which could in turn give ideas when implementing your own language.

An open source VM designed to be able to be used by any scripting language.

System.Reflection.Emit Namespace
This is the documentation for the .NET Framework Class Library. The classes in this namespace are mainly targetted at scripting libraries and compilers that want to generate code compatible with .NET.

This is an implementation of Python that targets the .NET framework.

This interface allows Lua and .NET applications to interact.

SoftWire source code
SoftWire library source code, before it was bought by TransGaming.

UnrealScript Language Reference
Dec, 1998 - Tim Sweeney
An interesting article for those that have interests in designing scripting languages.

DynCall library
Daniel Adler, Tassilo Philipp
This library implements support for dynamically calling C/C++ functions and methods, by pushing arguments on a virtual stack and then invoking the function. It is similar to how AngelScript internally calls C/C++ functions and methods.