Конференция "Игры" » Metal & Fire [Delphi, Windows]
 
  • Sapersky (11.12.06 14:35) [40]
    Не знаю насчет хухры-мухры, но те же Вангеры это делают довольно резво, а рассчитаны на довольно древние компы

    ИМХО, Вангеры ничего не поворачивают, они сразу рисуют картинку повёрнутой (воксели). К тому же там 8 bpp.
    Для движка, который ориентирован на аппаратное ускорение - лучше, конечно, поворачивать через 3D. Если надо - могу выдать совместимый с DDraw (движок ведь сделан на DDraw?) пример.

    Насчёт орфографических ошибок не помню, но вот логическая: "Дальнобойность - 12 метров"; тогда уж "клеток", "тайлов" или ещё каких-нибудь у.е.
  • Vga © (11.12.06 14:47) [41]
    > [40] Sapersky   (11.12.06 14:35)

    На DelphiX он сделан.
  • boalse © (12.12.06 05:57) [42]

    > выдать совместимый с DDraw (движок ведь сделан на DDraw?
    > ) пример


    Интересно было бы посмотреть пример в котором шустро вертится здоровенная картинка, не важно на чем этот пример написан.

    А игра да, на DelphiX сделана, вот такой вот я извращенец и мазохист :)
  • antonn © (12.12.06 11:29) [43]
    boalse ©   (12.12.06 5:57) [42]
    зачем двигать всю картинку 1024*768(ну или сколько там)? оптимизация и хитрость рулят:)
    при загрузке игры создаем массивчик (можно для каждого тайла, что должен будет повернуться) в который кидаем указатели от повернутых изображений тайла на 10 градусов (20, 30, 40 и тд). При отрисовке сцены в зависимости от укла поворота мира рисуем нужный тайл из массивчика у которого угол поворота более соответсвует углу мира.
    Конечно будет дискретность поворота - дато скорость почти не упадет, а загрузка игры будет как у солидной игры - не долго, но с прогрессбаром:) (а то некоторые для понта специально делают "медленную" загрузку - ненавижу). Я для в одной работе делал 48 изображений каждого спрайта кораблика, при динамике не очень то и заметно, что кораблик не в реалтайм поворачивается. В итоге все довольно быстро работает, не смотря на то, что GDI выводило картинку:)
    ЗЫ Канвас - рулез:)
  • Beavercrazy (12.12.06 12:11) [44]
    Аффтору игры респект и зачет. Управлять правда неудобно, но очевидно, что вложено много творческих сил и умений. Уважуха короче!
  • boalse © (12.12.06 12:18) [45]
    Знаю я такую хитрость, при старте игры идёт процесс кэширования, это поворачивается всё, что поворачивается (танки, пули и т.п), ну и загоняется в массив. Это длится достаточно долго (30 сек где-то). Карта будет поворачиваться ещё дольше. Плюс к этому, во время игры на карте отрисовывается "мусор" - гильзы взякие, осколки, следы от гусениц. Не охото отот мусор тоже держать в массиве и каждый раз отрисовывать. Ещё его можно отрисовывать на каждый повёрнутый тайл карты, но это будет в много раз медленнее, чем сейчас. Я уже боюсь представить сколько памяти понадобится на то, чтобы запомнить повернутую карту. Максимальный её размер 2500х2500 пикселей.
  • Vga © (12.12.06 13:27) [46]
    > [45] boalse ©   (12.12.06 12:18)

    Переходи на OpenGL :) Проблем с поворотом не будет (зато конечно переписывать графический двиг практически с нуля...)
  • Sapersky (12.12.06 13:45) [47]
    http://slil.ru/23558206

    Картинка там не шибко "здоровенная", но можно поставить другую, не больше макс. размера текстуры, разумеется (обычно 2048 * 2048). Впрочем, рисовать карту целиком (одной картинкой/текстурой) в любом случае не стоит. Лучше тайлами, так же как в 2D, с той разницей, что тайловая сетка будет состоять из полигонов. Все картинки тайлов запихиваются  в одну (желательно) или несколько текстур в произвольном порядке, а на полигональной сетке каждому тайлу назначается нужная картинка установкой текстурных координат.
    Впрочем, я так понимаю, тебе бы для начала одну картинку вывести, а полигональные сетки - это как-нибудь потом. Так вот, если коротко, для поддержки D3D, по сравнению с чисто-DDraw движком нужно следующее:
    1) Задний буфер должен быть создан с флагом DDSCAPS_3DDEVICE.
    2) Поверхности-текстуры должны быть созданы с флагом DDSCAPS_TEXTURE и  иметь размеры - степени двойки.
    3) + требуется ещё некоторое количество манипуляций, но их можно выполнить отдельно от существующего DDraw кода.

    DelphiX у меня нет, так что не знаю, можно ли это там организовать. Слышал про некий UnDelphiX, в котором якобы есть поддержка D3D (хотя, может, путаю что-то).
  • boalse © (12.12.06 14:21) [48]

    > Переходи на OpenGL


    Изучать OpenGL начал, когда половина игры была уже готова. Переделывать небыло желания, начинать с нуля - тем более.
    Поизучать то поизучал, а на практике не закрепил.


    > Sapersky   (12.12.06 13:45) [47]

    Спасибо, посмотрю.
  • megabyte-ceercop © (13.12.06 12:48) [49]
    boalse Рекомендую Direct3D изучать. OGL - Гиблое дело.
  • Sapersky (13.12.06 14:04) [50]
    Уж сколько раз твердили миру - изучать и использовать можно всё что угодно, лишь бы руки были прямые.
    Вообще примеров спрайтовых тайловых движков больше для OGL:
    http://code.darthman.com/downloads.php?cat_id=1
    (особенно впечатляет работа Imp'а из конкурса Battle)
    Но если можно с относительно небольшими усилиями прикрутить D3D - тогда, ясен пень, лучше его и использовать.
  • Vga © (13.12.06 14:10) [51]
    > [49] megabyte-ceercop ©   (13.12.06 12:48)

    Прямо таки уж гиблое? А обосновать?
  • boalse © (13.12.06 18:08) [52]
    ухххх понеслаааась
    закрутилось завертелось
    Про руки полностью поддерживаю
  • Piroxyline © (13.12.06 19:03) [53]
    Лично мне шибко понравилось. Но иногда уровень завершить нельзя почему-то. Да и лучше было бы сделать появление новых надписей без ожидания исчезновения старых (а то на том уровне, где танки снизу вверх прут, можно долго удивляться, почему проиграл, когда оставалось еще 3 танка ;) )
  • boalse © (14.12.06 05:34) [54]

    > Piroxyline ©   (13.12.06 19:03) [53]

    Если честно, мало что понял из вышесказанного.

    > Но иногда уровень завершить нельзя почему-то.

    Какой именно уровень. В чём выражается это нельзя? Пожалуйста, опишите конкретнее.

    А, после пятого прочтения методом телепатии понял, что речь идёт о злощастном уровне "Охота начинается".

    Да да, есть там глюк с надписями, если за раз прорывается сразу два или более танков, увы. Но я решил, что лучше уж с глючными надписями, чем вообще без них, они ведь не во всех случаях глючат. А вот сделать их не глючными не успел и забыл :)

    Я считал этот уровень наиболее необычным и наиболее интересным, но оказалось, он больше всего вопросов вызывает.
  • megabyte-ceercop © (14.12.06 07:17) [55]
    > > [49] megabyte-ceercop ©   (13.12.06 12:48)
    >
    > Прямо таки уж гиблое? А обосновать?

    Да я просто проверить хотел, легко ли войну разжечь :)


    > > Piroxyline ©   (13.12.06 19:03) [53]
    >
    > Если честно, мало что понял из вышесказанного.


    Если речь идет о уровне про танки на другом берегу, то думаю Piroxyline сталкнулся с той же проблемой что и я. Уровень не прошелся. Просто ничего не происходило после проезда всех танков.
    Это редко бывает. Но бывает.
  • boalse © (14.12.06 08:22) [56]
    И даже окружности, нарисованной красным пунктиром за складом не горело? И в задачах не было написано, что-то типа "покиньте область"?

    Если так, тогда действительно очень странно. Если ещё раз повториться у кого-нибудь, огромная просьба, сделайте скриншот (F12), желательно с раскрытым списком задач.

    Или может быть кто-нибудь закономерность какую увидит?


    > megabyte-ceercop ©

    6-7 наездов где-то и нужно отбить, потом рисуется окружность и в задачах соответствующая отметка должна появиться.
  • Vga © (14.12.06 12:43) [57]
    > Да я просто проверить хотел, легко ли войну разжечь :)

    Думаю, очень легко :)
  • megabyte-ceercop © (15.12.06 08:20) [58]

    > 6-7 наездов где-то и нужно отбить, потом рисуется окружность
    > и в задачах соответствующая отметка должна появиться.


    Во второй раз, когда я играл, все сработало. Но в первый - ничего не появилось. Я бы заметил. Попозже может сыграю еще раза три, найду глюк.


    > > Да я просто проверить хотел, легко ли войну разжечь :)
    >
    > Думаю, очень легко :)


    Давайте ваевать.
  • megabyte-ceercop © (15.12.06 08:51) [59]
    С первого раза получилось что цели не появились новые.

    Скрин с развернутым списком задач я выслал на мыло.

    Вот что я делал во время игры, и наблюдения.

    1) Я убивал всех танков очень точно и метко ;)
    2) В самом последнем набеге пропустил пять танков.
    3) последние два танка развернулись и поехали к берегу, посмотреть на меня.
    4) деньги с подбитого танка, которого с самолета скидывают, взял только после того как все уже проехали.
    5) места для окружности за складом было очень мало. (Видно на скрине)
 
Конференция "Игры" » Metal & Fire [Delphi, Windows]
Есть новые Нет новых   [134431   +10][b:0.001][p:0.001]