Кто что может сказать о русском (и не только) сабже для IF? Видел в инете англоязычные PUB и BUS. Вроде бы Гидру тоже пытались создать на Пайтоне? Интересно было бы услышать любую информацию на эту тему. Просьба не отсылать к платформам, написанных на других языках, интересуют разработки конкретно на Пайтоне - мнения, встретившиеся трудности и т.п.
Неактивен
roger написал:
Кто что может сказать о русском (и не только) сабже для IF? Видел в инете англоязычные PUB и BUS. Вроде бы Гидру тоже пытались создать на Пайтоне? Интересно было бы услышать любую информацию на эту тему.
Да, пару лет назад WildWizard создавал платформу Hydra. Я немного ему помогол, поэтому более-менее знаю подробности. Система была создана (в том числе и стандартные библиотеки) и работала. Описание к Гидре было довольно скромное и для того чтобы разобраться нужно было вначале выучить язык Питон (который, впрочем, не сложнее Бейсика), а потом покопаться в исходниках библиотеки, чтобы понять что как действует. Т.к. я отвалился от проекта, последние новости о системе можешь узнать от WildWizard.
roger написал:
Просьба не отсылать к платформам, написанных на других языках, интересуют разработки конкретно на Пайтоне - мнения, встретившиеся трудности и т.п.
Питон — замечательный язык, на нем очень много можно сделать. Стандартные библиотеки можно полностью изменить. Проблемы возникли с тем, что полностью отсутсвовал интерес к платформе у потенциальных авторов игр. Я начинал писать игру, но почему-то охладел.
Была, правда, одна техническая проблема, которую нельзя обойти т.к. это важнейшая особенность Питона: невозножность компилирования — Питон производит интерпретацию кода. Т.о. многие простейшие опечатки в создаваемой игре, нельзя было обнаружить до того, пока кусок кода не будет исполнен. Это очень раздражало т.к. приходилось часто прогонять игру по всему циклу.
Неактивен
roger написал:
Стас, спасибо за ответ. А как можно связаться с WildWizard'ом? В разделе "участники/все" мне всего несколько имен выдало.
Хм... У меня его отлично видно. Вот: [user=1963]
roger написал:
Хотелось бы взглянуть на последнюю версию гидры и узнать, под какой лицензией она распространяется.
Последняя версия, естественно, у WildWizard-а. Я делал стороннюю программу, которая облегчала процесс запуска игры и предоставляла какой-никакой интерфейс в игре. Если у WildWizard-а ее нет, могу выслать.
roger написал:
На счет отлавливания ошибок - лучше еще до написания кода игры писать тестирующий код. Да и вообще, тщательное альфа/бета тестирование и для компилированных программ нужно.
Игры, к сожалению, пишутся нелинейно. Конечно, есть подход к написанию ИЛ как первоначальное написание транскипции игры (т.е. полного ее прохождения со всеми возможными вариантами), но этим методом очень мало людей пользуются — занудно слишком, по-моему. И, вообще, когда я говорил об ошибках я имел в виду, что при компиляции (чего в Питоне нет) большая часть ошибок выясляется; а при написании игры в Питоне легко можно опечататься и игра запустится, но потом вылетет. Ошибку обнаружить можно, но нужно проходить игру снова и снова после исправления — "а не исправил-ли я чего ненужного". _Мне_ это не нравилось, но мириться с этим можно было.
Неактивен
roger написал:
А о каких ошибках ты говоришь? Синтаксические можно и в интерпретируемом языке сразу проверить (когда пишешь на пайтоне, этих ошибок к тому же объективно меньше, чем, скажем, когда на джаве или си++), а семантические они и компилятором не обнаруживаются. За счет гибкости пайтона может быть больше ошибок времени выполнения, однако вряд ли это будет определяющим. Да и ошибки времени выполнения возникают и в откомпилированных программах.
У меня частеньно бывали ошибки вроде: опечатки в названиях переменных, задавал неправильное количество аргументов функции, забывал где-то кавычку поставить или запятую — в большинстве случаем эти ошибки отловятся только при прохождении программы-игры через кусок данного кода. И от этой неприятной особенности никак нельзя избавиться. Приходилось не допускать ошибки — писать внимательно и постоянно прогонять через тесты. Питон мне очень нравится как ОО язык, но кое-что, по-моему, хорошо бы иметь возможность отключить.
Неактивен
roger написал:
Проблема с опечаткой в имени переменной решается достаточно просто - можно подсчитать, сколько раз каждая переменная встречается в тексте и вывести все переменные, которые встречаются только один раз - это либо опечатка, либо о переменной забыли. Модуль, который бы выполнял подобное тестирование несложно написать, хотя, думаю, такого добра уже полно в инете.
О таком извращенном методе я не подумал сразу. :-) Правда для него придется парсить весь исходник, а также библиотеки и иметь список встроенных в Питон переменных. Работки будь здоров.
roger написал:
А вот если недостаточное количество аргументов передал, а они опциональны - тут да...
Э-э-э... А разве в Питоне не все аргументы воспринимаются опционально? Т.е. их количество проверяется только после вызова функции. Или я ошибаюсь?
Неактивен
roger написал:
Сел вчера за комп... Функцией dir() у меня это сделать не получилось, зато в документации нашел замечательный модуль inspect - думаю, надо порыться в нем.
Ты уверен, что на это стоит тратить время? По крайней мере свяжись с WildWizard-ом, он тебе скажет о текущем состоянии проекта.
Кстати, а почему ты заинтересовался ИЛ на Питоне? RTADS (http://rtads.org/), например, пробовал? Если ты серьезно займешься Гидрой, могу выслать незаконченную игру — авось ты ее доделаешь. :-)
Неактивен