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

Как самому создать компьютерную игру #9


Служба Рассылок Subscribe.Ru проекта Citycat.Ru
 
Как самому создать компьютерную игру
Выпуск 9
Сайт рассылки - http://gamemaker.by.ru 

Адрес для обратной связи - gamemaker@pisem.net

Приветствую всех подписчиков этой рассылки!

Сегодня в выпуске:
1. Технология написания игры тетрис.
2. Сценарии игровых проектов.
3. Впечатления.
4. Вопросы и ответы.
5. Наши друзья.
6. Новости сайта.
7. Инструкция по использованию рассылки ;-)
8. Вместо заключения.


      Перед Вами очередной выпуск рассылки, которую по-прежнему веду я, SlyMagic. (другие авторы уехали на некоторое время). После прочтения Вами этого выпуска я бы хотел увидеть у себя в почтовом ящике письма с критикой и пожеланиями для того, чтобы с каждым разом рассылка становилась все лучше. Пишите мне по адресу gamemaker@pisem.net. Насчет того, что у многих читателей нет интернета, я могу сказать, что прекрасно их понимаю. У меня самого повременка. Как раз поэтому, этот выпуск вышел немного позже, чем планировалось (1 марта). Причина банальна - кончился инет ;-( Ну да ладно. В этом есть также и положительные моменты. Рассылка все же вышла, и это хорошо ;-) К тому же появилась еще "bonus'ная" статья. (впечатления) Полезна ли она - это спорный вопрос. Скажу только, что она была написана после недавнего футбольного матча ЛЧ. Ну, я думаю, что хватит попросту лить воду, пора что-то сказать по существу. Итак... Читайте и наслаждайтесь ;)))


Технология написания игры тетрис.


     Это первая попытка разобрать какой-нибудь, пусть даже очень примитивный, алгоритм в рассылке. Насколько это у меня получилось - судить Вам. Я лишь только могу рассмотреть все Ваши критические замечания и постараться их учесть в следующий раз. Сразу оговорюсь, что если все буду объяснять только я - от этого не будет никакой пользы, поэтому поступим следующим образом. Сначала будет объясняться бОльшая часть программы, а потом предлагается сделать "самостоятельную работу". Для этого дается дня 3-4, не больше. В это время Вы присылаете свои вопросы, а также пишите, что у Вас получилось, а что нет. После игра разбирается до конца. Далее идет "практикум". Дней 7, в течение которых Вы попробуете написать СВОЮ версию разобранной нами программы. О лучших из них мы расскажем в рассылке и поместим на сайт. Ну а теперь, let's start...
     Скорее всего, из тех людей, которые хоть как-то знакомы с компьютером, не найдется ни одного, который бы не знал игру тетрис. Несмотря на то, что эта игра была придумана уже сравнительно давно, различные ее модификации продолжают занимать призовые места в рейтингах. И здесь все дело в идее. Как раз сейчас мы и подошли к одной из игр, которая является ярчайшим примером того, как только лишь имея идейное содержание можно создать хит. И дело совсем не в том, что в ней нет обалденной графики, скриншоты для этой игры можно пересчитать по пальцам. Все дело в ее простоте. Ее реализация очень проста по сравнению с другими играми, поэтому ее можно встретить в брелках и сотовых телефонах, которыми мы так любим себя обвешивать.
     Как уже говорилось, простота алгоритма вынуждает нас идти по довольно таки громоздкому, но в данной ситуации вполне оправданному пути. Будем сочинять алгоритм "в лоб". Т.е. "что вижу, то и пишу". Я не в коем случае не претендую на самый короткий/лучший/правильный итд алгоритм. Их модификаций очень много и не исключено, что Вы придумаете все гораздо лучше меня. Скажу лишь одно: если это будет действительно так, я буду только рад. Самая лучшая награда - осознавать, что то, что здесь пишется, не уходит в песок или во что бы то ни было еще. [шутка про Hugges здесь не уместна ;-) ]. Итак, для начала внимательно посмотрим на игрушку или вспомним. Теперь подумаем, что нам потребуется в первую очередь. Начнем со стаканчика. Будем считать, что на рисование чего бы то ни было тратиться очень мало времени (времени программиста, а не машинного), поэтому далее будем говорить "нарисуем стаканчик", "нарисуем фигурку", и считать, что процедуры, рисующие все эти вещи нам уже заданы. Надеюсь, что у Вас не возникнет с этим особых проблем. Если все-таки возникнут, то посмотрите на предлагаемый далее код программы и все проблемы, надеюсь, сразу решаться. Просто сейчас наша задача понять "физику", а как Вы это все потом реализуете - это уже второй вопрос. Так вот, нарисуем стаканчик и опишем все возможные фигуры, которые нам будут нужны. Составим план наших действий:
1. Рисуем стаканчик
2. Описываем все фигуры
3. Делаем проверку на переполнение стаканчика и на то, что заполниться какая-нибудь линия
4. Описываем процедуру поворота фигурок
5. Описываем процедуру перемещения фигурок
6. Проверяем, чтобы фигурки не перемещались за пределы стаканчика
7. Пишем процедуру подсчета очков.
8. Делаем простенький интерфейс для общения с пользователем.

     Теперь все это попробуем объединить в целостную программу.
При этом опишу те функции, которые мне понадобились:
Опишем "свой" тип для удобства:
#define BOOL unsigned int
Функция проверки на смещение
BOOL CheckShifting(unsigned int);
Функция возвращает экран
void Screen(unsigned int);
Меняем фигурку
BOOL NewFigura(int);
Заново играем?
void NewGame(void);
Копирует содержимое буфера (фигурку) в стаканчик
void CopyBoxToGlass(void);
Рисуем стаканчик
void GlassDraw(void);
Проверка на переполнение стаканчика
BOOL CheckOverflow(void);
Функция обработки клавиш
BOOL Control(void);
Вертим фигурам как хотим
void Reverse(void);
Система подсчета очков
int CheckTime(void);
Убираем полную строчку
void GlassCut(void);
Выводим сообщения на экран
void WindMessage(int, int, int, int, char*, int);
Рисуем менюшку
int Menu(void);
     Главная часть программы тогда выглядит следующим образом:
void main(void)
{
clrscr();
textmode(C40);
_setcursortype(_NOCURSOR);
GlassDraw();
WindMessage(14, 2, 20, 6,"ScoreННННН", 2);
randomize();
NewFigura(2);
NewFigura(1);
while( Control() );
clrscr();
// а здесь по сути программа кончается.
//Добавим информацию об авторах:
textmode(C80);
textcolor(WHITE);
cprintf("Copyright (c) 2001\n\rChamrov Software Research Labs.\n\rALL RIGHTS RESERVED");
sleep(2);
}

     Теперь попробуйте по этим наброскам написать что-нибудь свое. Просто молча ждать продолжения, пожалуй, нет смысла, т.к. у нас ведь цель научиться делать игры. Хотя это дело хозяйское. Поступайте так, как Вам нравиться.
     Для того, чтобы Вы имели представление о том, ЧТО именно может получиться из всего того, что написано выше, на сайте выложена рабочая версия этого тетриса по адесу http://gamemaker.by.ru/ver2/files.html. Когда у кого-нибудь что-то получиться, присылайте это на адрес gamemaker@pisem.net. Лучшие работы (а также еще и интересные, оригинальные итд) будут опубликованы в рассылке.
     Если у Вас что-то не получилось, не переживайте, напишите мне, и мы вместе попробуем во всем разобраться. ПисАть следует на адрес gamemaker@pisem.net.
     И последнее, может быть для кого-то трудностью явилось недостаточное знание языка? Тогда предлагаю почитать какую-нибудь книжку по Си/С++. Книги, которые бы я порекомендовал, выложены на сайте (см. раздел новости сайта.). Почитайте. Там немного, зато это полезно.



Сценарии игровых проектов.


     Эта рубрика будет посвящена всяческим идеям, задумкам и просто мыслям, которые помогут написать один или несколько приличных сценариев для игры, из которых будет выбран лучший. Именно по этому сценарию мы и станем делать игру на глазах у всех подписчиков. А пока что уже существующие сценарии игр вы можете посмотреть по адресу http://gamemaker.by.ru/ver2/project.html. Свои сценарии присылайте на адрес gamemaker@pisem.net?Subject=Scenariy.


