Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Создание компьютерных игр


Информационный Канал Subscribe.Ru

Выпуск 4. Ключевые моменты разработки, или все тот же простой вопрос "как стать создателем компьютерных игр?".

Доброго времени суток всем читателям!

Спасибо всем, кто мне пишет! При любых обстоятельствах я благодарен тем, кто присылает мне свои письма. И я прошу это запомнить, потому что, прежде чем перейти к основным темам выпуска, я хотел бы сказать несколько "административных" слов по поводу самой рассылки. (Темы сегодняшнего выпуска находятся страницей ниже, а сам выпуск "по существу" - после большого заголовка). Очень надеюсь, что мои слова будут правильно истолкованы, поэтому еще раз - что бы я ни говорил, я ВСЕГДА благодарен тем, кто мне пишет, и жду этих писем.

Многие наверное уже догадались в чем дело. Да, все правильно, что я просил, то и получил. Теперь после каждого выпуска приходит не меньше двадцати писем. Что это значит, и как это влияет на рассылку? Начнем с самого приятного. Прежде всего, теперь рассылка действительно сдвинулась с мертвой точки, у нас есть интересные темы и люди, желающие их обсуждать. И следовательно, рассылка будет выходить чаще. Все замечательно. Если бы не одно "но". На прочтение, осмысление каждого из писем, обдумывание вопроса "будет ли письмо и мой ответ на него полезны и интересны читателям" требуется значительное время. Получив письма после предыдущего выпуска я поймал себя на том, что пробегаю их глазами, не вчитываясь. "Стоп!" сказал себе я, "так дело не пойдет". Потому что письма приходят действительно интересные и содержательные! И я еще раз говорю вам спасибо за такие письма. И обещаю уделять им должное внимание и время, которого они заслуживают.

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

Итак, вступление затягивается, поэтому по существу. Во-первых, скорее всего, рассылка будет выходить все-таки раз в неделю. Это не догма, конечно же, а всего лишь ориентировочный срок - выпуски могут выходить чаще (я надеюсь, так и будет), а могут и реже. Во-вторых, выпуски будут очень объемными, возможно даже придется дробить их на части и выпускать по два выпуска в день выхода рассылки. В-третьих, убедительно прошу не присылать мне файлы размером более 300 килобайт, дабы не омрачать мою радость от ознакомления с вашими творениями. (Антонина, Ваша карта - просто шедевр, и замыслы грандиозны. Вам точно нужно собирать вокруг себя команду и делать проект. С Вашей энергией и энтузиазмом, я уверен, Ваш проект обязательно будет успешным. А ответ на Ваше письмо про экспорт моделей 3DS Max попал в раздел Программирование.) И в-четвертых, не стоит писать мне только ради того, чтобы написать. Я получаю письма, например с такими фразами: "часто писать не могу, но буду стараться". В этом отношении первый выпуск уже неактуален - рассылка будет жить. Уже практически сформировалось некое ядро участников, вовсю идут обсуждения... Поэтому, если есть что сказать - милости просим. Если нечего - не волнуйтесь :).

А сейчас переходим к выпуску. Для начала приведу письмо с очень справедливым, как я считаю, упреком.

Здравствуйте!

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

Только в 2 номере к Вам написала художница Антонина. Не могли бы 
Вы дать мне е-маil её, нашей Студии очень нужен хороший художник! 
Мы уже кое-что сделали... но пока мало. Заходите на наш сайт:
http://programm-com.narod.ru

Спасибо, до свидания!
Здравствуйте! Антонина, я думаю, сама свяжется с Вами, если захочет. Только вот, это скорее Антонине нужна команда, как руководителю, гейм-дизайнеру и сценаристу. Но это уже не мне решать. Кстати, мне тоже очень нужны хорошие художники и музыканты. Но прямо сейчас гораздо нужнее хороший веб-дизайнер. Именно дизайнер. Проблема внешнего вида сайта Школы стоит уже очень остро и тормозит развитие всего проекта. Поэтому если есть желающие стать "штатным веб-дизайнером проекта" - пишите.

А что касается предыдущих трех выпусков - мда, действительно они получились несколько нескладными, но, как говорится, лиха беда - начало. Так что читайте дальше, и найдете много полезных советов.

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

1) Что же все-таки важнее - дизайн (концепция и реализация на бумаге) или программирование (реализация в виде готовой программы)? И чему уделять больше внимания в рассылке?
2) Мнения о разработке игр в целом (главная тема выпуска).
3) Разработка игр "не для PC".
5) Полезные ссылки, куда идти за информацией.
6) Советы начинающим.
7) Отдельно, "уголок программиста" (coding corner так сказать). Вот, кстати и первый раздел наметился.
8) Письма читателей, не попадающие ни в одну категорию.

Основные разделы выпуска я буду выделять заголовками, чтобы их было легче найти. Я постараюсь избегать разделения ваших писем на части, но очень часто вы пишете сразу по нескольким вопросам, поэтому, иногда придется дробить письма по темам. Итак - приступим.

Основная часть выпуска

