Учимся делать игры
Вот решил создать такую темку. Сподвигла меня на это дело покупка книги "Проектирование и архитектура игр" (Эндрю Роллингз, Дейв Моррис, изд. дом "Вильямс", Москва-СПб-Киев, 2006г., второе издание). Сам не раз пробовал создать что-нибудь, учатствовал в одном проекте (умер еще на стадии рождения) - толку ноль. Так вот: предлагаю в этой теме обсуждать проблемы, стоящие на пути начинающего гейм-мейкера (начинающего).
Сразу осмелюсь остудить горячие головы, считающие, что они придумали генеальный сюжет и сейчас вот создадут по нему суперигру (сам таким был...) - ничего не выйдет, сюжет сам по себе для игры ничего не стоит. |
у меня такой вопрос может кто обяснить вот как делать город это надо каждое сдание и улици делать а потом кодом соединять или в максе целый город сделать а потом в двиг закинуть?
|
Можно и так, и так. Только лучше все же здания делать отдельными объектами.
|
А как по проще сделать препятствия??
|
Проще всего окружить их и игрока сферами, потому что пересечение сфер просчитывать проще всего. Ну или параллелепипедами, их пересечение тоже более-менее прросто посчитать. Также работает смешанный вариант. Ну и самый тормознутый вариант - просчитывать пересечение каждого полигона с каждым, но это будет очень медленно... То же верно и для 2D, только там сферы соответственно на круги заменяются, параллелепипеды - на прямоугольники, а полигоны- на прямые.
|
а какие бесплатые движки для делфи есть кроме glscene и delphix?
|
pokibor
А можно по подробнее про 2D. ROLF Есть какие-нить игры под GLScene? |
Цитата:
Если (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. |
SkyLine
не кроме стондартых демок нет |
Цитата:
Покрайне мере я не слышал такого гдеб так колизии проверялись. Хотя могет через несколько лет процы наверное такую фишку осилят. Да и глупо это каждый полигон проверять на коллизии - смысла нет - когда можно обойтись сферами... Блин тож хотел книжку эту прикупить да воть чет пока обламывает... Так что читаю пока другие... Что тему такую создаль - МОЛОДЦА... Постараюсь тут почаще постить по теме!!! |
Разработчики выбирают такую структуру карт которая больше подходит к их требованиям.
В превую очередь это скорость рендера, быстрота работы с картой, возможность модификаций и т.п. Варианты структур карты: 1. Ландшафт - меши (строятся из кусков) - отдельные готовые здания. 2. Вся статика катры в одной модели. 1. Для ландшафта изпользуются Квадродеревья(QuadTree) или подобные ей структуры. Это дает большой плюс к скорости работы с ландшафтом. Остальные же здания хранятся в отдельных структурах, например D3DXMESHCONTAINER, или же собственые разработаные структуры. Примеров таких игр полно: FarCry, HalfLife, Doom3... 2. Всю стантику(ландшафт, здания и т.п.) хранят в ондной структуре (могут разбиватся на сектора). Есно что тут много плюсов по скорости, правда структура получается слишком большая, поэтому карту разбивают по секторам или же используют BSP деревья или другие подоюные технологии... Игры: PainKiller, Quake Arena(используется BSP)... Конечно описал слишком плохо всю идею, но думаю кто хочет разобраеться поймет... Если гдет ошибся не серчайте а просто поправте... |
Интересно... вообще то первая идея называется "тайлы", только трехмерные :sml: Очевидно, она больше подходит для стратегий, и, возможно, RPG, где соответствует сути карты. Вторая - для Action'ов, где каждый элемент уровня должен быть неповторимым, т.к. на него смотрят с куда большего приближения. И на сектора разумеется надо разбивать, и использовать незаметную подгрузку уровней. Представьте, чтобы во второй халве СРАЗУ грузился в память весь уровень...
Кстати, еще можно попробовать сделать нечто вроде автоматической генерации ландшафта и даже зданий по фрактальным алгоритмам... Достаточно интересный вариант кстати. В реальном мире практически все можно свести к фракталам. |
Цитата:
К тому же можно тут и слои использовать для накладывания текстур... Т.е. одна текстура на весь ландшафт а слои покрывают те участки на которых должна быть другая текстура... |
Цитата:
Воть только меш можно понять как модель так как Mesh переводится как сетка... В экшенах тож используют такую фигню при построении архитектуры карт. Посмотри в сторону Unreal Tournament точнее полазь в редакторе и поймешь... Пол, стены делается кусками (тайлами) ну а более сложные уже храняться как модели. |
Цитата:
Цитата:
|
Цитата:
Про фракталы я как то мало что знаю... Воть слил шас инфу по ним почитаю немнго... Кстать вопрос немного не в тему... ну даладно... Знает кто нить как в MVSC++ 6.0 Использовать инструкцию CPUID??? Или хотя бы ее обьектный код - db 0Fh, 0A2h; Если использовать объектный код то вылезает такая лажа: inline assembler syntax error in 'opcode'; found 'constant' |
Цитата:
|
Чет тема выдохлась чтоль???
Поэтому предлагаю обсудить организацию хранения объектов в игровом мире... PS: Pokibor почитал тут инфу о фракталах. ТАк воть заинтересовали мя Стохастические фракталы... Весчь то удобная для генерации ландшафта. Такая штука мне могет потом пригодится... Я воть тут пишу движок игровой. Ну потомь думаю ченить простое на нем замутить. Если заинтересован в этомь то могет присоединишься. Раз разбираешься в фракталах то могет и тулзу поможешь написать... |
Цитата:
Цитата:
|
pokibor
Ну могешь и позже присоединиться. Как раз движок мясом обрастет. А то он пока что мало что умеет. Я счас пишу конфиг и логер. Одновремено добавляя необходимые по необходимости классы. Когда закончу начну ландшафт добавлять или же чет есчо добавлять... |
Часовой пояс GMT +4, время: 11:27. |
Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.