0
14
5 лет назад
Отредактирован Alex_Hell
0

» Unity / Сериализация объектов в C#

Вы понимаете, как работает ваша сериализация. И если будете ловить какие-то баги, то понимаете, как ее исправить, чего не скажешь о какой-то либе, начинку который вы не знаете
только в готовых решениях багов как правило почти нет, или очень редкие, и при желании можно выбрать либу-конкурентов без этих багов если их править не будут.. а свой велосипед надо самому поддерживать. в том числе и баги фиксить, и функционал добавлять - всякие подтипы полиморфные в списке (как Doc указывал, а я сказал что они уже реализованы) много чего еще из-коробки есть
  1. производительность там где нужна - можно юзать protobuf или иже с ними бинарные.. текстовая десериализация в/из json не будет самописная быстрее чем готовые либы json, за счет чего? рефлексию если убрать даже - есть генераторы кода, которые без рефлексии компилят, и при этом будет чуть быстрей, но руками такое городить - долго, я имею ввиду свой генератор кода, где будет вида
output.writeTag("health", health);
output.writeHierarchyOfObject("target", target); где target спец подтип, и в него тоже вручную сериалайзить
так вот руками написанное такое всмысле без генератора - будет с рефлекскией - и медленно, а без рефлексии нужен свой велосипед - жесть будет
.. про генератор я имел ввиду что по CLASS декларации само сгенерит код того вида выше с writeTag которые руками не надо писать - и будет быстрее чем любой самописный елосипед, просто это доп требование - если надо - найдете сериалайзер даже json такой
\ protobuf - уже юзает такие же генераторы, без рефлексии
0
14
5 лет назад
0

» Unity / Сериализация объектов в C#

Не мог пройти мимо, не ответив на заблуждения вышеотписавшихся.
  1. сериализация вручную пилится в редких случаях, я за свои 14 лет опыта программирования пришел в выводу что юзать готовые решения - лучше, в 1ю очередь изза их сторонней поддержки и правки багов, плюс функицонала больше чем вы сами навелосипедите
  2. основная задача при сериализации с любыми решениями хоть готовыми хоть вашими - описать данные, пишите C# классы, и когда структуры классов и иераррхии вложенности усложняются - как раз выгоднее писать нормальные C# классы и отдать на откуп системе их перевод в текст JSON/XML или даж бинарный, а не самому писать как каждый подтип будет преобразовываться
  3. нет проблем сохранять полиморфные объекты в JSON, юзайте JsonDotNet с опцией чтобы писало $type при сериализации и соответсвенно нужный подкласс инстанциируется при десериализации
  4. при текстовом формате сериализации, что JSON что XML, не столь важен выбор, когда речь о читаемости итоговых сериализованных файлов - это редкое действие, к тому же открываете в текст редакторе, и при сериализации включаете PrettyPrint чтобы на 1 строке был 1 атрибут, а не все в 1 строку
0
14
10 лет назад
0

» Peon Defender / Peon Defender - Релиз играбельной версии

Я застрял внутри башни когда ее поставил.. может мой пеон откинулся в прямо на башню, когда он откдывается при стройке зданий (и враги тож).
скрин prntscr.com/4lhgcl
а еще почему нет ограничения FPS, у меня почти 300, и грузит ЦП ))
0
14
10 лет назад
0

» Peon Defender / Главная страница

А когда поиграть можно будет? Уже год почти как тут тема со скриншотами и видео.
2
14
11 лет назад
2

» Peon Defender / Главная страница

Классно, хочу сыграть
0
14
12 лет назад
Отредактирован Alex_Hell
0

» WarCraft 3 / Систематизация данных в РО

Можно сделать столько категорий:
  1. Стандартные - Альянс - Сражение - Войска
  2. Стандартные - Альянс - Сражение - Герои
  3. Стандартные - Альянс - Сражение - Особые Войска
  4. Стандартные - Альянс - Кампания - Войска
  5. Стандартные - Альянс - Кампания - Герои
  6. Стандартные - Альянс - Кампания - Особые Войска
7..12) Орда
13..18) Нежить
19..24) Ночные Эльфы
25..30) Наги
И еще 31-60) Для нестандартных
+ суффикс редактора = очень много.
Хотя например для своей карты я сделал так: имена юнитов / заклинаний начинаются на категорию а дальше идет имя самого юнита. Например:
Защитные - Воин
Защитные - Лучник
Нападающие - Воин
Нападающие - Лучник
А по изменению редактора...
Теоретически тебе надо взять исходники редактора (JNGP например) и написать плагин/модуль который:
  1. меняет структуру файла карты - новые папки добавляет (открываться будет только в твоем редакторе)
  2. добавляет на UI соответствующие кнопки / окошки ввода
Либо вариация предыдущего - поменять алгоритм сортировки в редакторе - чтобы сортировалось в первую очередь по суффиксу редактора, а потом уже по имени. Намного проще, если иметь исходник.
У них похожие здачи были (с дополнением JNGP):
погляди Grimoire
0
14
12 лет назад
Отредактирован Alex_Hell
0

» WarCraft 3 / Прелоад

В War3 model editor есть меню Extras > Loading Screen Creator, подробней в help. После создания модели и текстуры экспортиш в карту, в настройках карты - Сценарий > Экран загрузки - ставиш "Файл импорта" свой файл. Кстати разрешение картинки должно быть под разрешение монитора (проверял с картинкой 1024х768 было норм на моем мониторе 1440х900), потом modelEditor его сжимает до 512x512 (степень двойки для всех текстур), но в игре оно опять разожмется под размер созданной картинки, так что на разных разрешениях экрана будет по разному (растягиваться). Еще ссылка world-editor-tutorials.thehelper.net/loadscreen.php
0
14
12 лет назад
Отредактирован Alex_Hell
0

» WarCraft 3 / Накопитель энергии

На вид круто. Пора бы уже сделать какую-нить карту про демонов.
3
14
12 лет назад
3

» WarCraft 3 / MapLoader v2.0.0

Полагаю, нужно сделать чтобы прога автоматически брала список сайтов (url из файла) и проводила поиск карт по ним, и заливала юзерскую карту также на все сразу. Хотя смысла такой проги мало.
1
14
12 лет назад
1

» Battle Mages / Главная страница

Интересный проект. Я сам программист игровой, дружу с C#, C++, клиент-серв, но на Unity пока ничего не успел сделать, могу разобраться. Идея типа Spell Craft? Хотел бы подробнее узнать особенности, можно в личку.
Кстати, я не только кодер, проектировать тоже могу помоч.
0
14
12 лет назад
0

» WarCraft 3 / Update Item System 1.1

я не выкладывал. кто-то за меня это сделал))
0
14
14 лет назад
0

» WarCraft 3 / Работы Redykt"a

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

» WarCraft 3 / Повседневные приёмы в программировании варкрафта

автор, статья норм..
нашел ошибку: в листинге про Аттачи в методе
static UNIT GetIndex(unit u) {
return GetUnitUserData(u)
}
GetUnitUserData() возвращает int, а не UNIT, нужно сделать так:
return All[GetUnitUserData(u)]

хотя если вернуться к той же инкапсуляции, никакого метода GetIndex() не должно быть, т.к. незачем пользователю структуры знать индекс юнита во внутреннем массиве...
лучше сделать метод:
unit UNIT::GetAux() { return .aux }

а из внешней среды вызывать так:
void DetachUnitFromUnit(unit mainUnit) {
mainUnit.Delete()
}
unit GetAttachedUnit(unit mainUnit) {
return mainUnit.GetAux()
}
так что заморочки с SetUnitUserData / GetUnitUserData не нужны, т.к. любой экземпляр структуры имеет поле index, где находится его индекс в статическом массиве All.
2
14
14 лет назад
2

» WarCraft 3 / Передача и хранение данных в варкрафте

Че-то я не очень понял, что-же это за таблица хендлов такая и нафига она нужна? И что в этой таблице является ключом (Key), а что значением (Value)? Я то думал, что Handle - обычный указатель (как в СИ). И когда мы создаем Unit, динамически выделяется память под этого юнита, и нам возвращается указатель на эту память, но больше она никуда не сохраняется ни в какую таблицу хендлов. Соответственно, когда удаляем юнита, нужно сначала вызвать DeleteUnit(указатель на юнита) - это удалит структуру данных (Unit) по переданному указателю. Все функции DeleteXXX(handle h) удаляют объект производного типа после простого приведения handle>>XXX, как в СИ++: {XXX * a = (XXX *) h; delete a; }, а потом, нужно обнулить этот указатель h = null, просто чтобы случайно туда ниче не записать, ведь указатель не действителен. Или чето по-другому?
0
14
17 лет назад
0

» WarCraft 3 / Easy Button Creator или очень простое и быстрое создание иконок.

Easy Button Creator не закачивается! :(