Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
29.06.2005 16:34

roger
Участник
Зарегистрирован: 29.06.2005
Сообщений: 7

Платформа на Пайтоне

Кто что может сказать о русском (и не только) сабже для IF? Видел в инете англоязычные PUB и BUS. Вроде бы Гидру тоже пытались создать на Пайтоне? Интересно было бы услышать любую информацию на эту тему. Просьба не отсылать к платформам, написанных на других языках, интересуют разработки конкретно на Пайтоне - мнения, встретившиеся трудности и т.п.

Неактивен

0    0    #2
30.06.2005 10:57

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Платформа на Пайтоне

roger написал:

Кто что может сказать о русском (и не только) сабже для IF? Видел в инете англоязычные PUB и BUS. Вроде бы Гидру тоже пытались создать на Пайтоне? Интересно было бы услышать любую информацию на эту тему.

Да, пару лет назад WildWizard создавал платформу Hydra. Я немного ему помогол, поэтому более-менее знаю подробности. Система была создана (в том числе и стандартные библиотеки) и работала. Описание к Гидре было довольно скромное и для того чтобы разобраться нужно было вначале выучить язык Питон (который, впрочем, не сложнее Бейсика), а потом покопаться в исходниках библиотеки, чтобы понять что как действует. Т.к. я отвалился от проекта, последние новости о системе можешь узнать от WildWizard.

roger написал:

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

Питон — замечательный язык, на нем очень много можно сделать. Стандартные библиотеки можно полностью изменить. Проблемы возникли с тем, что полностью отсутсвовал интерес к платформе у потенциальных авторов игр. Я начинал писать игру, но почему-то охладел.

Была, правда, одна техническая проблема, которую нельзя обойти т.к. это важнейшая особенность Питона: невозножность компилирования — Питон производит интерпретацию кода. Т.о. многие простейшие опечатки в создаваемой игре, нельзя было обнаружить до того, пока кусок кода не будет исполнен. Это очень раздражало т.к. приходилось часто прогонять игру по всему циклу.

Неактивен

0    0    #3
30.06.2005 18:34

roger
Участник
Зарегистрирован: 29.06.2005
Сообщений: 7

Re: Платформа на Пайтоне

Стас, спасибо за ответ. А как можно связаться с WildWizard'ом? В разделе "участники/все" мне всего несколько имен выдало. Хотелось бы взглянуть на последнюю версию гидры и узнать, под какой лицензией она распространяется.
На счет отлавливания ошибок - лучше еще до написания кода игры писать тестирующий код. Да и вообще, тщательное альфа/бета тестирование и для компилированных программ нужно.

Неактивен

0    0    #4
30.06.2005 19:59

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Платформа на Пайтоне

roger написал:

Стас, спасибо за ответ. А как можно связаться с WildWizard'ом? В разделе "участники/все" мне всего несколько имен выдало.

Хм... У меня его отлично видно. Вот: [user=1963]

roger написал:

Хотелось бы взглянуть на последнюю версию гидры и узнать, под какой лицензией она распространяется.

Последняя версия, естественно, у WildWizard-а. Я делал стороннюю программу, которая облегчала процесс запуска игры и предоставляла какой-никакой интерфейс в игре. Если у WildWizard-а ее нет, могу выслать.

roger написал:

На счет отлавливания ошибок - лучше еще до написания кода игры писать тестирующий код. Да и вообще, тщательное альфа/бета тестирование и для компилированных программ нужно.

Игры, к сожалению, пишутся нелинейно. Конечно, есть подход к написанию ИЛ как первоначальное написание транскипции игры (т.е. полного ее прохождения со всеми возможными вариантами), но этим методом очень мало людей пользуются — занудно слишком, по-моему. И, вообще, когда я говорил об ошибках я имел в виду, что при компиляции (чего в Питоне нет) большая часть ошибок выясляется; а при написании игры в Питоне легко можно опечататься и игра запустится, но потом вылетет. Ошибку обнаружить можно, но нужно проходить игру снова и снова после исправления — "а не исправил-ли я чего ненужного". _Мне_ это не нравилось, но мириться с этим можно было.

Неактивен

0    0    #5
02.07.2005 17:06

roger
Участник
Зарегистрирован: 29.06.2005
Сообщений: 7

Re: Платформа на Пайтоне

