Трактат о создании игр
Этот труд не претендует на статус шибко монументального, а скорее содержит мои наболевшие мысли :-)
Итак, дорогой мой читатель, с вероятностью в 80-90 % ты зреешь в голове планы создания собственной суперигрухи (ежели нет, тогда чего это ты сие читаешь? :) Наверное ты еще довольно молод, но тебя уже отличает жуткое желание программировать. Ты не боишься трудностей, готов изучать математику, физику, логику, анимацию и т.п. до посинения. Вобщем ты рвешься действовать, действовать и действовать...
Чего это я?..
Просто для того чтобы создать действительно приличную игруху ты должен обладать вышеперечисленными качествами. Я же попробую дать тебе несколько советов, которые надеюсь помогут воплотить твои замыслы в жизнь.
Займемся твоими знаниями:
Может статься такое, что ты программируешь на одном языке программирования. Ты боготворишь этот язык и не хочешь видеть ничего другого. Чтож, похвально для фаната, но практически неприемлимо для серьезного программиста. Запомни: знакомство с другими языками тебе не только не повредит, а пойдет на пользу - гарантированно. Это совсем не значит, что ты должен бросить все, поставить себе Delphi или Visual C++, накупить кучу учебников и штудировать с утра до вечера. Нет. В этом деле можно провести аналогию с иностранными языками. Знать, скажем английский, можно двумя способами: можно на нем читать и можно на нем говорить (можно его совсем не знать, но накой тогда это надо?) Если ты умеешь "говорить" на языке программирования, то ты сможешь сесть и написать чего-нть крутое, которое очень понравится маме. Если ты умеешь "читать" на языке программирования, то ты сможешь посмотреть листинг программы на C++, почесать затылок и понять идею, а затем и алгоритм решения.
Итак, для хорошего программиста важно знакомство с несколькими основными языками программирования. Для того чтобы написать игру, ты должен быть как минимум ХОРОШИМ программистом.
Ого! - скажешь ты. - Это ты тут хорошо написал, а как же мне научиться "читать" и все такое...
На самом деле все легко. Ты ведь уже умеешь программировать... ну, например на VB? Просто возьми и прочитай пару учебников как сделать что-то например на С++, что ты уже знаешь как делается на VB. С вероятностью в 101% в твоей голове тут же начнут проноситься аналогии с "родным" языком, ты поймешь структуру и некоторые отличия и вскоре научишься понимать почти любой листинг.
А ведь это очень важно при изучении какого-либо материала. В Сети огромное количество учебников. Какие-то из них рассчитаны на VB, какие-то на С++, какие-то на Delphi... Понимая несколько языков, ты получишь в несколько раз больше информации.
Вывод тут может быть такой: Знать нужно все, а программировать на чем нравится.
При программировании игр, дело обстоит не совсем так. Я надеюсь, что ты уже пробовал что-нибудь такое графическое сделать и наверное видел с какой скоростью рисует VB. Может быть ты думал, что это ты делаешь что-то не так, но я тебя уверяю, что даже при использовании DirectX и максимально оптимизированных алгоритмов, VB при всем желании не даст скорости, которую дает C++ Однако игры бывают разные, и если ты собираешься делать не shoot'em all, а что-нть попроще, не требующее быстрого рендеринга, VB - то, что тебе нужно. Это не значит, что надо делать шахматы и играть с компьютером, изображая Каспарова. Квест, приключение, пошаговая стратегия - эти жанры вполне могут быть реализованы с помощью VB, причем реализованы с легкостью, ставшей визитной карточкой этого языка.
Наверное ты уже слышал много красивых слов типа DirectX, OpenGL и т.п. Все это распространенные графические библиотеки, с помощью которых ты можешь писать игру. Не надо бояться этих слов - надо их изучать. Если собираешься программить на VB, изучать тебе надо DirectX. Можно использовать OpenGL, но только документации по использованию этой библиотеки в VB, ты не найдешь почти нигде, хотя теоретически использовать OpenGL из VB ты можешь. Тут-то и пригодится знание С++ Доков по OpenGL в Сети хоть отбавляй. Самое главное, что в VB и в C++ все будет выглядеть почти одинаково. Документация и учебники по ДиректХ как для C++, так и для VB довольно распространены в ИНете. Delphi я еще не копал, поэтому сказать не могу.
Вторая, а подчас и первая составляющая любой игры - это графика. Если ты обладаешь рисовательными способностями выше средних, то можешь смело приступать к созданию шедевра. Большинство графических прог типа PhotoPaint, 3DSMax своими эффектами, фильтрами и прочими наворотами могут очень сильно поднять твой графический уровень. Ежели с графикой совсем никак, первый, кого ты обязан взять в свою команду - это художник. Рисование графики к игре должно быть очень продуктивным. Даже если ты собираешься делать двухмерную игру, все равно поставь и изучи 3DSMax (или типа него). Подумай сам: ну как еще ты будешь рисовать штук 20-30 спрайтов во всевозможных позах и позициях?
Далее тебе нужно знать физику. Моделировать поведение разноцветных картинок на экране ты обязан исходя из реальных физических законов. Если у тебя кто-то прыгает, то на него должна давить сверху сила притяжения. Да что я говорю - повтори хотя бы тригонометрию!!!
Всевозможные алгоритмы типа нахождения кратчайшего пути и прочее понадобятся тебе когда будешь добавлять в игру управляемые компьютером персонажи. Конечно если ты планируешь убойный десматч для троих за одним компом - флаг тебе в руки. Однако поверь, если самый злостный-презлостный босс на последнем уровне будет просто бегать по кругу вокруг главного героя с воплями и криками твою игру это не украсит. Так что приготовься к серьезной работе и накопай себе кучу алгоритмов, благо в ИНете их предостаточно. Сюда также относятся всякие логические взаимодействия, игровые скрипты и т.п.
Ну и последнее. Если ты не герой одиночка, то тебе нужна команда. Сделать приличную игру один ты не потянешь. Просто физически. Запомни - ты программист. Может быть еще руководитель. Тебе позарез нужны художники. Как можно больше - тогда у тебя будет больше материала. Можешь напрячь еще нескольких программистов - пусть пишут интерфейсы, подключают разную аппаратуру и т.п. Потом, кто-то должен заниматься музыкой и звуком. Звуки записать самому у тебя получится вряд-ли, так что понавытягивай их из различных игрушек. Музыку можно написать и самому - в трэкере. Найди того, кто знает что это такое, тогда у тебя будет и музыка. Если будешь использовать голоса - используй как можно больше людей. Если в игре говорит взрослый мужчина, то в реальности это должен быть взрослый мужчина. Можешь взять пахабную руССификацию какой-нибудь игры и почувствовать как напрягает, когда один и тот же мужик сопя и кряхтя пытается выдать себя за убийцу-команндос, пожилого профессора и аньку-пулеметчицу.
Вобщем если ты еще не испугался, тогда вперед - к трудовым подвигам!
Re21 2005 anarkire21@mail.ru ,,,
anarkire21@yahoo.com
|