Просмотр полной версии : Игрострой
Кто нибудь занимается этим интересным делом? Если да, то поделитесь опытом.
Ну занимаются. А что тебя конкретно интересует?
Ну, картина в целом. Например, каким способом?
Ну, картина в целом. Например, каким способом?
методом программирования создаются игры..
Как тебе это обьяснить я хз.
v1k, это логично. А через какой редактор,к примеру?
Кто нибудь может выложить хороший туториал на русском языке по движку Irrlicht Engine?
DS_disan
23.09.2008, 16:55
неа где, это все взять, ну например модели людей транспорта оружия и тп делаются в программах: 3д-с-макс майа зи-моделер
скрипты пишутся: сани-билдер (для гта са)
а вот про движки я хз
но можеш попробовать на движке вайсити или са сделать
DarKLorD
08.10.2008, 10:21
Есть простинькие программы для создания игр без программирования.
Можно просто делать мапы, уровни и т.п. для уже существующих игр.
На мой взгляд делать мапы интересней всего для warcraft 3, и CS (хотя лучше для CS source. Процес создания карты не сильно отличен, от CS, но конечный результат... хорошая графика и физика)
Есть ещё один путь. Писать игры самому и с нуля.(правда одному это не катит, нужна команда, хотя бы 3 человека) (проверено на собственном опыте)
OpenGL, Dark Gdk я бы выбрал что нить из этого, или SDL, а язык программирования с/с++. (что то простое 2-х, 3-х мерное написать можно.)
Самая обширная база для модостроения, из всех что я видел в играх Flashpoint и серии Unreal (здесь, при некотором упрорстве, не вылезая из Редактора, идущего в комплекте, можно сделать практически новую игру, разве что для создания моделей и текстур придётся сторонние проги юзать)
DarKLorD
10.10.2008, 14:38
"разве что для создания моделей и текстур придётся сторонние проги юзать)" это всегда так, даже если в набор sdk входит что то подобное, то оно далеко от совершенства. Кстати для создание моделей лучше пользоваться 3D максом, можно попробывать моделить в милке, зипере, но дойдя до определённого этапа понимаешь что не удобно и не хватает инструментов, а в максе есть всё что нужно. (это лишь моё мнение)
В максе все что нужно есть, но иногда приходиться плагины на него ставить чтоб он вообще отличным был. Но я слышал что создали какой то редактор моделей дак там создавать что либо просто пустяк.
Например выбираешь тип(дерево, авто и т.п.) задаешь такие параметры как высота, толщина и нажимаешь genеrate и все. Только не знаю как прога называется.
DarKLorD
29.11.2008, 19:05
Тогда уж проще готовых моделей накачать и использовать в своих проектах.
Правда нарушается авторское право. На мой взгляд самый оптимальный вариант создать самому. (самый лучшей вариант разрабатывать что-то не одному, а группой)
Сейчас сижу в свободное время на FPS Creator'e. В принципе неплохой, но не более того. Сделан на Dark Basic'e
DarKLorD
29.11.2008, 19:36
FPS Creator, надеюсь ты его не покупал))
С их серией продуктов(если их купить) никаких проблем с правами не будет, с созданные игры можно распространять со словами - они мои, я их создал)
FPS Creator и подобные ему вещи с одной стороны удобны тем, что просты, особенно для тех кто далёк от программирования. Однако чем больше всё автоматизированно, тем больше ограничений. Зависимость от платформы, определённая направленность, ограниченность в некоторых вещях(расположении элементов интерфейса, и т.п.)
нет, я не покупал. во многом ты прав. но могу дать ссылку на один специализированный фан-форум, где из него такое вытворяют, что можно и подумать.
DarKLorD
29.11.2008, 20:08
Мне сейчас интересен подход с другой стороны, а именно написание самого движка игры. Пишу на С++, весь код разбит на отдельные классы(т.е. есть отдельный файл в котором описан класс шрифта, отдельный файл класс button и т.п.) так во первых удобно, во вторых можно полностью изменить один класс(например шрифты переписать) и не придётся менять остальной код где этот класс использовался. Использую OpenGL. На данный момент есть шаблон меню(только картинок налепить нормальных и кнопки по экрану расположить) и пробные версии движка. подгрузка модели танка .3ds, управление стрелочками, и поворот башни мышкой. На каждом следующем шаге приходиться переписывать один и тот же код, писать новые классы, выделять часто используемые фрагменты кода в функции, т.е. "полировать" код. Это и позволяет продвигаться дальше, а иначе, ну написал бы ещё прощёт коллизий, и ещё чего-нить в неструктурированный код и на этом бы и закончил т.к. думаю уже сложно было бы разбираться в куче не структурированного кода чтоб вносить ещё какие-то дополнения.
DarKLorD, ага... а учился долго?
DarKLorD
29.11.2008, 21:13
на с++ писать если умеешь, то не долго и не сложно. уроки по OpenGL есть хорошие nehe(можно найти что то полезное но в целом не очень)
А вот Wingman's OpenGL это очень подробные уроки(всё удобно и в отдельных классах всё). Почитал, покомпилил, порадовался что что-то как-то работает и потом начал разбираться что и как. А более детально(если интересуют некоторые детали) про OpenGL ещё лучше почитать в красной книге(RedbookOpengl).
BAD BOY ALEX
30.11.2008, 19:11
А можешь кусок кода на си++ выложить? уж жутко интересно как он выглядит:rolleyes:
DarKLorD
01.12.2008, 16:19
#include "GameQuit.h"
CGameQuit::CGameQuit()
{
// Инициализируем класс и грузим текстуру:
Texture = new CTexture();
Texture->LoadTexture("Pictures/menu/bg.bmp",&textures[0]);
// Цвета кнопок, активный и неактивный цвет
CVector3 BColor1, BColor2;
// Позиция кнопки
CVector2 BPos;
// Устанавливаем цвета
BColor1.x = 0.5f; BColor1.y = 0.7f; BColor1.z = 0.6f;
BColor2.x = 0.5f; BColor2.y = 0.6f; BColor2.z = 0.5f;
// Изменяем позицию кнопки 1 yes
BPos.x = SCREEN_WIDTH/2 - 180; BPos.y = SCREEN_HEIGHT/2 - 80;
ButtonYes = new CButton(BColor1, BColor2, BPos, 180, 40, "Yes");
// Изменяем позицию кнопки 2 no
BPos.x = SCREEN_WIDTH/2 + 10; BPos.y = SCREEN_HEIGHT/2 - 80;
ButtonNo = new CButton(BColor1, BColor2, BPos, 180, 40, "No");
this->ButtonYes->active = true; // И делаем активной кнопку yes
}
CGameQuit::~CGameQuit()
{
}
void CGameQuit::Render()
{
// Переходим в 2D режим:
OrthoMode(0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
// Рисуем текстурированный квадратик (фон)
glColor3f(1,1,1);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,textures[0].texID);
glBegin(GL_QUADS);
glTexCoord2f(0,1); glVertex2f(0, 0);
glTexCoord2f(1,1); glVertex2f(SCREEN_WIDTH, 0);
glTexCoord2f(1,0); glVertex2f(SCREEN_WIDTH, SCREEN_HEIGHT);
glTexCoord2f(0,0); glVertex2f(0, SCREEN_HEIGHT);
glEnd();
// Теперь нам нужно нарисовать кнопки.
ButtonYes->Render();
ButtonNo->Render();
//возвращаемся в 3D:
PerspectiveMode();
}
void CGameQuit::ProcessClick(CVector2 mpos)
{
// Был совершен клик. Проверим, была ли мышь на кнопке:
if(ButtonYes->MouseOver(mpos))
DeInit();
if(ButtonNo->MouseOver(mpos))
g_State = GAME_MENU; // Если на no - изменяем состояние игры
}
// Эта функция обрабатывает нажатия клавиш.
void CGameQuit::KeyDown(unsigned int key)
{
switch(key)
{
case VK_LEFT:
case VK_RIGHT:
case VK_TAB:
if(this->ButtonYes->active)
{
this->ButtonYes->active=false;
this->ButtonNo->active=true;
break;
}
if(this->ButtonNo->active)
{
this->ButtonNo->active=false;
this->ButtonYes->active=true;
break;
}
break;
case VK_RETURN:
if(this->ButtonYes->active)
DeInit();
if(this->ButtonNo->active)
g_State = GAME_MENU;
break;
}
}
Вот так у меня выглядит выход из программы, 2D режим две кнопочки, всё просто. (а в 3D появиться ещё одна координата)
(да, ещё класс текстур и класс кнопок тоже описан, это лишь один из... вроде 23 файлов исходников меню.)
Так же я могу описать в отдельный класс инициализацию, и рендер моделей, и потом рисовать их перейдя в 3D режим как то например так: Model[0].Render();
Так же можно вместо фона на "квадратик" наложить текстуру домов например, И создать ещё два квадратика с такиме же текстурами слева и справа за пределами экрана. И каждый раз при рендере (void CGameQuit::Render()) сдвигать позициюквадратиков в сторону, а когда позиция центрального достигнет края экрана, то тот квадратик которого теперь уже совсем не видно удалить, а с противоположной стороны создать. И должен получиться эфект что наша модель(машина, танк) движется по городу.(вместо текстурированных квадратиков для большго эффекта можно тоже модели использовать(домов, бочек и стоящих машин и т.п.)) Это прям как в NFS Undeground. Там ведь тоже на заднем фоне меню машина едет. )))
DarKLorD, а просчёт коллизий тоже думаешь вручную писать? Есть мощные и удобные и бесплатные :) физические библиотеки. Я вот Ньютон юзал. Написал на Дельфе зачаток движка файтинга (революционного разумеется :) ), если интересно могу демку кинуть поглядеть.. пока приморозил проект, из-за более приоритетного.
Мда.... Ты не запарился это все делать, я когда на курсы по с++ ходил запаивался из-за вот этого.(много текста) Особенно не любил ошибки допускать:( Слава боку что в с++ есть кнопочка которая покажет где у тебя ошибка:D
BAD BOY ALEX
01.12.2008, 17:25
jimmc, на с++ нет кнопочки которая покажет ошибки он только в кампиляторе может быть)))
DarKLorD
02.12.2008, 23:07
Просчет коллизий, да в ручную. Я подозреваю как я это сделано в Gta vice city. Там есть .col файлы для всех моделей. Думаю придерживаться такого же принципа, просчитывать коллизию не со сложной моделью(скажем танком из 3000 полигонов) А с примитивом, скажем параллелепипедом.
На счет просчета физики сильно пока не задумывался. Читал о физических симуляторах, но попытаюсь написать свой, пусть и примитивный. Сейчас у меня цель не в создании мега проекта, а просто, изучение как что делается.
BAD BOY ALEX, Или там выделение идет неправильной команды, я точно не помню, но что то такое там есть
DarKLorD, разумно... Но для меня было бы скучно - пока изучишь как всё это сделать самому может жизнь пройти ;) А вот грамотно применять можно научиться на создании интересного тебе примера. Ну, это моё мнение, конечно.
vBulletin® v3.8.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot