Показано с 1 по 20 из 70

Тема: Уроки SDK. Поэтапно с начала.

Древовидный режим

  1. #21
    1) Потому что GC.getNEW_PARAMETR() возвращает число, хранящееся в переменной. А GC.getDefineINT("NEW_PARAMETR") сначала ищет по названию нужную переменную, а только потом возвращает число.
    Когда я начинал осваивать SDK, то сделал чтоб юниты по диагоналям передвигались не так далеко как по вертикалям и горизонталям, и сделал я это через GC.getDefineINT("NEW_PARAMETR"). Игроки, которые играли в мой мод, сразу стали жаловатся что ИИ стал дольше думать. Когда я сделал все через GC.getNEW_PARAMETR(), жалобы исчезли.

    2) Расчет лучшего тайла для города делается в конце каждого хода игроков. Я сделал так чтоб этот алгоритм выполнялся перед ходом поселенца. ИИ запоминает что выбрал лучший тайл, и если не произошли события, которые могут повлиять на выбор, то алгоритм не выполняется.
    Возмжность апгредить юнита в другого проверяется через рекурсивную функцию для каждого юнита каждый ход. Я этот алгоритм вызываю при запуске мода для каждого юнита и сохраняю результат в единственный битовый масив. Этат алгоритм настолько медленный, что мой мод стал долго запускаться. Поэтому я этот алгоритм сделал многопоточным. При запуске моего мода можно посмотреть загрузку процессора, если загрузились все ядра - значит выполняется этот алгоритм.
    Многие расчеты я тоже делаю при запуске мода или игры, и уже в самой игре использую заместь алгоритмов заранее вычесленый результат.
    Есть еще метод замены ветвлений (if else) на математические выражения (современные процессоры не любят ветвления).
    Например
    if (x > 0) {y += x;}
    заменяется на
    y += x * (x > 0);.
    Правда, код после этого делается плохо читаемым, поэтому оптимизацию ветвлений я всегда сопровождаю коментариями оригинального кода
    y += x * (x > 0);//if (x > 0) {y += x;}.

    А в каком файле (и название функции) находится альтернатива Pathfinding в моде Caveman2Cosmos? Хочу себе такое зделать.
    продвинь это сообщение в соцсеть:  
    Последний раз редактировалось NeseryozniyVET; 31.08.2013 в 20:31.
    Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
    Мой мод

Похожие темы

  1. Тайлы с ресами позначены с начала игры?
    от Taras_UA в разделе Civ5 - Игровые вопросы
    Ответов: 1
    Новое: 05.10.2010, 18:18
  2. Тактические уроки двух последних войн Ирака для общевойскового командира
    от Гость в разделе Разговоры обо всём, кроме Цивилизации
    Ответов: 2
    Новое: 18.03.2009, 16:57
  3. Уроки французского
    от BuDDaH в разделе Палаты команды Монархия MTDG2
    Ответов: 5
    Новое: 01.02.2007, 14:21
  4. Уроки C++
    от vpadlo в разделе Civ4 - Модная Цивилизация
    Ответов: 13
    Новое: 21.01.2007, 00:58
  5. Глючит 1.61 рус: с начала игры остается 10 ходов!
    от Mityay в разделе Civ4 - Технические вопросы
    Ответов: 1
    Новое: 17.07.2006, 13:51

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru

free counters