Комментарии 9
Вообще удивлён, что никаких окошек в стандартную библиотеку не завезли. jai вроде решал эту проблему едва ли не одной из первых.
А как сделать универсальный GUI API для любой системы, в которой доступен компилятор?
Примерно также как делают этой rayon, sdl и imgui - написать слой совместимости под общим API.
А на системах с голой консолью или в эмбеддеде как оно будет работать?
В таком случае обычно прикручивается какой-то TUI, но иксы к этому отношения не имеют ибо у GUI и TUI несколько разный набор проблем. Для эмбеда все держут обычно собственные домашние либы чтобы выводить на устройства визуального вывода. Под такое ни один известный язык не подстраивается, насколько мне известно.
И что же делать разработчикам стандартной библиотеки, которые заранее не знают, в консоли, в иксах, вейланде или условном фрейбуфере будет запускаться приложение? Кроме того, в системах может быть ещё и разнообразие устройств и интерфейсов ввода, это тоже заранее нельзя учесть.
В стандартной библиотеке даже поддержки сети нет, а это унифицировать значительно проще.
Ровно то же самое что делают и сейчас - иметь некоторые тиры поддержки платформ. Условные триады (x86|arm)-(linux|windows)-blabla
. Унифицировать бэкэнд для этих основных платформ не настолько большая проблема - gtk или qt как-то смогли же работать и под винды и под линукса и даже вроде под андроиды. Остальным остаётся брать графический контекст и рисовать компоненты и ввод самостоятельно - путь условного imgui/raylib.
в иксах, вейланде или условном фрейбуфере
бэкэнды обычно переключаются фичефлагами
разнообразие устройств и интерфейсов ввода
тоже меньшая из проблем. клавиатуры-джойстики обрабатываются достаточно легко ибо там наборы вводов обычно достаточно универсальные. VR/AR приблуды, микрофоны, камеры и иные контроллеры ествественно допиливаются отдельным напильником.
В стандартной библиотеке даже поддержки сети нет
высокоуровней поддержки нет, насколько я понимаю. необходимые примитивы вроде есть, но это не точно. Но в среднем это проблема из разряда "руки не дошли" на мой взгляд.
В описании не нашёл, что реализовали нажатие двумя кнопками одновременно, а это существенно ускоряет игру. Без этого она очень тягомотная.
Язык Rust напоминает. Кстати, на Rust-е есть кроссплатформенные графические библиотеки.
Создаём игру, словно на дворе 1987 год