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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2017, 18:36   #21
SerEngine
Форумчанин
 
Регистрация: 28.10.2017
Сообщений: 101
По умолчанию

Я сделал управление клавиатурой :-)
SerEngine вне форума Ответить с цитированием
Старый 16.11.2017, 21:07   #22
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

SerEngine
Для того чтобы сделать проект его надо грамотно вести. Вначале надо определить цель. Ведь как иначе мы узнаем, чего мы достигли? Во вторых нужно ТЗ в котором будут основные параметры и критерии по которым можно будет проверить толи мы сделали или не то, что хотели. Перед разработкой ТЗ ещё происходит эскизное проектирование, когда делается первый набросок будущей программы.
1) Состав. Нужна схема деления в которой обозначить какие модули, класса и какие функции мы будем делать, а какие мы позаимствуем готовые.
2) Сроки разработки. Срок должен быть численно обоснован. Засеките время разработки одной функции и посчитайте сколько времени вам нужно на разработку всей программы.
Это очень грубый расчёт. 9 беременных женщин не родят ребёнка за месяц.
Поэтому вам понадобиться разбить проект на стадии и сдавать его поэтапно.
Пусть будет 3 этапа. Но в каждом этапе есть вещи которые не могут быть выполнены параллельно.
Поэтому что-бы с планировать вам понадобиться диаграмма Гранда.
И хотя-бы знать основы проектирования описанные в книге Мифический человека месяц.
3) Отладка занимает 90% времени, чтобы снизить эти затраты применяют тестирование. Тестирование бывает разных видов.
Самые простые тесты это тесты на соответствие требованиям ТЗ. Их лучше заготовить заранее - или хотя бы начать. Вторые тесты которые я бы вам рекомендовал это тесты моделирующие поведения пользователя, в вашем случае прикладного программиста который будет использовать ваш движок.
Тут вам придётся нарисовать ещё один график. Рассмотрите частые задачи которые решают с использованием движка, распишите действий или последовательности.
При этом вы увидите что некоторые действия повторяются и их можно объединить.
Тут советую прочитать про мозговые карты.
Обычно это рисуется в виде кейсов(варианты использования)

Определившись с вариантами использования вы сможете расписать функциональные требования и подготовить приёмосдаточные тесты.

4) Документирование. Самодокументированный код не отменяет документирования так как есть куча скрытой информации и разные взгляды на проблему или предмет. Оно так же потребуется. На каждый класс надо будет описать общие идеи. Лучше всего исходить из принципов контрактного программирования. Если в команде каждый пишет свой модуль, то описав общие требования, общие условия к объектам вы сможете разделить работу.

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

Что осталось? Осталось ещё техническая сторона. Вы должны написать реферат в котором будете сравнивать алгоритмы и структуры данных, а также шаблоны проектирования которые хотите использовать в своём проекте.

----------------------------------
Это конечно всё хорошо, но нулевой этап проектирование может затянуться надолго. Поэтому что-бы не затягивать упрощать, упрощать и ещё раз упрощать.
В конце концов рефакторинг не кто не отменял. Это запланированное переписывание отдельных частей, небольшые правки реализуемые еженедельно или ежедневно с целью сохранения качества кода и недопущения его сваливания в спагетти-код. Не более 2-х циклов в функции не более 2-х if'ов, верно подобранные имена.- Лучше короткие функции, но пусть их будет много. Чем сложно читаемые портянки кода.

И вообще по максимуму используйте готовый код и разнообразные утилиты.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 07.04.2018, 03:40   #23
SerEngine
Форумчанин
 
Регистрация: 28.10.2017
Сообщений: 101
По умолчанию

Я делаю физику

Буду этого придерживаться.

Последний раз редактировалось Вадим Мошев; 22.06.2018 в 14:56.
SerEngine вне форума Ответить с цитированием
Старый 18.04.2018, 10:13   #24
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Вы еще пишите этот движок? xD и по прежнему без ТЗ ищите сообщников?

Что касается схемы - то это:
Цитата:
Сообщение от Pavia Посмотреть сообщение
1) Состав. Нужна схема деления в которой обозначить какие модули, класса и какие функции мы будем делать, а какие мы позаимствуем готовые.
Я бы делал это после составления ТЗ. На настоящий момент не понятно какого типа движок вообще будет - 2д/3д, будет ли там физика и т.п. Сначала определитесь что именно вы делаете, опишите функциональность, а потом уже ищите модули которые часть этой функциональности реализуют.

Цитата:
Сообщение от Pavia Посмотреть сообщение
2) Сроки разработки. Срок должен быть численно обоснован. Засеките время разработки одной функции и посчитайте сколько времени вам нужно на разработку всей программы.
Сроки... ну автор топика уже пол года потратил. Сделал какое-то управление клавиатурой (непонятно что это такое вообще и как связано с движком). Если из этого выводить сроки разработки всего движка - то уйдет пара тысяч лет, не меньше ))

Цитата:
Сообщение от Pavia Посмотреть сообщение
3) Отладка занимает 90% времени
Ой, пара тысяч лет - это без отладки...

А вообще я недавно статью про разработку игр с фреймворком Qt запилил. Есть две готовые игрушки, при этом первая написана году так в 2014. Обе на гугл плей (можно поиграть). Последняя вообще нормально играется, хотя кода там тысячи полторы строк...


Цитата:
Сообщение от SerEngine Посмотреть сообщение
Я сделал управление клавиатурой :-)
Нахрена оно нужно на телефоне например? Ты для какой платформы движок делаешь? Составь ТЗ, ептиль.
rrrFer вне форума Ответить с цитированием
Старый 18.04.2018, 10:19   #25
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
Вы еще пишите этот движок? xD и по прежнему без ТЗ ищите сообщников?
Да.
http://www.programmersforum.ru/showthread.php?t=318046

Ну ТЗ лучше с ними и составлять, а вот для их привлечения нужно не ТЗ, а адекватное объяснение зачем это нужно.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 18.04.2018, 12:16   #26
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
Сообщение от SerEngine Посмотреть сообщение
что за тз?
ТЗ ЭТО сокращённо техническое задание.
Те краткое опиание тех задач которые будет решать программа.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 18.04.2018, 12:50   #27
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не обязательно краткое, ТЗ много что можно назвать.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.04.2018, 20:05   #28
SerEngine
Форумчанин
 
Регистрация: 28.10.2017
Сообщений: 101
По умолчанию

Первафя версия должна будет:
Загружать 3D модели форматов
.obj, .xml, .x
Корректно обрабатывать все события клавиатуры
Перемещение моделей с помощью мыши
Стандартные возможности физ-движка
Сила притяжения, трения
Упругость
обработка мыши
SerEngine вне форума Ответить с цитированием
Старый 07.05.2018, 08:06   #29
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

Цитата:
Сообщение от SerEngine Посмотреть сообщение
Первафя версия должна будет:
Не так давно я статью писал по этой теме: "Разработка казуальных игр с помощью Qt Framework". Очень советую прочитать. Кстати, есть Qt3d.

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

>> Загружать 3D модели форматов
куда загружать? Это ключевой вопрос для игр. Прочитай про октодеревья. Вот тут хотя бы: http://loi.sscc.ru/gis/QuadTree/QuadTree.html.
Без этой штуки (или аналога) ты не сможешь эффективно проверить что у тебя два объекта столкнулись. Например модель и пуля или модель и пол, на которой она стоит (или на который падает).

Это самые азы. Дальше - освещение. Потому что нормальной игре по-любому есть куча объектов и множество источников света. То, как ты видишь поверхность зависит не только от положения поверхности и источника света, но и от положения наблюдателя. Все это твоя поделка должна уметь уже после загрузки моделей. А мышь и клавиатура - такая ерунда, что я бы на первом этапе не уделял этому внимания вообще.

Да и я думаю, что такими темпами как сейчас, у тебя на вменяемую загрузку моделей уйдет лет 10. Больше пиши код, меньше рассуждай и ищи сообщников. Пока у тебя ничего кроме расплывчатой идеи нет - к тебе никто вменяемый не захочет присоединяться.
rrrFer вне форума Ответить с цитированием
Старый 22.06.2018, 11:19   #30
Venidium
Новичок
Джуниор
 
Регистрация: 22.06.2018
Сообщений: 2
По умолчанию

Тоже пробую писать движок, скорее даже ядро для движка.
А что должно быть в ТЗ для игрового движка?
Venidium вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать движок для игры для Андроид. Mark_Avrely Фриланс 2 17.06.2017 22:40
Движок для 2D игры ( выбор движка для Delphi ) TUberwer Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 20.03.2014 18:43
Кто хочет принять участие в создании компютерной игры? MaratZahidyl Фриланс 19 09.11.2011 18:55
Создание программы-аналога игры Кто хочет стать миллионером s4shk4 Помощь студентам 28 04.02.2011 15:06