Впечатления.


     Совсем недавно, несколько недель назад, прейдя с матча ЛЧ Спартак-Бавария, я полез в интернет на сайт НТВ-спорт, дабы узнать, как же все-таки сыграл сосед наших по группе Арсенал. (Тогда еще у наших был шанс продолжить выступление на международном уровне). Ничего я там, конечно, не нашел (кстати, сайт прямо скажем не фонтан), но зато обнаружил весьма интересную вещь. Один из сайтов предоставлял возможность ставить на разные результаты футбольных матчей (бесплатно). Ну, недолго думая, поставил на следующий матч. "Почти" угадал счет: 1:0 вместо 0:1. Ну ничего, ведь впереди чемпионат России. Весьма интересная вещь. Для тех, кому хотя бы капельку интересно, советую попробовать угадать какой-нибудь результат. Это действительно объективное мнение, а не в коем случае не реклама сайта. Подробнее здесь: http://gamemaker.by.ru/sport.html.


Вопросы и ответы.


      А давайте в этом выпуске попробуем так: на вопросы ответите Вы. А если что-то не получиться, ничего. Попробовать то надо ;-)

Вопрос:     Хотелось бы побольше и подробней узнать про "Динамическое добавление элементов управления (Add)".
Ответить на этот вопрос.



Вопрос:     Возможно ли создать быструю и с высоким качеством изображения игру средствами Visual Basic?
И если можно это сделать, то хотелось бы узнать, нет ли у вас примеров игр на Visual Basic.
Ответить на этот вопрос.



Вопрос:     Мы тут с ребятами заняты созданием модели отечественных поездов. У нас есть 2D вариант, но это не то, надо 3D. Но мы в этом мало разбираемся. Объясните, плиз, как происходит наложение текстур, и можно ли, в dll написанную на Builder-е, включать классы, чтобы Visual Basic 6.0 это понимал.
Ответить на этот вопрос.



Вопрос:     Я уже давно сижу в Qbasic'е и хотелось бы найти для него компилятор. Подскажите, где можно его скачать.
Ответить на этот вопрос.



Вопрос:     Товарищи есть у кого-нибудь примерчики для Delphi 5.0 желательно симуляторов полета.
Ответить на этот вопрос.



Вопрос:     Я пробую программировать игры с применением OpenGL на Delphi. Но до конкретных программ дело не дошло (только теория). Подскажите, пожалуйста, где можно взять информацию о том, что нужно иметь для того, чтобы использовать OpenGL в Delphi. Ну, типа, может какие модули нужны? Заодно такая же проблема и с DirectX от Microsoft. Если есть такая возможность, пришлите их (модули) по E-Mail.
Ответить на этот вопрос.




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



Наши друзья.

Рассылки:
Кодировка:
Формат:
Ваш E-Mail:
Выберете рассылку:
Мир компьютерных и настольных РПГ
Мир 3d-Action Games

Новости сайта.


1. Появился файловый архив, где выложены разные исходники, написанные в рассылке, а также программка, которая существенно облегчает чтение рассылки (с картинками) для тех, у кого не так уж и много времени в интернете.
2. Появилось две версии дизайна сайта. Посмотрите и сравните, какая лучше. А может кто-нибудь еще и свою версию предложит. А так все комментарии сюда: gamemaker@pisem.net.
3. Достаточно прикольный тотализатор, где можно ставить на результаты матчей. Находится он по адресу: http://gamemaker.by.ru/sport.html.
4. Книги для начинающих и не только (по языкам) находятся здесь: http://gamemaker.by.ru/books.html.


Инструкция по использованию рассылки ;-)
 

    Эту рассылку проще всего читать в HTML формате, поэтому те, кто подписался на нее в TEXT/MIME переподпишитесь. Просто в других форматах более поздние выпуски будет читать неинтересно в связи с полным отсутствием иллюстраций. 


Вместо заключения.


   Этот выпуск немного отличается от предыдущих по содержанию, стилю изложения и оформлению. Поэтому хотелось бы услышать Ваше мнение по поводу всего, что Вы здесь прочитали. А я, в свою очередь постараюсь сделать рассылку лучше. Пишите мне. gamemaker@pisem.net?Subject=Мнение.

P.S. Если эту рассылку (вдруг) сейчас читают девушки, то хочу поздравить их с наступившем праздником весны (8 марта)!!!
На этом я с вами прощаюсь.
SlyMagic.

"Как самому создать компьютерную игру" (с) 2001
Использование любых материалов рассылки возможно только с разрешения автора.
Тираж 4500 экземпляров.
"); // -->

http://subscribe.ru/
E-mail: ask@subscribe.ru
Поиск

В избранное