Выпуск завершенного учебного игрового движка с примерами, документацией и репозиторием
Картинка для привлечения внимания (тест движка)
Спустя несколько пробных версий, я представляю завершенную версию учебного игрового движка, внеся существенные поправки и новые функции, а также разместив его на Github под лицензией CC0.
Учебный движок предназначен для быстрой и легкой разработки простейших 2D-игр с использованием спрайтов, анимаций, надписей, графических примитивов и звуковых эффектов. Сама игра реализуется как программа на диалекте JavaScript путем создания файлов скриптов, каждый из которых содержит коды трех функций — инициализации игры, рендера игры и обработки состоянии игры. Для создания игры не требуется сборка движка из исходных текстов — всё, что нужно, уже находится в откомпилированном движке.
Предыдущий пост о данном учебном движке и его назначении:
tabun.everypony.ru/blog/gamedev/190959.html
И второй пост с примером более-менее серьезной игры:
tabun.everypony.ru/blog/gamedev/195505.html
Внесенные дополнения в движок к финальной версии:
Движок доступен в виде zip-архива (демо-сцена уже включена в движок)
tereshenkov.ru/pubprogs/gamestudyjs.zip
Руководства разработчика отдельными файлами:
В формате MarkDown:
tereshenkov.ru/pubdocs/gamestudy_manuals/usermanual.md
В формате PDF:
tereshenkov.ru/pubdocs/gamestudy_manuals/usermanual.pdf
В формате HTML:
tereshenkov.ru/pubdocs/gamestudy_manuals/usermanual.html
Также движок, его исходники, равно как и документацию, можно получить на github
github.com/tereshenkovav/GameStudyJS
Как и сам проект, исходники доступны под лицензией CC0 — упрощенно, это означает, что вы можете делать с исходниками и проектом всё, что угодно. Это общественное достояние.
Пару слов в завершении о смысле и цели.
Данный движок — в первую очередь, конечно, для тех, кто хочет что-то сделать в плане игр, но не осилил по каким-то причинам ни низкоуровневые средства вроде C++/OpenGL, ни высокоуровневых монстров вроде Unity или UE. Тут же всё предельно просто — накидать спрайты, наполнить три функции JavaScript, получить результат.
С другой стороны, даже для опытных разработчиков, эта штука не бесполезна — тот же выпуск прототипов на нём идет легко и быстро, проверено лично.
Вот делал на нём прототип для квеста
tabun.everypony.ru/blog/gamedev/196737.html
А используя исходники движка и шаблон проекта на С++, еще и аркаду
tabun.everypony.ru/blog/gamedev/198903.html
То есть, я не хочу сказать, что эта поделка прям революция в разработке игр — но всё-таки, определенную пользу я вижу и для новичков, и для профессионалов.
Используйте на здоровье.
Спустя несколько пробных версий, я представляю завершенную версию учебного игрового движка, внеся существенные поправки и новые функции, а также разместив его на Github под лицензией CC0.
Учебный движок предназначен для быстрой и легкой разработки простейших 2D-игр с использованием спрайтов, анимаций, надписей, графических примитивов и звуковых эффектов. Сама игра реализуется как программа на диалекте JavaScript путем создания файлов скриптов, каждый из которых содержит коды трех функций — инициализации игры, рендера игры и обработки состоянии игры. Для создания игры не требуется сборка движка из исходных текстов — всё, что нужно, уже находится в откомпилированном движке.
Предыдущий пост о данном учебном движке и его назначении:
tabun.everypony.ru/blog/gamedev/190959.html
И второй пост с примером более-менее серьезной игры:
tabun.everypony.ru/blog/gamedev/195505.html
Внесенные дополнения в движок к финальной версии:
- Раздельное масштабирование спрайтов по вертикали и горизонтали
- Работа с файлами — загрузка и сохранение данных в файловую систему, как в корень проекта, так и в каталог AppData/Local
- Возможность считывать JSON-файлы произвольной сложности
- Центровка текстовых меток
- Работа не только с линиями, но и с прямоугольниками
- Поддержка нескольких JavaScript-файлов, что позволяет работать с разными сценами в игре
- Установка событий на интервалы времени
- Разбиение исходников движка таким образом, что его можно использовать в собственных проектах на C++ Qt
- Вторая версия исполняемого файла движка без управляющих элементов — для дистрибьюции созданных на движке игр
Движок доступен в виде zip-архива (демо-сцена уже включена в движок)
tereshenkov.ru/pubprogs/gamestudyjs.zip
Руководства разработчика отдельными файлами:
В формате MarkDown:
tereshenkov.ru/pubdocs/gamestudy_manuals/usermanual.md
В формате PDF:
tereshenkov.ru/pubdocs/gamestudy_manuals/usermanual.pdf
В формате HTML:
tereshenkov.ru/pubdocs/gamestudy_manuals/usermanual.html
Также движок, его исходники, равно как и документацию, можно получить на github
github.com/tereshenkovav/GameStudyJS
Как и сам проект, исходники доступны под лицензией CC0 — упрощенно, это означает, что вы можете делать с исходниками и проектом всё, что угодно. Это общественное достояние.
Пару слов в завершении о смысле и цели.
Данный движок — в первую очередь, конечно, для тех, кто хочет что-то сделать в плане игр, но не осилил по каким-то причинам ни низкоуровневые средства вроде C++/OpenGL, ни высокоуровневых монстров вроде Unity или UE. Тут же всё предельно просто — накидать спрайты, наполнить три функции JavaScript, получить результат.
С другой стороны, даже для опытных разработчиков, эта штука не бесполезна — тот же выпуск прототипов на нём идет легко и быстро, проверено лично.
Вот делал на нём прототип для квеста
tabun.everypony.ru/blog/gamedev/196737.html
А используя исходники движка и шаблон проекта на С++, еще и аркаду
tabun.everypony.ru/blog/gamedev/198903.html
То есть, я не хочу сказать, что эта поделка прям революция в разработке игр — но всё-таки, определенную пользу я вижу и для новичков, и для профессионалов.
Используйте на здоровье.
34 комментария
Надо заняться.
Бери пример со скирры, их конструкт насквозь глючное говно на жабе, принципы работы которого даже создатели понять не в состоянии, но при этом расхваливают они свою химеру так, будто это чуть ли не лучший движок в мире, да ещё и требуют за его использование ежегодную абонплату.
Ох, не хотел я раскрывать свой гениальный бизнес план, но ладно.
Внимай NTFS моему гласу ибо то путь к славе и обогащению!!!
Просто берёшь конструкт,
И делаешь то же самое!
Только дешевле и что б работало по человечески.
Это конструктор игр. А у меня — игровой движок. Разные вещи, разные ниши.
Конструктор игр предоставляет набор блоков для создания игры.
Некоторые вещи сочетают в себе функции движков и конструкторов, это верно.
Да, и в конструкте это джаваскрипт, просто что бы облегчить жизнь людям далёким от программирования всё самое нужное уже завёрнуто в удобный(относительно) и понятный(очень относительно) интерфейс с пояснениями нафига оно собственно нужно.
Это ключевая разница. Движок — для программистов. Начинающих, или уже опытных — но для тех, кто в состоянии скомпоновать цикл, ветвление и пару переменных.
Но я не хочу сказать, что визуальное программирование — есть что-то плохое, оно позволяет делать проекты и это хорошо.
Ну тогда анрил это конструктор, там есть блупринты.
Само собой. Движок понятие более высокого уровня. Может включать в себя и конструктор. А может и не включать.
Я просто стараюсь быть честным, а то люди загрузят движок, ожидая там второй Unity, а получат то, что получат.
На днях сайт для движка сделаю, там чуть более живее всё изложу.
А ладно, думаю ты и сам разберёшься.
Что-нибудь на Rust пробовали делать? А то увлекся им в последнее время, очень интересно.
Rust — нет, не изучал. Очень много новых языков, я сторонник концепции, что нужно изучать предметные области, а не языки. 80% задач можно решить на объектном Паскале 90-х годов, а если брать расширенные реализации с генериками, то и 90%.
Всегда есть что-то удобней и быстрее, важно, вовремя остановиться, иначе всю жизнь только и будешь новые удобные и быстрые языки учить вместо работы на них.
Просто привыкаешь парно к Create писать Free, и не присваивать динамику в Result без крайней нужды. Не так и сложно, а менеджер утечек памяти подскажет, если всё-таки налажал.
try...finally в ObjectPascal есть
Ну и например, новые языки открывают новые взгляды на решение старых проблем, о которых раньше не знал.
Автоматизация бизнеса. Разработка игр. Парсеры сайтов. Обработка данных. Какие-то задачи, за решение которых заплатят. Потому что за написание кода, к сожалению, еще не заплатили никому ни рубля. Только за решение проблем с помощью этого кода.
Это верно.
Я если что, не сторонник кодирования в машинных кодах. Тот же C#, освоенный десять лет назад, дал мне бездну возможностей по сравнению с классическим ObjectPascal.