Форум Игромании
 
Регистрация
Справка

Ответ
 
Опции темы
Старый 06.02.2006, 21:49   #1
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,351
Репутация скрыта [+/-]
Учимся делать игры

Вот решил создать такую темку. Сподвигла меня на это дело покупка книги "Проектирование и архитектура игр" (Эндрю Роллингз, Дейв Моррис, изд. дом "Вильямс", Москва-СПб-Киев, 2006г., второе издание). Сам не раз пробовал создать что-нибудь, учатствовал в одном проекте (умер еще на стадии рождения) - толку ноль. Так вот: предлагаю в этой теме обсуждать проблемы, стоящие на пути начинающего гейм-мейкера (начинающего).
Сразу осмелюсь остудить горячие головы, считающие, что они придумали генеальный сюжет и сейчас вот создадут по нему суперигру (сам таким был...) - ничего не выйдет, сюжет сам по себе для игры ничего не стоит.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 07.02.2006, 16:36   #2
Юзер
 
Аватар для ROLF
 
Регистрация: 10.06.2005
Адрес: Мир духов
Сообщений: 156
Репутация: 45 [+/-]
у меня такой вопрос может кто обяснить вот как делать город это надо каждое сдание и улици делать а потом кодом соединять или в максе целый город сделать а потом в двиг закинуть?
__________________
--=THE ONE'S clan=--
Миром правят оптимисты а пессимисты там только зрители.
---------------------------
Intel core 2 Duo E6300
GeForse 7600 GT на 256 mb
2X1=2Gb ОЗУ
ROLF вне форума  
Отправить сообщение для ROLF с помощью ICQ Ответить с цитированием
Старый 07.02.2006, 18:26   #3
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,351
Репутация скрыта [+/-]
Можно и так, и так. Только лучше все же здания делать отдельными объектами.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 08.02.2006, 22:25   #4
Новичок
 
Аватар для SkyLine
 
Регистрация: 08.06.2005
Сообщений: 0
Репутация: 6 [+/-]
А как по проще сделать препятствия??
__________________
ICQ: 78 141 29
+1 postcount
SkyLine вне форума  
Ответить с цитированием
Старый 09.02.2006, 09:03   #5
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,351
Репутация скрыта [+/-]
Проще всего окружить их и игрока сферами, потому что пересечение сфер просчитывать проще всего. Ну или параллелепипедами, их пересечение тоже более-менее прросто посчитать. Также работает смешанный вариант. Ну и самый тормознутый вариант - просчитывать пересечение каждого полигона с каждым, но это будет очень медленно... То же верно и для 2D, только там сферы соответственно на круги заменяются, параллелепипеды - на прямоугольники, а полигоны- на прямые.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 09.02.2006, 15:21   #6
Юзер
 
Аватар для ROLF
 
Регистрация: 10.06.2005
Адрес: Мир духов
Сообщений: 156
Репутация: 45 [+/-]
а какие бесплатые движки для делфи есть кроме glscene и delphix?
__________________
--=THE ONE'S clan=--
Миром правят оптимисты а пессимисты там только зрители.
---------------------------
Intel core 2 Duo E6300
GeForse 7600 GT на 256 mb
2X1=2Gb ОЗУ
ROLF вне форума  
Отправить сообщение для ROLF с помощью ICQ Ответить с цитированием
Старый 10.02.2006, 20:36   #7
Новичок
 
Аватар для SkyLine
 
Регистрация: 08.06.2005
Сообщений: 0
Репутация: 6 [+/-]
pokibor
А можно по подробнее про 2D.
ROLF
Есть какие-нить игры под GLScene?
__________________
ICQ: 78 141 29
+1 postcount
SkyLine вне форума  
Ответить с цитированием
Старый 10.02.2006, 21:30   #8
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,351
Репутация скрыта [+/-]
Цитата:
Сообщение от SkyLine
pokibor
А можно по подробнее про 2D.
Не совсем понимаю, что подробнее... Ну рассмотрю случай, когда область столкновения представляется окружностью как самый простой. Вообще, если не дружишь с геометрией, то трудно тебе будет на поприще разработчика игр... Итак, у тебя есть объект - юнит с координатами x0 и y0, а также радиусом коллизионой окружности r, и есть объект - прпятствие с координатами X и Y, коллизионая окружность R. Допустим, мы знаем, что в текущий момент юнит не столкнулся с препятствием. Он делает шаг. Нам интересно, сможет ли он сделать этот шаг, или столкнется с препятсвием. Пусть, если герой сделает шаг, у него координаты станут x и y. Тогда нам нужно фактически проверить, пересекает ли окружность с центром в т. (x,y) и радиусом r окружность с центром в т. (X,Y) и радиусом R. Такие задачи решаются классе в седьмом-восьмом, кстати. Очевидно, что если окружности пересекаются, то расстояние между их центрами будет меньше, чем сумма их радиусов. Расстояние между центрами в квадрате равно (т. Пифагора) (x-X)^2+(y-Y)^2, ну и по условию это должно быть < (r+R)^2. Корень не беру (а возвожу в квадрат) потому, что операция взятия корня куда более трудоемка для компьютера, нежели возведение в квадрат. Итак, получили:
Если (x-X)^2+(y-Y)^2 < (r+R)^2, то юнит шаг сделать не может и мы этот шаг запрещаем, если же нет - разрешаем.
Разумеется, куда естественнее будет сделать стенки наборами отрезков, а героя - окружностью. В таком случае придется искать столкновение сферы с отрезком, что несколько сложнее. Я эти уравнения выводил, но на память не помню. Задачка, кстати, класса для восьмого. Предоставляю это тебе. Если не осилишь, я поднапрягусь и выведу из заново. Напомню, что уравнение окружности (x-xc)^2+(y-yc)^2=r^2 (xc,yc-координаты центра, r-радиус), а отрезка -
x = (xa-xb)*c+xb
y = (ya-yb)*c+yb
0<c<1
xa,ya - координаты одного конца отрезка, xb,yb - другого, а c - как раз коэффициент, который нужно тоже найти из системы уравнений и проверить условие 0<c<1.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)

Последний раз редактировалось pokibor; 10.02.2006 в 21:42.
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 14.02.2006, 15:50   #9
Юзер
 
Аватар для ROLF
 
Регистрация: 10.06.2005
Адрес: Мир духов
Сообщений: 156
Репутация: 45 [+/-]
SkyLine
не кроме стондартых демок нет
__________________
--=THE ONE'S clan=--
Миром правят оптимисты а пессимисты там только зрители.
---------------------------
Intel core 2 Duo E6300
GeForse 7600 GT на 256 mb
2X1=2Gb ОЗУ
ROLF вне форума  
Отправить сообщение для ROLF с помощью ICQ Ответить с цитированием
Старый 05.03.2006, 01:33   #10
Новичок
 
Аватар для Evil.Hard
 
Регистрация: 28.09.2005
Адрес: Yo-бург
Сообщений: 50
Репутация: 5 [+/-]
Цитата:
Сообщение от pokibor
Ну и самый тормознутый вариант - просчитывать пересечение каждого полигона с каждым, но это будет очень медленно
Такого вродь не в одном движке не применяется...
Покрайне мере я не слышал такого гдеб так колизии проверялись.
Хотя могет через несколько лет процы наверное такую фишку осилят.

Да и глупо это каждый полигон проверять на коллизии - смысла нет - когда можно обойтись сферами...

Блин тож хотел книжку эту прикупить да воть чет пока обламывает...
Так что читаю пока другие...
Что тему такую создаль - МОЛОДЦА...
Постараюсь тут почаще постить по теме!!!
__________________
Ни когда не спорь, стой на своем и баста!!!

Последний раз редактировалось Evil.Hard; 05.03.2006 в 01:48.
Evil.Hard вне форума  
Отправить сообщение для Evil.Hard с помощью ICQ Ответить с цитированием
Старый 10.03.2006, 18:32   #11
Новичок
 
Аватар для Evil.Hard
 
Регистрация: 28.09.2005
Адрес: Yo-бург
Сообщений: 50
Репутация: 5 [+/-]
Разработчики выбирают такую структуру карт которая больше подходит к их требованиям.
В превую очередь это скорость рендера, быстрота работы с картой, возможность модификаций и т.п.

Варианты структур карты:
1. Ландшафт - меши (строятся из кусков) - отдельные готовые здания.
2. Вся статика катры в одной модели.

1. Для ландшафта изпользуются Квадродеревья(QuadTree) или подобные ей структуры.
Это дает большой плюс к скорости работы с ландшафтом.
Остальные же здания хранятся в отдельных структурах, например D3DXMESHCONTAINER, или же собственые разработаные структуры.
Примеров таких игр полно: FarCry, HalfLife, Doom3...
2. Всю стантику(ландшафт, здания и т.п.) хранят в ондной структуре (могут разбиватся на сектора).
Есно что тут много плюсов по скорости, правда структура получается слишком большая, поэтому карту разбивают по секторам
или же используют BSP деревья или другие подоюные технологии...
Игры: PainKiller, Quake Arena(используется BSP)...

Конечно описал слишком плохо всю идею, но думаю кто хочет разобраеться поймет...
Если гдет ошибся не серчайте а просто поправте...
__________________
Ни когда не спорь, стой на своем и баста!!!
Evil.Hard вне форума  
Отправить сообщение для Evil.Hard с помощью ICQ Ответить с цитированием
Старый 10.03.2006, 19:00   #12
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,351
Репутация скрыта [+/-]
Интересно... вообще то первая идея называется "тайлы", только трехмерные Очевидно, она больше подходит для стратегий, и, возможно, RPG, где соответствует сути карты. Вторая - для Action'ов, где каждый элемент уровня должен быть неповторимым, т.к. на него смотрят с куда большего приближения. И на сектора разумеется надо разбивать, и использовать незаметную подгрузку уровней. Представьте, чтобы во второй халве СРАЗУ грузился в память весь уровень...
Кстати, еще можно попробовать сделать нечто вроде автоматической генерации ландшафта и даже зданий по фрактальным алгоритмам... Достаточно интересный вариант кстати. В реальном мире практически все можно свести к фракталам.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 10.03.2006, 19:18   #13
Новичок
 
Аватар для Evil.Hard
 
Регистрация: 28.09.2005
Адрес: Yo-бург
Сообщений: 50
Репутация: 5 [+/-]
Цитата:
автоматической генерации ландшафта
А чем не устраивает тебя генерация ландшафта по картам высот???
К тому же можно тут и слои использовать для накладывания текстур...
Т.е. одна текстура на весь ландшафт а слои покрывают те участки на которых должна быть другая текстура...
__________________
Ни когда не спорь, стой на своем и баста!!!
Evil.Hard вне форума  
Отправить сообщение для Evil.Hard с помощью ICQ Ответить с цитированием
Старый 10.03.2006, 21:19   #14
Новичок
 
Аватар для Evil.Hard
 
Регистрация: 28.09.2005
Адрес: Yo-бург
Сообщений: 50
Репутация: 5 [+/-]
Цитата:
тайлы
Меши - тайлы одна ботва...
Воть только меш можно понять как модель так как Mesh переводится как сетка...

В экшенах тож используют такую фигню при построении архитектуры карт.
Посмотри в сторону Unreal Tournament точнее полазь в редакторе и поймешь...
Пол, стены делается кусками (тайлами) ну а более сложные уже храняться как модели.
__________________
Ни когда не спорь, стой на своем и баста!!!
Evil.Hard вне форума  
Отправить сообщение для Evil.Hard с помощью ICQ Ответить с цитированием
Старый 10.03.2006, 22:53   #15
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,351
Репутация скрыта [+/-]
Цитата:
Сообщение от Evil.Hard
А чем не устраивает тебя генерация ландшафта по картам высот???
К тому же можно тут и слои использовать для накладывания текстур...
Т.е. одна текстура на весь ландшафт а слои покрывают те участки на которых должна быть другая текстура...
Я не совсем про то... Я имел ввиду, что таким образом можно генерить уникальные ландшафты без участия человека. Кстати, генерацию по карте высот это не отменяет - по карте высот вполне может генериться заданая форма, а вот оформление генериться по фрактальным алгоритмам со случайными параметрами и каждый раз будет новым.

Цитата:
Сообщение от Evil.Hard
Меши - тайлы одна ботва...
Воть только меш можно понять как модель так как Mesh переводится как сетка...
В экшенах тож используют такую фигню при построении архитектуры карт.
Посмотри в сторону Unreal Tournament точнее полазь в редакторе и поймешь...
Пол, стены делается кусками (тайлами) ну а более сложные уже храняться как модели.
Согласен, что некоторые детали можно на уровне повторять. Но в целом уровень в 3D ACtion'ах должен быть намного разнобразнее, чем в стратегиях, и, возможно, даже RPG. Поэтому основу каждого уровня желательно делать каждый раз новую. Хотя тут можно схитрить, сделав набор достаточно просторных мешей (чтобы все не сводилось к воксельному движку ), но покрывать их разными текстурами. Эсли это грамотно скомпонавать, то среднестатистический игрок повторяющихся элементов даже не заметит.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 10.03.2006, 23:32   #16
Новичок
 
Аватар для Evil.Hard
 
Регистрация: 28.09.2005
Адрес: Yo-бург
Сообщений: 50
Репутация: 5 [+/-]
Цитата:
Сообщение от pokibor
Но в целом уровень в 3D ACtion'ах должен быть намного разнобразнее
Воть на этом Monolith то и облажалась со своими Fear и Condomned(вроде так пишется)...

Про фракталы я как то мало что знаю... Воть слил шас инфу по ним почитаю немнго...

