|
4 / 2 / 2
Регистрация: 26.03.2018
Сообщений: 78
|
|
Использование C++ в качестве скриптового языка10.07.2019, 09:32. Показов 4210. Ответов 5
Всем привет. Сейчас пишу игровой движок, нужен скриптовый язык для него. На ум сразу приходит Lua, однако не страдает ли от этого производительность? Если да, то могу ли я использовать C++ в качестве скриптового языка, как например в Unreal Engine?
Или же лучше выбрать Lua? Или использовать другой язык, например C#?
0
|
|
| 10.07.2019, 09:32 | |
|
Ответы с готовыми решениями:
5
Выбор скриптового языка Создание скриптового языка Простейший синтаксис скриптового языка |
|
"C with Classes"
|
|
| 10.07.2019, 09:38 | |
|
gordeyb, я точно не знаю, но вроде как python в тренде.
0
|
|
|
4 / 2 / 2
Регистрация: 26.03.2018
Сообщений: 78
|
|
| 10.07.2019, 09:45 [ТС] | |
|
И да, если что, движок пишу на C++
0
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,910
|
|||
| 10.07.2019, 15:45 | |||
Сообщение было отмечено gordeyb как решение
Решение
Производительность любого интерпретируемого языка меньше, чем компилируемого, просто по определению. Есть компромисс: jit-компилируемые языки, но не уверен легко ли их встроить в движок. Я про такое не слышал.
Помимо скорости, скрипты можно произвольно ограничивать в правах, чтобы разрешить юзеру мало-мальскую автоматизацию. С компилируемыми так не выйдет. Если первое, то тех же Lua и Python'а хватит, поскольку там особых требований к скорости нет. Если же второе, то лучше сделать наоборот: оформить движок как набор библиотечных функций, и пусть программист вызывает их в любом порядке из любого удобного языка. Добавлено через 2 минуты Ах да, чуть не забыл. Использовать не-скриптовые языки в роли скриптовых - плохая идея. Это сложно и неэффективно. Скрипты не просто так придумали
1
|
|||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,910
|
|
| 11.07.2019, 10:27 | |
|
Если именно логику игры, то есть поведение неписей, катсцены, квесты, интерактивные внутриигровые объекты, то тоже стоит взять скриптовый язык. Это и для геймдизайнера будет проще, и мододелам.
Но, конечно, надо помнить, что слишком сложный и интенсивный код в скрипты лучше не совать, все-таки скорость скриптов меньше скорости нативного кода. Так что если есть желание поэкспериментировать с мощным ИИ, лучше вынести его в динамическую библиотеку, либо хоть чуть-чуть распараллелить интерпретацию. Но повторюсь, такими извращениями стоит заниматься, если "узкое место" именно в скриптах, а этот момент наступит нескоро.
1
|
|
| 11.07.2019, 10:27 | |
|
Помогаю со студенческими работами здесь
6
Вычисление файла с помощью скриптового языка cmd Найти бесплатную программу для построения блок-схем из кода скриптового языка PHP javascript в качестве main языка?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|