- Developer Jonathan Duncanson
- Showcase year 2020
- Programme Computer Games Technology
- Project type Development
From its humble beginnings games development has utilised powerful, general-purpose programming languages to achieve high-performance applications that push hardware to its limits. However, as the years have passed, C++ has moved further and further away from the features that first endeared it to games programmers.
The question must be asked: Would games programming benefit from a new language designed to cater to its needs? This project is an attempt to answer this question by designing and developing a new low-level programming language and compiler for games development.
By taking the best features of C/C++ and other more modern languages such as Rust and Go, the jc programming language and compiler gives developers the raw power of systems languages of old combined with the sensibilities of modern programming language design, including build features that are embedded in the language, removing the need for extraneous build systems and tools.
A programming language and compiler designed for modern games development.
A number of things. Frustration with certain aspects of C and C++ development was a factor, especially compile times (most compilers but MSVC in particular), certain pieces of esoteric syntax (function pointers comes to mind) and build tools/meta-build systems (CMake, Premake etc.). Curiosity about the inner workings of compilers and observing the work of Casey Muratori (Handmade Hero) and Jonathan Blow (particularly Jai) also played a part. Lastly I did not want to specialise just yet and wanted to do a project that would be a challenge and require both knowledge and skills I had acquired from developing projects over the last few years while also not being totally familiar with the subject area.
“jc: A Programming Language for Games Development” is a 2020 Digital Graduate Show project by Jonathan Duncanson, a Computer Games Technology student at Abertay University.