А о каких ошибках ты говоришь? Синтаксические можно и в интерпретируемом языке сразу проверить (когда пишешь на пайтоне, этих ошибок к тому же объективно меньше, чем, скажем, когда на джаве или си++), а семантические они и компилятором не обнаруживаются. За счет гибкости пайтона может быть больше ошибок времени выполнения, однако вряд ли это будет определяющим. Да и ошибки времени выполнения возникают и в откомпилированных программах.

Неактивен

0    0    #6
02.07.2005 20:28

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Платформа на Пайтоне

roger написал:

А о каких ошибках ты говоришь? Синтаксические можно и в интерпретируемом языке сразу проверить (когда пишешь на пайтоне, этих ошибок к тому же объективно меньше, чем, скажем, когда на джаве или си++), а семантические они и компилятором не обнаруживаются. За счет гибкости пайтона может быть больше ошибок времени выполнения, однако вряд ли это будет определяющим. Да и ошибки времени выполнения возникают и в откомпилированных программах.

У меня частеньно бывали ошибки вроде: опечатки в названиях переменных, задавал неправильное количество аргументов функции, забывал где-то кавычку поставить или запятую — в большинстве случаем эти ошибки отловятся только при прохождении программы-игры через кусок данного кода. И от этой неприятной особенности никак нельзя избавиться. Приходилось не допускать ошибки — писать внимательно и постоянно прогонять через тесты. Питон мне очень нравится как ОО язык, но кое-что, по-моему, хорошо бы иметь возможность отключить.

Неактивен

0    0    #7
04.07.2005 09:34

roger
Участник
Зарегистрирован: 29.06.2005
Сообщений: 7

Re: Платформа на Пайтоне

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

Неактивен

0    0    #8
04.07.2005 09:42

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Платформа на Пайтоне

roger написал:

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

О таком извращенном методе я не подумал сразу. :-) Правда для него придется парсить весь исходник, а также библиотеки и иметь список встроенных в Питон переменных. Работки будь здоров.

roger написал:

А вот если недостаточное количество аргументов передал, а они опциональны - тут да...

Э-э-э... А разве в Питоне не все аргументы воспринимаются опционально? Т.е. их количество проверяется только после вызова функции. Или я ошибаюсь?

Неактивен

0    0    #9
04.07.2005 11:07

roger
Участник
Зарегистрирован: 29.06.2005
Сообщений: 7

Re: Платформа на Пайтоне

Технически выполнить это не так сложно - есть встроенная функция dir, которой в качестве аргумента передается объект (например, модуль), а она выдает список атрибутов объекта. Далее остается в цикле перебирать их и анализировать текст модуля; в простейшем случае, подсчитать количество вхождений каждого атрибута. Можно усовершенствовать модуль, например, пропуская при подсчете строки комментариев.
А насчет опциональных аргументов - опциональными являются лишь те, у которых задано значение по умолчанию.

Неактивен

0    0    #10
05.07.2005 08:43

roger
Участник
Зарегистрирован: 29.06.2005
Сообщений: 7

Re: Платформа на Пайтоне

Сел вчера за комп... Функцией dir() у меня это сделать не получилось, зато в документации нашел замечательный модуль inspect - думаю, надо порыться в нем.

Неактивен

0    0    #11
06.07.2005 10:09

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Платформа на Пайтоне

roger написал:

Сел вчера за комп... Функцией dir() у меня это сделать не получилось, зато в документации нашел замечательный модуль inspect - думаю, надо порыться в нем.

Ты уверен, что на это стоит тратить время? По крайней мере свяжись с WildWizard-ом, он тебе скажет о текущем состоянии проекта.

Кстати, а почему ты заинтересовался ИЛ на Питоне? RTADS (http://rtads.org/), например, пробовал? Если ты серьезно займешься Гидрой, могу выслать незаконченную игру — авось ты ее доделаешь. :-)

Неактивен

0    0    #12
07.07.2005 16:36

roger
Участник
Зарегистрирован: 29.06.2005
Сообщений: 7

Re: Платформа на Пайтоне

Просто сейчас я изучаю Пайтон и меня интересует ИЛ.
Вообще-то в попытках создать даже простенькую платформу есть несомненная польза - после того, как прочувствуешь все сложности, легче оценить готовый продукт и пользу той или иной его возможности.
Игру твою интересно было бы посмотреть, кинь, плиз на roger(at)usv_com_ua. Надо будет написать WildWizard'у, все никак не соберусь.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru