![]() |
Скриптовик - Банки или текст?
Недавно начал разработку небольшого скриптовика. И тут возник вопрос - что лучше использовать для хранения данных - строку или банк?
В плане удобства разработки конечно удобна строка. Но банк, на сколько мне известно, на порядок ее шустрее. Вопрос не столько в наличии плюсов и минусов, сколько в целесообразности использования их для описания игровых ситуаций. Ведь не вся игра на нем будет строиться, а только геймплей и некоторые элементы интерфейса. Замеченные плюсы и минусы: Строка: +Строка может хранить весь скрипт в первозданном виде скомпилированный код. -Строка обрабатывается дольше. Банк +Переходы в банке от одного участка скомпилированного кода к другому быстрее. -Много геморроя при разработке. Трудно искать баги. |
Ответ: Скриптовик - Банки или текст?
ответ на твой вопрос: банки лучше.
ответ на нужность скриптового языка в Blitz3D - нет. если очень-очень хочется - Randomize давал ссылку на интеграцию Lua с Blitz3D |
Ответ: Скриптовик - Банки или текст?
Цитата:
Игра которая на нем будет строиться - небольшая адвенчура с рпг элементами. Нужен для создания событий и всего прочего. |
Ответ: Скриптовик - Банки или текст?
Напиши его лучше на c#.
|
Ответ: Скриптовик - Банки или текст?
Цитата:
1) Мне нужен он нужен для игры на блице. Если бы я умел на шарпе работать, я эту тему создал бы в другой ветке, и она бы звучала как "подскажите скриптовик", так как на шарпе куда больше решений чем на б3д. 2) На шарпе можно писать под юнити. Но нужен он на блице. |
Ответ: Скриптовик - Банки или текст?
Тогда используй целочисленные массивы.
Получится что-то вроде ассемблера. Почувствуешь себя на некоторое время настоящим програмистом. Скомпилированная на твоем языке программа будит висеть в оперативной памяти в виде целочисленного массива. Сам код скриптов будит писаться в виде текста. Еще можно использовать битовый массив. Будит вообще самый быстрый вариант. Цитата:
|
Ответ: Скриптовик - Банки или текст?
Цитата:
|
Ответ: Скриптовик - Банки или текст?
Цитата:
смотри делаеш набор операций, функций, итд и нумеруеш их 0) ноль означает что в следующей за ним ячейке массива будит тип переменной, а за типом будит следовать значение. И после значения еще один ноль. Хотя он нужен только для строк и нецелых чисел, ведь значения целых чисел можно уместить в одну ячейку. (1 - int, 2 - float, 3 - string) 1) + 2) - 3) * 4) / 5) равно 6) неравно 7) больше 8 ) меньше 9) присвоить 10) ( 11) ) итд 51) if 52) then 53) else 54) endif итд 100) moveto(x,y) 101) OpenDialog(x); x - номер нпц. 1001) Переменная один целая (для примера название будит "a") 1002) Переменная два целая (для примера название будит "b") 1003) Переменная три целая (для примера название будит "c") итд Названия переменных можно буди придумывать в скрипте и храница значения будут в другом массиве целочисленном. Например строка массива: 51 10 1001 1 1002 11 3 1003 7 0 1 15 52 100 0 1 23423 0 1 72346 9 1001 10 1001 1 0 1 2 11 53 9 1001 10 1001 1 0 1 1 11 54 будит означать следующий скрипт: Код:
if (a+b)*c>15 then |
Ответ: Скриптовик - Банки или текст?
Цитата:
|
Ответ: Скриптовик - Банки или текст?
Цитата:
вот так будит выглядеть "Hello World" никаких проблем со строковыми переменными. Почему скрипты ограничены и не могут никак взаимодействовать? Настоящие програмисты не бояца использовать goto.:) пишешь несколько модулей. и по порядку их компилиш. ну типа того. |
Ответ: Скриптовик - Банки или текст?
Цитата:
|
Ответ: Скриптовик - Банки или текст?
Цитата:
И что для тебя такое скрипт. Цитата:
Цитата:
Цитата:
Операции со строками будут производиться всего один раз. При компиляции кода скрипта, при загрузке игры. |
Ответ: Скриптовик - Банки или текст?
Помню когда-то скачивал Blitz Virtual Machine, но что-то не могу найти сейчас. компилировала код блица в байт код и выполняла...
|
Ответ: Скриптовик - Банки или текст?
виртуальные машины кстати выдумывать очень весело.
ну, по-гиковски, конечно, весело. можно придумать любую архитектуру процессора и писать на этом чудном асме код. |
Ответ: Скриптовик - Банки или текст?
Цитата:
|
Ответ: Скриптовик - Банки или текст?
Так старую найти бы...
|
Ответ: Скриптовик - Банки или текст?
Цитата:
Цитата:
UPD:Решил проблему с именами. |
Ответ: Скриптовик - Банки или текст?
Читал-читал, так и не понял в чем проблема у автора.
И зачем придумывать какой-то свой байт-код когда можно использовать сразу машинный код, т.е. на старте скомпилировать скрипт в машинный код, толкнуть его в банк, а для запуска передать банк в качестве функции в CreateThread например. Будет быстро исполнятся и ничего придумывать ненадо. Единственная задача будет найти или написать компилятор|транслятор. Или взять например TinyC, который помимо компиляции может и исполнять код. Да там Си, но если не упарыватся особо, то можно на нем писать почти как на бейсике, ничего там сложного нет. |
Ответ: Скриптовик - Банки или текст?
опять "каша из топора".
если не использовать блиц-бейсик, то и сам блиц мало зачем нужен. |
Ответ: Скриптовик - Банки или текст?
ребят не изобретайте велосипед!
Если уж так надо - то скачай сорсы Луа и поизучай их. Самый грамотный скриптовик. Есть даже тула, которая умеет переводить Байт-код -> Машинный код. И все вопросы отпадут. |
Ответ: Скриптовик - Банки или текст?
Цитата:
|
Ответ: Скриптовик - Банки или текст?
Ребят, вот пока не было нужды применять скрипты.
Но вот объясните, как я обращал внимание в любых играх типа шутеры, рпг и т.д. для сработки события используется как растяжка - зацепил и происходит событие. Следовательно вопрос (т.к. речь идет о адвенчуре с рпг) а зачем скрипт, если можно создать геометрические триггеры - зашел в куб, сферу, пересёк плоскость - совершаешь событие. Если должны напасть враги - одну функцию описал и вызывай ее хоть каждый "метр". Чем такой вариант плох? |
Ответ: Скриптовик - Банки или текст?
Скрипты как бы универсальны т.е. можно все описать что тебе надо в файлике и не надо ничего менять в коде из за какой нибудь мелочи.
Цитата:
|
Ответ: Скриптовик - Банки или текст?
Цитата:
Скриптовик намного более гибкая вещь, даже с хреновой математикой, и минимумом возможностей (три типа переменных, математика уровня c=a+b, условия по их проверке и вызов функций). Применение даже такого ущербного скриптовика намного шире, чем применение триггеров. Уж тем более если это не платформер, а рпг-адвенчура. |
Ответ: Скриптовик - Банки или текст?
Nex, ты не прав
Как может быть легче найти габ в 51 10 1001 1 1002 11 3 1003 7 0 1 15 52 100 0 1 23423 0 1 72346 9 1001 10 1001 1 0 1 2 11 53 9 1001 10 1001 1 0 1 1 11 54 ?? А на счет однотипности - это врядли. Все зависит какую по сложности функцию описать. И вообще я считаю самым сложным написать IQ, и однотипности не будет. Для создания игры полюбому нужен редактор, в редакторе добавляешь триггеры (я про простоту расстоновки, а скрипты полюбому только писать) задаешь имя и затем обрабатываешь его: Код:
если пересёк триггер можно продолжать очень долго. А на счет неоднотипности - для этого мне кажется уже нужна команда |
Ответ: Скриптовик - Банки или текст?
Цитата:
|
Ответ: Скриптовик - Банки или текст?
Цитата:
Вот например кусок lui-скрипта из двига Leadwerks. Практически тоже самое что и в .exe только тут можно по быстренькому все изменить, мод написать в блокноте не трогая exe-файл и тд.. Цитата:
AI - искусственный интеллект. |
Ответ: Скриптовик - Банки или текст?
Цитата:
Видимо я еще не дорос до скриптов... |
Часовой пояс GMT +4, время: 17:10. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot