Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Вниз

Зачем мы этим занимаемся?(филосовствуем)   Найти похожие ветки 

 
NailMan ©   (2004-06-17 18:27) [0]

Имеется в виду занятие геймдевом...

Бдящим начальникам: Прошу ветку никуда не переносить(в потрепаться), так как тамошний народ в большей части мало понимает наши так сказать интимные геймдевелоперские проблемы.

<Также навеяно ветками про оболочки GLScene и DelphiX>

Хочется обсудить и выслушать мнения по поводу того чем мы тут занимаемся. Так сказать по сути и делу мы ничем от садомазо не отличаемся. Сидим годами-месяцами у компа и насилуем себя - и мозг и желудок, ну и наконец бедную задницу отсиживаем.

Какова ваша конечная цель?

Скажу от себя: считаю что конечная цель должна быть самосовершенствование и создание работоспособного и жизнеспособного продукта, который заинтересует не только вас, но и других. Залог второго - продуманная и красивая графика/саунд, удобный интерфейс и геймплей(интересный сюжет и реализация задуманного). Залог первого - реализация второго полностью своими мозгами.
Имхо, считаю тех кто ратует за быстрое создание игры с использованием интерфейсов ускоряющих создание(оболочек DX и OGL) не настоящими программистами, так как такой подход заранее убыточен в плане самосовершенствования и неправилен в плане создания качественного продукта, а своего рода дизайнерами, которые готовы реализовать свои идеи быстро, но с непременной потерей красоты реализации.

Игры создаются не месяцами, а годами. Хороший тому пример Half-Life 2 -создается уже 5(!) лет и до сих пор еще финал-релиз не вышел(ожидается летом). Судя по демкам - плоды 5-летнего непосильного труда(переписано я так думаю 90-95% кода абсолютно с нуля) стоят потраченного времени на все 120%. Заметьте - это писалось в уже опытной и очень мощной команде девелоперов, дезайнеров, художников и т.д и т.п.

Так как же можно создать грамотную игру с навороченным спецэффектами(а какая же игра без них обойдется? Пользователь ценит игру в первую очередь за ЭфИксы) за пару месяцев? Ответ никак.
И уму разуму такой "писатель" не научится.
Цель должна быть правильной - красивый с эстетической и рациональной точки зрения код, без чужих глюков(косой взгляд на "оболочечников"), который всегда можно легко понять без немерянного описания, другому программеру. И это все на хорошей базе - сюжет и продуманность проекта(геймдизайн).

Скажу правду - эти мысли полезли ко мне после того как я закончил(вчера) разработку своего GUI для игрушки. Хотя на сайте валяется демо этого GUI, новый я переписывал с абсолютного нуля, приложив к разработке его структуры изначально привильные(в моем понимании и при влиянии специфики моего будущего движка) подходы. Скажем так я за основу GUI взял тот же подход как и в VCL. Все элементы интерфейса(tbutton,tedit,tlabel,tcheckbox,tlistbox,tscrollbar и т.д.) написаны с нуля и все придумывалось собственными мозгами. Скажем так - я не мог написать грамотного алгоритма  таскания слайдера для скролла больше полугода. Именно реализовав систему GUI в заведомо правильном варианте все сделалось за 10 мин.
Тот старый ГУИ этого не позволял. Теперь посмотрите сколько я потратил на это времени - полгода я писал тот GUI и за неделю написал этот, причем ничего из того старого кроме констант не перенималось.

(Для справки: сегодняшний вариант протодвижка пятый вариант и, надеюсь, последний)

Фактически я теперь мугу делать любые формы с любыми элементами меню в любых вариантах(в рамках игры) без особых проблем и с хорошим качеством графики и комфортом пользования для юзверя(все аналогично привычным дельфевским компонентам).

Проще говоря я меня прет писать красивый(в рамках игры) и простой код, который потом легко понять через полгода. Это стало моей самоцелью - написать игру которая будет сделана из красивого(логически и эстетически) кода и в которую потом будет приянто мне самому играть.

Я конечно же не смогу осилить полностью свой проект(кто знает о нем то поймут какой объем придется делать), поэтому, когда осилю 50% движка я возможно буду искать единомышленников, которые смогут помочь с оставшейся частью. Главное это основа, которая должна быть известна лишь одному человеку. Собственно точно так же и делается в больших конторах(скажем в Valve или ID Soft.). Все в целом(взаимодействие всего со всем) знает только отсилы пара человек(если не один), остальные делают только небольшие части.

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

Скажем Quake3 отличается от Q2 также как и Doom от Quake. Большая половина кода переписана с нуля. Фактически это новая во всех отношениях игра, с новым уровнем графики, физики и геймплея. И до сих пор пользуется огромной популярностью.
Взять даже тот самый half-life. Фактически я не видел сколько уж хороших в плане играбельности игр на основе этого движка(Counter-Strike это всего лишь мод[надстройка] над Half-Life и фактически там ничего не переписывалось) с момента выхода Халвы. Это потому что идеи которые закладывались в игре(на основе движка HL) не могли быть реализованы этим движком, и видимо из-за лени и желания поскорей "срубить бабла" писатели не заботились кропотливым написанием собственного чада. Лишь декоративный моддинг купленного двигла. Порой глюков в такой игре больше чем в оригинале именно из-за того что документация на купленный движок не гарантирует его понимание при любом уровне "мозгов".

Вобщем привожу итог своих мыслеблудий: если ты ALL хочешь стать гемдевелопером, тоесть разработчиком игр, а не гейммейкером, тоесть "делателем" игр, и твоя цель научиться делать игры, то ты обязан делать все сам и с самого нуля - с азов и вверх по лестнице.
Если ты ALL хочешь создать свою "игру", а точнее "поделие" в реальные сроки(месяцы), и тебе важен исключительно результат, то и называй сабя гейммейкером(я всегда рад помочь и тем и другим если у человека есть желание понять свою проблему).

