Битва за Веснот WML – I
серверах, я решил, что время сотворить что-нибудь свое.
Эта стратегия не из тех, в какие играют массы. Но точно одна из самых известных open-source игр. Лично у меня она оставляет двоякое впечатление – из-за странной прихоти девелоперов, графика в игре неуместно весело-мультяшная, затянутые партии невообразимо скучны; но в то же время, если повезет с соперником, можно получить динамичную напряженную игру, и пообщаться с людьми со всего мира. В любом случае, попробовав одиночные кампании (в некоторых сложность просто мазохистская) и поиграв достаточно на официальных серверах (где наблюдается засилье школоты и прочих неадекватов), я решил, что время сотворить что-нибудь свое. Разработчики предоставляют WML, гибкий скриптово-разметочный язык, что позволяет, к примеру, на движке Веснота делать Tower defence или там RPG. Само собой, граблей там хватает, так что представлю что-то вроде краткого руководства по созданию сценария.
Я создаю сценарий под стабильную версию 1.8, он должен быть полностью совместим с грядущей 1.9. Итак, для начала в редакторе создается карта. Тут никаких подсказок не даю – редактор прост, как три копейки, и сделать карту среднего размера (40х40) можно за 15-20 минут. Моя карта, к примеру, выглядит примерно так:
На карте возможна только базовая разметка ландшафта и расстановка деревень, остальное кодится вручную.
Мазохистам на заметку: Карты кстати тоже можно рисовать в текстовом редакторе, если выучить коды ландшафта (коих немного). Можно использовать недавно вышедший IDE, но у меня до него не дошли руки, и вообще он только под 1.9. Если не разводить гавнокод, вполне реально справится и без подсветки синтаксиса. Первое что нужно сделать – скачать шаблонную кампанию, которая будет редактироваться, официально это A Simple Campaign (хотя я просто отсортировал все кампании по размеру, и скачал одну из самых легких). Для начала открываем _main.cfg в корневой директории, и убеждаемся, что там прописано:
#textdomain wesnoth-Campaign_name [textdomain] name="wesnoth-Campaign_name" path="data/add-ons/Campaign_name/translations" [/textdomain] Прописать домен нужно, чтобы определять создаваемых юнитов и прочий контент только в рамках своей кампании.
[campaign] id=CAMPAIGN_NAME name= _ "Campaign_name" icon="units/human-loyalists/siegetrooper.png" define=CAMPAIGN_NAME description= _ "Blah-blah-blah. <b>by Author</b>" first_scenario=First [/campaign] Тег [campaign] самый главный в этом файле. Атрибут icon – иконка рядом с названием кампании; define используется для всяких там проверок инициализации кампании; description определяет описание кампании в меню игры, как видите можно использовать HTML-разметку для стилизации, и даже вставлять изображения; first_scenario – id сценария, который будет первым.
#ifdef CAMPAIGN_NAME {~add-ons/Campaign_name/scenarios/}
[+units] {~add-ons/Campaign_name/units/} [/units]
#endif Указание директории со сценариями – обязательно. В свою кампанию я добавил также новых юнитов, и указал путь к ним.
Я решил разделить материал на как минимум 3 части. Первая (вводная) – эта, вторая – создание, собственно, файла сценария, ну и третья – всякие дополнительные аспекты. По случаю каникул думаю выпустить остаток в скором времени. Надеюсь, кого-нибудь это побудит попробовать игру, или даже создать свою кампанию/сценарий. Ибо сейчас хороших поделок преступно мало. Удачи. Вернутся Вам будет интересно:
|
- Публикации
Итак, у вас имеется свой собственный форум, но его никто не посещает? Мы готовы помочь вам справиться с этой нелегкой проблемой.
Данная статья в основном рассчитана на тех, кто самостоятельно занимается продвижением своего проекта.
Проклял все настройки кодировок, проклял DirectAdmin и еле-еле нашел то место где располагается и задается общий пароль для ...
Твиттер уже давно стал из нового web 2. 0 сервиса рекламной площадкой с огромным количеством потенциальных пользователей ...
Самое время кратко описать, чем нам придется заниматься. Прежде всего нужно понять, что блог ты будешь делать для получения ...
Долго не знал с чего начать данную статью. Статья что-то типа мыслей вслух и философии.