forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Болтовня (http://forum.boolean.name/forumdisplay.php?f=25)
-   -   Альтернатива скриптовику. (http://forum.boolean.name/showthread.php?t=17441)

radiobutton 31.10.2012 17:35

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от IgorOK (Сообщение 241826)
Аргументов у меня еще предостаточно. А вот ты похоже не видишь разницы между текстовым файлом и библиотекой, да и еще предлагаешь втыкать компилятор С# в игру. Я уж не говорю о том что ты путаешь сохранение блокнота и компиляцию.

Что-то мне подсказывает, что ты не понимаешь, как устроена технология .net. Что такое компиляция в ней. И что компилятор для каждой версии есть на твоем компе, даже если у тебя нету студии или какой другой IDE, но есть framework.:)

falcon 31.10.2012 17:36

Ответ: Альтернатива скриптовику.
 
>>чтобы что-то подправить нужна IDE" - нет
>>локальной машине тестера
тестеру незачем лазать в скрипты.

>>друга
ему тем более.
(если таки очень хочется, ничего сложного в установке самопальной легковесной IDE нету)

>>демонстрационном компьютере в комнате собраний совета директоров
если тебе на собрании инвесторов\директоров необходимо что-то доводить до ума - у меня для тебя плохие новости)
хотя опять же, ничего страшного в легковесной тулзине нету. Ты как минимум потащишь туда проект. Ещё одну тулзину захватить - уж не надорвись, да.
К тому же в девелоперской версии обычно всё равно всегда всё что нужно под рукой.

и как бэ я не спорю, что скрипт машина предпочтительней.
я просто к тому, что аргументы против рефлексии унылы.


Цитата:

Для скриптовой сцены длл, для этого уровня длл и для того босса длл. Уж тем более для рпг - тысячи длл. Не сказал бы, что это очень удобно.
уже убедительней :-d

radiobutton 31.10.2012 17:39

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от Gector (Сообщение 241892)
Аргумент таков - это не скриптовик. Это - рефлексия. Мы то тоже понимаем что рефлексию можно использовать для таких целей (емнип, даже в кваке третьей как-то похожим образом строились моды), но это годится не для мелких скриптов, а именно для больших модов.
Для скриптовой сцены длл, для этого уровня длл и для того босса длл. Уж тем более для рпг - тысячи длл. Не сказал бы, что это очень удобно.

Какая разница тысяча .dll или тысяча .txt ?:)
Тем более dll в .net это тот же .txt с кодом на IL и методанными.

Gector 31.10.2012 17:53

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от radiobutton (Сообщение 241893)
Что-то мне подсказывает, что ты не понимаешь, как устроена технология .net. Что такое компиляция в ней. И что компилятор для каждой версии есть на твоем компе, даже если у тебя нету студии или какой другой IDE, но есть framework.:)

Это вообще отдельный разговор. А если приложение стоит на XP или на старом фреймворке? А если это вообще не windows?
Цитата:

Какая разница тысяча .dll или тысяча .txt ?
Скорость компиляции длл и скорость ctrl+s - разные вещи батенька. Кроме того переменные из виртуальной машины вообще можно править в консоли.

radiobutton 31.10.2012 18:38

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от Gector (Сообщение 241899)
Это вообще отдельный разговор. А если приложение стоит на XP или на старом фреймворке? А если это вообще не windows?

Тогда ты и саму игру не откомпилируешь, чтобы проверить работоспособность своего скрипта.

Цитата:

Сообщение от Gector (Сообщение 241899)
Скорость компиляции длл и скорость ctrl+s - разные вещи батенька.

23 милисекунды много? :) ты ctrl+s дольше нажимать будишь.

Цитата:

Сообщение от Gector (Сообщение 241899)
Кроме того переменные из виртуальной машины вообще можно править в консоли.

Есть ты хочешь рантайм править переменные, то у тебя должна быть запущена игра. Значит и IDE стоит. А в ней есть дебаг примочки разные. :)

IgorOK 31.10.2012 18:50

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от radiobutton (Сообщение 241893)
Что-то мне подсказывает, что ты не понимаешь, как устроена технология .net. Что такое компиляция в ней. И что компилятор для каждой версии есть на твоем компе, даже если у тебя нету студии или какой другой IDE, но есть framework.:)

Игра - это чаще всего совокупность нескольких классов объектов которые по-разному друг с другом взаимодействуют. При пряморукой реализации настройки параметров этих взаимодействий, можно вообще не использовать всю эту уличную магию с dll'ками и интерпретаторами, а вообще ограничиться конфигами в блокноте.

Представь себе ситуацию: твой дизайнер хочет сделать так, чтобы финальный босс стрелял лучом из глаз, а не кидал огненный шар. Ты будешь ему говорить чтобы он залез в скрипт, отредактировал что-то там, скомпилировал dll и вставил в папку? Не проще ли ему сказать, что в файле босс.txt нужно поправить одну строчку? К примеру:

final_boss_gun=fireball

на

final_boss_gun=eye_beam

Gector 31.10.2012 18:56

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от radiobutton (Сообщение 241910)
Тогда ты и саму игру не откомпилируешь, чтобы проверить работоспособность своего скрипта.

При чем тут компиляция? Речь о дистрибутиве игры.

Цитата:

Сообщение от radiobutton (Сообщение 241910)
23 милисекунды много? :) ты ctrl+s дольше нажимать будишь.

facepalm...
1. [открыть IDE ~10 сек]->[написать скрипт]->[компилировать]->[перенести в директорию]->[запустить приложение]
Если ИДЕ нет то надо ставить.
2. [открыть блокнот <1 сек]->[написать скрипт]->[ctrl+s]->[запустить приложение]

Цитата:

Сообщение от radiobutton (Сообщение 241910)
Есть ты хочешь рантайм править переменные, то у тебя должна быть запущена игра. Значит и IDE стоит. А в ней есть дебаг примочки разные. :)

Ну и круто теперь.

radiobutton 31.10.2012 19:07

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от IgorOK (Сообщение 241919)
Игра - это чаще всего совокупность нескольких классов объектов которые по-разному друг с другом взаимодействуют. При пряморукой реализации настройки параметров этих взаимодействий, можно вообще не использовать всю эту уличную магию с dll'ками и интерпретаторами, а вообще ограничиться конфигами в блокноте.

Представь себе ситуацию: твой дизайнер хочет сделать так, чтобы финальный босс стрелял лучом из глаз, а не кидал огненный шар. Ты будешь ему говорить чтобы он залез в скрипт, отредактировал что-то там, скомпилировал dll и вставил в папку? Не проще ли ему сказать, что в файле босс.txt нужно поправить одну строчку? К примеру:

final_boss_gun=fireball

на

final_boss_gun=eye_beam

То что ты описал, это не скриптовик. :)

Мы же обсуждали скриптовики. И я сказал что можно использовать рефлексию. Тут не поналезли троли, говорящие, что рефлексия это не то, что я думаю. Когда оказалось, что рефлексию можно приспособить для написания скриптов, начали придераться к другим мелочам, которые вообще из другой темы.

на счет твоего примера.
Тогда тебе не подойдут и всякие скриптовики инетерпритаторы. Ибо там тот же код, просто на другом языке, не c#. Хотя мб и c#. xD
Ибо все равно придется писать свою систему, которая final_boss_gun=fireball таким образом позволяет менять уровень. Ибо так можно делать, только если у тебя реализован и огненный шар и лазерный луч в коде. А если они у тебя реализованы, то и с помощью рефлексии они меняются заменой 1 строчки. :)

Boss FINAL_boss = new boss(bla bla bla, Ognenniy_war, bla bla bla).
на
Boss FINAL_boss = new boss(bla bla bla, Lu4_iz_glaz, bla bla bla).

На счет компиляции итд, опять же можно сделать небольшую утилиту(с виду будит как блокнот), которая будит делать и компиляция и сохранение с помощью нажатия одной клавишы(или ctrl+s).

Ты скажешь своему дизайнеру - открой boss.dll и поменяй то, что я описал выше.

radiobutton 31.10.2012 19:20

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от Gector (Сообщение 241921)
При чем тут компиляция? Речь о дистрибутиве игры.

Ну лол. Для всех игр на c# нужно фреймворк устанавливать. Либо они его включают в дистрибутив. Точно также как для других игр нужен DirectX и без него они не работают. Это уже вопросы к тем кто придумал технологию .net (слизал с явы точнее. :-D ).

Тоесть проще говоря, если у тебя нету фреймворка, то ты не сможешь поиграть в игры на c# даже если они реализованы без скриптов на рефлексии. :)

Цитата:

Сообщение от Gector (Сообщение 241921)
facepalm...
1. [открыть IDE ~10 сек]->[написать скрипт]->[компилировать]->[перенести в директорию]->[запустить приложение]
Если ИДЕ нет то надо ставить.
2. [открыть блокнот <1 сек]->[написать скрипт]->[ctrl+s]->[запустить приложение]

[Открыть самописную утилиту типа блокнота ~ 1.2 сек]->[написать скрипт]->[ctrl+s]->[запустить приложение]

Почему для блокнота не нужно указывать путь, а для скрипта на c# нужно? Если ты хочешь создавать txt файл сразу в нужной папке, то и в моем случае так можно. Просто в этой папке будит 2 файла для каждого скрипта. dll и txt. Либо можно вообще только txt оставить, и компилировать их уже при запуске игры в оперативную память. Тогда вообщем ничем от твоих скриптов через блокнот не будит отличаться, кроме самой программы для редактирования. :) Да даже блокнотом можно редактировать и при етом строчки using system. итд не указывать (чтобы время не терять), а игра сама их добавит, когда будит компилировать.

IgorOK 31.10.2012 19:22

Ответ: Альтернатива скриптовику.
 
Если тебе нужно, элементарно поменять снаряд или тип атаки который прописан для этого, а не сделать так чтобы босса надо было переиграть в пингпонг, то одна строчка в блокноте поможет тебе это сделать без лишних проблем и компиляции dll'ок. Если конечно не подразумеваешь, что твой дизайнер знает C#.

Если всётаки тебе нужно чтобы игрок переиграл босса в пингпонг, то тут 2 варианта:
1. Меняешь это в исходнике игры или dll'ке и компилируешь.
2. Делаешь скрипт, на допустим... Lua. Там с помощью подручных средств собираешь этот самый понг.

Опять же утрированно..

Gector 31.10.2012 19:23

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от radiobutton (Сообщение 241926)
Мы же обсуждали скриптовики.

Вообще то тема как раз и называется "Альтернатива скриптовику". Я имел ввиду все подходы вообще. Не только скриптовики.
Цитата:

Сообщение от radiobutton (Сообщение 241926)
И я сказал что можно использовать рефлексию.

Использовать можно даже сам язык. Достаточно только понаписать инклюд из кучи функций.
Цитата:

Ибо так можно делать, только если у тебя реализован и огненный шар и лазерный луч в коде. А если они у тебя реализованы, то и с помощью рефлексии они меняются заменой 1 строчки.
А на виртуальной машине это как бы не реально?

Кроме того - если у тебя рпг где куча квестов, сцен и миниигр - ты будешь компилить это хозяйство каждый раз?

radiobutton 31.10.2012 19:35

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от Gector (Сообщение 241931)
Вообще то тема как раз и называется "Альтернатива скриптовику". Я имел ввиду все подходы вообще. Не только скриптовики.

Так зачем упрекать скрипты на рефлексии, что они не подходят для "технологии конфиг файлов"? Если это разные вещи. Точно также скрипты без рефлексии не поддерживают "технологии конфиг файлов". А если и поддерживают, то тогда и скрипты на рефлексии можно переделать под это. Но опять же это все дело уже под конкретную игру и в обоих случаях потребует написания кода. Поэтому в данном случае не вижу преимущества обычных скриптов над скриптами на рефлексии.

Цитата:

Сообщение от Gector (Сообщение 241931)
Использовать можно даже сам язык. Достаточно только понаписать инклюд из кучи функций.

Тогда придется перекомпилировать экзешник. :)
Если ты не об этом, то тогда рефлексия это как бы и есть использование самого языка с кучей инклудов. Просто при этом не нужно перекомпилировать экзешник.

Цитата:

Сообщение от Gector (Сообщение 241931)
А на виртуальной машине это как бы не реально?

Почему нет? :)

Цитата:

Сообщение от IgorOK (Сообщение 241929)
Если тебе нужно, элементарно поменять снаряд или тип атаки который прописан для этого, а не сделать так чтобы босса надо было переиграть в пингпонг, то одна строчка в блокноте поможет тебе это сделать без лишних проблем и компиляции dll'ок. Если конечно не подразумеваешь, что твой дизайнер знает C#.

Если всётаки тебе нужно чтобы игрок переиграл босса в пингпонг, то тут 2 варианта:
1. Меняешь это в исходнике игры или dll'ке и компилируешь.
2. Делаешь скрипт, на допустим... Lua. Там с помощью подручных средств собираешь этот самый понг.

Опять же утрированно..

Да я чо отрицаю, чтоле? Я привел факт, что рефлексию можно использовать как скрипты. И при этом не нужно будит перекомпилировать исходники игры. Если тебе нужен метод редактирования конфиг файлами, то его нужно писать отдельно. И рефлексия тут не причем. как и lua скрипты.

IgorOK 31.10.2012 19:41

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от radiobutton (Сообщение 241937)
Да я чо отрицаю, чтоле? Я привел факт, что рефлексию можно использовать как скрипты. И при этом не нужно будит перекомпилировать исходники игры. Если тебе нужен метод редактирования конфиг файлами, то его нужно писать отдельно. И рефлексия тут не причем. как и lua скрипты.

Кхм. Зачем писать парсер конфиг-файла на скриптах или ДЛЛ?:)
Интерпретируемый скрипт - это считай и есть конфиг-файл.

radiobutton 31.10.2012 19:50

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от IgorOK (Сообщение 241938)
Кхм. Зачем писать парсер конфиг-файла на скриптах или ДЛЛ?:)
Интерпретируемый скрипт - это считай и есть конфиг-файл.

Ну не совсем. Конфиг файл это же просто соответствие переменная - значение? Ты же сам сказал, так удобнее будит дизайнеру.

а скрипт это уже логические, циклические и другие конструкции.

Зачем? Ну лично для меня незачем, но ты же сам написал, что дизайнеру будит удобнее :) Вот для него и написать.

А так понятно, что чем больше в движке учтено таких возможностей редактирования уровней тупо заменой одного значения переменной на другое, тем будит легче потом писать для нее скрипты или конфиги.

IgorOK 31.10.2012 20:06

Ответ: Альтернатива скриптовику.
 
Цитата:

Сообщение от radiobutton (Сообщение 241940)
(1)Ну не совсем. Конфиг файл это же просто соответствие переменная - значение? Ты же сам сказал, так удобнее будит дизайнеру.

а скрипт это уже логические, циклические и другие конструкции.

Зачем? Ну лично для меня незачем, но ты же сам написал, что дизайнеру будит удобнее :) Вот для него и написать.

(2)А так понятно, что чем больше в движке учтено таких возможностей редактирования уровней тупо заменой одного значения переменной на другое, тем будит легче потом писать для нее скрипты или конфиги.

1. Разница между конфигом и скриптом, что последний подразумевает выполнение. Как правило скрипты содержат небольшие объемы кода и в них можно просто вынести нужные дизайнеру переменные в начало файла. Или в отдельный инклюд скрипта (например: boss_script.txt и boss_designer_variables.txt). Вообще работа дизайнера подразумевает некоторые знания программирования. Разница лишь в том, программист формирует основную логику игры, а дизайнер формирует из этого всего саму игру (создаёт уровни, настраивает урон параметры оружия в игре, кол-во hp противников и т.д.)

2. Ну наконец то мы поняли друг друга.


Часовой пояс GMT +4, время: 22:17.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot