хочу движок на OpenGL + Cи
Савтис# OP11/07/23 Втр 12:09:25№8855271
прив, Аноны. я собираюсь создать движок для 2D игр на OpenGL, звук будет на OpenAL, возможно использование шейдеров, которые будут написаны на OpenGL Shader Lang, ввод будет производится при помощи GLFW. Сам движок будет состоять из нескольких частей. - Скриптовый язык (буду использовать Python) - - упаковщик скриптов (чтобы нельзя получить исходный код готовой игры, тип защита) - Исполнитель скриптов (штука, которая будет считывать команды языка и выполнять их: отрисовывать что-то, управлять окном, спавнить юнитами и т.д) - Графическая и звуковая часть (отрисовка графики, воспроизведение звуков, управление файлами, окном, сетью) - графический интерфейс движка (модуль, который будет делаться самым последним и скорее всего будет делаться на С++ или Python)
>>885527 (OP) >Скриптовый язык (буду использовать Python) Делай на lua. Ты так двух зайцев убьёшь - и скриптовый язык, и компиляция в плюсы для типа защиты. Но ты уже создал тред, потому вся разработка уже закончилась.
>>885537 вот ты засранец, взял и заруинил мне весь процесс. я хотел взять питон, тип там есть либы, которые можно линковать и получать доступ к процессу исполнения кода. это можно юзать, штоб приплетать к этому механики движка
>>885539 C lua всё еще проще. Кресты могут вызывать функции из lua, а lua может вызывать функции крестов. Так что приплетать механики движка к скриптам будет очень просто. Я бы тебе советовал вообще не смотреть в сторону питона. А ещё лучше скачать какой-нибудь Stride это бывший Xenko а это бывший Paradox3D и посмотреть, как всё реализовано там. Это не запредельно сложные крайтековские или эпиковские поделия, разобраться будет проще, чтобы понять основные принципы.
>>885548 бля да. луа лучше, так как у меня изначально была идея прикрутить питон и чекать, то что он творит, типо специально в питоне вызывать функцию, которой нет в пространстве имен, но мой движок это перехватывал и если это имя функции, которая прописана в движке, то он её вызывал
>>885624 Не, за такие магические функции юнити до сих пор хуесосят. Плюс там же есть проблема, когда скриптов миллиард, движок перебирает все вызовы, даже если в них нет кода, из-за чего производительность идёт по пизде. Пили лучше события и подписывай скрипты на события апдейтов из движка.
>>885873 окич. вообще, я думал просто при запуске интерпретатора питона, просто перед исполнением скрипта, создавать функции, которые просто будут вызывать функции движка через ctypes
Другой промышленный инструмент это https://www.swig.org/tutorial.html Там ты пишешь дескрипторы к своему Си и оно само делает байндинги под все языки на свете, включая питон.