| 
	
		
		
			| RPG от первого лица на Game Maker |  |  |  | 
| Voldemord | Дата: Суббота, 24 Апреля 2010, 02:19 | Сообщение # 1 |  | Лорд Волдеморд Сейчас нет на сайте | Возможно ли на Game Maker 8 PRO сделать RPG от первого лица?Если можно то пожалуйста дайте уроки по созданию RPG от первого лица на Game Maker |  |  |  |  |  | 
| ПрофЭссор1 | Дата: Суббота, 24 Апреля 2010, 02:52 | Сообщение # 2 |  |   Le Pallete Studio Сейчас нет на сайте | Voldemord, я даже не знаю  Макерами не пользуюсь 
 >>>>>>ПРОДАЕТСЯ ГОТОВАЯ ОНЛАЙН ИГРА<<<<<<
  ОПИСАНИЕ: http://www.gcup.ru/forum/13-8911-1 |  |  |  |  |  | 
| Spihex | Дата: Суббота, 24 Апреля 2010, 03:09 | Сообщение # 3 |  |   Моргающий Гемо-Брат Сейчас нет на сайте | А зачем Вы это пишите??Quote (ПрофЭссор) Voldemord, я даже не знаю dry Макерами не пользуюсь   Присмотритесь к Ultimate3D. Уроки\примеры слишком весомые для моего инета, но никто не мешает Вам посетить соответствующий сайт.Quote (Voldemord) Возможно ли на Game Maker 8 PRO сделать RPG от первого лица?Если можно то пожалуйста дайте уроки по созданию RPG от первого лица на Game Maker  |  |  |  |  |  | 
| [ALeX] | Дата: Суббота, 24 Апреля 2010, 07:28 | Сообщение # 4 |  | ![[ALeX]](/avatar/72/9970-561827.jpg)  почетный гость Сейчас нет на сайте | Или Xtreme 3D для того же Game Maker'а. А вообще: что по Xtreme 3D, что по Ultimate 3D полно уроков в сети. Нужно просто потратить немного времени и поискать.   |  |  |  |  |  | 
| GregIlya | Дата: Суббота, 24 Апреля 2010, 08:58 | Сообщение # 5 |  |   участник Сейчас нет на сайте | Quote (Spihex) А зачем Вы это пишите?? Видимо,для значимости.Захотелось выпендрится и сказать что он то недосягаемо крут и такими глупостями как Maker принципиально не пользуется.
 
 
   |  |  |  |  |  | 
| Voldemord | Дата: Суббота, 24 Апреля 2010, 14:18 | Сообщение # 6 |  | Лорд Волдеморд Сейчас нет на сайте | А что без Ultimate3D или Xtreme3D нельзя? |  |  |  |  |  | 
| Spihex | Дата: Суббота, 24 Апреля 2010, 14:20 | Сообщение # 7 |  |   Моргающий Гемо-Брат Сейчас нет на сайте | Можно, но в указанных библиотеках многие действия уже описаны. |  |  |  |  |  | 
| Voldemord | Дата: Суббота, 24 Апреля 2010, 14:36 | Сообщение # 8 |  | Лорд Волдеморд Сейчас нет на сайте | Spihex, а игру типа Might and Magic 2 проще сделать с ultimate3D или xtreme3D или проще сделать без использования ultimate3D или xtreme3D? |  |  |  |  |  | 
| Spihex | Дата: Суббота, 24 Апреля 2010, 14:41 | Сообщение # 9 |  |   Моргающий Гемо-Брат Сейчас нет на сайте | игры типа Might and Magic 2 не использовали 3D. Действительно, подобную игру будет проще создать без указанных библиотек. Я бы так и сделал. Но и с решением спешить не советую. |  |  |  |  |  | 
| Scorpio | Дата: Суббота, 24 Апреля 2010, 14:53 | Сообщение # 10 |  |   Любитель геймдева Сейчас нет на сайте | Quote (Voldemord) Возможно ли на Game Maker 8 PRO сделать RPG от первого лица?Если можно то пожалуйста дайте уроки по созданию RPG от первого лица на Game Maker А ты сделай с видом сверху, 2D. Это легче и дает большой простор.
 Мжно даже применить изометрию (см. Diablo, Sacred, Divinity и т.п.)
 |  |  |  |  |  | 
| Voldemord | Дата: Суббота, 24 Апреля 2010, 14:59 | Сообщение # 11 |  | Лорд Волдеморд Сейчас нет на сайте | А как сделать чтоб ГГ перемещался как в Might and Magic 2 чтоб не "свободно" а как-бы "по клеткам"? |  |  |  |  |  | 
| Spihex | Дата: Суббота, 24 Апреля 2010, 15:05 | Сообщение # 12 |  |   Моргающий Гемо-Брат Сейчас нет на сайте | На пальцах не объяснить, тут пример нужен. И потом, если это будет Ваша первая игра, то начните с чего попроще - всё это сложно для первой игры. |  |  |  |  |  | 
| Voldemord | Дата: Суббота, 24 Апреля 2010, 15:11 | Сообщение # 13 |  | Лорд Волдеморд Сейчас нет на сайте | Spihex, это не первая.Я уже могу делать FPS и TPS(У меня кнопочная версия ultimate3D). |  |  |  |  |  | 
| ASD_W_GAMES | Дата: Вторник, 27 Апреля 2010, 18:20 | Сообщение # 14 |  | был не раз Сейчас нет на сайте | Статья Пример
 Мож пригодится )
 |  |  |  |  |  | 
| Voldemord | Дата: Вторник, 27 Апреля 2010, 20:33 | Сообщение # 15 |  | Лорд Волдеморд Сейчас нет на сайте | ASD_W_GAMES, А регистрация на этом сайте бесплатная?   |  |  |  |  |  | 
| FatherLucifer | Дата: Вторник, 27 Апреля 2010, 20:36 | Сообщение # 16 |  |   почетный гость Сейчас нет на сайте | Quote (Voldemord) А регистрация на этом сайте бесплатная? smileВообще то да
   
 
   
   
   http://gcup.ru/forum/28-5478-1 Колобок!
 http://gcup.ru/forum/28-5627-1 Без названия игра =)
 |  |  |  |  |  | 
| Voldemord | Дата: Вторник, 27 Апреля 2010, 21:16 | Сообщение # 17 |  | Лорд Волдеморд Сейчас нет на сайте | FatherLucifer, Я имел ввиду на этом http://shkola-ultim.3dn.ru/load/11/15-1-0-33 |  |  |  |  |  | 
| ASD_W_GAMES | Дата: Среда, 28 Апреля 2010, 13:53 | Сообщение # 18 |  | был не раз Сейчас нет на сайте | Да там всё бесплатно, правда что бы некоторые файлы скачать нужно набрать 15 сообщений на форуме либо 20 р ) но эт фигня если кому срочно надо примерчик могу так выложить |  |  |  |  |  | 
| Voldemord | Дата: Среда, 28 Апреля 2010, 14:14 | Сообщение # 19 |  | Лорд Волдеморд Сейчас нет на сайте | ASD_W_GAMES, Да, пожалуйста, выложи примерчик  . |  |  |  |  |  | 
| ASD_W_GAMES | Дата: Среда, 28 Апреля 2010, 16:55 | Сообщение # 20 |  | был не раз Сейчас нет на сайте | Ок, только на сайте всё равно зарегайся ) и если чё мож задавать вопросы по ультиме на форуме  Добавлено (28.04.2010, 16:55) ---------------------------------------------
 Пример чуть по позже, не могу пока, вот пока почитай:
  Статья: “3D RPG”. by Sharking Статья рассчитана на новичка.Для начала я скажу что RPG бывает разное.Это может быть пошаговое RPG, on-line RPG, RPG в реальном времени и т.д. В этой статье я расскажу как можно сделать 3D RPG в реальном времени т.е. подразумевается что в ней можно будет просто бегать убивать врагов, получать за это опыт,после чего распределять очки и т.п. В этой статье я не буду рассказывать как сделать умный ИИ,квесты RPG с сюжетом и создовать мир. Я просто расскажу как реализовать параметры игрока, вывод их на экран,простую анимацию ГГ,распределение очков.
 Чтобы начать скачайте вот этот архив(2.8 mb) в нём все необходимые текстуры и модели.
 Итак начнём.
 Сперва в скрипт настроек Ultimate3DOptions добавьте такую строчку:
  global.u3d_character_set="АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЬьЫыЪъЩщЭэЮюЯяAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRr SsTtUuVvWwXxYyZz0123456789-_.?,!+-/*':%";   Эта строчка нужна чтобы внесённые в неё символы отоброжались при использовании функции DrawText.В нашем случае она нужна для отображения русского языка.Такая возможность появилась только в ULTIMATE 3D 2.1 так что при создании RPG используйте именно эту версию ULTIMATE 3D. Далее создаём объекты:
  param-в этом объекте буду записаны все характеристики игрока. anim-в этом объекте мы запишем кадры анимации персонажа.
  Далее добавим в событие создания param следующий скрипт:   globalvar ataka,zazhita,lovkost,zhiznvs,zhiznos,opit,level,ochki; //Делаем параметры персонажа глобальными
 ataka=10;//Сила атаки нашего персонажа
 zazhita=8;//Защита нашего персонажа
 lovkost=7;//Ловкость нашего персонажа
 zhiznvs=50;//Сколько всего жизней у нашего персонажа
 zhiznos=50;//Сколько жизней в данный момент
 opit=0;//Сколько опыта в данный момент
 level=1;//Уровень нашего персонажа
 ochki=0;//Сколько в данный момент очков распределения
  Далее добавим в событие создания anim следующий скрипт: globalvar annach,ankon;
 //Делаем кадры анимации глобальными
 annach[0]=0;//начальный кадр анимации(атака мечём)
 ankon[0]=30;//конечный кадр анимации(атака мечём)
 annach[1]=90;//начальный кадр анимации(атака кулаком)
 ankon[1]=115;//конечный кадр анимации(атака кулаком)
 annach[2]=370;//начальный кадр анимации(бег)
 ankon[2]=395;//конечный кадр анимации(бег)
 //Это всё кадры анимации модели robot.3ds
  Тепер поставим оба объекта(anim,param) в комнату чтобы потом не забыть))) Далее в событие создания model изменим переменную file которая там уже есть на значение 'model\robot.3ds'.Это требуеться чтобы загрузилась модель робота.
 Теперь в событии создания робота(model) добавьте следующий скрипт:
   Code first_frame=0;//Первый кадр анимации last_frame=1;//Последний кадр анимации
 frame=0;/* Текущий кадр при отрецательном
 значении скорость анимации */
 scalx=0.1;//Уменьшение размера модели так как модель получилась
 scaly=0.1;//Слишком большая
 scalz=0.1;
 
 Это требуеться чтобы анимация модели была в кадре 0(это кадр стоячей моделии) и модель была оптимального размера.
 Далее создаём объект terrain -это ландшафт(описывать его создание не буду так как это уже описанно в двух статьях) и поставим его в комнату.
 Далее в событие шага model добавляем следующий скрипт:
 
 z=GetTerrainHeightAtPos(terrain,x,y);
 //Это требуеться чтоб герой не провалился под землю
 
 В событии шага камеры(camera):
 
 follow=gg;//Камера будет двигаться за героем
 perspective=2;//Камера будет динамическая
 distance=20;//Расстояние от камеры до героя
 rotatey=180;//Чтоб камера смотрела сзади модели т.к модель не стандартная
 GetMousePos();
 rotatex+=(global.mouse_y-display_get_height()/2)*mouse_speed;
 if(rotatex<0){
 rotatex=1;
 }
 if(rotatex>20){
 rotatex=20;
 }
 gg.roty+=(global.mouse_x-display_get_width()/2)*mouse_speed;
 //это чтобы вертеть главного героя
 SetMousePos(display_get_width()/2,display_get_height()/2);
 //Это чтобы камерой двигать
 
 z=GetTerrainHeightAtPos(terrain,x,y)+5;/*Это чтобы камера
 под землю не провалилась*/
 
 if(keyboard_check(vk_up)){//если нажата кнопка вверх
 with(gg){
 Move(rotx,roty+180,1);//движемся туда куда смотрит герой
 //+180 всё из-за того что модель нестандартная
 //и если не поставить +180 робот пойдёт задом
 first_frame=annach[2];//Первый кадр анимации
 last_frame=ankon[2];//Последний кадр анимации
 frame=-0.5;// Скорость анимации
 }
 }
 
 if(keyboard_check(vk_down)){//если нажата кнопка вниз
 with(gg){
 Move(rotx,roty,1);//движемся назад
 first_frame=annach[2];//Первый кадр анимации
 last_frame=ankon[2];//Последний кадр анимации
 frame=-0.5;// Скорость анимации
 }
 }
 
 if(keyboard_check(vk_left)){//если нажата кнопка влево
 with(gg){
 Move(rotx,roty+90,1);//движемся влево
 first_frame=annach[2];//Первый кадр анимации
 last_frame=ankon[2];//Последний кадр анимации
 frame=-0.5;// Скорость анимации
 }
 }
 if(keyboard_check(vk_right)){//если нажата кнопка вправо
 with(gg){
 Move(rotx,roty-90,1);//движемся вправо
 first_frame=annach[2];//Первый кадр анимации
 last_frame=ankon[2];//Последний кадр анимации
 frame=-0.5;// Скорость анимации
 }
 }
 if(keyboard_key=0)//если не нажата ниодна кнопка
 {
 with(gg){
 first_frame=0;//Первый кадр анимации
 last_frame=1;//Последний кадр анимации
 frame=0;// Текущий кадр
 //Остановка анимации
 }
 }
 
 if (MouseCheckButton(mb_left))//Если нажата левая кнопка мыши
 {
 with(gg){
 first_frame=annach[0];//Первый кадр анимации
 last_frame=ankon[0];//Последний кадр анимации
 frame=-0.5;// Скорость анимации
 kadr=GetCurrentFrame();//Узнаём какой кадр сейчас проигрываеться
 if (collision_point(x,y,vrag,true,false))and(kadr=ceil((ankon[0]-annach[0])/2+annach[0]))
 //Проверяем столкновение с врагом и кадр анимации
 //Это надо чтобы удар происходил в центре анимации
 {
 vzhiznos-=ataka*2;//Уменьшаем жизни врага на атака*2
 //Здесь еще можно сделать анимацию врага
 show_message("Выбил "+string(ataka*2));//это сообщение рекомендуеться убрать в своей
 //игре оно для того чтобы было понятно что вы попали по врагу
 }
 }
 }
 
 if (MouseCheckButton(mb_right))//Если нажата правая кнопка мыши
 {
 with(gg){
 first_frame=annach[1];//Первый кадр анимации
 last_frame=ankon[1];//Последний кадр анимации
 frame=-0.5;// Скорость анимации
 kadr=GetCurrentFrame();//Узнаём какой кадр сейчас проигрываеться
 if (collision_point(x,y,vrag,true,false))and(kadr=ceil((ankon[1]-annach[1])/2+annach[1]))
 //Проверяем столкновение с врагом и кадр анимации
 //Это надо чтобы удар происходил в центре анимации
 {
 vzhiznos-=ataka;//Уменьшаем жизни врага на атака
 //Здесь еще можно сделать анимацию врага
 show_message("Выбил "+string(ataka));//это сообщение рекомендуеться убрать в своей
 //игре оно для того чтобы было понятно что вы попали по врагу
 }
 }
 }
 
 if (vzhiznos<1)//если у врага кончились жизни
 {
 opit+=120;//Повышаем опыт.Для игры ставьте значение поменьше
 //для того чтоб игрок не сразу получал уровень
 with(vrag) instance_destroy();//удаляем врага
 vzhiznos=30;//Повышаем жизни обратно
 }
 
 if (opit>99)//Если опыта больше 99
 {
 ochki+=5;//Увеличиваем очки на 5
 opit=0;//Обнуляем опыт
 level+=1;//Увеличиваем уровень
 }
 
 Создайте объект sozdatel он будет создавать героя и врага.
 В событии создания sozdatel:
 
 globalvar gg,vrag;
 gg=instance_create(176,172,model);//создание героя
 vrag=instance_create(250,279,model);//создание врага
 
 Теперь нужно создать ГУИ который будет показывать характеристики игрока.Для этого создайте объект gui.
 В событие Draw(рисование) объекта gui добавьте следующий код:
 DrawText(0,0,0,"АТАКА:"+string(ataka));//Рисуем атаку
 DrawText(0,0,20,"ЗАЩИТА:"+string(zazhita));//Рисуем защиту
 DrawText(0,0,40,"ЛОВКОСТЬ:"+string(lovkost));//Рисуем ловкость
 DrawText(0,0,60,"ОПЫТ:"+string(opit));//Рисуем опыт
 DrawText(0,0,80,"УРОВЕНЬ:"+string(level));//Рисуем уровень
 DrawText(0,0,100,"ОЧКИ:"+string(ochki));//Рисуем количество очков
 DrawText(0,0,120,"ЖИЗНИ:"+string(zhiznos)+"/"+string(zhiznvs));//Рисуем жизни
 
 Далее поместите gui в комнату.Теперь нам требуеться создать объект plus.
 Этот объект и будет распределять очки.После создания сразу снимите галачку "видимый" и поместите plus в комнату.
 Теперь в событие шага(step) объекта plus поместите следующий код:
 
 if ochki>0 then visible=true else visible=false;
 //Это чтобы распределение очков появлялось только если есть что распределять
 
 Далее в событие рисования(Draw) объекта plus следующий код:
 
 //Рисуем эту самую информацию
 DrawText(0,130,0,"Чтобы улучшить атаку нажмите 1");
 DrawText(0,130,20,"Чтобы улучшить защиту нажмите 2");
 DrawText(0,130,40,"Чтобы улучшить ловкость нажмите 3");
 DrawText(0,130,120,"Чтобы улучшить жизни нажмите 4");
 
 Осталось сделать последнее.Это добавить четыре события отпускания клавиши для объекта plus.
 В событие отпускания клавиши 1(release 1-key):
 
 if (ochki>0)//если очков больше нуля
 {
 ataka+=1;//Увеличиваем на 1 атаку
 ochki-=1;//Уменьшаем на 1 очки
 }
 
 В событие отпускания клавиши 2(release 2-key):
 
 if (ochki>0)//если очков больше нуля
 {
 zazhita+=1;//Увеличиваем на 1 защиту
 ochki-=1;//Уменьшаем на 1 очки
 }
 
 В событие отпускания клавиши 3(release 3-key):
 
 if (ochki>0)//если очков больше нуля
 {
 lovkost+=1;//Увеличиваем на 1 ловкость
 ochki-=1;//Уменьшаем на 1 очки
 }
 
 В событие отпускания клавиши 4(release 4-key):
 
 if (ochki>0)//если очков больше нуля
 {
 zhiznvs+=10;//Увеличиваем на 10 жизни(всего)
 zhiznos+=10;//Увеличиваем на 10 жизни(осталось)
 ochki-=1;//Уменьшаем на 1 очки
 }
 Вот и всё простой примерчик 3D RPG готов.Для нормальной игры вам потребуеться добавить множество врагов,характеристик и т.д. Я вам продемонстрировал что создать RPG не так уж сложно.
  Вот скрин из статьи: 
  
 
 Сообщение отредактировал ASD_W_GAMES - Среда, 28 Апреля 2010, 17:25 |  |  |  |  |  
 |