Кстате почему так происходит, что многие, имеющие идею(порой даже очень хорошую идею игры), прогорают буквально на втором месяце нашей тернистой геймдевелоперской жизни? Ответ прост - они не программисты в истинном смысле слова, а геймдизайнеры и сценаристы. А сценаристы кина не могут правильного снять - они не режиссеры и не операторы.

Я очень надеюсь повтречать хорошего дизайнера когда у меня уже будет что показать миру и за что не будет мне стыдно(пока мне стыдно за свою демку). Хотя я и сам неплохо владею моделлингом да и помощник есть, который взял на себя отчасти этот нелегкий труд, все таки для качественного продукта требуется настоящий дизайнер-художник и с этим не поспоришь. Чтож буду писать и буду надеяться что допишу...садомазо-програмисты рулят!

Вот.


 
Огромное Кулясище   (2004-06-17 19:13) [1]

Бла-бла.. китайская проповедь.


 
nexxiss ©   (2004-06-17 23:05) [2]

Программы не пишут, ровно как, музыку не рисуют


 
nexxiss ©   (2004-06-17 23:24) [3]

:)


 
Огромное Кулясище   (2004-06-18 00:04) [4]

Человеку просто жаль потерянного времени и ненужных подробностей. NailMan"у бы не игры писать, а разрабатывать DirectX"ы.


 
wiz ©   (2004-06-18 00:29) [5]

2 nexxiss: Ты уж меня извини, но как тогда появляются программы? поют их что-ли??? Их пишут... Причём в правильном случае их пишут на листе формата A4 с помощью ручки, фломастера и мозга. А потом уже занимаются кодированием, что несомненно является работой чуть-чуть поинтеллектуальнее работы стенографистки. В нормальных софтверных фирмах даже есть разделение: эти ребята - программисты, а эти - кодеры. (Как говорится: "Почуствуйте разницу")

2 Огромное Кулясище: самое смешное, что ты даже не понимаешь, что ему не жаль того времени, которое он потратил...

2 NailMan:
во-многом согласен, в части нет (сейчас нет возможности написать развёрнутый пост по каждому пункту)

Но! Хочется особо заметить, что твой развёрнутый пост поймут только люди, которые сами думают так же и согласны как минимум с половиной твоей позиции.

Остальные - (вы уж извините меня) дети в возрасте от 14 до 18 лет, которые вчера сидели за CS, а сегодня решили "забацать" кульную игруху, не могут даже представить себе от чего ты получаешь свой satisfaction.

И, извините меня еще раз, не могут считаться программистами по призванию, т.к. не получают удовольствия от самого процесса программирования. (Примечание: не надо этого отрицать. Это было прекрасно видно по годичной давности постам Кена, по недавним веткам). Да, это жесткая позиция, но это imho.

Отсюда вывод-прогноз: в ближайшее время здесь появится куча "пионеров программирования" и обольёт всех людей, которые только и могут считаться программистами, грязью и насмешками. А та малая толика людей, которые могут считаться "Мастерами Дельфи" или хотя бы претендуют когда-нибудь ими стать, вначале попытается объяснить первым, а потом отойдёт в сторону (со словами: "может через пару лет вырастут - поймут"), и продолжит заниматься своим делом.

---
wiz: человек, пять с небольшим лет занимающийся "садомазо-программированием" за зарплату


 
Огромное Кулясище   (2004-06-18 00:41) [6]

2 wiz:

А где ты видел программу, в которой делатели игр нажимают волшебные кнопочки и игра за пять минут получается? Ссылочку, если можно.


 
wiz ©   (2004-06-18 00:55) [7]

2 Огромное Кулясище: я не говорил, что она есть, я говорил только о том, что некоторые люди её хотят получить, а некоторым она "нафиг не нужна".

---
бритва Оккама: "Не создавайте сущности сверх необходимого"


 
Алекс А   (2004-06-18 03:12) [8]


> NailMan ©   (17.06.04 18:27)  

> Имхо, считаю тех кто ратует за быстрое создание игры с использованием
> интерфейсов ускоряющих создание(оболочек DX и OGL) не настоящими
> программистами

Ну и хрен. Писать игру с нуля - тоже самое, что писать свои Видны.

Всё, что остаётся - это ждать когда GLScene перерастёт из графического движка в игровой движок, когда к нему нормально прикрутят, обезглючат ODE или что-нибудь подобное. И вот когда дождёмся, тогда будет прорыв в области игр, и они посыплются как из рога изобилия.


 
wiz ©   (2004-06-18 03:31) [9]

2 Алекс А: "...и они посыплются как из рога изобилия" ...и будут скучными и однообразными.

Так уже было, когда народ выпустил toolkit для создания doom-подобных творений... А еще раз было, когда люди выпустили "RPG-генератор"... Это были большие буржуйские проекты, движок (по-началу) даже не отдавался "просто так", а только за деньги. И знаешь что самое интересное??? ни-че-го. ни одной нормальной игры...

---
бритва Оккама: "Не создавайте сущности сверх необходимого"


 
Алекс А   (2004-06-18 04:12) [10]


> wiz ©   (18.06.04 03:31) [9]
> 2 Алекс А: "...и они посыплются как из рога изобилия" ...и
> будут скучными и однообразными.
>
> Так уже было, когда народ выпустил toolkit для создания
> doom-подобных творений... А еще раз было, когда люди выпустили
> "RPG-генератор"... Это были большие буржуйские проекты,
> движок (по-началу) даже не отдавался "просто так", а только
> за деньги. И знаешь что самое интересное??? ни-че-го. ни
> одной нормальной игры...

Потому, что всё, что там можно было наваять - это сделать свою карту, может быть монстров. И всё. А всё остальное как в Думе. В этом действительно ничего интересного.


 
Micah'GF   (2004-06-18 07:47) [11]

ЛЮДИ! - будьте людями! Давайте не будем делать резкие комментарии (а то опять все перерастет в спор). У кого есть философские мысли - пишите, у кого мат - оставьте при себе.

2 Огромное Кулясище я тебя понимаю и согласен что не очень приятно тебя когда называют непрограммистом только за то что юзаешь оболочки.
За себя скажу: поработав над игрой, пусть даже под оболочкой, многие мои взгляды на гейммэйк изменились до противоположности, научился многим приемам программирования, а главное, понял суть и принципы разработки игр (чего не хватает новичкам), и следующим моим этапом будет написание игры на СВОЕМ движке.
Вот.


 
КиТаЯц ©   (2004-06-18 09:00) [12]

Ну чтож... Давай пофилософствуем... Настроение распологает :)
Тэкс. Что я здесь прочитал (пишу как понял):
"Люди (разработчики-компьютерщики) деляться на геймдевелоперов и гейммейкеров. Первые в свою очередь деляться на разрабатывающих GUI/движки и спорящих что лучше Си или Дельфи, DelphiX или DirectX, Чистый OGL или GLScene. А вторые на музыкантов, дизайнеров и... непонятную третью составляющую"
А вот здесь я что-то не совсем понял про эту третью составляющую. И вроде бы это что-то вроде людей обладающих навыками программирования или даже программистов которые активно использют готовые (чужие) наработки то ли для того, чтобы себе задачу облегчить, то ли чтобы велосипед не изобретать... Так? Вроде, как можно понять NailMan-а, так... Поскольку:

> Имхо, считаю тех кто ратует за быстрое создание игры с использованием
> интерфейсов ускоряющих создание(оболочек DX и OGL) не настоящими
> программистами

Да, скорее всего, это даже не составляющяя геиммейкерства, а так, Кены всякие... (Ну, блин, Кен дал! Имя уже нарицательным становится! :о))
А вот теперь цитата:

> Я конечно же не смогу осилить полностью свой проект(кто
> знает о нем то поймут какой объем придется делать), поэтому,
> когда осилю 50% движка я возможно буду искать единомышленников,
> которые смогут помочь с оставшейся частью. Главное это основа,
> которая должна быть известна лишь одному человеку. Собственно
> точно так же и делается в больших конторах(скажем в Valve
> или ID Soft.). Все в целом(взаимодействие всего со всем)
> знает только отсилы пара человек(если не один), остальные
> делают только небольшие части.

Какие единомышленники? Они же твои "элементы интерфейса(tbutton,tedit,tlabel,tcheckbox,tlistbox,tscrollbar и т.д.) написаны с нуля и все придумывалось собственными мозгами" будут использовать? Мне видится, что как раз потом и понядобятся те самые "не настоящие программисты", ведь их даже и геймдевелоперами назвать нельзя будет, т.к. будут чужие наработки юзать... Нескладуха какая-то... Вроде и программисты нужны, а вроде и не программисты они вовсе... Короче философия сплошная...
Ну ладно, так вечно философствовать можно... Мне вот как все видится...
Я вообще то в работаю компании, у которой основное направление БД. (Игрушки - это так, для души.) Так вот. Бывает придеш к клиенту там местного программиста приглашают. А он важный такой, ну как же - инженер-программист все-таки. А как до дела доходит, так про себя все насвете матом кроеш - дуб-дерево этот программист липовый. А бывает наоборот: сидит деваха молодая, бухгалтер и что-то там в реестре виндуса колупает... А потом вдруг и говорит: "у нас тут авария была, ваша база здохла, но я ее восстановила"... Во как!
Тэкс. Отвлекся я. Ну да. Это я все к чему. К тому, что вообще нечего делить человеческий потенциал на мейкеров, девелоперов и т.д. В силу специфики системы нашего образования мы все и все сразу. Просто один больше одно умеет, другой - другое.
И нечего рассуждать какой язык программирования лучше, какая среда разработки, и о том, что только лохи чужие движки юзают и т.д и т.п. Пустая болтовня все это. Результат важен. За всеми этими разговорами (не утверждаю) скорее всего стоИт одно - самоутвердится. Доказать себе, что крутой. Типа вы вот это используете, а я все "с нуля сделал". Вот, кто-то еще говорил про головняк с чужими багами. А где гарантия, что багов у тебя меньше будет?
Фигня все это и пустые разговоры. "Я учусь, я развиваюсь". А кто не учится - не развивается? Каждый имеет право делать как он хочет и на чем хочет. Все решает РЕЗУЛЬТАТ. И пользователю твоей будущей программы в голову может прийти что угодно, но только он никогда не задумается о "степени развития" основного геймдевелопера...
Вот, собственно... Высказался.
Люди! Пишите игры - несите радость людям! И пожалуйста, давайте завяжем со спорами типа "OGL или D3D / С++ Delphi что лучше".


 
cyborg ©   (2004-06-18 09:44) [13]


> [8] Алекс А   (18.06.04 03:12)
> И вот когда дождёмся, тогда будет прорыв в области игр,
> и они посыплются как из рога изобилия.

:) прям завалит играми.


> [6] Огромное Кулясище   (18.06.04 00:41)

Я не видел, но знаю еть GameMaker


> [4] Огромное Кулясище   (18.06.04 00:04)
> Человеку просто жаль потерянного времени и ненужных подробностей.
> NailMan"у бы не игры писать, а разрабатывать DirectX"ы.

Я бы с удовольствием пошёл... побежал бы... полетел.


> [1] Огромное Кулясище   (17.06.04 19:13)

Ты видимо из Франции? Такое многословие, я аж устал читать твой пост.


> [2] nexxiss ©   (17.06.04 23:05)
> Программы не пишут, ровно как, музыку не рисуют

Программы пишут. Кстати музыку тоже пишут. И картины пишут. Это так, к сведению, если не в курсе.


 
NailMan ©   (2004-06-18 11:44) [14]

КиТаЯц ©

> Какие единомышленники? Они же твои "элементы интерфейса(tbutton,tedit,tlabel,tcheckbox,tlistbox,tscrollbar
> и т.д.) написаны с нуля и все придумывалось собственными
> мозгами" будут использовать?

Нет конечно, единомышленники, которые помогут разобраться с AI для космосима, ну и с эффектами тоже. GUI-то зачем трогать - он уже готов и на нем сделаны практически все меню.


> Мне видится, что как раз потом и понядобятся те самые "не
> настоящие программисты", ведь их даже и геймдевелоперами
> назвать нельзя будет, т.к. будут чужие наработки юзать...
> Нескладуха какая-то... Вроде и программисты нужны, а вроде
> и не программисты они вовсе... Короче философия сплошная...

Вот как раз потом и понядобятся люди, которые не являются програмистами в прямом смысле слова. Каждой игре нужен хороший дизайнер-художник, который сможет спроектировать(скомпоновать) удобный для пользователя интерфейс и идеологию взаимодействия с игрой(коддинг - это мое дело). Под интерфейсом я подразумеваю не только умелое расположение элементов меню, а вообще его архитектуру. Скажем пользовательский интерфейс шутера заметно будет отличаться от интерфейса космосима, который я пишу. Мой таки на порядок будет сложнее. Это только часть работы дизайнера.


> А где гарантия, что багов у тебя меньше будет?

Гарантии дать никто не может, но я могу утверждать что в моем и только моем коде их будет меньше, чем в чужом коде + моем коде. Скажем если я возьму чужой двигло(скажем куплю движок HomePlanet, хотя меня он просто раздражает неправдоподобностью) и начну его сильно модифицировать(а замем мне клона делать?), то наделаю наделаю больше ошибок, бо по докам все равно мало что поймешь в целом(на полное понимание уйдут годы).


> Люди! Пишите игры - несите радость людям! И пожалуйста,
> давайте завяжем со спорами типа "OGL или D3D / С++ Delphi
> что лучше".

Заметь я нигде не упоминал про C++/Delphi и OGL/DirectX...

nexxiss ©
> Программы не пишут, ровно как, музыку не рисуют

Смеялся долго и надрывно.... :-)
Программы что - рожают? Из попы выкакивают? Или в диктофон наговаривают?

:-) Блин чуть связки не порвал со смеху.

Алекс А

> Ну и хрен. Писать игру с нуля - тоже самое, что писать свои
> Видны.

А ты как хотел? Чтобы все было просто и шоколадно? На самом деле, как я и говорил, писать с нуля проще чем переделывать готовое. Скажем так это не сложнее чем писать винды, а намного легче.


> Всё, что остаётся - это ждать когда GLScene перерастёт из
> графического движка в игровой движок, когда к нему нормально
> прикрутят, обезглючат ODE или что-нибудь подобное. И вот
> когда дождёмся, тогда будет прорыв в области игр,

Жди и надейся. Только вот такого хорошего и бесплатного чую попом не будет - слишком уж просто получится.


> и они
> посыплются как из рога изобилия.

И будут все они на одно лицо, и все они будут поэтому полным саксом так как каждая игра обязана быть чем-то особенным и неповторимым, а в твоем случае это будет просто тоже самое, но с другими текстурами/моделями.
Купил пиратку с такой игрушкой, поиграл 10 мин и понес обратно менять у барыги с легендой про "нечитаемость диска".

Огромное Кулясище

> А где ты видел программу, в которой делатели игр нажимают
> волшебные кнопочки и игра за пять минут получается? Ссылочку,
> если можно.

Нет такой. Хотя...у меня есть диск с софтом(и некоторыми движками известных игр) - там есть софт с похожим назначением.


> Человеку просто жаль потерянного времени и ненужных подробностей.
> NailMan"у бы не игры писать, а разрабатывать DirectX"ы.

Как я уже и намекал - мне не жаль времени потраченного на разработку с нуля, и скажем так я даже благодарен что не засел на DelphiX, и мой друга вовремя мне открыл DirectX(кстате по Краснову я не учился).
Что касаемоа "разрабатывать DirectX"ы" - будешь рад, но все таки разрабатывал свой NailX еще во времена моего программирования на pascal6. Я там как раз закончил на текстурировании поверхностей. После того как я засел на настоящий D3D я понял как близко пришел к его идеологии в NailX.



---
WBR, NailMan aka 2:5020/3337.13


 
nexxiss ©   (2004-06-18 12:22) [15]

NailMan:
Смеялся долго и надрывно.... :-)
Программы что - рожают? Из попы выкакивают? Или в диктофон наговаривают?
:-) Блин чуть связки не порвал со смеху.


Рад что развеселил.


 
Огромное Кулясище   (2004-06-18 13:09) [16]

Can"t stroke it - smoke it. Старая песня о главном.

Для категории А (NailMan, cyborg и Ко):
Я лишаю вас звания писателей игр. Увы, игр вы не пишете. Пишете детективы мисс Марпл, которые за вас давно написаны. Вам до писания игр ещё надо закончить свой детектив. Напишите - приходите. Жду не дождусь, когда Чебуратору дадут приз "за нововведения в графике и поразительные спецэффекты".

Лично к cyborg:
Метод DrawAlpha сделал? Нет ещё?

Для категории Я (All минус A):

Собственно, продолжайте писать игры. Вы на правильном пути. Радуйтесь, ибо вы живёте на прочной основе, оставленной нам умными предками. Почтим их память и продолжим их дело на ВЫСШЕМ уровне.


 
NailMan ©   (2004-06-18 13:44) [17]

Огромное Кулясище

> Я лишаю вас звания писателей игр. Увы, игр вы не пишете.
> Пишете детективы мисс Марпл, которые за вас давно написаны.

Не понял. Кто до нас написал то что мы пишем?
Ну как покажи мне пальцем это детектив! :-) Причем бесплатный(на Direct3D) и умеющий использовать ВСЕ и абсолютно ВСЕ фичи самого наипоследнейшего Direct3D9b. Тыкни носом меня в это чудо мысли.


> Вам до писания игр ещё надо закончить свой детектив. Напишите
> - приходите.

Куда приходите? Мы уже здесь(ты тут кстате даже не регистрен, а мы да) и никуда не собираемся сваливать.


> Жду не дождусь, когда Чебуратору дадут приз
> "за нововведения в графике и поразительные спецэффекты".

Не думаю что это есть целевое назначение Чебуратора. Это просто первая законченная игра автора.


> Собственно, продолжайте писать игры. Вы на правильном пути.
> Радуйтесь, ибо вы живёте на прочной основе, оставленной
> нам умными предками. Почтим их память и продолжим их дело
> на ВЫСШЕМ уровне.

Каком высшем уровне? На том который тебе разрешил дядя написавший за тебя основу? Ну, ну  ;-) Я конечно не спорю - те программеры, которые сделали оболочки для удобного пользования новичками, круты по определению(вам даже и это слабо сделать), но и мы не хуже их, потому что пишем то что они могут предложить+свои уникальные идеи+более заточенные, а следовательно более быстрые алгоритмы под конкретный случай жини(игру).
Конечно можно дорабатывать GLScene до более быстрой работы(оптимизация на архитектурном уровне), но глубокая доработка таких штук невозможна.

---
WBR, NailMan aka 2:5020/3337.13


 
cyborg ©   (2004-06-18 15:01) [18]


>  [16] Огромное Кулясище   (18.06.04 13:09)

:) Эк тебя прорвало. Звания мне никто не давал, облом у тебя с этим получился.


>Жду не дождусь, когда Чебуратору дадут приз "за нововведения в графике
>и поразительные спецэффекты".

Осмелюсь предположить, это зависть это чтоли?
Нововведения в графике задают такие монстры, как Близзард, Вествуд, ИД софтваре и подобные. Хоть ты лопни, по нововведениям и спецэффектам в играх ты их никогда не переплюнешь.

>Метод DrawAlpha сделал? Нет ещё?
Нет и не собираюсь делать.


 
NailMan ©   (2004-06-18 15:25) [19]

cyborg ©

> Нет и не собираюсь делать.

Наверно потому что начал изучать 3Д?  ;-)

---
WBR, NailMan aka 2:5020/3337.13


 
cyborg ©   (2004-06-18 15:39) [20]

Нет. Там минмальные систребования итак большие за счёт активной анимации, а если ещё программную прозрачность делать, то минимум 800-ый нужно будет.


 
Огромное Кулясище   (2004-06-18 15:53) [21]

>Не понял. Кто до нас написал то что мы пишем?
Ну как покажи мне пальцем это детектив! :-) Причем бесплатный(на Direct3D) и умеющий использовать ВСЕ и абсолютно ВСЕ фичи самого наипоследнейшего Direct3D9b. Тыкни носом меня в это чудо мысли.


Уже названный GLScene, также FreeWorld3D, Frustum Engine, Genesis32, Bolt3D, для Direct3D - Irrlicht (не только Direct3D), Jolt3D.

Кроме того, от спора про 3D я отказываюсь.


 
Огромное Кулясище   (2004-06-18 15:59) [22]

Возвращаемся к DirectDraw. Я не могу программировать на этой чуши. API откровенно неудачен. Меня корёбит, когда я освобождаю объект и пишу _Release. Давайте тогда писать:

for ____i := 1 to 15 do...

или ещё похлеще. Меня достало заполнять какие-то структуры, стаивть указатели на них, указывать сколько полей заполнено, каков их размер, чётное ли их количество, присутсвует ли буква "J" в названиях полей и т.д. Меня это достало.


 
cyborg ©   (2004-06-18 16:08) [23]


> [22] Огромное Кулясище   (18.06.04 15:59)

В Дельфи 6-7 релизы писать не нужно.
А насчёт достало, не пиши, если достало.


 
Огромное Кулясище   (2004-06-18 16:27) [24]

2 cyborg:

Хорошо, но тогда ни слова плохого по поводу юзанья DelphiX. Ок?


 
cyborg ©   (2004-06-18 16:33) [25]


> [24] Огромное Кулясище   (18.06.04 16:27)

Я даже буквы не сказал, не то, что слова.


 
MrAngel   (2004-06-18 16:50) [26]

Программа Virtools Dev 3.0 - как раз предназначена для разработки игр. Там всё просто. Накидал моделей, написал скрипты и играй себе на здоровье. Кстати на ней сделаны такие "шедевры" как Сайберия 1 и 2.

Это информация для тех кто хотел знать о такой проге.

Огромное Кулясище - не смеши, Genesis32 уже безнадёжно устарел. Это просто реликт какой то.

Теперь касаемо первого поста. Своего рода ответ. Моя позиция такова - НЕ РАЗРАБАТЫВАТЬ ИГРЫ ВООБЩЕ. Или разрабатывать, но принимать лишь косвенное участие в кодинге, подавая лишь идеи или сценарии. Сижу на такой позиции потому, что мне крайне не интересно будет играть в собственно разработанную игру, т.е. элемент неизвестности портит всю малину.

Но! В продолжении мысли о позиции - РАЗРАБАТЫВАТЬ ДВИЖКИ. При этом остаётся интерес к процессу программмирования. Более того, мне будет крайне интересно посмотреть на игры созданные на моём движке.

На счёт вопроса "Что лучше". Мой ответ - "Твоя голова лучше" - пиши и ответ будет ясен.

И ещё кто то тут говорил про то, что игры пишутся 5 лет и по этому они такие крутые. Господа, это не крутые игры, а долгострои. Пример крутых игр за более короткие сроки:
Властелин колец - Возвращение короля.
FarCry


 
NailMan ©   (2004-06-18 17:57) [27]

MrAngel
> Теперь касаемо первого поста. Своего рода ответ. Моя позиция
> такова - НЕ РАЗРАБАТЫВАТЬ ИГРЫ ВООБЩЕ. Или разрабатывать,
> но принимать лишь косвенное участие в кодинге, подавая лишь
> идеи или сценарии. Сижу на такой позиции потому, что мне
> крайне не интересно будет играть в собственно разработанную
> игру, т.е. элемент неизвестности портит всю малину.

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

Скажем в Диабло(играл совсем немного)  карты всегда генерятся по разному, от-того прохождение каждый раз разное.
Можно еще более углубить систему и сделать скриптовый генератор, который будет изменять сценарий в небольших частях. Скажем на какое-то действие игрока у какого-то персонажа должно быть по сценарию какое-то действие.
При создании новой игры это действие заменяется другим. Предположим для такого персонажа есть 5-6  темплейтиков (вариантов) действий на игрока в какой-то ситуации. При генерации выбирается рандомное. А далее по цепочке на основе выбранного темплейта выбираются связаные с ним последствия. (мутно сказал конечно но идея думаю понятна). Таким образом если еще и прикорячить к изменчивому сценарию еще и рандомную карту, то будет вообще фактически каждый раз разная игра.

Я вот пока остановился на варианте генерируемой карты, тоесть каждый раз когда игрок начинает новую игру, генератор создает новую карту абсолютно непохожую по конфигурации на какие-то другие(если они есть). Скажем если в первой игре пара ключевых звездных систем рядом расположены, то в другой игре они могут быть разнесены на гораздо большие растояния и игроку чтобы продолжить проход по сценарию должен будет сначала развить свой корабль прежде чем он сможет добаться до ключевой звезды и продолжить сценарий.

Cyborg`у:
Предложенный способ изменяющейся карты очень для Чебуратора подойдет, так как конструкция твоей карты довольно прост(матричный?) на вид. Небольшая модификация(скажем написание внешней DLL-ки генератора) программы и ты внесешь элемент неожиданности при прохождении игры.


> И ещё кто то тут говорил про то, что игры пишутся 5 лет
> и по этому они такие крутые. Господа, это не крутые игры,
> а долгострои.

Причина такого долгостроя в том что до сих пор железо и АПИ не мог предоставить авторам игры полную свободу фантазии. Только последние OpenGL и Direct3D9 могут обеспечить то что задумал сценарист, ну а железячные вендоры только к этому моменту смогли предоставить миру подходящее железо. Скажем предположу что 3 года из того что делали HL2 потратили на проработку(фактически все заново писалось) физики, AI и т.д. что не очень привязано к графике. Вон даже дядя Кармак с нетерпением ждет когда появятся графические адаптеры с полноценным 64битным цветом.
В целом он прав - 32 бит не обеспечивает должного качества даже сейчас(об этом есть статьи на 3DNews.ru и IXBT.COM) из-за особенностей устройства DAC-ов видюшек.

Так что не стоит осуждать такие долгострои как D3 и HL2. Они стоят того. Я вот никак не дождусь STALKER-а. Увидя демку по телеку мне сразу понравилось исполнение игрушки. Думаю в сетнябре все таки увижу его на своем компе.

Огромное Кулясище

> Возвращаемся к DirectDraw. Я не могу программировать на
> этой чуши. API откровенно неудачен. Меня корёбит, когда
> я освобождаю объект и пишу _Release.

А в чем тогда ты видишь программирование игр? Если этого нет, то это просто "кидание компанентов на форму". Программирование тут нет.


> Давайте тогда писать:
>
> for ____i := 1 to 15 do...
>
> или ещё похлеще. Меня достало заполнять какие-то структуры,
> стаивть указатели на них, указывать сколько полей заполнено,
> каков их размер, чётное ли их количество, присутсвует ли
> буква "J" в названиях полей и т.д. Меня это достало.

Это где такое с буквой "J"?  ;-)

Мне вот чтобы написать следующее потребовалось 10 мин:

Procedure TActor.MoveTo;
Var
       i:integer;
       V,VR:PD3DVector;
begin
inherited;
FastMatrixMove(world.fMat,M);
m._41 := 0; m._42 := 0; m._43 := 0; m._44 := 1;
 For i:=0 to SlaveObjCount-1 do
  begin
     v:=@OBJ[SlaveObj[i]].World.fPOS;
     vr:=@OBJ[SlaveObj[i]].World.RPOS;
     D3DXVec3TransformCoord(v^,vr^,m);
     D3DXVec3Add(v^,v^,World.FPOS);
     FastMatrixMove(m,OBJ[SlaveObj[I]].World.fMat);
      OBJ[SlaveObj[I]].SetPos(V^);
      OBJ[SlaveObj[I]].MoveTo;
  end;

 For i:=0 to SlaveSprCount-1 do
  begin
   D3DXVec3TransformCoord(Spr[SlaveSpr[i]].world.fpos,Spr[SlaveSpr[i]].world.rpos,m);
   D3DXVec3Add(tempvec,Spr[SlaveSpr[i]].world.fpos,World.fPOS);
   Spr[SlaveSpr[i]].SetPos(tempvec);
   If Spr[SlaveSpr[i]].Animated then
     Spr[SlaveSpr[i]].Animate;
  end;

 For i:=0 to SlavePSysCount-1 do
  begin
     v:=@PSYS[SlavePSYS[i]].World.fPOS;
     vr:=@PSYS[SlavePSYS[i]].World.RPOS;
     D3DXVec3TransformCoord(v^,vr^,m);
     D3DXVec3Add(v^,v^,World.FPOS);
     FastMatrixMove(world.fMat,PSYS[SlavePSYS[i]].World.fMat);
     PSYS[SlavePSYS[i]].SetPos(V^);
   if checksync(PSYS[SlavePSYS[i]].Sync) then PSYS[SlavePSYS[i]].Update;
  end;
 BoundCollision.POS:=World.FPOS;
end;


Скажем этот метод реализует систему Link-в(потомок проиклеивется к предку и все движения совершают совместно), как в любом 3D-редакторе(скажем в 3ds max). С первого взгляда кошмар несусветный, я придумывал этот метод около часа. В самом цикле я лишь говорю Actor[i].MoveTo; и все само делается. Чё тут сложного?


> Кроме того, от спора про 3D я отказываюсь.

Да никто про holeywar 3Д АПи и не говорит.

---
WBR, NailMan aka 2:5020/3337.13


 
Огромное Кулясище   (2004-06-18 18:33) [28]

2 NailMan:

Буквально:

ZeroMemory (@ddsd, SizeOf(ddsd)); // Ладно, пускай
with ddsd do begin
  dwSize := SizeOf(ddsd);  // Нафиг надо?
  dwFlags := DDSD_CAPS; // Само не определит?
  ddsCaps.dwCaps := DDSCAPS_PRIMARYSURFACE;  // Единственная полезная здесь вещь
end;


 
wiz ©   (2004-06-18 18:52) [29]

2 Огромное Кулясище:

ты напоминаешь мне человека, который хочет "играть в футбол", но ненавидит его правила... "Ну зачем так сделано???". Не нравится - не занимайся... Зачем себя насиловать? Правильно, не за чем...

Используйте GLScene, кучу "низкоуровневых" библиотек и пишите себе на здоровье. Раздражает лишь то, что вылазит "вот такой вот Кен" и говорит, что те, кто поступает не так как он, лохи и изобретают велосипед, хотя сам не сможет за две минуты написать три классических алгоритма обхода бинарного дерева или "пузырёк".

Я не против вашей деятельности. Пишите, пойте, насвитывайте (или что там с ними делают) программы. Только не надо поддевать людей, которые пошли другим путём.

---
бритва Оккама: "Не создавайте сущности сверх необходимого"


 
Огромное Кулясище   (2004-06-18 19:00) [30]

Далее:

> А в чем тогда ты видишь программирование игр?

Пользовался когда-нибудь Graphic32? Если нет, то я не смогу объяснить. Если да, то слушай. Graphic32 - это замечательная вещь. Это безупречная логика, простота и мощность одновременно. Замечательный подход - 32-битные изображения, т.е. изображения с маской прозрачности. Можно забыть про всякие ColorKey, это не нужно, это всё включает в себя такой подход.

Так вот, работая с Graphic32 я не вижу никакой проблемы залезть внутрь. Если бы надо было работать на низком уровне - пожалуйста, все удобства есть, ничто не скрыто и не недоступно. Только мне этого не требуется. Я работаю с TBitmap32 - трансформирую изображения, накладываю маски.

Я хотел сделать изометрическую игру. Увы, поле 800х600, всё заполненое тайлами давало около 25 FPS, а ещё нужны были спрайты, дома и прочее. Тогда я оставил небольшой ромбик посреди экрана - как большой тайл, т.е. выводятся тайлы не так, чтобы закрыть весь экран, а лишь квадратный кусок карты, образующий на экране ромбик. И я получил 40 FPS.

Надо было как-то загладить такую оптимизацию. Тогда я просто наложил на края выводимого ромба маску - и получил feathering, т.е. крайний тайл в изометрической проекции постепенно уходил в чёрное небытиё. Получилось очень красиво.

Я занялся стенами. Сперва я хотел использовать уже готовые изображения стен, но затем передумал. Я решил использовать проективное преобразование и просто натягивать изображение между четырьмя точками. Получилось замечательно, красиво, с antialiasing"ом. Но увы, FPS безнадёжно упал - всего 15.

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

Получилось обалденно красиво, но увы, FPS умер.

И вот теперь я хочу тебя спросить? Я лентяйничал? Я не работал. Я использовал всё готовое при создании этого?

============

Я не представляю, как сделать то же самое при помощи DirectDraw. Точнее знаю и пытаюсь сейчас, но задача мне представляется лишь попыткой уподобиться - придётся хранить две поверхности на один спрайт, я не представляю, как можно сделать проективное преобразование. Мне неудобно использовать DirectDraw для достижения своей высокой цели.


 
Огромное Кулясище   (2004-06-18 19:06) [31]

2 wiz:

Да, я так и буду делать, но на меня косо смотрят, более того, меня называют ДЕЛАТЕЛЕМ игр, меня называют НОВИЧКОМ (см. первый пост), причём делает это человек, который досконально не знает, что такое antialiasing (см. соответсвующую ветку, если помнишь).


 
wiz ©   (2004-06-18 19:17) [32]

PS: есть конечно способ положить конец этим спорам раз и навсегда...

По-честному пишется ТЗ (для тех, кто на бронепоезде: ТЗ = техническое задание) на некий, не очень большой, (псевдо-)игровой проект.
Что-нибудь вроде: 3d игра в жанре action или strategy, в кадре 100 активных объектов, 1000-2000 пассивных, уровень (или несколько), модельки (1k треугольников) прилагаются. Проверка на collision, взаимодействие объектов (пара-тройки видов), сохранение/загрузка, интерфейс, какое-то количество спец-эффектов (bump mapping, multi-texture, fake-shadows). А если уж совсем заморачиваться, то внести в задание возможность расширения (через скрипты или dll).

Собираются две команды, с названиями "Садо-мазо-программо-велосипедисты" и "кульные хацкеры оболочечники", и реализовывают это дело, каждый на своём. В конце замеряются fps, нагрузка на проц, min.требования, размеры игры, безглючность. Ну и открытое интернет-голосование среди непричастных (вообще не программистов. просто игроков).

Тогда сразу станет всё ясно и результат спора будет очевиден: чья игра будет иметь более высокие показатели, при одинаковом внутреннем наполнении те и выиграли.

---
бритва Оккама: "Не создавайте сущности сверх необходимого"


 
wiz ©   (2004-06-18 20:13) [33]

2 Огромное Кулясище: вас называют делателями и новичками, потому что вы:

1) Пытаетесь сделать "игру" так, как проще вам, а не лучше(быстрее) для пользователя

2) Почему-то вы считаете (непонятно почему), что игровая программа проще того же DirectX"а или Word"а. Почему??? Потому что такую планку вы себе поставили.

3) Редко думаете или вообще не думаете об оптимизации.

Простой пример: "Я решил использовать проективное преобразование и просто натягивать изображение между четырьмя точками". Главное слово здесь - "просто". А о том, какая мощность алгоритма этого преобразования ты не подумал. И скорее всего ты делал это преобразование каждый кадр (интересно зачем?). И я почти уверен, что ты перерисовывал всю сцену каждый кадр... у тебя 3d с постоянно бегающей камерой или 2d, где 50-70% пикселей не отличаются от предыдущего кадра (c точностью до линейного сдвига всей картинки)? Почти наверняка я могу придумать еще пару-тройку способов оптимайза твоего дела. (Но я-то об этом думать не буду, т.к. это твой проект и твоя задача)

4) Ну и последнее. to Огромное Кулясище personal. В post[29] я предлагал вспомнить по-быстрому пару классических алгоритмов. Ты их вспомнил? Если нет, то зачем спрашиваешь про новичков? Или вспомнил? только честно...

---
бритва Оккама: "Не создавайте сущности сверх необходимого"


 
Огромное Кулясище   (2004-06-20 12:14) [34]

Хотел я ответить на пост wiz"а, но увы, составленый ответ пропал из-за сбоев в работе форума. За это время я решил, что мне наплевать на философию т.н. "садомазопрограммистов" (естессно, условное название во всех отношениях). Однако в обиду я себя не дам - кто назовёт меня новичком или ламером или презрительно оболочечником, в том числе необязательно персонально, тот незамедлительно получит ответ в том же духе.


 
wiz ©   (2004-06-20 13:25) [35]

2 Огромное Кулясище: С постом - очень жаль. Хотелось услышать. Честно.


 
Огромное Кулясище   (2004-06-20 14:09) [36]

2 wiz:

А что-то я не догнал вот это:

"4) Ну и последнее. to Огромное Кулясище personal. В post[29] я предлагал вспомнить по-быстрому пару классических алгоритмов. Ты их вспомнил? Если нет, то зачем спрашиваешь про новичков? Или вспомнил? только честно..."

В 29 ничего про алгоритмы не увидел :(


 
wiz ©   (2004-06-20 15:29) [37]

цитата с поста [29]:
...за две минуты написать три классических алгоритма обхода бинарного дерева или "пузырёк"...


 
Огромное Кулясище   (2004-06-20 15:33) [38]

2 wiz:

Про обход бинарного дерева - один напишу. "Пузырёк" - очевидно сортировка "пузырьковым" методом? Тоже припоминаю.


 
wiz ©   (2004-06-20 15:38) [39]

2 Огромное Кулясище:
во-первых, а почему не три?
во-вторых, это самое простое и почти не сомневался в результате :) (в [29] посте я конечно же утрировал)


 
Огромное Кулясище   (2004-06-20 16:27) [40]

2 wiz:

Потому что кто тебе сказал, что их три. Видел недавно статью на сайте про сортировку? Ещё один новый метод. И ещё: зачем три? Или что, три дерева и каждое нужно обойти? Тогда надо использовать один и тот же несколько раз.



Страницы: 1 2 3 4 вся ветка

Форум: "Игры";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.67 MB
Время: 0.037 c
1-1097753020
Tormoz
2004-10-14 15:23
2004.10.31
Определить, каким образом вызвана форма...


14-1097229183
duk
2004-10-08 13:53
2004.10.31
Просмотр графического файла PNG


1-1098121425
focor
2004-10-18 21:43
2004.10.31
HTMLtoFILE


1-1097693061
Colonel
2004-10-13 22:44
2004.10.31
StayOnTop


4-1095573471
Bil Bal Dur
2004-09-19 09:57
2004.10.31
Работа с LPT портом в XP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский