Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2011, 08:59   #1
Warn
Форумчанин
 
Аватар для Warn
 
Регистрация: 03.11.2011
Сообщений: 230
По умолчанию С чего нужно начинать разработку?

Попытался сделать декомпозицию игры с точки зрения протекания процесса (action flow).



Несколько проходов детализации и я думаю можно выявлять стабильные объекты и алгоритмы.
Которые опять же детализировать до некоторой степени.

Однако я предчувствую проблемы с установлением взаимодействий таким образом.
В общем у меня вопросы:
С чего нужно начинать разработку?
Кто с чего начинает, есть ли свои методы?
Warn вне форума Ответить с цитированием
Старый 09.11.2011, 09:15   #2
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

С разработки концепт-фокуса, а затем общей концепции.
Виталий Желтяков вне форума Ответить с цитированием
Старый 09.11.2011, 10:16   #3
Warn
Форумчанин
 
Аватар для Warn
 
Регистрация: 03.11.2011
Сообщений: 230
По умолчанию

А есть пример концепт-фокуса, что бы было на что опираться при составлении своего?

Add
Интересно услышать мнения, как вы думаете это похоже на концепт-фокус?
Концепт придумывался потехи ради.
И большей степенью для понятия того что такое концепт – фокус.
В общем…

Ориентировочное название: Дизентерия в Белом доме (в Вашингтоне)!

Жанр : слешер – шутер - 2d-scroller (с элементами rpg)

История:
В закрытом городе [н-ске] в период холодной войны, по заданию [очень секретной правительственной организации – [cut by the censor] ] были предприняты небезуспешные попытки выведения [интеллектуальных вирусов селективной диареи], действующих именно на лидеров стран - "гипотетических друзей" (агрессоров). Вирусы предназначались главным образом для подрыва авторитета страны агрессора в глазах мировой общественности и подрыв в связи с этим их экономики. Для успешности мисси, создатели снабдили вас различными нано-устройсвами которые способствуют вашей победе над империалистическим злом, империалистические же образцы можно подбирать на их же территории и использовать.


Цель игры :
Вы отряд из трех+ микробов, ваша цель – стакан с водой [завтрак/обед/ужин]… президента страны Х [Usa], ваша задача добраться и произвести "заряд", на пути такой доблестной казалось бы задачи будут стоять, вражеские микробы и средства дезинфекции, может даже явления природы? И локальные техногенные аварии (явления) к которым вы будите причастны.

Особенности:
Вы играете персонажами, но одним в некоторый момент времени, т.е. выбираете активного, а остальным отдаете приказы, персонажи с уникальными особенностями и характерами у каждого, репликами, поведением. [вариант с кооперативным прохождением игры на 2/3/4-х по инету/сети – тоже уместен] Для успешного прохождения очередного уровня нужно именно тесное взаимодействие между ними(вами) и помощь друг другу, использование уникальных умений каждого.
Поле действия. В соответствии с сюжетом игры. Лаборатория, где вас вывели - обучающая миссия и далее…

Процесс:
Тут что-то невыносимо веселое.

Последний раз редактировалось Warn; 09.11.2011 в 12:48. Причина: концепт-фокус
Warn вне форума Ответить с цитированием
Старый 09.11.2011, 20:10   #4
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Про концепт-фокус почитайте на dtf.ru
Виталий Желтяков вне форума Ответить с цитированием
Старый 10.11.2011, 13:32   #5
Warn
Форумчанин
 
Аватар для Warn
 
Регистрация: 03.11.2011
Сообщений: 230
По умолчанию

Спасибо, хорошая статья, особо запомнился момент - «азарт битвы вам представляется значительно более важным, чем логическое объяснение происходящего» ))
Потом попытался ответить на первые предложенные в статье вопросы, используя все ту же историю про микробов/вирусов.

Цитата:
Не изобретая велосипед (методика создания гейм-фокуса)
Первым шагом к созданию гейм-фокуса в этом случае будут ответы на вопросы, касающиеся сути будущего проекта.
1.Что в игре является наиболее притягательным для игрока?
Шок увиденного, комедийность происходящего, командное взаимодействие персонажей, веселые приключения.

2. Какие ощущения игра должна вызывать у игрока?
Чувство свершающийся справедливости, а так же радости, веселья.

3. Что игрок получает от игры?
Тонны счастья! В финальной заставке – печеньку нарисую, обгрызаемую героями.

4. Что в игре уникального, отличающего ее от других игр?
Название. Персонажи. Легенда(История). Игровой процесс.
Персонажи с уникальными способностями сообща пускаются в полные юмора и перипетий сюжета, - приключения.

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

Это не окончательные вариант даже на этой фазе фокуса.
После чего следует сжатие фокуса до кристальной чистоты.
И развертка в фичи и конкретные задачи.
Warn вне форума Ответить с цитированием
Старый 10.11.2011, 19:33   #6
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от Warn Посмотреть сообщение
Однако я предчувствую проблемы с установлением взаимодействий таким образом.
Проблем с взаимодействием не будет, если использовать нисходящее программирование.
Цитата:
Нисходящее программирование - методика разработки программ, при которой разработка начинается с определения целей решения проблемы, после чего идет последовательная детализация, заканчивающаяся детальной программой.
Отсюда следует, что низкоуровненые алгоритмы реализуются в самом конце.
An1ka вне форума Ответить с цитированием
Старый 11.11.2011, 17:23   #7
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

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

Сейчас очень заинтересовали скрипты. Хочу создать некий функционал для работы с графикой, наборы классов классы и некоторые алгоритмы и забиндить все в скрипты =)
Чтобы потом в них:
Код:
void IDLE(){
/*игровой процесс*/
//...
  drawFrame();
}
void main(){
  regIdleFunc("void IDLE()");
  mainMenu();
//...
}
И не ждать этой жутко дооолгой компиляции, а пользоваться уже всем готовеньким, и набивать скриптики )))
Kostia вне форума Ответить с цитированием
Старый 12.11.2011, 00:07   #8
Warn
Форумчанин
 
Аватар для Warn
 
Регистрация: 03.11.2011
Сообщений: 230
По умолчанию

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

Если да, - то я его освоил ) но проблем с установлением связей это не решает, по крайней мере для меня( я не прилажу ума, как выявлять эту связь и взаимодействие и что считать таковым? Наверное, надо начать с определений и критериев? Или разобрать маленький пример)

И потом если действия как-то сгруппировать, как определить к чему что отнести?
Т.е. существует дилемма оформления этой нисходящей в объектную или процедурную? Чем руководствоваться? Ограничениями компилятора или религиозными воззрениями своего стиля)

Потом я бы хотел расставить приоритеты.
В целом метод - нисходящего программирования действенное средство (ровно, как и другие), но оно имеет свое место, и очевидно должно использоваться на определенном этапе разработки, не в самом начале, когда идея то, что называется - в воздухе витает). Думаю после того как будут сформированы задачи. Хотя получается что я начал именно с него, что я думаю, было ошибкой и надо иметь большой опыт что бы начинать с разу с написания кода. Сейчас мне пришла в голову идея о том, что если код который вы пишите не соответствует вашему готовому яркому образу, который вы держите в голове и в будущем не собирается быть таковым, вы перестаете писать, теряете интерес, т.е. нужно бы описывать идею максимально возможно, всеми средствами, затем делать максимально достоверную декомпозицию мечты(идеи) средствами и методами которые тут обсуждаются. Получается идея будет формализована абсолютно разными способами, одним – дизайн документ, скечи, наброски, сценарий и другим – кодом (программой), а наш интерес к коду, его качество будет всецело зависеть от качества первой. Я бы сравнил это с впечатлением которые получаешь после фильма, книги, песни – они каждый к чему-то манят.


Цитата:
Сажусь и на начинаю строчить, предварительно определившись с тем что я хочу получить, какие технологии буду использовать/изучать и примерно наметив архитектуру взаимодействия элементов системы(двига,проги,игры...).
Заметил у вас как минимум два этапа.

Цитата:
предварительно определившись с тем что я хочу получить.
– план работ, концепт.

Цитата:
примерно наметив архитектуру взаимодействия элементов системы.
– декомпозиция объектная / алгоритмическая .

Возможно у вас большой опыт, поэтому сосредотачиваетесь на главных моментах.
Определяетесь и формируете у себя четкое виденье, образ(ы), фиксируете и реализуете.
Warn вне форума Ответить с цитированием
Старый 12.11.2011, 07:25   #9
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
С чего нужно начинать разработку?
Прежде всего, с идеи, а потом, всё, что выше написано.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 12.11.2011, 09:46   #10
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

То что я написал выше относится к небольшим проектам которые создаю для развлечения/изучения с крупными проектами все гораздо сложнее.
Идей для больших проектов я не ищу, есть заказ, нужно делать. А вот как его делать, это уже совсем другой и очень интересный момент.
Все начинается с ТЗ, которое для проекта любой сложности(если только заказчик его сам не предоставит) ТЗ составляется в 1-2 страницы где прописано то что должно быть в конечном продукте.
Далее я открываю Excel и начинаю детально дробить каждый элемент из ТЗ на кучу подпунктов определяя взаимодействие элементов только на внутреннем(только внутри элемента) уровне. Ну и помечаю в этой эесельке те пункты которые выполнил и которые в разработке.
Разработка начинается с того что я определяю, что будет являться стержнем(ядром) на которое будет возложена миссия сплотить все элементы системы и обеспечить взаимодействие между ними. Стараюсь как можно детальнее продумать все связи между блоками, чтобы потом при написании кода сразу закладывать в движок некоторые моменты которые на текущем этапе разработки не требуются но потом их нужно реализовать.(например многоязычность)
Собственно потом дроблю все что нужно сделать на этапы разработки и для каждого этапа выставляю временные рамки. И веду отчетность начальству ^^

Еще следует упомянуть что при создание большой системы есть решение многокритериальной задача и эти критерии нужно оптимизировать. Я обычно использую самый простой подход, определяю несколько самых важных критериев и максимально пытаюсь их оптимизировать при допустимых значениях остальных.
Например: есть 2 критерия максимальный и минимальный FPS в игре. Очевидно что минимальный FPS более значим т.к. резкие его скачки в игре приводят к лагам, поэтому первостепенное внимание обращается на оптимизацию скачков минимального FPS при допустимых значениях максимального FPS которое например должно быть не меньше 60.
Kostia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С чего начинать? Shadol Свободное общение 6 24.11.2009 11:46
С чего начать разработку программы... nikolai_P БД в Delphi 8 15.02.2009 13:08
С чего начинать? Римма Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 31.03.2008 22:16
С++ ЧЕГО НАЧИНАТЬ !!! geniy Общие вопросы C/C++ 12 03.09.2007 10:50