📄 Кратко о функциях в Game.cs (и Shader/Camera): Game.cs
Game(...) — создаёт окно игры, задаёт размеры и заголовок. OnLoad() — инициализация OpenGL: создаёт и загружает: вершины, текстуры, шейдеры; настраивает буферы и текстурные параметры. OnUpdateFrame(...) — вызывается каждый кадр: обработка ввода с клавиатуры/мыши; обновление скорости и позиции паровоза. OnRenderFrame(...) — отрисовка кадра: очистка экрана, установка матриц (model, view, projection); применение текстуры и отрисовка куба (вагона). OnUnload() — освобождение ресурсов. OnResize(...) — обработка изменения размера окна. ShowVersionInfo() — выводит версии OpenGL и GLSL. Shader.cs
LoadShaders() — загружает, компилирует и линкует шейдеры (shader.vert и shader.frag). UseShader() — активирует шейдер перед отрисовкой. DeleteShader() — удаляет шейдер. Camera.cs
GetViewMatrix() — камера: где смотреть. GetProjection() — перспективная проекция (угол обзора, глубина). InputController() / Update() — управление камерой мышью и клавишами.