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 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. Ну наконец то мы поняли друг друга.

radiobutton 31.10.2012 20:54

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

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

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

2. Так я и никогда и несобирался полностью на скрипте игру писать. :) Но наличие возможности писать скрипты используя заранее написанные функции, это гуд. И рефлексия в этом помогает. :)


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

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