Пятница, 29 Ноября 2024, 10:55

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
SlamerДата: Воскресенье, 23 Августа 2020, 12:31 | Сообщение # 1 | Тема: [2D] Металлоломные войны (RTS)
был не раз
Сейчас нет на сайте
Спасибо за отзыв. Но на рекламу я врятли буду тратить деньги, я больше игру делаю для себя, а не для коммерческого успеха, так что даже если в неё будет играть 10 человек по всему миру, я не расстроюсь. А графику возможно куплю в будущем.
SlamerДата: Среда, 19 Августа 2020, 18:54 | Сообщение # 2 | Тема: [2D] Металлоломные войны (RTS)
был не раз
Сейчас нет на сайте
Я извиняюсь, что пропал на 7 лет, дела были :D Вообщем, как вы наверное поняли, игру я почти доделал, но дропнул. Но всё не прошло зря, на основе этих наработок, примерно пол года назад я начал делать новую игру на Unity, которую планирую выложить в Steam. Если кому-то интересно, можно вступить в группу в вк и следить за разработкой - https://vk.com/scraplers
А так же можно посмотреть трейлер новой игры: Trailer


Сообщение отредактировал Slamer - Среда, 19 Августа 2020, 18:58
SlamerДата: Пятница, 29 Марта 2013, 00:45 | Сообщение # 3 | Тема: [2D] Металлоломные войны (RTS)
был не раз
Сейчас нет на сайте
Цитата (monstriozo)
1) Убери (или сделай потише звуки стрельбы и взрывов (Я когда видео смотрел, думал кирпичи наложу)
2) Все же надо улучшить графику...
3) Нужен мультиплеер)))


1) Да, эта проблема бросилась в уши именно после этого видео) звук вроде как убавил.
2) Ну, тут конечно проблема в том, что я не всегда и сам знаю, что и как надо нарисовать(а рисую плохо, как видите), поэтому с художниками пока не связывался, но по ходу дела что-нибудь придумаю. Впринцыпе, я уже попросил одного человека перерисовать пару декораций.
3) В планах он есть, а вот как получится на практике, пока не знаю.

П.С. Демки нет)

Добавлено (29.03.2013, 00:45)
---------------------------------------------
Несколько новых скриншотов для убер фанатов 8)

SlamerДата: Воскресенье, 24 Марта 2013, 02:59 | Сообщение # 4 | Тема: [2D] Metal & Glory [TDS]
был не раз
Сейчас нет на сайте
А чё всё не на русском?
SlamerДата: Вторник, 05 Февраля 2013, 01:03 | Сообщение # 5 | Тема: [2D] Металлоломные войны (RTS)
был не раз
Сейчас нет на сайте
Название: Металлоломные войны
Жанр: RTS
Пространство: 2D
Движок игры: HGE
Описание: Постапокалиптическая стратегия с элементами рпг. Игроку предстоит играть за один из воинственных кланов, борящихся за ресурсы и территорию.
Геймплейное видео:

Пара скринов:


Сообщение отредактировал Slamer - Понедельник, 24 Июня 2013, 21:25
SlamerДата: Понедельник, 26 Ноября 2012, 23:46 | Сообщение # 6 | Тема: Логика RTS (Стратегий) игр
был не раз
Сейчас нет на сайте
Quote (MR_Borg)
Может вы испозьзуете эффекты?

Нет, эффектов нет, возможно что-то сделано коряво и не по нормальному, но я пока не выявил.
Quote (Archido)
Как-то так вообщем.

Понятно, будем делать, спасибо!

Добавлено (26.11.2012, 23:46)
---------------------------------------------
Привет народ, снова я и у меня есть очередной вопрос. Может кто-нибудь из знающих С++ рассказать или дать ссылку почитать, какие вообще существуют принципы оптимизации кода? Дело в том, что я перелопатил код своей игры, сделал его как мне советовали выше, выкинул много лишнего, но кое где пришлось добавить. Результат стал не лучше, а даже чуть хуже в плане производительности, но зато теперь намного легче ориентироваться в коде и не придёться заниматься копипастой при создании новых юнитов.


Сообщение отредактировал Slamer - Среда, 28 Ноября 2012, 21:17
SlamerДата: Четверг, 25 Октября 2012, 23:40 | Сообщение # 7 | Тема: Логика RTS (Стратегий) игр
был не раз
Сейчас нет на сайте
daun, это всё понятно) меня как раз и интересует способ перебора юнитов, без особых затрат и правильная реализация классов для этого дела.
SlamerДата: Четверг, 25 Октября 2012, 22:37 | Сообщение # 8 | Тема: Логика RTS (Стратегий) игр
был не раз
Сейчас нет на сайте
Вообщем, попробовал сделать таймер, не помогло: во первых юниты стали тупить и двигаться рывками, а во вторых тормоза не исчезли, как я и предполагал, начало тормозить рывками. Провёл ещё несколько тестов, игра смогла выдержать без тормозов 300 вражеских юнитов-троллей(это те, что зелёные), а вот на союзных юнитах, на танках или на пулемётчиках начинает тормозить уже при 100 единицах. Думаю, без квадратов всё же тут не обойтись, только вот как их сделать, пока смутно представляю.
Меня интересует сейчас такой вопрос: Например я сделал класс unit, который определяет общие для всех юнитов методы и характеристики, далее я создаю два класса-наследника tank и trooper. Каким образом мне сделать проверку поведения юнитов на карте, чтобы действовало для всех наследников? Если я создам вектор, хранящий класс unit, я смогу помещать в него экземпляр tank и trooper?
Извините если вопросы нубские, стаж программирования у меня менее 1 года.


Сообщение отредактировал Slamer - Четверг, 25 Октября 2012, 22:38
SlamerДата: Вторник, 23 Октября 2012, 15:40 | Сообщение # 9 | Тема: Логика RTS (Стратегий) игр
был не раз
Сейчас нет на сайте
Quote (MR_Borg)
Чет не очень понятно, скиньте хоть кусок кода.


Ну примерно вот так, куски кода из разных частей. Пока ещё не успел переделать массивы в вектора, поэтому не обращайте на это внимания.
Code
vector<tank1> tankV1x1; // Массив танков
hgeAnimation*       spr[troopLimit]; // Массив спрайтов танка
hgeAnimation*       sprB[troopLimit]; // Массив спрайтов башен танка
hgeAnimation*       sprP[troopLimit]; // Массив спрайтов снаряда танка

bool RenderFunc()
{
   // Отображение танков (Рендер)
   for (int j=0;j<troopLimit;j++)
   {
    // Танк
    spr[j]->RenderEx(tankV1x1[j].x+camX,tankV1x1[j].y+camY,tankV1x1[j].rot);
    sprP[j]->Render(tankV1x1[j].xP+camX,tankV1x1[j].yP+camY);
    sprB[j]->RenderEx(tankV1x1[j].x+camX,tankV1x1[j].y+camY,tankV1x1[j].rotB);
    // Обновление анимации
    spr[j]->Update(dt);
    sprB[j]->Update(dt);
    sprP[j]->Update(dt);
   }
}

bool FrameFunc()
{
         // Проверка танков
   for (int i=0;i<tankV1x1.size();i++)
   {
              // Взрыв танка
    if(tankV1x1[i].hp<0 && tankV1x1[i].activ)
    {
     tankV1x1[i].activ=0;
     spr[i]->Play();   // Анимация взрыва танка
     sprB[i]->Play();
    }
          }
}

Объекты класса "Танк" хранятся в tankV1x1, а рисунки танка в spr[troopLimit]. Сами по себе рисунок и объект никак не связаны, просто сделано так, что если уничтожается танк под номером 2, то и анимация проигрывается у спрайта, который лежит в массиве под номером 2.
Вообщем не парьтесь по этому поводу, пока это вроде бы не критично.
П.С. И спасибо за советы.


Сообщение отредактировал Slamer - Вторник, 23 Октября 2012, 15:40
SlamerДата: Вторник, 23 Октября 2012, 14:26 | Сообщение # 10 | Тема: Логика RTS (Стратегий) игр
был не раз
Сейчас нет на сайте
Quote (MR_Borg)
Есть и другой способ повысить производительность, скорее всего лагает не из-за этой проверки(в моей игре 200-300 обьектов могут одновременно взаимодействовать друг с другом). В Вашем же случае можно сделать таймер, например каждые 5 секунд делать проверку на наличие врагов,припятствий и пр.
P.S и зачем делать 3 вектора когда можно в 1?


Надо будет попробовать сделать таймер. Была такая идея, но я подумал что это просто приведёт к тормозам через каждые 5 секунд.
3 вектора сделаны для того, чтобы хранить в одном спрайты корпуса танка, в другом спрайт башни, в третьем, спрайт пули. Проблема ещё в том, что сам по себе спрайт никак не связан с объектом танка и чтобы распознавать какой спрайт принадлежит какому объекту, я просто храню их в определённом порядке не перемешивая. В противном случае будет уничтожаться один танк, а анимация взрыва корпуса и башни может проигрываться совершенно у других танков.

Quote (Нохчи)
Slamer, есть ли уверенность в том, что производительность падает именно из-за этой проверки?


Ещё + к этому придётся делать проверку каждой зоны на нахождение в ней каждого юнита, каждой декорации и т.д. и я боюсь как бы это не сделало ещё хуже.
SlamerДата: Вторник, 23 Октября 2012, 02:24 | Сообщение # 11 | Тема: Логика RTS (Стратегий) игр
был не раз
Сейчас нет на сайте
Привет всем игроделам! Я тут новенький, долго не решался зарегестрироваться, но ситуация вынудила обратиться за помощью.
Примерно месяца два назад открыл для себя 2D движок - HGE. Решил возродить почти забытый жанр - RTS и попробовать сделать игру в этом стиле на С++. Сначало вроде бы всё шло отлично, но недавно столкнулся с проблемой: при помещении на карту примерно около 100 боевых юнитов, игра начинает тормозить, и чем больше появляется юнитов, тем соответственно болие дикие тормоза. Вроде бы, проблема мне ясна - в игре идёт проверка каждого юнита на нахождение рядом с ним врагов или препятствий примерно таким образом:
Code

      for (int i=0;i<tankV1x1.size();i++)
      {
                // Проверка на препятсвия для движения
       // С союзными танками
              for(int st=0; st<tankV1x1.size(); st++)
              { ... }
                     // С декорациями
              for(int st=0; st<dec1Limit; st++)
              { ... }
       // С вражескими танками
       for(int st=0; st<tankEnV1x1.size(); st++)
       { ... }
             }

То есть, идёт перебор, для каждого союзного танка идёт проверка каждой декорации и каждого врага, такая же проверка идёт и для врагов. На форуме HGE мне советовали разбить карту на квадраты, в эти квадраты помещать объекты и делать проверку только внутри квадрата. Идея не плохая, но при попытки реализовать её, пришёл к тому, что если, например я разделю карту на 100 квадратов, то для проверки лишь одного вида юнита (например танка) мне придётся создать 100 хранилищ для союзных танков, 100 хранилищ для вражеских танков, и ещё по 300 хранилищ для спрайтов танка. Итого 800 динамических массивов только на одни лишь танки.

Очевидно что такой метод не годиться, так вот вопрос: каким образом можно реализовать проверку для большого количества объектов и при этом иметь нормальную производительность?
И вот, выкладываю то, что имеется на данный момент, может кому интересно: Видео игры


Сообщение отредактировал Slamer - Вторник, 23 Октября 2012, 02:31
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг