Write cross-platform games with SDL2 and C. Full control, low latency, perfect for classic arcade or 16-bit style engines.
// minimal_sdl2_retro.c
#include <SDL2/SDL.h>
int main(int argc, char* argv[]) {
SDL_Init(SDL_INIT_VIDEO);
SDL_Window* win = SDL_CreateWindow("Retro Green",
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, 0);
SDL_Renderer* ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_SOFTWARE);
int running = 1;
SDL_Event ev;
while (running) {
while (SDL_PollEvent(&ev))
if (ev.type == SDL_QUIT) running = 0;
SDL_SetRenderDrawColor(ren, 0, 40, 0, 255);
SDL_RenderClear(ren);
SDL_SetRenderDrawColor(ren, 50, 255, 50, 255);
SDL_RenderDrawRect(ren, NULL);
SDL_RenderPresent(ren);
SDL_Delay(16);
}
SDL_DestroyRenderer(ren); SDL_DestroyWindow(win); SDL_Quit();
return 0;
}
$ gcc sdl2demo.c -lSDL2 -o retro.x
→ pixel control, sprite blitting, chiptune audio via SDL_mixer.