ПрограммированиеФорумОбщее

[Java + OpenGL] Создание 2D RTS (теперь уже TBS). Вопросы, советы

Страницы: 1 2 3 Следующая »
#0
13:31, 19 июня 2013

Я абсолютный новичок, как в геймдеве, так и в принципе в программировании(есть конечно какие-то наработки, но чего-то серьезного так и не написал). И вот пишу стратежку на Java, на манер первого Старкравта в графическом плане. Использую только стандартные библиотеки, в общем все с нуля. Ориентируюсь только на сингл, поскольку элементы, которые я хотел бы реализовать - в мульте не применимы.
И первый серьезный вопрос который меня застопорил - это этапы разработки. Я написал алгоритм поиска пути, создал общий класс юнита, от которого уже будут наследоваться конкретные виды. Юнита(ов) пока только можно выделить и послать куда подальше.
И вот стал вопрос. Что же дальше? Допиливать юнита, добавлять другие функции и параметры?? Или же писать ИИ, научить врага двигать своих юнитов?? что очень пугает, поскольку поломать голову придется ого-го как. Или же реализовывать другие элементы игры, там ресурсы, строительство??

Дальше, вопрос по алгоритму поиска пути. Почитал только про волновой поиск и все, саму суть только, т.к. хотелось изобрести велосипед.
Карта достаточно большая (клеток 100-200 тысяч)  и сканить каждому юниту всю карту, я думаю накладно будет. Поэтому у меня юниты сначала определяют направление пути. А область волны ограничена только радиусом видимости юнита, таким образом у меня отсутствует перебор всего массива карты. То есть проверка пути будет часто, но по чуть-чуть. Пока у меня нет возможности потестить одновременно на большом количестве юнитов(около 200-300).
Поэтому хотелось бы узнать насколько он эффективен, если конечно кто сталкивался с подобным алгоритмом.

Актуальные вопросы:
1) Рендер карты. Как лучше сделать, чтоб рендерилась только видимая часть?

2) Кто-нибудь может что-то сказать про FBO, что это такое и чем отличается от VBO?

3) Могут ли возникнуть проблемы с VBO или FBO на OpenGL version - 2.0.0 - Build 6.14.10.5082?? Просто пишу на двух компах и один со старой intel видюхой.

4) Рендер юнитов, как лучше сделать? Делать по буферу на каждый текстурный атлас юнита или рендерить определенные участки буфера поочереди перебирая текстуры?

5) Вредно ли использовать много буферов? Я планирую делать разные буферы для внутриигрового гуи, для гуи главного меню, для тайловой карты, и для юнитов (для юнитов хотелось бы конечно один буфер, а не пару десятков).

6) Как лучше обновлять буфер в который могут добавляться новые данные, так чтоб не пересобирать все снова?

#1
13:38, 19 июня 2013

BH_
> Что же дальше?
Отложить все, что сделал и написать себе план. Хотя бы примерный, типа:
1. Базовые структуры данных
2. Базовые структуры данных игрового мира
3. Рендер Базовых структур данных
4. Сохранение, загрузка
5. Базовая логика.

Каждый пункт можно потом расширить. Иначе ты завязнешь в реализации совершенно неважных для самой игры вещей и, как следствие, игры не сделаешь. Конечно, если просто писать код, чтоб писать - то можно и без плана.

#2
13:45, 19 июня 2013

Наметь любую цель, чтобы было на месяц работы, и чтобы можно было легко проверить достигнута она или нет.
И не меняй её, пока не достигнешь.

#3
13:49, 19 июня 2013

Chipmunk
имхо, надо брать поменьше промежутки.

#4
14:03, 19 июня 2013

я б не начинал проект пока не будет в голове понимание что ты делаешь и что должно в итоге получиться
нужно достаточно хорошо продумать всю игру. можно без лишних подробностей т.к. все будет переделываться по многу раз, т.к. ты начинающий.
из того что ты придумаешь надо безжалостно выделить самое существенное (остальное можно будет добавить позже, иначе ты рискуешь никогда не закончить)
распланировать его реализацию и приступать.

также советую спланировать работу так чтобы чтото играбельное появилось как можно раньше.
как гончар лепит вазу не по частям а сразу всю постепенно придавая куску глины все более сложную форму
смысл в том что ты все время видишь все произведение целиком а не сосредотачиваешься на какихто деталях теряя из виду общую картину
детали можно будет подрихтовать позже. иначе ж ты рискуешь сделать франкенштейна с непропорциональными, плохо стыкующимися частями

Помеха
> Chipmunk
> имхо, надо брать поменьше промежутки.
имхо лучше два рода целей - большие и маленькие
большие цели - длиной по нескольку недель
маленькие - несколько на день
ставишь их в начале дня, потом они могут меняться/добавляться по ходу работы
я в течение дня закрываю 5-10 маленьких целей, это хорошо мотивирует
позволяет понять что ты сделал и что предстоит, оценить скорость работы

#5
14:08, 19 июня 2013

ninja
ну да, согласен

#6
11:40, 20 июня 2013

BH_
> Дальше, вопрос по алгоритму поиска пути. Почитал только про волновой поиск
А чем А* не устраивает? Он вроде поэффективней будет...

#7
13:17, 20 июня 2013

BH_
>И вот пишу стратежку на Java, на манер первого Старкравта
Не советую этим заниматься... годы уйдут, если, конечно, сможешь доделать, что будет чудом. Я в своё время эту штуку проделал. Когда начинал мне было 23, а когда закончил уже 30 (программирование делал сам, рисовали друзья, которые впоследствии это дело бросили из-за жуткого долгостроя и невозможности на этом заработать, можно сказать, что "дорисовывал" тоже сам, как умел). Сама игра однако вполне играбельная: AI - просто зверь, юниты сообразительные, сетевая игра на 8 человек имеется: http://astralax.ru/games
В Win7 почему-то сеть не коннектится, но разбираться уже лень, так как всё это быльем поросло.

Алгоритм поиска пути смотри в моей статье тут: http://astralax.ru/articles/pathway
На мой взгляд работает куда умнее, чем близзардский алгоритм, но это мнение субъективное.

>И вот стал вопрос. Что же дальше? Допиливать юнита, добавлять другие функции и параметры?? Или же писать ИИ, научить врага двигать своих юнитов??
Начинаешь всегда с редактора ресурсов, т.е. делаешь редактор, который позволит тебе визуально  полностью создавать всего юнита. В общем, логика такая, что для добавления нового игрового объекта программист должен быть не нужен - у меня художники рисовали что хотели и сами вставляли в игру. Это сильно подогревает интерес к созданию юнитов и дело хоть как-то движется.
AI - это самая финальная стадия. Ты до него, скорее всего, не доберешься, так что пока об этом можно вообще не думать.

#8
14:24, 20 июня 2013

Нашел древнющее коротенькое видео к своей игрушке:

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#9
15:05, 20 июня 2013

ох ты видео!, неплохо неплохо, даже скачаю посмотрю как оно.

#10
22:14, 20 июня 2013

sinoby
> ох ты видео!, неплохо неплохо, даже скачаю посмотрю как оно.
ну, я думаю, сейчас народ уже не оценит :-). игрушка настоящий хардкор - играть нужно учиться, а то укокошат за 5 минут.

#11
11:30, 23 июня 2013

Всем спасибо за комментарии.

Не советую этим заниматься... годы уйдут, если, конечно, сможешь доделать, что будет чудом.

Блин, что-то я уж засомневался(( Времени-то мало уходит на программирование, после работы только пара-тройка часов. К тому же все делаю в одиночку. В таком темпе получается я ее тоже к годам 30-40 напишу. ППц.

#12
12:11, 23 июня 2013

BH_
> Блин, что-то я уж засомневался(( Времени-то мало уходит на программирование,
> после работы только пара-тройка часов. К тому же все делаю в одиночку. В таком
> темпе получается я ее тоже к годам 30-40 напишу. ППц.
я подозреваю Odin_KG перфекционист поэтому так долго возился
и он тоже делал все с нуля
если использовать готовые компоненты, что-то играбельное можно создать достаточно быстро даже уделяя этому по 3 часа в день
вам надо решить для себя во первых что для вас первично - создание движка или собсно игры
а также для чего вы это делаете - получать удовольствие от процесса или от результата
и если вам нравится сам процесс - какая разница сколько времени будет затрачено?

#13
12:13, 23 июня 2013

BH_
> В таком темпе получается я ее тоже к годам 30-40 напишу.
К 30-и навряд ли, а к 40-а... возможно. Так что не трать молодость на бесполезный титанический труд - молодость не возвращается :-)

#14
12:18, 23 июня 2013

ninja
> я подозреваю Odin_KG перфекционист поэтому так долго возился
Возможно, что ты прав. На самом деле, я просто не берусь за детские задачи - они мне неинтересны.

> если использовать готовые компоненты, что-то играбельное можно создать
> достаточно быстро даже уделяя этому по 3 часа в день
А, ну, если взять готовое и графику менять, то да. Но это будет практически мод, а не твоя игра. Хотя... иначе никаких шансов.

>и если вам нравится сам процесс - какая разница сколько времени будет затрачено?
Разница в том, что это чужая работа, которую работает точно так, как её кто-то кода-то сделал. Ничего нового там не появится кроме того, что в неё заложили при создании. Ну можно визуально "роботов" поменять на "зайчиков", но ничего от этого принципиально не изменится.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.