Отрывок из письма Александра Дорофеева:
Давайте все-таки определимся для кого рассылка. Я думаю, что для программистов на C++. 
Сразу про все сразу не получится. Игры, как-никак, - программный продукт, да и 
автор рассылки, тоже программер. Программист всегда первичнее каких-то гейм-дизайнеров. 
Что он напишет, то и будет игрой. Ко всем "гейм-дизам" и "сценаристам": РПГ офигенно сложно.
 Предлагаю со стратегии начать. Дизайнеры и моделеры очень важны, почти как программеры, 
 но для этого отдельная рассылка потребуется.
Александр, спасибо за Ваши письма. Наши мнения очень часто совпадают, а поскольку человеку свойственно искать единомышленников, я обязательно напишу Вам лично. По поводу "сразу про все не получится". Да, я тоже ориентируюсь прежде всего на одиночек, которые хотят создать с нуля свою игру и считаю, что программирование стоит на первом месте (Диана Грубер тоже так считает, кстати :)). Но рассылку читают самые разные люди. Так почему бы, действительно, не разбить ее на разделы, и тогда каждый будет находить что-либо интересное для себя. А самое главное - не будет закрываться. Допустим, не хочет человек программировать. А так, может заглянет в раздел, почитает, проникнется... Я ведь тоже когда-то давным-давно программировать не хотел, точнее боялся. А сейчас за уши не оттащишь :).

А у нас возникает интересный вопрос. Что же первичнее - "курица или яйцо"? :) Приведу противоположное мнение.

Здравствуйте, Евгений.

Нда... Простите, но больше слов у меня нет...
Новый сезан рассылки меня несколько озадачил, а последнее письмо и
вовсе добило.
Всё дело в подходе! С моеё точки зрения Вы просто не можете
спозиционировать свои идеи. Т.е. Вы пытаетесь расшевелить людей делать
игры, а на самом деле просто, с моей точки зрения, рекламируете книгу
по программированию. Если я прав, то почему только одну? Ведь есть
много других хороших книг в любом интернет магазине.
А вот если я не прав, то тут то и начинается самое интересное!
Всё дело, как я уже говорил, в позиционировании идей. Т.е. легко
сказать "Люди я дам вам надцать уроков, вы усвоите азы
програмирования, купите [ну вот опять купите] пару книг и начнёте
писать игрушки сами, или по крайней мере проникнитесь моими идеями и
будуте пытаться самосовершенствоваться".
Однако всё на самом деле гораздо сложнее. Научить человека на базовом
уровне владеть каким либа языком - это просто, а вот развить в нём
навыки создания игр - это извините... И это не голословное заявлени,
т.к. я сам занимаюсь этим занятием (созданием игр на коммерческой
основе) вот уже более 3 лет. И основные грабли это как не странно ни
графика, ни приграммирование, ни музыка, а сюжет и его РЕАЛИЗАЦИЯ.
Читай - полное, детальное описание проекта (диздок). И до тех пор, пока
в этом диздоке не будет прописана каждая мелочь, вплоть до того сколько
миллисикунд будет играться звук падения фигуры на дно стакана в
тетрисе, нечего даже и браться за кодирование. Я уже молчу про большие
проекты...

Никакой морали из этого письма я выводить не буду. Подумайте сами.

р.s. данное письмо можно опубликавать в рассылке у без указания
обратного адресa.

-- 
С уважением, Денис aka Zuncl.
p.p.s. если вдруг у Вас возникнут ко мне вопросы (касательно подходов
и принципов): милости прошу, постараюсь помочь :)
Здравствуйте, Денис. Не могу не прислушаться к Вашему авторитетному мнению. И с удовольствием принимаю Вашу помощь. Только вот, даже не знаю, что спросить. Да, я согласен, без планирования просто никуда, и моя игра, над которой я работаю, это четко иллюстрирует. Сперва дизайн, потом кодинг. Но и одним дизайном тоже сыт не будешь. Спрошу вот что. По Вашему, разве недостаточно просто сесть и набросать план на бумаге? Да, если проект профессиональный - дизайн документ это must have. Но стоит ли для "арканоида" так возиться?

Кстати, вот еще отрывок на эту тему. Пишет Андрей:

3. Кроме всего прочего, обратите особое внимание подписчиков на сам процесс
разработки игр. Ведение документации, планирование процесса разработки и
т.п.
Позже, возможно, на анализ рынка, а то если, например Вы преследуете цель
написать
коммерческую игру, вложите в нее массу времени, денег, а потом окажется
что она никому не нужна. Опыт вы конечно получите, но провал может на
столько деморализовать, что к следующей, возможно удачной игре, вы уже ни
когда
не приступите.
Все что могу сделать - сказать: подписчики, обратите пожалуйста внимание на эти вопросы. Как именно это сделать? Хмм, ну я бы разумеется пошел по игровым сайтам, даже на сайте Школы есть статья "Руководство по игроделанью", где азы раскрываются. Опять же, есть книга Компьютерные игры: секреты бизнеса, о ней я уже рассказывал раньше, причем не раз. Книга хорошая, я ее прочел на одном дыхании, только вот до применения на практике еще, увы, не дошел. Денис, Вы нам поможете?

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

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

Добрый день.
Поискал у себя в загашниках - нашел кое что для начинающих. Шлю аттачем список. 
Если что надо - жадничать не стану. Не первой свежести материалы, но все-же. 
Сам на них когда-то (не так давно) учился. Думаю будет небезъинтересно.
По пооду рассылки. Поменьше эмоций. Восторженные отклики - хорошо, вдохновляют 
и правоцируют на. Но 39kb - многовато. Хороше-бы подумать что будете делать 
дальше. Опускаться до исходников и т.п. не советую - частности убивают идею. 
Одному нужен LightMap, другому мультитекстурирование, а третий вообще не знает
 что такое 3D-вектор. Цените свое время мозги подопечной паствы. Давайте 
 общую информацию по вопросу + хорошие ссылки на те самые частности. 
 Кому надо - обрящит. Из своего опыта знаю что лучший учитель - необходимость а не палка.
На счет больших дядей и песочницы - а чего вы хотели собственно? Так и 
будет. Вы лучше к ним (нам) за советом, помощью какой, статейкой. Думаю не 
откажут(-жем) пионэрам. Кадры - они решают все ((с)И.Сиалин). Так что милости просим.
И еще. Как человек из нутри индустрии, хочу посоветовать(без менторства с моей 
стороны). Объясните младой поросли что gamedevelopement - не есть фан, а есть 
большой труд, упорство и годы жизни отданные на алтарь. Причем это все - 
необходимое, но отнюдь не достаточное условие. Данная истина отлично отсекает 
лишних. А это полезно, т.к. потраченное на них время - потрачено впустую.
С уважением Alex N. Wolf.
 
Алекс, спасибо Вам за письмо и за предложение помощи. "Аську" я в рассылке приводить не решился. (Всем еще раз напоминаю, в следующий раз все, что есть в теле письма, может попасть в рассылку, поэтому не надо указывать там свой адрес электронной почты и тут же просить, чтобы я его не публиковал. Если же в рассылке письмо без координат, попробуйте связаться в форуме.) Список ссылок я опубликую ниже, в соответствующем разделе. А насчет объяснения младой поросли - я объяснял (и продолжаю это делать на страницах сайта), не все услышали. Как же трудно обратить внимание людей на некоторые вещи, приходится по нескольку раз отвечать на одни и те же вопросы (никакой FAQ не спасает). Ну что же, к счастью, на эту тему у нас тоже есть письмо. Я считаю, просто отличное письмо.
Здраствуйте, Евгений,

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

Я бы настоял на том, что бы это письмо было опубликовано в рассылке.

######################################################################

           "То что не убивает нас, делает нас сильнее" Ницше(с)

Почти у каждого кто знакомится с миром компьютерных игр, рано или
поздно возникает желание сделать что-то свое(не у всех конечно, чаще у
творческих личностей). У большей части это желание угасает практически
мгновенно ввиду явной невозможности реализации(например если с играми
вы знакомы по игровой приставке, вам 40 лет и у вас образованние
слесаря). Но всегда найдутся люди которые молоды, получают или
собираются получать образование по родственой к игроделанию
специальности (например художник или програмист) а так же у них есть
достаточно мошный компьютер с выходом в интернет, а так же ни чем не
поколебимое желание сделать Свою Игру ( которая конечно заткнет за
пояс всех своих конкурентов)
***
Немножко отойдя от текста позволю вспомнить себе письмо в котором
автор предлагал сделать улучшеный Морровинд, за счет отрубания частей
тела и появление на текстуре персонажа шрамов.
1)Подобное "нововедения" уже встречались в нескольких играх вышедших уже
несколько лет назад.
2)Играбельности это не добавит, но наверняка усложнит создание игры и
сам игровой процесс
3)Могу судить по себе: те идеи которые я записывал себе в журнал лет
пять назад, я очень часто нахожу в современых играх. Но в том то и
проблемма. Идея может прийти в голову каждому, а вот реализовать ее
сможет не всякий...
***

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

Если вы дочитали до сих пор и еще не полностью разочаровались в
разработке своей игры, я все же замечу, что даже в кино индустрии
появляются кинофильмы с мизерным бюджетом и малым и неизвестным
актерским составом которые тем не менее срывают куш. Стоит вспомнить
"Проект "Ведьма из Блэйр" и "Куб".
Побобное справедливо и в отношении компьютерных игр, с той лишь
разницей, что здесь все проще и доступнее. Ни для кого не секрет, что
существует огромное количество небольших компаний занимающихся
разработкой игр и продающих их как shareware(если не знаете, что это
такое спросите у дядюшки Яндекса). Некоторые компании таким образом
даже разрастают в крупные, хороший пример этого ID Software, чья игра
Doom  в одночасье подняла ее на вершину.Хотя до того в ней было
создано множество других игр попроще, которые позволили
компании получить деньги и время на создание своего шедевра.
***
Еще одно лирическое отступление.
Один из читателей заявил, что ни к чему тратить время на "Бесконечное
пережевывание создания спрайтовых и трехмерных движков для аркад".
Конец цитаты.
***
Отчасти соглашусь.
Каждый второй "игродел" мечтает создать свой навороченый 3д-движок
который будет круче Doom3 и т.д и т.п. Даже если движок и будет
написан, что бывает к слову не так уж часто, то тут же всплывает
другая проблемма. Движок то сам по себе никому не нужен - в движок не
поиграешь. Нужно создавать игру на этом движке, наполнять его
всевозможной графикой, моделями, звуками, музыкой. Тут програмиского таланта
может уже не хватить. На этом чаще всего дело и заканчивается.
Хотя по хорошему разработчик должен кроме програмирования еще и уметь
рисовать в 3D MAX, Photoshop,  уметь работать с со звуком в CoolEdit,
и  даже писать музыку.
 ...Надеюсь вы еще со мной... :)

Другие  не заморачиваясь берут уже готовые движки и начинают делать,
что-то свое, но как правило освоить готовый движок не намного проще чем
написать свой, в каждом движке могут быть ограничения и особености не
совместимые с концепцией вашей Великой Игры, и всеравно придется, что-то
 писать или переписывать. Хотя можно и просто сделать мод к уже
имеющейся игре, многие игры сейчас позволяют делать такое ( здесь можно
привести Counter Strike, как пример любительского мода практически
затмившего оригинальную игру по популярности).

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

Много еще хотелось сказать, но пока хватит. И так это письмо врядли
опубликуют из-за его размера и содержания.

Закончить хотелось бы несколькими рекомендациями тем кто еще только
начинает. Если собираетесь заниматься этим всерьез, учтите следующие
пункты:
1)Выбор языка програмирования: С/С++, как варианты С# (все это входит
в состав Visual Studio.NET)
2)Знание иностраного языка: английский хотя бы технический для чтения
документации (без использования MSDN - справочной службы входящей в
состав Visual Studio - програмирование скорее всего
превратиться для вас в блуждание по незнакомой местности без карты)
3)Графические пакеты: 3D MAX , Photoshop ( научитесь рисовать хотя бы
несложные вещи в этих графических пакетах ). Для тех кому этого мало
могу порекомендовать еще Maya, Poser, Bryce для 3D моделей и Corel
Draw, а также Macromedia Freehand и Fireworks для 2D графики.
4)Сайты gamedev.ru и dtf.ru на русском
gamedev.net, gamasutra.com на английском
На этих же сайтах можно найти массу ссылок на другие ресурсы и сайты.
5)Компьютер достаточной конфигурации, что бы все выше перечисленое
запускалось без проблем работало
6)Литература: ну купите наконец какую нибудь книжку пусть даже ту, что
несколько назойливо прелагает автор подписки :) хотя есть много других
интересных книжек к сожалению пока не переведеных на руский.
7)И чуть не забыл нужен доступ в интернет, хотя бы для того что бы скачать набор
разработчика для DirecX или OpenGL.

С чего начать?
Я бы рекомендовал начать с простого и в следующей последовательности:
1)Тетрис
2)Арканоид
4)Пакман
5)СуперМарио
Именно в такой последовательности рекомендует начинать писать игры
автор на этом страничке http://www.lupinegames.com/articles/path_to_dev.html
и я с ним согласен.
Эти игры идут по возрастанию сложности разработки. И не смотря на то
что вам придется делать всего лишь римейки старых хитов, кто знает
может вам удастся открыть в них новые грани которые сделают игру
интереснее, ну если нет то опыта вы наберетесь более чем достаточно,
что бы без сомнений создавать более сложные игры самостоятельно или
работая в компании.
  

С наилучшими пожеланиями, Геннадий Стриевич aka Werewolf
          mailto:strievich@tut.by

Думаю, комментарии излишни. Только скажу, что статью, упоминаемую в конце письма, я давным-давно перевел и положил на сайт, и называется она "Как научиться делать игры" by Geoff Howland. Я считаю, что арканоид все-таки для второй игры крутоват, лучше написать Space Invaders или пасьянс какой-нибудь. Лично я очень долго возился с физикой мяча, в итоге сделал, но как-то коряво. Однако игроку это заметно не будет, "летает все как положено", а что нам еще надо?

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

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

И начнем мы с вот этой интересной темы:

Создание игр не для PC

Если вы помните, был вопрос, как создавались игры для ZX Spectrum. У нас есть ответ:
На Spectrum игры писались на Ассемблере в основном на том же спектруме.
Было достаточно средств для разработки и отладки программ на нем.
Хорошее было время... Для своей достаточно большой игры на ZX S. 128кб,
помню, делал менеджер виртуальной памяти  - ассемблер с исподниками сгружался на
гибкий диск, загружалась графика, программа шла  на отладку, по окончанию
производилась обратная операция. Эмулятор на PC не давал новых средств
разработки.
Свежий вопрос про создание игр для консолей (думаю уже все, в том числе и новички, теперь знают что консоли это игровые приставки):
Привет
Сразу скажу что рассылки для меня вновинку и раньше я на них  
неподписывался. Мне интересно почему все делают игры для ПК, на нем и так  
всего хватает, я хотелбы сделать что то для Dreamcast, насколько это  
сложно если я толком ничего незнаю, только Dings немного? И ещ интересно  
узнать кто то еще делает игры на Dings, где можно их скачать, посмотреть  
что у кого получается.

                                                   Андрей
Ну вот опять, чешутся руки написать "этот вопрос подробно раскрывается в книге "Компьютерные игры: секреты бизнеса", о которой я сегодня говорил". Ну раз чешутся, я уж напишу... А теперь скажу сам, что знаю. Создание игр для консолей - штука непростая именно с точки зрения коммерции. Чтобы разработчику выпустить игру для консоли, ему нужно много чего сделать. Во-первых, купить за очень приличные деньги лицензию на средства разработки у компании-производителя игровой приставки. Игровые приставки - вещь очень "закрытая" (то есть технологии закрытые и секретные), на все нужны лицензии и разрешения производителя "железа". И просто так они эти лицензии кому попало не выдают. Поэтому обычно для консолей пишут разработчики, уже зарекомендовавшие себя на PC. А новичкам в эту область очень трудно попасть.

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

И наконец - про разработку для Linux:

Hello evgeniy,

  Во второвом выпуске "Новой Волны" прозвучала цитата из письма
  читателя:
  <- особенности программирования игр под linux/freebsd ->
  Конечно, программирование игр под Линукс и прочие юксы возможно и
  увлекательное дело, только думаю довольно непривычное, тем более для
  начинающих создателей игр. Потому хотелось бы, чтобы рассылка
  осталась в ранках старой доброй виндовс (и так для освоения
  материала хватит) а в отношении линукс - можно включать ссылки на
  достойные внимания сайты, но не углубляться сильно, чтобы не сбивать
  читателей в дремучий лес с набитой лыжни. Кто же почуствует себя
  профи в спортивном ориентировании, тот может смело сворачивать по
  этим указателям в мрачные на вид (и на вкус) зарости терновых
  кустов. Лично я уважаю линукс, но только как сервер. попользовавшись
  ГУИ понял, что коряво как-то это выглядит(изнутри).... может с непривычки
  глаза резануло, может отсутствие опыта сказалось, но привести в
  чувство русские шрифты в менюшках и прочем я так и не смог (или руки
  не дошли). Какое уж тут программирование игр :) разве что консольных
  :)). В общем понятно, что каждый читатель будет тянуть одеяло на
  себя (как я сейчас), так что хотелось бы услышать мнение автора
  рассылки, чтоб не разводить войны типа линукс VS виндовс.

  P.S. Деду Мазаю шашлычная на горизонте виднее, чем бедолагам зайцам.
-- 
Best regards,
 Александр                          mailto:dzmat@yandex.ru

Александр, мое мнение весьма простое. Я считаю, что нормально продавать игры для Linux нереально. Подавляющее большинство геймеров используют "мастдай", это очевидно. Поэтому зачем тратить время на игру, которую никто не купит? Хобби это хорошо, но всем нам нужно что-то есть и где-то жить. И я не верю в такой порядок вещей, как "работать менеджером, а в свободное время писать игры". Я считаю, что нужно заниматься любимым делом и достойно этим зарабатывать, а не "работать на дядю и жаловаться на то, что мало платят", при этом еще умудряясь создавать игры. Я не верю, что "художник должен быть голодным". И считаю, что по-настоящему творить можно только тогда, когда голова не занята вопросами "как накормить семью". Для Linux игровой индустрии пока нет. И я сомневаюсь, что в скором времени будет. Вот такое мое мнение.

А про шашлычную это хорошо сказано :) На этой оптимистической ноте переходим к разделу

Программирование

Я постараюсь как-то структурировать раздел, хотя, видимо придется "валить все в кучу". Заранее прошу за это прощения. От комментариев буду воздерживаться, давая их только по необходимости.

Начнем с того, что попроще.

Здравствуйте, evgeniy.

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

ЗЫ: Братья говорили что в Морроувинде в игре есть свой игровой движок.
Я этой игры не видела, вы знаете какой там движок? (А то ведь и в
героях есть свой движок, но он не устраивает).
Антонина, создается впечатление, что Ваши братья не очень-то много понимают в создании игр (поправьте, если я ошибаюсь). Да все так и делают! Именно так! Создают модели в MAXе, а потом экспортируют их в свои движки (или импортируют в движки из максовских файлов, не знаю как вернее сказать). Если Вы не хотите сами программировать, то Вам не придется этим заниматься. Делайте модели в "Максе" (правда они должны быть низкополигональными, но это отдельная тема), а остальное сделают программисты (только придется их найти и пригласить к сотрудничеству).

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

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

Теперь переходим к вопросам посерьезнее.
А теперь по поводу последнего выпуска рассылки.

Процитирую и прокомментирую некоторые из рассмотренных в прошедшей рассылке 
писем. Их авторы, думаю, себя узнают.

1. "Почему я не могу найти знания в Интернете? Потому что там ценная информация 
не публикуется. Ценная информация денег стоит. Да и никто просто так не 
выложит исходники современной игры." - так пишет автор первого из опубликованных писем. 
Совершенно не верное мнение. Выложат, см. мое письмо + есть куча открытых движков, 
например Nebula (отлично спроектированный, к которому я частенько обращаюсь), 
Nebula 2, к сожалению, более не разрабатываемый, все версии Quake и Unreal - 
неужели этого мало. Ценная информация может быть открытой: чего только Linux 
и FreeBSD стоят + куча свободного ПО, которое быстрее, надежнее и функциональнее 
коммерческих аналогов. С играми ситуация нисколько не хуже.
 

2. "DirectX SDK нужен обязательно? Или можно программировать без него?" - ОДНОЗНАЧНО!
 Странный вопрос даже! А линковать без lib'ов как??

 

3. "Есть ли в нём средство для быстрого считывания BMP файлов?" - есть, и 
куча всего другого, которое правда, иной раз самому лучше реализовать, т.к. 
микросовтовский код часто очень тяжелый и перегруженный вовсе ненужной функциональностью.


4. "Последний раз я закупил книг на сумму 2,5 тысячи рублей" - это больше 
той суммы, которую я потратил на литературу по программированию за всю жизнь. 
По-моему лучше потратить время на непосредственное программирование, 
понимание "а как это работает", начать придумывать свое, чем на чтение, 
как это делали другие. Современный MSDN 3,6 Gb - неужели этого мало? 
Вчера нашел книгу Ламота в магазине, полистал ее и еще "DirectX - 
продвинутая анимация" - обе устарели. Еще какая-то третья с подобной обложкой 
(из той же серии) была про DirectX - там DirectDraw 7 разбирали, DirectInput и 
DirectSound, которые я 2 года назад за вечер инициализировал и без всяких книжек, 
только по примерам из SDK. Сведения о фунаментальном программировании и 
проектировании в полной мере представлены у Страуструпа в 3-м издании. 
Книга выложена pdf-ом в инете, 2,5 Мб весит. На мой взгляд, этого более 
чем достаточно, чтобы начать программировать на C++ что угодно. Важна 
практика, а не чтение макулатуры!!! Пускай вы не всё знаете, но то что знаете,
 умеете применять. Это намного ценнее. Иначе превратитесь в преподов из наших 
 вузов, подобных упомянутому в одном из писем, который IOResult <> 0 Then писал, 
 не понимая почему так. Хотя, если IOResult - знаковый тип, то так будет правильнее.
 

5. "Мне бы очень хотелась, чтобы рассылка помогала людям "не становиться менеджерами"
 а достойно зарабатывать любимым делом" - очень правильно. Поддерживаю на все 100% 
 Такая проблема, действительно есть повсеместно.

6. "Касательно книг - есть очень серьезные книги, совсем не для чайников. 
Например "DirectX - продвинутая анимация" ". Про последнюю, уже писал. 
Лучшее, что я видел за последнее время - это статьи Сергея Гайдукова на GameDev 
про работу с расширениями OpenGL, которые теперь стали его книгой "OpenGL. 
Программирование трехмерной графики на C++". Успевайте изучить, материал - 
очень свежий и актуальный, с наглядными полноценными примерами, что главное.

7. "Например - решить "ни строчки кода" - и рассказывать лишь о принципах, идеях... 
чьих-то успехах и неудачах..." - не надо превращать рассылку в пустую демагогию. 
И так вся страна этим занята. Я тогда точно от нее отпишусь.

8. "Вот появилась такая идея: а что если начать создавать свою игру вместе с 
читателями рассылки? Не давать им по 10 строчек кода в день, а вовлечь их 
в непосредственную работу. Тут появляется много положительных моментов - каждый 
неопытый читатель может скачать игру, и убедиться что она работает. И каждый понимает 
что он сам может повлиять на то как игра будет выглядеть завтра. По-моему это хороший 
стимул для действий. Я бы предложил создать он-лайн игру. Тогда каждый читатель 
сможет скачать небольшую программку, подключится к нашему серверу и поиграть. 
Если кому-то что-то не понравилось он сможет высказать свое мнение и возможно 
будет прав. Кстати если целью является обучение, то возможно имеет смысл 
создавать open source игру." Идея интересная, и безусловно правильная. 
Я собственно это и пытаюсь сейчас продвинуть, только не целиком игру, 
а open source движок. Если автор рассылки возьмется за создание проекта 
на sourceforge, администрирование CVS, и общее руководство, то я не откажусь 
поучаствовать по мере возможностей. Если такие желающие еще есть - пишите! 
(адрес Александра - suicide@nightmail.ru)
Прикинем, сколько нас.

9. "Выбрал Visual Studio 6.0 и хочу купить хорошую книгу по Visual C++. 
Посоветуйте,пожалуйста,какую?" - не Visual C++, а C++ - среда разработки 
не принципиальна. А так: Б. Страуструп - "Язык программирования С++",
 остальное лишнее.

