мой старый шутерок, ностальгия :)

Наводил порядки в репозитарии, наткнулся на один из "нерождённых" шутерков.

Довольно забавно было его потыркать год спустя.

Чувствуется влияние Gears of War (выкрученный бамп) и Burnout (музей моделек) Smile

http://dragon.firevector.com/Impact2/Impact-1101--01s.jpghttp://dragon.firevector.com/Impact2/Impact-1101--04s.jpg

Последний public-build тут (~33Mb).

Начинать смотреть лучше с Survival -- миссия скучновата получилась.

Правая кнопка пускает ракету, средняя -- dodge с небольшим slom-mo.

Последняя правка: пн, 22/11/2010 - 18:38
Submitted by BLK Dragon on

Комментарии

Давно хотел у тебя спросить - вот вы пишите свои проекты на самописном двигле, а разрабатывали его как кроссплатформенным или призабили и заточили под "окошки"? и есть ли у вас интерфейсный рендер, ала IRender => CRebnderD3D8Imp, CRebnderD3D9Imp, CRebnderD3D10Imp?

Submitted by MaxImuS on

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

Рендер интерфейсный, но это на самом деле плохо / не имеет смысла Smile будет переделано как тока появится для этого время.

В тулзах только вин32 юзается напрямую (там где это нужно).

Submitted by BLK Dragon on
Я тут просто дома по вечерам безделничаю Smile а двигло написать прёт как никогда, только с меня двиглописец как с кота молока. прошу понять меня правильно - я зарабатываю на жизнь себе разработкай игр и мое хотение выливается в хобби, так что писать убийцу кризиса или чего пострашнее я не собираюсь - но поднимать свой проф.навык стоит всегда, по этому и решил заняться данной задачей.
Вот что посоветуешь - с чего начать? Не очень большая беда будет если изночално затачу под "окна" двигло (буду конечно же стараться вин32 пихать только в реализацию - наверх только база типов выходить будет)? И совет по рендеру какой дашь? А то мне как-то все время парит писать интерфейсный его. И что посоветуешь - продолжить директХ раскручивать или всторону ГЛ'я посмотреть?

Вобщем дай пару советов Smile как бывалый.

Submitted by MaxImuS on

Начать стоит с прочтения "Game Engine Architecture", её вроде уже отсканили и в интернетах валяется. Автор в Naughty Dog работает (одна из самых крутых студий сони; по легенде он один из двух людей, ради которых SONY и купила ND)

ГЛ не однозначно стоит юзать на ПЦ -- проблемы с драйверами гарантированы, а "кроссплатформенность" ГЛ -- миф. Плюс на ПЦ есть замечательные тулзы для ДХ: Pix, NVPerfHUD(или как его там сейчас зовут) да и с доками попроще.

Делать IRender (IAudio, IKeyboard и т.д.) с виртуальными функами и наследовать реализации или просто иметь "интерфейс" (пачка функций с реализациями под платформы/железки) -- непринципиально. Главное не делать "windows.h" везде Smile

Убийцу кризиса всё равно не получится, так шо не расстраивайся Smile Дело даже не в рендере -- тулзы решают, а это долго и непросто.

Submitted by BLK Dragon on
Спасибо Smile За убийцу кризиса я не растраиваюсь, я ж говорил что писать его не собираюсь - опыт нужен просто в разработке. PerfHUD так и называется - в свое время на одном из проектов заюзал данный тулзари - очень понравилось (жаль, только последние версии неработают с D3D8 (незнаю как старые)).

}:-> "windows.h" - великое зло, скоторым нужно бороться *aikido*. Конечно же он скрыт в ...Imp Smile

Submitted by MaxImuS on
"windows.h" - великое зло, скоторым нужно бороться . Конечно же он скрыт в ...Imp Дело не только в windows.h, например банальный fread/fwrite искоренять из исходников тоже очень долго/нудно было в одном проекте. Ещё много людей норовят затянуть в проект stl/boost/luabind/etc потому что это "круто". В реальности, например из контейнеров нужны только array (в нескольких вариантах) и hash-table. Короче, будьте проще и жить будет легче :)
Submitted by BLK Dragon on
Quote:
BLK Dragon писал(а):
Начать стоит с прочтения "Game Engine Architecture", её вроде уже отсканили и в интернетах валяется. Автор в Naughty Dog работает (одна из самых крутых студий сони; по легенде он один из двух людей, ради которых SONY и купила ND)
Naughty Dog настоящий динозавр SONY, я смотрел их ролики на youtube как они делали свои игры в период 94-99 годов, хоть эти ролики и не очень информативны в плане обучения, но по ним видно что игры были сделаны очень и очень професионально.

Спасибо за наводку по литературе.

На Гугл Букс есть качественная Онлайн версия, но там не отображаются некоторые страницы.

Submitted by noTformaT on
О кстати очень иныормативно в плане обучения у Insomniac http://insomniacgames.com/research_dev

Они тоже очень крутые динозавры Smile

А книжка у меня бумажная есть Smile

Submitted by BLK Dragon on
Quote:
BLK Dragon писал(а):
Ещё много людей норовят затянуть в проект stl/boost/luabind/etc потому что это "круто". В реальности, например из контейнеров нужны только array (в нескольких вариантах) и hash-table. Короче, будьте проще и жить будет легче :)
Считаешь, лучше реализовать свой list,vector и hash-table самому и не парится с данными "монстрами"? (на самом-то деле их реализация не очень и страшна, как некоторым кажется =))

А как борешься с высказываниями типа "зачем писать свой велосипед если есть готовые практичные решения?"?

Submitted by MaxImuS on
Считаешь, лучше реализовать свой list,vector и hash-table самому и не парится с данными "монстрами"? (на самом-то деле их реализация не очень и страшна, как некоторым кажется ) В контексте геймдева лучше. Больше контроля (над памятью например) и меньше кода инклудить/компилить/изучать. Типовое заявление "зато STL все знают!" неверно -- не знают Smile (из опыта собеседований) List кстати не нужен особо -- у нас есть list, никто не пользовался за последних три года. А как борешься с высказываниями типа "зачем писать свой велосипед если есть готовые практичные решения?"? Это скорее со мной нужно бороться с попытками внедрить какой-нить boost :) STL, например, не совсем готовое и не совсем практичное решение (не холивара ради, из опыта банально).
Submitted by BLK Dragon on
Подскажи, какие контейнеры в первую очередь реализовывать?

p.s. речь не идет о их конкретной реализации, я просто понять пытаюсь для себя как это все грамотно начать реализовывать и какие камни могу для себя найти под водой Smile

Submitted by MaxImuS on
Подскажи, какие контейнеры в первую очередь реализовывать?Ну если их надо всего два -- массив и хеш-таблица, то сначала массив а потом хеш-таблицу.

У нас раздельно массив для POD-объектов (копируются memcpy) и для "сложных" (с вызовом конструктора копирования)

Submitted by BLK Dragon on

Раз уж проходил мимо...

Game Engine Architecture is the-must

Она скорее широкая чем глубокая - но всё что надо там есть.

Из личного - правильные аллокаторы дают head-start. На самом деле. Был горд собой когда узнал что про LinearAllocator в книжке тоже написано и много.

Так вот - если правильно всё сделать с памятью - очень многие вещи упрощаются.

Контейнеры могут быть нужны всякие - на последнем прожекте у нас было что-то около 4 вариаций array (все НЕ вызывают ctors). Не stl\boost по одной простой причине - их не для того писали. Ну т.е. банально force align, память брать отсюда, никаких конструкторов - всё это можно только со своими контейнерами.

Кросс-платформенность нужна - хотя бы для того чтобы вычистить codebase. Но с ней есть проблема - люди пока не потыкаются обычно создают сферические конструкции приперченные gof которые потом не взлетают. Так что дорога тебе за какой ломанной psp и на сайт за toolchain ;-).

Еще из важного - это система ресурсов\объектов-которые-имеют-guid. Вместе потому что механизмы сходные. И довольно важно на самом деле.

Но про это и многое другое в книжечке тоже написано Wink

P.S. надо таки сесть и дома чего делать - а то всякие показывают свои шедеуры а мы чем хуже Wink

Submitted by discouraged_one (не проверено) on
Спасибо вам за советы.
Насчет аллокаторов - ведь для каждой платформы есть своя специфика по выделению памяти. Так это или нет? (сам как только с Окнами, больше нисчем не работал)

p.s. вчера как раз читал про линух и память - описывалась собственное простое выделение путем смещения границ sbrk(...). что-то очень дубово просто Scratch one-s head

Submitted by MaxImuS on

Читайте книжку Wink

Ваша задача как раз убрать все специфики (ну или почти все). Беркм в руки linear allocs и dlmalloc и вперед. (как минимум на двух не-pc-платформах системный аллокатор = dlmalloc - так что он работает ;-))

Submitted by discouraged_one (не проверено) on

dlmalloc... *XaXa* настораживает вот это.

Submitted by MaxImuS on
Это очень старые жалобы на dlmalloc (2003 год WTF?).

Я самолично юзал dlmalloc минимум в 5 проектах (два последних на PSP и Х360) -- никаких страных проблем. На PS3 (как и на любом линухе кстати) dlmalloc -- системный менеджер памяти.

Submitted by BLK Dragon on
Quote:
BLK Dragon писал(а):
2003 год WTF?
Ну я же не сказал, что это багофичный калл Smile я же всего лишь дал ссылку на обсуждение данной тематики. Я сам по dlmalloc мало что знаю, по этому и интересуюсь, раз такие обсуждения были в сети. Вы меня заверяете, что на данный момент все кулл (подтверждая это реальными проектами), значит я вам поверю. Покручю эту штучку. *agree*
Submitted by MaxImuS on
Quote:
MaxImuS писал(а):
Покручю эту штучку.
А я вот посматриваю в сторону nedmalloc или jemalloc.
Submitted by Victor on
Quote:
Victor писал(а):
А я вот посматриваю в сторону nedmalloc или jemalloc.
А я вот начну с dlmalloc :-P
Submitted by MaxImuS on
Quote:
BLK Dragon писал(а):
Это очень старые жалобы на dlmalloc (2003 год WTF?). Я самолично юзал dlmalloc минимум в 5 проектах (два последних на PSP и Х360) -- никаких страных проблем. На PS3 (как и на любом линухе кстати) dlmalloc -- системный менеджер памяти.
Можно узнать что за фирма в Беларуссии делает игры для PSP и XBox360?
Submitted by noTformaT on
Quote:
BLK Dragon писал(а):
Я самолично юзал dlmalloc минимум в 5 проектах (два последних на PSP и Х360) -- никаких страных проблем. На PS3 (как и на любом линухе кстати) dlmalloc -- системный менеджер памяти.
Можно узнать что за фирма в Беларуссии делает игры для PSP и XBox360?
Submitted by noTformaT on

same here - psp+ps3 dlmalloc работает на ура

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

Если вам надо выделять много кусков памяти из под разных потокоы и обязательно в щареной области памяти - у вас другие проблемы - аллокатор не важен (я говорю про gamedev конечно)

Submitted by discouraged_one (не проверено) on
Можно узнать что за фирма в Беларуссии делает игры для PSP и XBox360? я не в Беларуси :)
Submitted by BLK Dragon on
Quote:
BLK Dragon писал(а):
Можно узнать что за фирма в Беларуссии делает игры для PSP и XBox360?я не в Беларуси :)
Понятно, просто ходят слухи - что нельзя просто так взять и начать писать игры по Xbox360, компания сначала должна это заслужить, среди фирм на територии снг я не видел что бы кто то писал игры на данные платформы.
Submitted by noTformaT on
глупости. в пост СНГ достаточно команд работающих и для PS3 и для Xbox 360.Например Gaijinhttp://gaijin.ru/ruCreat

http://www.creatstudios.com/games/index.php

Submitted by UNIT on
глупости. в пост СНГ достаточно команд работающих и для PS3 и для Xbox 360.Например Gaijinhttp://gaijin.ru/ruCreat http://www.creatstudios.com/games/index.php Этим список и заканчивается (всякие мелкие штучки и уатсорс на XBLA/PSN не в счёт). И эти компании очень не сразу пришли к консолям.
Submitted by BLK Dragon on

GameDev.by