Кстать вопрос немного не в тему... ну даладно...
Знает кто нить как в MVSC++ 6.0
Использовать инструкцию CPUID???
Или хотя бы ее обьектный код - db 0Fh, 0A2h;

Если использовать объектный код то вылезает такая лажа:
inline assembler syntax error in 'opcode'; found 'constant'
__________________
Ни когда не спорь, стой на своем и баста!!!

Последний раз редактировалось Evil.Hard; 10.03.2006 в 23:38.
Evil.Hard вне форума  
Отправить сообщение для Evil.Hard с помощью ICQ Ответить с цитированием
Старый 11.03.2006, 02:20   #17
Новичок
 
Аватар для Unter
 
Регистрация: 26.09.2005
Сообщений: 0
Репутация: 1 [+/-]
Цитата:
Сообщение от ROLF
а какие бесплатые движки для делфи есть кроме glscene и delphix?
читай ЛКИ там все описывается про LKICreator и жизнь станет легче +)
__________________
учиться, учиться, учиться и, наконец, моделлить
Unter вне форума  
Ответить с цитированием
Старый 12.03.2006, 01:54   #18
Новичок
 
Аватар для Evil.Hard
 
Регистрация: 28.09.2005
Адрес: Yo-бург
Сообщений: 50
Репутация: 5 [+/-]
Чет тема выдохлась чтоль???

Поэтому предлагаю обсудить организацию хранения объектов в игровом мире...

PS: Pokibor почитал тут инфу о фракталах. ТАк воть заинтересовали мя Стохастические фракталы...
Весчь то удобная для генерации ландшафта. Такая штука мне могет потом пригодится...
Я воть тут пишу движок игровой. Ну потомь думаю ченить простое на нем замутить.
Если заинтересован в этомь то могет присоединишься.
Раз разбираешься в фракталах то могет и тулзу поможешь написать...
__________________
Ни когда не спорь, стой на своем и баста!!!

Последний раз редактировалось Evil.Hard; 12.03.2006 в 04:01.
Evil.Hard вне форума  
Отправить сообщение для Evil.Hard с помощью ICQ Ответить с цитированием
Старый 12.03.2006, 10:07   #19
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 8,351
Репутация скрыта [+/-]
Цитата:
Сообщение от Evil.Hard
Чет тема выдохлась чтоль???

Поэтому предлагаю обсудить организацию хранения объектов в игровом мире...
Ну это зависит от игры... Я сейчас в рамках проекта по институту пишу пошаговую стратегию, и там сделал так: есть список объектов, которые находятся на карте, а также у каждой клетки карты есть ссылка, указывающая, какой объект на ней находится. У меня все объекты игры унаследованы от одного базового класса, в котором определена переменная, отвечающая за тип объекта, поэтому проблем с идентификацией не возникает, а благодаря описаной выше структуре можно как перебрать все объекты на карте, не проходя все ее клетки (тем более, что один объект может занимать несколько клеток), так и не перебирая все объекты посмотреть, что находится на данной клетке.
Цитата:
Сообщение от Evil.Hard
PS: Pokibor почитал тут инфу о фракталах. ТАк воть заинтересовали мя Стохастические фракталы...
Весчь то удобная для генерации ландшафта. Такая штука мне могет потом пригодится...
Я воть тут пишу движок игровой. Ну потомь думаю ченить простое на нем замутить.
Если заинтересован в этомь то могет присоединишься.
Раз разбираешься в фракталах то могет и тулзу поможешь написать...
Рад бы помочь, но, как писал выше, сейчас уже занят проектом, плюс еще работа есть. Правда, насчет движка проекта у нас еще идут споры, пока мы пишем ядро игры. Я бы хотел предложить тебе по участвовать, но не знаю, как к участию в разработке сторонего человека (в смысле, не из нашей институтской группы) отнесется команда и некоторые преподаватели (проект будет сдаваться по трем предметам).
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием
Старый 12.03.2006, 13:06   #20
Новичок
 
Аватар для Evil.Hard
 
Регистрация: 28.09.2005
Адрес: Yo-бург
Сообщений: 50
Репутация: 5 [+/-]
pokibor
Ну могешь и позже присоединиться. Как раз движок мясом обрастет.
А то он пока что мало что умеет.
Я счас пишу конфиг и логер. Одновремено добавляя необходимые по необходимости классы. Когда закончу начну ландшафт добавлять или же чет есчо добавлять...
__________________
Ни когда не спорь, стой на своем и баста!!!

Последний раз редактировалось Evil.Hard; 12.03.2006 в 13:14.
Evil.Hard вне форума  
Отправить сообщение для Evil.Hard с помощью ICQ Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:31.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Rambler's Top100 Яндекс цитирования