10. "И стоит ли использовать MFC?" Нет! При том, нигде и никогда.

 

Итог.

1. Предлагаю считать, что народ умеет (каждый понимает это слово как считает нужным для 
себя) программировать на C++. Не надо превращать рассылку в "уроки по C++" - 
такие отдельно существуют.

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

3. По-моему следует организовать проект с открытым кодом. См. 8-ю цитату.

4. Почему все так привязывают себя к технологиям микрософта? Полно открытых, 
платформонезависимых решений, работать с которыми куда практичнее. Игру можно 
написать полностью без DirectX, даже под винду, хотя игры не только под нее 
делаются. Движки Quake и Doom тому пример.

5. См. мое первое письмо

Александр Дорофеев.




Рад, что мое первое письмо не пропало. Прошлый ответ отправил уже после 
получения нового выпуска рассылки (так получилось), поэтому вот продолжение 
по последним публикациям.

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


Часть 1. Основы программирования в Windows  // Знать надо, а потом уже за игру браться
Глава 1. Путешествие в пропасть
Глава 2. Модель программирования Windows   // Знать надо, а потом уже за игру браться
Глава 3. Профессиональное программирование в Windows   // Знать надо....
Глава 4. GDI, управляющие элементы и прочее  // Мы че, вордпад пишем???

Часть 2. DirectX и основы двухмерной графики   // Здравствуй новый 1996 год!
Глава 5. Основы DirectX и COM     // COM, конечно хорошо, но для игр и поверхностного представления
       //  хватит - не очень то он там нужен, если на Delphi не писать, конечно и ActiveX всякие.
Глава 6. Первое знакомство с DirectDraw    // Еще раз с Новым годом!
Глава 7. Постигаем секреты DirectDraw и растровой графики        // оно же...
Глава 8. Растеризация векторов и двухмерные преобразования    // в школе проходили.
Глава 9. DirectInput                  // все и так тривиально
Глава 10. DirectSound и DirectMusic     // то же самое, к тому же 7-й версии и старее

Часть 3. Программирование игр
Глава 11. Алгоритмы, структуры данных, управление памятью и многопоточность   // Вот тут может быть что-то полезное
Глава 12. Искуственный интеллект в игровых программах   // Вот тут может быть что-то полезное
Глава 13. Основы физического моделирования      // Вот тут может быть что-то полезное
Глава 14. Генерация текста
Глава 15. Разработка игры OutPost

Часть 4. Приложения
Приложение А. Содержание компакт-диска
Приложение Б. Установка DirectX и использование компилятора C/C++ // Совсем за дебилов держите что ли??
Приложение В. Обзор математики и тригонометрии     // Программист это знать должен. А школа и инстик на что?
Приложение Г. Азы С++                            // Конечно! Выучим "азы" и напишем игру! Их раньше учить надо было.
Приложение Д. Ресурсы по программированию игр

 

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

 
Не поленюсь перенести через буфер обмена содержание книги Страуструпа.
1 Notes to the Reader ..................................................................... 3
2 A Tour of C++ ............................................................................. 21
3 A Tour of the Standard Library .................................................. 45
Part I: Basic Facilities 67
4 Types and Declarations ............................................................... 69
5 Pointers, Arrays, and Structures .................................................. 87
6 Expressions and Statements ........................................................ 107
7 Functions ..................................................................................... 143
8 Namespaces and Exceptions ....................................................... 165
9 Source Files and Programs .......................................................... 197
iv Contents
Part II: Abstraction Mechanisms 221
10 Classes ........................................................................................ 223
11 Operator Overloading ................................................................. 261
12 Derived Classes ........................................................................... 301
13 Templates .................................................................................... 327
14 Exception Handling .................................................................... 355
15 Class Hierarchies ........................................................................ 389
Part III: The Standard Library 427
16 Library Organization and Containers .......................................... 429
17 Standard Containers .................................................................... 461
18 Algorithms and Function Objects ............................................... 507
19 Iterators and Allocators ............................................................... 549
20 Strings ......................................................................................... 579
21 Streams ........................................................................................ 605
22 Numerics ..................................................................................... 657
Part IV: Design Using C++ 689
23 Development and Design ............................................................ 691
24 Design and Programming ........................................................... 723
25 Roles of Classes .......................................................................... 765
Appendices 791
A The C++ Grammar ...................................................................... 793
B Compatibility .............................................................................. 815
C Technicalities .............................................................................. 827
 

Что здесь не хватает для начала и успешного продолжения программирования???

Только самих SDK и спецификаций стандартов.

А дальше - вперед - творить!

Александр, я сам всем рекомендую Страуструпа. Для тех кто еще не в курсе - это он автор языка С++. Так что, изучайте язык из первых рук.

