Организация игрового мира, нужен совет

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
skord
Китаец
Китаец
 
Сообщения: 572
Зарегистрирован: 14.10.2004 (Чт) 15:36
Откуда: Иркутск

Организация игрового мира, нужен совет

Сообщение skord » 13.07.2009 (Пн) 5:58

Доброго времени суток!
Появилось задание написать игру, в качестве курсовой. Решил сделать тайловую 2d (rpg\квест, это не столь важно), вид строго сверху. Перемещение по карте и обработка столкновений — пока это все, что требуется. Начал продумывать, как логичнее и удобнее организовать структуру игрового мира.

Как я себе это представляю: существует базовый класс игрового объекта, от которого наследуются все остальные классы, от которых создаются экземпляры — это и есть игровые объекты (практически всё: препятствия, предметы и т. д.). Они создаются и уничтожаются динамически, в ходе игрового процесса, например, при загрузке уровня или при выполнении некоторых действий. У каждого объекта свои координаты, размеры и т. д.. И все эти объекты, естественно, "раскиданы" по карте.

Все что нашел конкретно по этому вопросу, находится здесь: http://www.rsdn.ru/Forum/Info/FAQ.game.objects.aspx. Но сильно мне это не помогло, я почти также изначально думал.

Когда доходит до непосредсвенно реализации всей этой архитектуры, возникают вопросы.
Ничего другово, кроме как хранить объекты в динамическом массиве, мне в голову не лезет. При обработке коллизий, если объектов будет много, наверное, все это будет жутко тормозить...
Вообщем, есть идеи, как это грамотно сделать, в правильном ли я направлении копаю? Переписыввать потом тонны кода нет желания, потому хочу больше внимания проектированию уделить.

Заранее спасибо!

З.ы. Работа будет выполняться не на VB..

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Организация игрового мира, нужен совет

Сообщение alibek » 13.07.2009 (Пн) 7:17

Кривая какая-то реализация.
Лучше все-таки, чтобы было несколько классов игровых объектов — бэкграунд, составляющие ландшафта, статичные объекты (деревья, дома и т.п.), объекты-предметы, объекты-персонажи. Причины, чтобы они были именно унаследованы от базового класса, я не вижу. Хотя можно, конечно, почти у всех у них будет проперти ID и TypeID и метод Refresh. Также нужны вспомогательные классы, которые будут оперировать игровыми объекты. Ну и хранить их нужно, разумеется, не в массивах, а в коллекциях или списках.
Оперировать вообще всеми игровыми объектами, разумеется, не нужно. Нужно включать только объекты на активной локации. Но даже если ты решишь сделать игровой мир полностью живым (т.е. чтобы игровые персонажи жили своей жизнью, независимо от того, где находится персонаж игрока), все-равно все объекты обрабатывать не нужно, часть объектов нужна только для визуализации игры.
Ну и вообще не с того края ты подходишь. Вначале нужно разработать механику игры, принципы ее функционирования. Программирование на этой стадии совершенно не нужно.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55

    TopList