Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Город Мастеров _ Шарды рунета _ Разработка шарда

Автор: virusman Dec 15 2009, 18:11

Давно хотел написать об инструментах, которые мы используем в разработке Axistown 2. В некоторой степени это промежуточный итог того, чем я занимался в NWN последние несколько лет.

1. NWNX2
Штука, бесценная для любого шарда. С помощью NWNX можно сделать практически всё. Вот список основных плагинов:


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


2. Сборщик хакпака
Когда количество единичных хакпаков, из которых собирается общий шардовый хакпак, достигло сотни - возникла необходимость автоматизировать сборку и сделать её более гибкой, чтобы было удобнее изменять содержимое.
Информация о каждом хаке занесена в базу:

А все файлы, соответственно, распределены по папкам:

Внутри файлы тоже разложены по категориям для удобства:

Папка 501_master содержит 2da, itp и set файлы, общие для всех.

Перед сборкой запускается проверка всех ресурсов на повторения и на превышение ресурсов в файлах (лимит по ресурсам на каждый .hak-файл - 16384).
Наконец, все эти файлы из папок компилируются в набор .hak-файлов: один с шаблонами для палитры, остальные - в соответствии с тем, как всё распределено в БД.
http://img682.imageshack.us/i/hakcompiler.jpg/

Автор: Melshin Dec 16 2009, 07:14

Еще бы NWNx 4 все это умел... *Завидует*

Автор: Laajin Oct 16 2010, 18:41

Предпочтение все же в пользу линукса почему то)

Автор: virusman Oct 24 2010, 11:05

Спроектировал архитектуру системы Axistown Persistency System. Это система, которая дает каждому объекту в модуле (кроме статик плейсов) уникальный идентификатор и возможность сохранять объект и держать на нем переменные в БД. После рестарта все объекты инициализируются информацией из БД, соответственно.
Это дает возможность сохранять изменения, произошедшие с объектами: содержимое магазинов, сундуков, убитые НПС, предметы на земле и лутбэги, которые не пропадают с рестартом и т.д.
Единственный минус такой глобальной системы - то, что при полном сохранении объекты уже загружаются из БД, а не из модуля, и традиционное обновление модуля сработает не всегда. Но я думаю это решить автоматической перепаковкой модуля последними объектами из БД.

Автор: virusman Nov 13 2011, 10:55

Не все вспоминают о том, что в кастомную палитру можно добавлять свои разделы, а зря. Это может сильно упростить жизнь мапперам, ДМам и разработчикам.

 

Автор: Richard Dec 12 2011, 17:05

Привет) Приятно видеть старую гвардию еще при деле)))
Virusman, над чем ныне трудишься?

Автор: Talarasha Dec 12 2011, 23:06

Цитата
Не все вспоминают о том, что в кастомную палитру можно добавлять свои разделы, а зря. Это может сильно упростить жизнь мапперам, ДМам и разработчикам.

И в самом деле полезная штука, я как-то увидел в модулях оригинала такое, тоже захотел, но не смог сделать. Наверное, надо бы добавить в http://www.city-of-masters.ru/forums/index.php?showtopic=867 по тулсету ссылку на http://www.tbotr.net/modules.php?mod=Forums&req=posts&topicid=82 по этой теме.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)