По поводу вышесказанного. Мне до сих пор приходят письма от новичков, об этом я уже говорил. И я, признаться, уже устал без конца отвечать на одни и те же вопросы. Поэтому, я принял раз и навсегда решение - отправлять новичков прямиком на свой сайт. Он позиционируется именно как ресурс "для самых-самых начинающих". Только вот (см. выпуск 1), как говорят на Востоке, "можно подвести ишака к воде, но пить его и шайтан не заставит". Я не могу водить людей по сайту за ручку. И меня, мягко говоря, огорчает, когда мне пишут "я был на вашем сайте, а вот теперь посоветуйте". Ну куда уж еще советовать-то! Учитесь читать, что еще могу сказать! Ну теперь-то вы меня понимаете, те, кто до сих пор считает, что выпуск 1 слишком жесткий? Ну вот, смотрите сами, не хотел я это письмо публиковать, ну да ладно...
Здраствуйте Евгений !!!
Вот тут делать было нечего ,ждал пока магазин откроется , случаем надумал сходить 
в интернет центр посидеть малец......и....тут...случаем забрел на ваш сайт   
 ....Почитал на счет разработки компьютерных игр , и вы тут всякие советы даете и это хорошо ........
Я просто с детства мечтал разрабатывать компьютерные игры но по какой-то 
причине не смог пойти учиться на программиста......
Я геймер по жизни игровой опыт составляет уже почти 15 лет .....и все ошибки 
в любой игре я сразу замечаю и именно эти ошибки буду учитывать в  создании своих 
собственных игр (если удастся конечно выучить языки программирования в чем я 
не сильно уверен ,но все таки попытаюсь).
В программировании я можно сказать начинающий человек ...
А все из-за чего ,вот к примеру вам пишут всякие люди которые с 1 класса Basic  
уже изучили , а я в то время кота феликса на денди проходил....
Да и компьютера у меня не было а в школе стояли очень в то время Spectrum  по 
ходу тоже......я уже не помню веть было это в 1990 году....
Так что и информатики у нас в школе вообще не было а за чем компы стояли 
понятия не имею....начинать мне было не с чего и не откуда..
А к чему я все это клоню ?
К тому что хотел бы у вас попросить совет , с чего мне начать с какого языка 
или может книгу какую посоветуете купить .....а то я на данный момент учусь 
заочно на 2 курсе факультета "Программное обеспечение вычислительной техники 
и автоматизированных систем" там у нас уже делфи начался а я толком еще и 
в паскале не могу ни чего сделать так малец знаю и то можно сказать не знаю 
 ....Просто ни когда  не программировал и не изучал а тут такие задачи ,
Если судить по опыту в спорте взять к примеру даже вас .
Пришли вы в тренажерный зал и захотели выжать на груть 100 кг вы же не сможете 
это сделать без определенной подговки а я смогу потому то я занимаюсь этим давно 
и тут тоже такая же ситуация они хотят чтобы мы заочники без определенной 
подготовки стали решать такие задачи (с ума сошли что ли).
Тем более платишь им 17000 в год и они еще чего-то возмущаются ...
Вот и посоветуете мне с чего начать а то я пока токо в 3DSmax осваиваюсь и все и 
там в принципе не легко , сами наверное знаете ....
Надеюсь на ваш талант ......
Не много о себе 
Мне 21 год живу в Ивановской обл. г.Фурманове...
Крнечно сейчас у меня желание  разрабатывать компьютерные игры по меньше чем 
в детстве но все таки очень хочется это делать, все таки любимое занятие как ни как.......
Имеется дома пока всего две книги "Дискретная математика для программистов" 
Ф.А. Новиков и "Turbo Pascal"  Валерий Фаронов 
Учитель сказал что паскаль книга почти вся плохая ,слишком мало информации в ней..........
Вот такие вот дела 
Скажите на ваш взгляд эти книги пригодятся  мне в дальнейшем .......
И еще раз хочу подчеркнуть , посоветуйте какую книгу купить для начинающего 
(если честно даже стыдно что паскаль не  знаю, когда вы тут обсуждаете С++)..
 
Дмитрий, только не обижайтесь. Не буду перессказывать первый выпуск, но если вы действительно хотите научиться создавать игры, вам придется научиться делать некоторые вещи самостоятельно. А не надеяться на мой талант. Мы тут не выжимаем (по вашей аналогии) и тридцати килограмм, поверьте. Обучалки по языку С на сайте, по крайней мере самые первые - детские гантельки. Вы "еще раз подчеркиваете" и просите посоветовать книгу. А я еще раз подчеркиваю - вы когда на сайт заходили, не заметили там справа "Рекомендуемые книги"? А статью "с чего начать" читали? Ну ладно, еще раз все вместе хором - я рекомендую какой язык? С++!!! А какую книгу я рекомендую? Ну вот, сейчас помидоры в меня полетят уже... :)

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

Однако, пора уже выпуск потихоньку сворачивать. Дальше пойдут полезные ссылки, а также письма без комментариев.

... и выпуск пришлось поделить на две части, ибо его размер уже совсем огромен. Ну что же, так оно будет даже лучше, удобнее читать. До встречи!

Евгений Казеко.
evgeniy@kazeko.com


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.games.gamecoder
Отписаться

В избранное