Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
 Аватар для gordeyb
4 / 2 / 2
Регистрация: 26.03.2018
Сообщений: 78

Использование C++ в качестве скриптового языка

10.07.2019, 09:32. Показов 4210. Ответов 5
Метки lua (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Сейчас пишу игровой движок, нужен скриптовый язык для него. На ум сразу приходит Lua, однако не страдает ли от этого производительность? Если да, то могу ли я использовать C++ в качестве скриптового языка, как например в Unreal Engine?
Или же лучше выбрать Lua? Или использовать другой язык, например C#?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.07.2019, 09:32
Ответы с готовыми решениями:

Выбор скриптового языка
Здравствуйте! Проблема такая. В программу нужно встроить скриптовый язык, при это программа предоставляет некий набор функций, которые...

Создание скриптового языка
Здравствуйте! Я уже давно хотел написать свой так сказать скриптовый движок, в образовательных целях и возможно для дальнейшего...

Простейший синтаксис скриптового языка
Привет. Для личных нужд (или просто для развития, ещё не определился) нужно сделать простой скриптовой язык, главное, не вида BASIC. ...

5
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
10.07.2019, 09:38
gordeyb, я точно не знаю, но вроде как python в тренде.
0
 Аватар для gordeyb
4 / 2 / 2
Регистрация: 26.03.2018
Сообщений: 78
10.07.2019, 09:45  [ТС]
И да, если что, движок пишу на C++
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,910
10.07.2019, 15:45
Лучший ответ Сообщение было отмечено gordeyb как решение

Решение

Производительность любого интерпретируемого языка меньше, чем компилируемого, просто по определению. Есть компромисс: jit-компилируемые языки, но не уверен легко ли их встроить в движок. Я про такое не слышал.
Помимо скорости, скрипты можно произвольно ограничивать в правах, чтобы разрешить юзеру мало-мальскую автоматизацию. С компилируемыми так не выйдет.
Цитата Сообщение от gordeyb Посмотреть сообщение
нужен скриптовый язык для него. На ум сразу приходит Lua
Lua и Python - самые распространенные скриптовые языки (не считая bash, конечно, но это совсем другая история). Принципиальной разницы между ними, насколько я знаю, нет. Выбирайте что больше нравится по синтаксису и вкусу фломастера.
Цитата Сообщение от gordeyb Посмотреть сообщение
Сейчас пишу игровой движок, нужен скриптовый язык для него
Для какой цели собираетесь использовать скриптовый язык? Позволить игроку что-то автоматизировать внутри игры, настраивать интерфейс, писать моду и т.п.? Или связывать части движка для конструирования полноценной игры?
Если первое, то тех же Lua и Python'а хватит, поскольку там особых требований к скорости нет.
Если же второе, то лучше сделать наоборот: оформить движок как набор библиотечных функций, и пусть программист вызывает их в любом порядке из любого удобного языка.

Добавлено через 2 минуты
Ах да, чуть не забыл.
Использовать не-скриптовые языки в роли скриптовых - плохая идея. Это сложно и неэффективно. Скрипты не просто так придумали
1
 Аватар для gordeyb
4 / 2 / 2
Регистрация: 26.03.2018
Сообщений: 78
10.07.2019, 22:22  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Для какой цели собираетесь использовать скриптовый язык
Писать логику игры. Например, если такой-то объект вошел в какой-то триггер, то сделать то-то.
Уже немного встроил Lua с помощью библиотеки sol2
Спасибо большое за ответ!
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,910
11.07.2019, 10:27
Если именно логику игры, то есть поведение неписей, катсцены, квесты, интерактивные внутриигровые объекты, то тоже стоит взять скриптовый язык. Это и для геймдизайнера будет проще, и мододелам.
Но, конечно, надо помнить, что слишком сложный и интенсивный код в скрипты лучше не совать, все-таки скорость скриптов меньше скорости нативного кода. Так что если есть желание поэкспериментировать с мощным ИИ, лучше вынести его в динамическую библиотеку, либо хоть чуть-чуть распараллелить интерпретацию. Но повторюсь, такими извращениями стоит заниматься, если "узкое место" именно в скриптах, а этот момент наступит нескоро.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.07.2019, 10:27
Помогаю со студенческими работами здесь

Вычисление файла с помощью скриптового языка cmd
Вычислить файлы, которые связаны с assoc. Их тип связана с txt. Имя файла, дату создания файла.

Найти бесплатную программу для построения блок-схем из кода скриптового языка PHP
Помогите найти в интернете безоплатную программу которая может генерировать блок схемы из исходного кода скриптового языка PHP. Короче я...

javascript в качестве main языка?
подскажите стоит ли javascript делать в качеств основного языка программирования и можно ли устроиться на хорошо оплачиваемую работу...

Подходит ли питон в качестве первого языка?
можна начинать изучать python если не знаешь не какой программирование язык

Паскаль в качестве первого языка для программиста, плюсы и минусы... Актуальность
Я новичок в программировании, начал с паскаля, каковы реальные возможности этого языка ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
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(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru