![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Зачем мы этим занимаемся?(филосовствуем) [D6, WinXP]
NailMan © (2004-06-17 18:27:00)Имеется в виду занятие геймдевом...
Бдящим начальникам: Прошу ветку никуда не переносить(в потрепаться), так как тамошний народ в большей части мало понимает наши так сказать интимные геймдевелоперские проблемы.
<Также навеяно ветками про оболочки 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хочешь создать свою "игру", а точнее "поделие" в реальные сроки(месяцы), и тебе важен исключительно результат, то и называй сабя гейммейкером(я всегда рад помочь и тем и другим если у человека есть желание понятьсвою проблему).
Кстате почему так происходит, что многие, имеющие идею(порой даже очень хорошую идею игры), прогорают буквально на втором месяце нашей тернистой геймдевелоперской жизни? Ответ прост - они не программисты в истинном смысле слова, а геймдизайнеры и сценаристы. А сценаристы кина не могут правильного снять - они не режиссеры и не операторы.
Я очень надеюсь повтречать хорошего дизайнера когда у меня уже будет что показать миру и за что не будет мне стыдно(пока мне стыдно за свою демку). Хотя я и сам неплохо владею моделлингом да и помощник есть, который взял на себя отчасти этот нелегкий труд, все таки для качественного продукта требуется настоящий дизайнер-художник и с этим не поспоришь. Чтож буду писать и буду надеяться что допишу...садомазо-програмисты рулят!
Вот.
cyborg (2004-06-21 18:11:00) [61][66] Огромное Кулясище (21.06.04 17:54)
У меня фиксировано 33 кадра, остальное время отдаётся системе.
Судя по этому посту видимо ты до сих пор не понял чего должен достигать программист. Он должен смотреть вперёд, просчитать "расклад", когда твоя игра будет доделана, её никто играть не будет, потому, что системные требования никуда не будут годиться для такой игры, у тебя ещё ничего нет, а уже тормозит. А когда поедет несколько противников, начнут стрелять, то моего процессора тут явно будет не хватать.
Огромное Кулясище (2004-06-21 18:10:00) [62]Давай, а то тебе себя подтвердить нечем - твоя страничка не открывается.
wiz (2004-06-21 18:06:00) [63]2 Огромное Кулясище: DirectDraw - не люблю, так что буду писать на openGL. всё с нуля
Огромное Кулясище (2004-06-21 17:56:00) [64]2 wiz:
Давай. На DirectDraw c нуля. Вращение, блендинг - всё сам.
Огромное Кулясище (2004-06-21 17:54:00) [65]2 cyborg:
И тем не менее ты кушаешь. FPS 30 - вполне нормально, к тому же - оконный режим, к тому же - 32-bit'ный режим, а значит при наличие времени на рисование можно сделать ещё красочнее, можно сделать переход между тайлами по маске (он реализован в редакторе, но руки не дошли), а это - любая поверхность. Кроме того, подсветка от взрыва (альфа-блендингом то небось не балуешься?) достигается специальным объектом-слоём с определённым временем жизни, а значит многие эффекты уже реализованы и ждут графики. От этой демки до игры - рукой подать, графика уже сделана, танки катаются, стреляют, ракеты попадают и взрываются. Дело за нудным - написать AI и объекты.
wiz (2004-06-21 17:47:00) [66]2 Огромное Кулясище: увидел твой "проект"...
дай три часа времени... вернее три часа и 14 минут...
cyborg (2004-06-21 17:39:00) [67]Это игра? Ничего не играет, ездит танк и стреляет. 28 кадров в секунду при 100% загрузке 800 мегагерцевого процессора.
Для сравнения у меня Чебуратор кушает 20-25%, обрабатываемых объектов там на два порядка больше будет.
NailMan (2004-06-21 17:36:00) [68][28] Огромное Кулясище
with ddsd do begin
dwSize := SizeOf(ddsd); // Нафиг надо?
Потому что в разных версиях размер этой структуры может быть разным.
Скажем в следующей версии добавили несколько полей, а структура одна и таже. Как распознать что это более "свежая" по фичам структура? Размером.
Условно говоря когда ddraw получает указатель на эту структуру он читает его размер и определяет его как "свой".
dwFlags := DDSD_CAPS; // Само не определит?
Нет. Все зависит от того что ты хочешь подсунуть и с каким режимом.
ddsCaps.dwCaps := DDSCAPS_PRIMARYSURFACE; // Единственная полезная здесь вещь
Тоже самое. Если ты не укажешь, то не получишь или получишь INVALID_CALL.
В случае с DDraw/D3D, они полагаются на программиста. От его совести и желаний. Что сказал то и получил.
---
WBR, NailMan aka 2:5020/3337.13
Огромное Кулясище (2004-06-21 17:24:00) [69]Псст... стрелки - ехать. Мышкой стрелять.
Огромное Кулясище (2004-06-21 17:22:00) [70]2 cyborg & wiz:
Пожалуста, Танчики так Танчики. Проект делался неделю и даже меньше.
http://www.hot.ee/mvps15/Tanks.rar[370 Kb, WinRAR 3.30]
Огромное Кулясище (2004-06-21 17:14:00) [71]2 wiz:
Выкладываю (час времени нужен)...
cyborg (2004-06-21 17:12:00) [72]
> [56] Огромное Кулясище (21.06.04 15:29)
:) А теперь посмотри на имя написавшего тот пост и дату, посмотри его сайт.
До моей какашки тебе ещё долго испражняться придётся.
Хотябы мои примитивные танчики осиль.
За них дерутся там :) http://www.panvasoft.com/rus/1757/
wiz (2004-06-21 16:10:00) [73]2 Огромное Кулясище:
>Собсна, какой ход, когда мне не на чем писать?...
>...но вам это надо?
>Знаешь, пожалуй у меня найдётся в закромах какой-нибудь старый проект...
Когда я был моложе, мы это всё называли "дешёвыми отмазами"...
Или у тебя есть проект (alpha/beta/release - не важно), и тогда мы можем посмотреть и понять какие мы тут пылинки в сравнении с тобой, или нет, но тогда ты зелёный новичёк, занимающийся рукомашеством от безделья...
А пока... можешь сколько угодно говорить про cyborg'а, но ты пока даже "какашек" не умеешь делать... Или умеешь? (Только не надо тут: "Я умею, тока не буду, ибо нафиг делать какашки?" <- сие есть просто еще одна дешёвая попытка отмазаться)
VitGun (2004-06-21 15:49:00) [74]2 Огромное Кулясище.
> Ок, а ты изображай из себя программера. Давай! Заполнил
> кучу ненужных полей - и сиди, гордись тем, какой ты умный
> программер.
Если эти "поля", как ты выразился, не нужные то зачем их тогда сделали. Я программера из себя не изображаю...я и есть программер...Я не жалуюсь, что вот это я не буду кодит потому что там сложно или много полей. Я просто делаю...
"Если звезды зажигаются, значит это кому-то нужно" (С) А.Д'Сен Экзьюпери.
Огромное Кулясище (2004-06-21 15:29:00) [75]2 wiz:
Собсна, какой ход, когда мне не на чем писать? Ну хочешь, пойду к другу, откомпилирую у него тот же Irrlich с какой-нибудь моделью, но вам это надо?
2 cyborg:
Знаешь в чём разница между нами?
У меня есть готовые проекты, у тебя нет. Так кто из нас знает как делать?
Знаешь, пожалуй у меня найдётся в закромах какой-нибудь старый проект, про который можно сказать то же, что и про Чебуртора говорят, например, на ListSoft ( http://www.listsoft.ru/programs/13163/):
"Главный герой почему-то как какашка ходит. То есть похож на какашку. Весь такой маленький и коричневый. И не шагает а переваливается.".
wiz (2004-06-21 15:26:00) [76]ко всем (как бы anti-offtopic):
Возник вопрос-опрос: как мы все понимаем, создание игры "в домашних условиях" может преследовать разные цели. Тут может быть и программеский рост, и наполнение своего портфолио, преследование выгоды ("коммерческого успеха") или желание самоутвердиться [в школе/на факультете/среди друзей/на форуме delphimaster :)], в конце концов попытка занять себя тихими зимними вечерами.
Скорее всего у создателя цель не одна, а несколько. И очевидно, что приоритеты у каждой из них - свои.
Так вот, собственно вопрос: "Расскажите (в двух словах), какую цель преследуете вы?" (или "Зачем вы этим занимаетесь?")
-------------------------
как зачинщик, отвечаю первым :)
Зачем я занимаюсь своим проектом:
1.(50%) Никогда ранее не занимался разработкой игр, хочу узнать - смогу ли я "сделать" игру (от начала до конца).
(За свою небольшую жизнь уже занимался ГИС, кучей численных методов, real-time обработкой сигналов, и еще бог знает чем, а вот играми - никогда)
2.(30%) Признание/Коммерческий успех.
(Конечно, хочется сделать игру не какой-нибудь, а на уровне... и единственная объективная оценка качества игры - появление людей, которые будут согласны выложить за неё свои деньги)
3.(20%) Способ занять себя тихими долгими вечерами + способ завести новые знакомства (причём не просто так (это можно и на улице сделать), а с людьми-единомышленниками).
(В конце-концов, написание игры - дело увлекательное, приносит радость и удовлетворение (особенно в том случае, если удаётся написать красивый алгоритм-решение), и ничем не хуже (а imho даже лучше) собирания марок или поиск и распитие новых сортов пива)
----------------
господа, прошу высказываться :)
wiz (2004-06-21 15:01:00) [77]2 Огромное Кулясище к посту[53]:
post[47]>...На сим с меня для этой дурацкой ветки хватит...
А зачем тогда вернулся? На данный момент твои речи превратились в невнятную истерику... Если есть аргументация своей позиции - выкладывай. Нет, тогда нечего тут на всех наезжать...
nailman, cyborg свои "вещественные доказательства" уже показали...
я тоже (лежат на http://gnar.fatal.ru- pure-openGl)
теперь твой ход...
Огромное Кулясище (2004-06-21 14:37:00) [78]2 VitGun:
> Тогда ты не тем занялся. Сиди и лепи NotePad'ы на VCL, а не пытайся изображать из себя программера. Не тебе решать удачен API или нет. Если ты чего-то непонимаешь, то это не значит, что это плохо. Почему же тога на этом "неудачном" API написано столько игр. Или все те программисты, что их создавали - тупые, и недогадались что он неудачен? А ты разглядел и открыл нам глаза - спасибо!
Ок, а ты изображай из себя программера. Давай! Заполнил кучу ненужных полей - и сиди, гордись тем, какой ты умный программер.
VitGun (2004-06-21 12:19:00) [79]//Возвращаемся к DirectDraw. Я не могу программировать на этой //чуши. API откровенно неудачен. Меня корёбит, когда я освобождаю //объект и пишу _Release. Давайте тогда писать:
//
//for ____i := 1 to 15 do...
//
//или ещё похлеще. Меня достало заполнять какие-то структуры, //стаивть указатели на них, указывать сколько полей заполнено, //каков их размер, чётное ли их количество, присутсвует ли буква //"J" в названиях полей и т.д. Меня это достало.
Тогда ты не тем занялся. Сиди и лепи NotePad'ы на VCL, а не пытайся изображать из себя программера. Не тебе решать удачен API или нет. Если ты чего-то непонимаешь, то это не значит, что это плохо. Почему же тога на этом "неудачном" API написано столько игр. Или все те программисты, что их создавали - тупые, и недогадались что он неудачен? А ты разглядел и открыл нам глаза - спасибо!
NailMan
Респект
NailMan (2004-06-21 10:14:00) [80]kas-t
> А от себя хочу добавить, что пока NailMan напишет своего
> космосима, его игра уже никому не будет интересна.
По моему игра интересна не только своей графикой, а также идеей.
Что касаемо графики - переделать с D3D9 на D3D10 мой будущий движок - дело максимум недели. Причем основное время потребует только отладка - сам процесс перехода будет в замене нескольких символов в программе.
Шейдеры естественно HLSL - тут вообще ниего менять не надо, а новые фичи - тут по желанию. Многие фичи и я вряд ли буду юзать в силу из ориентированности на ландшафтные игры.
Ну и самое главное DX10 появится не ранее Longhorn-а, а значит не ранее 2007г. Так что эффекты до того времени не устареют.
> То сколько же ты (NailMan) будешь трудиться над своим проектом!?
> Пахнет долгостроем :)
С учетом того что у меня сейчас появилось много свободного времени(после работы) в связи с окончанием ВУЗа полтора года назад, проект уже долгострем не станет. :-)
> В общем спор идет ни о чем…
А спора то и не было, только размышления...
---
WBR, NailMan aka 2:5020/3337.13