Форум программистов, компьютерный форум, киберфорум
Программирование игр
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 2

Разработка игры - уперся в очередную стену

05.10.2016, 13:32. Показов 1016. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Asciidunge - ссылка на GitHub.
(система сборки CMake, изначально проект пишется и собирается под linux, сборка под Win теоретически возможна, но большого смысла на данном этапе не имеет)

Предыстория:
Некоторое время назад я начал учить С++ и решил, что попробую написать игру. Я не был уверен, насколько далеко я продвинусь и получу ли хоть сколько работающий прототип, а основной задачей разработки ставилось освоение ООП, о котором я не знал ровным счётом ничего. В качестве идеи для игры я взял копирование уже существующего проекта - игры Desktop Dungeons, старую версию которой можно бесплатно скачать на сайте разработчиков. Суть игры: генерируется карта (в идеале - лабиринт) фиксированного размера с монстрами разных уровней и одним боссом 10го уровня, которого надо победить. Монстры просто стоят и никуда не двигаются, при попытке переместиться на клетку с монстром происходит обмен ударами.

План разработки был такой:
- я делаю "основу", необходимый минимум игровой механики: карту, монстров, перемещение игрока, битву с монстрами, условия победы и поражения
- в прототипе графика отрисовывается текстом в консоли (через ncurses, потому что linux)
- если у меня хватит сил и умений довести геймплей до играбельного состояния, то переписать класс вывода графики на SDL2 и реализовать недостающие части: меню, таблицу рекордов, звук

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

Подскажите ресурсы или литературу об основах игровых движков, без привязки к ОС и к графическим API.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2016, 13:32
Ответы с готовыми решениями:

Завершение игры при попадании головы змеи в стену
как сделать ,чтобы поле было ограниченно, что при попадании в стену головы змеи, игра завершалась, а то она бесконечна :( ребят...

Проверить упёрся ли поток в lock
Здравствуйте. У меня в приложении несколько потоков. Часть кода закрыта в lock. Могу я как-то узнать, конкретный поток сейчас попал в...

Не часто работаю с данной библиотекой, сейчас уперся в ошибку
Всем привет, нечасто работаю с данной библиотекой, сейчас уперся в ошибку в строке res(1) = CDbl(Replace(colNodes.Item(0).Text,...

4
47 / 47 / 7
Регистрация: 26.12.2014
Сообщений: 189
05.10.2016, 20:21
Как писал страуструп, даже зная основы ооп нет гарантии что вы будете программировать.
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,966
Записей в блоге: 222
05.10.2016, 23:31
Цитата Сообщение от jnarical Посмотреть сообщение
Подскажите ресурсы или литературу об основах игровых движков, без привязки к ОС и к графическим API.
На русском такого точно нет. На amazon'e что-то попадалось по движкам на английском (можете там поискать), но всё равное, я думаю, всегда будет привязка к API: либо к DirectX, либо к OpenGL, потому что все стремятся объяснять на каких-то практических примерах.

Добавлено через 3 минуты
Цитата Сообщение от jnarical Посмотреть сообщение
В качестве идеи для игры я взял копирование уже существующего проекта - игры Desktop Dungeons, старую версию которой можно бесплатно скачать на сайте разработчиков.
Делали на Unity. А почему вы не взяли Unity?
0
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 2
06.10.2016, 11:20  [ТС]
Цитата Сообщение от 8Observer8 Посмотреть сообщение
На русском такого точно нет
Я ведь спрашиваю про основы основ - какие должны быть базовые объекты в игре и какие между ними взаимодействия. На данный момент я очень трудно и медленно вытаскиваю эту информацию по крупицам из разных мануалов, которые вообще на другие темы. Такое чувство, что вопрос из разряда "все же это знают, зачем об этом писать".

Цитата Сообщение от 8Observer8 Посмотреть сообщение
Делали на Unity. А почему вы не взяли Unity?
Потому что цель - освоить С++ и разобраться "снизу вверх". У меня определенные сомнения, что взяв за основу какой-то движок, я смогу понять как он работает "под капотом". Кроме того, старая версия оригинальной игры (которую можно скачать с их сайта бесплатно) сделана не на юнити.

Добавлено через 8 часов 26 минут
ОТВЕТ НАЙДЕН.
Пожалуй, теперь я могу сформулировать свой запрос более грамотно - "Как мне сделать так, чтобы моя игра в процессе разработки не разрасталась в макаронное месиво, а код оставался управляемым и легко читаемым?"

Ссылка ведет на WEB-версию книги.

Добавлено через 13 минут

Оказалось, что в сети есть переведённая на русский версия найденной мной книги
ВОТ ТУТ

Я надеюсь, что этот мой пост пригодится какому-нибудь такому же начинающему разработчику - потому что речь о книге, с которой надо начинать свой путь в разработку игр.
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,966
Записей в блоге: 222
07.10.2016, 13:33
Цитата Сообщение от jnarical Посмотреть сообщение
"снизу вверх"
Я думаю, нужно одновременно и "снизу вверх" в "сверху вниз"

Цитата Сообщение от jnarical Посмотреть сообщение
Как мне сделать так, чтобы моя игра в процессе разработки не разрасталась в макаронное месиво, а код оставался управляемым и легко читаемым?
Изучать и использовать паттерны: Шаблоны игрового программирования

Добавлено через 1 минуту
Цитата Сообщение от jnarical Посмотреть сообщение
Оказалось, что в сети есть переведённая на русский версия найденной мной книги
Я последовательно читал, поэтому привёл ссылку, а потом увидел, что вы уже её привели.

Добавлено через 16 часов 50 минут
Цитата Сообщение от jnarical Посмотреть сообщение
речь о книге, с которой надо начинать свой путь в разработку игр
Добавлю к этой книге ещё три:
Добавлено через 1 минуту
До кучи, ещё такой список книг.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2016, 13:33
Помогаю со студенческими работами здесь

Microsoft выпустила очередную порцию патчей
Microsoft выпустила очередную порцию патчей для своих программных продуктов. На этот раз корпорация опубликовала три бюллетеня безопасности...

Разработка 2д игры
Я знаю с++ и си.Хотела бы создать свою игру но не в виде консольного приложение.можете подсказать хорошие платформы для разработки 2д игры...

Разработка игры
Привет!возник такой вопрос:хочу создать свою игру,но вот незнаю какой язык программирования использовать,в какой программе...

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

Разработка мини игры)
Здравствуйте, сразу прошу прощения за тему скорей всего не в том разделе)) У меня вопрос к знающим людям. Нам сказали сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru