Графический движок

Это конечно круто и увлекательно - писать собственый графический движок. Но чем дольше я этим занимаюсь, тем больше возникает ощущение, что "изобретаешь велосипед". Надо поработать с популярными графическими движками - изучить их устройство и работу. Сейчас, когда уже понятны принципы работы c OpenGL, самое время посмотреть - "а как там у них?".

Как показала практика писать весь код одному тяжеловато. В качестве обоснования возможности в одиночку создать интересное и популярное приложение я опирался на пример Перссона с Minecraft. Но теперь я понимаю, что именно позволило ему сравнительно быстро разработать прототип - cекрет (в основном) в использовании Java. Это просто огромный конструктор, в котором есть все для создания практически любого приложения. При этом почти нет необходимости, как при работе на C/C++, искать и изучать найденные библиотеки - почти все каталогизировано, описано, документировано и находится в одном месте - только бери и собирай. В этом, несомненно, огромное преимущество разработки на Java. Но это-же и слабое место. При работе с С/С++ я как-то чувствую себя более свободно, что ли... Увеличение продолжительности времени на разработку в этом случае является платой за большую свободу.

Я думаю, более оправданым для меня будет не пытаться полностью реализовать собственный графический движок, а выбрать из имеющихся открытых. Под термином "графический движок" я подразумеваю ту часть кода приложения, которая взаимодействует с графической подсистемой компьютера, передавая в конвеер рендера данные для построения объектов. Возможно, с базовым набором готовых шейдеров. Но модули, ответственные за построение, модификацию и хранению графических объектов разрабатываются мной (пока?) как независимая часть приложения.

Uncaught exception thrown in shutdown function.

PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database: DELETE FROM {semaphore} WHERE (value = :db_condition_placeholder_0) ; Array ( [:db_condition_placeholder_0] => 21125019765f3268fd7ec413.91654138 ) in lock_release_all() (line 269 of /usr/home/ib/web/trickrig.net/drupal-7.69/includes/lock.inc).