Video Games Needs A Platform
i feel like, for video games to feel legitimate as an artform, it needs a platform that has the following properties:
- open source, rather than controlled by one or even several companies
- standard, such that every artist knows exactly what capabilities they're working with
- accessible "at various levels" — an accessible graphics platform to people who know computer graphics, an accessible low-level language to people who know low-level programming, etc
because gaming tends to surf on the very edge of technological innovation — and especially so in hardware, this is a tall order.
nevertheless, some things have converged towards this goal:
- emulators, while running a proprietary machine, are largely open source, and provide a very clear set of expectations for what can be ran on them.
- PICO-8, while proprietary, is a fairly accessible (and minimalist) high-level game playing and development(!) platform.
- RPG Maker 2000 and 2003 was used by many independent gamedevs to make many games, and it's a platform with a fairly well established set of capabilities — as for the open source aspect, the EasyRPG project implements a player for RPG Maker 200X games which already supports a lot of them, and intends to eventually offer a full replacement for the actual RPG Maker software.
- WASM and RISC-V are both open-source and low-level languages which higher-level languages and tools can target, with a currently fairly vibrant ecosystem. they accomplish this at different levels — WASM aims to be a bytecode meant to be JIT-compiled into machine code, while RISC-V aims to be a hardware-implemented machine code.
- the DualShock layout for gamepads, and its variant the Xbox 360 controller layout, have become very standard, to the point where almost all games made to be played with something other than mouse and keyboard target those two types of gamepads instead (often under the name "Xbox 360 compatible controller" or even just "Xbox 360 controller").
- for people who are fine with low resolutions, a fixed 640×360 resolution (that i use for instance in kolsitan) is great to work with: it upscales neatly to common resolutions like 1280×720 (at 2×), 1920×1080 (at 3×), 2560×1440 (at 4×), 4K (at 6×), and fits neatly enough within the common laptop resolution of 1366×768 by scaling to 2× and having (small enough) borders. if that fixed low resolution isn't enough, having the resolution variable but always a multiple of 640×360 may be enough of a guarantee.
- the OpenAL API and its open-source OpenAL implementation is a relatively common interface for audio, though maybe some lower-level memory-mapped buffers would work better; i don't know audio tech much, so i'll refrain from saying more.
- graphics interface is probably the hardest here; higher-level APIs like WebGPU or Vulkan could work, though the talk i've recently seen of NVidia and others considering building GPUs on RISC-V might make graphics (and GPGPU-style parallel compute) efforts accessible at a lower level, bringing us closer to Casey Muratori's dream of lower-level, driverless GPU interfaces.
- alternatively, if we don't mind a fairly high-level interface and don't go beyond particularly enhanced 2D graphics, sticking to the SDL2 might be sufficient for graphics, audio, and perhaps input.
- standardizing the amount of hardware performance available is a difficult thing to plan with; even if we were to somehow present a very high level graphics API that was able to scale its level of detail to the amount of rendering performance available (thus not impacting the developer's assumptions about the platform), varying levels of available performance could still have massive effects on games whose computation power is largely used on game logic, like Dwarf Fortress.
it's still pretty early to see if many of these technologies can be relied on for this particular effort, but i think these elements can give us the clues to work towards something like Brian Moriarty's Perlenspiel for video games, but in a form that is able to compete with more performance-intensive video games.