Этот труд не претендует на статус шибко монументального, а скорее содержит мои
наболевшие мысли :-)
Итак, дорогой мой читатель, с вероятностью в 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 спрайтов во всевозможных позах
и позициях?
Всевозможные алгоритмы типа нахождения кратчайшего пути и прочее понадобятся тебе
когда будешь добавлять в игру управляемые компьютером персонажи. Конечно если ты
планируешь убойный детматч для троих за одним компом - флаг тебе в руки. Однако
поверь, если самый злостный-презлостный босс на последнем уровне будет просто бегать
по кругу вокруг главного героя с воплями и криками твою игру это не украсит. Так что
приготовься к серьезной работе и накапай себе кучу алгоритмов, благо в ИНете их
предостаточно. Сюда также относятся всякие логические взаимодействия, игровые скрипты
и т.п.
Ну и последнее. Если ты не герой одиночка, то тебе нужна команда. Сделать приличную
игру один ты не потянешь. Просто физически. Запомни - ты программист. Может быть еще
руководитель. Тебе позарез нужны художники. Как можно больше - тогда у тебя будет
больше материала. Можешь напрячь еще нескольких программистов - пусть пишут
интерфейсы, подключают разную аппаратуру и т.п. Потом, кто-то должен заниматься
музыкой и звуком. Звуки записать самому у тебя получится вряд-ли, так что понавытягивай
их из различных игрушек. Музыку можно написать и самому - в трэкере. Найди того, кто
знает что это такое, тогда у тебя будет и музыка. Если будешь использовать голоса -
используй как можно больше людей. Если в игре говорит взрослый мужчина, то в
реальности это должен быть взрослый мужчина. Можешь взять похабную русификацию
какой-нибудь игры и почувствовать как напрягает, когда один и тот же мужик сопя и кряхтя
пытается выдать себя за убийцу-командос, пожилого профессора и аньку-пулеметчицу.
Вобщем если ты еще не испугался, тогда вперед - к трудовым подвигам!
И откуда у автора сведения о быстродействии VB? Может автора это удивит, но на операциях, от которых наиболее зависит быстродействие игр (сортировка, простая математика с данными типа Single(Float)), VB6, которому 10 лет, проимерно равен по скорости новым версиям Delphi на современных компьютерах, и значительно выходит вперед на старых. C++, конечно, побыстрее, но не так уж значительно. Другое дело, что VB имеет другие недостатки, в первую очередь - довольно примитивная модель ООП, но это не сильно важно при разработке небольших проектов, и при разработке больших это тоже не критично, просто несколько теряется удобство. Другое дело - VB.net, он, как и C#, обладает наиболее совершенной моделью ООП на сегодняшний день, но вот быстродействие тут как раз страдает.
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]