Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/27: Рейтинг темы: голосов - 27, средняя оценка - 4.85
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871

Создание игры

08.11.2013, 23:43. Показов 6270. Ответов 59
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Начал работу над собственным проектом, и задался вопросом. (gamedev и прочие сайты перечитывал, но так ответа и не нашел. Может плохо искал?):
Движок. На OGL можно вывести окно и заставить бегать по нему квадрат, затем квадраты сцепить и т.д., в итоге мы получим 2d игру змейка ну или еще что (в зависимости от фантазии). Я не понимаю как организовать из этого движок, чтобы мы могли например добавлять те же самые препятствие на поле змейки и вообще создавать какие-либо декорации и прочее...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.11.2013, 23:43
Ответы с готовыми решениями:

Создание игры
Привет всем! Я только начал изучать с++ и,конечно, у меня возникло желание создать игру (у многих, я думаю, такое было). Однако я очень...

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

Создание игры на C++
Скажите , а можно ли создавать игры на С++? Если да , то буду рад увидеть примеры как это все реализовать и где можно. Возможно это С++...

59
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
09.11.2013, 00:03
А чем тебе змейка не "сам себе движок"¿? Для простых игр вроде змейки не требуется не**имоверного уровня абстракции и расширяемости, чтобы твой код назывался движком ¡
Либо ты неверно понимаешь, что такое движок, либо я!
0
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
09.11.2013, 00:11  [ТС]
Kuzia domovenok, я понимаю это как что-то вроде редактора. А змейку привел для примера.
0
 Аватар для JOKFEN
6 / 5 / 5
Регистрация: 11.12.2012
Сообщений: 39
09.11.2013, 04:30
Вообще это будет называться не "движок", а редактор уровней Сделать его не очень то и трудно. Если вы под словом "движок" понимаете что-то подобное как CryEngine или тот же Unity то я вам рекомендую бросить эту идею.
0
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
09.11.2013, 08:08  [ТС]
JOKFEN, объясните тогда что такое игровой движок, если вам не трудно (ибо из википедии я не понял)
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
09.11.2013, 09:42
Ryuk, мм, я раньше и сам задавался этим вопросом, но так и не нашел ответа, пока сам не попробовал писать. Попробую объяснить, но не ручаюсь за правильность.
Движок - это некоторый обособленый (или почти обособленный) модуль программы, который выполняет свой заданный набор действий.
Допустим, физический движок будет просчитывать физику после столкновений - импульсы, скорости, положения, но он (обычно) ничерта не знает о том, а какого же цвета небо в игре.
В свою очередь графический движок оперирует только массивом вершин, цветами и прочим подобным, но понятия не имеет, что будет, если столкнутся два шара. Он их просто нарисует и всё.

Благодоря такому обособлению становится легко и просто писать главный цикл игры. Он имеет вид, примерно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
while(true)
{
timePrevious = timeCurrent;
timeCurrent = GetTime();
timeElapsed+ = timeCurrent - timePrevious;
if (timeElapsed > 1000 / FPS)
{
timeELapsed = 0;
game.update(timeElapsed); //обновляем физику. timeElapsed нужно для "физики-континуума"
game.draw(timeElapsed); //отрисовываем это дело. timeElapsed иногда и сюда передается для эффектов блюра и прочего
}
}
0
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
09.11.2013, 09:58
Движок - это просто набор кода, который не нужно переписывать.
Надеюсь это понятно.

Добавлено через 6 минут
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Либо ты неверно понимаешь, что такое движок,
либо я!
Движок может быть маленьким, например если он расчитан на змейки и тетрисы.
0
Заблокирован
09.11.2013, 10:21
Цитата Сообщение от Ryuk Посмотреть сообщение
Начал работу над собственным проектом,
Я два раза уже начинал ветку на этом форуме и на геймдеве по поводу крутого 3д шутера, но вс закончилось банальной нехваткой времени. Т.к. начинал со словами "давайте сделаем", а кроме меня нихрена никто ничего не делал - только троли на флудили и всё. Хоешь начать делать игру - давай - камон! )) Векту, я помогу по мере возможностей. Но:
1. Я не любитель игр типа змейки )))))
2. Выбирая 3d движок - я думаю, что на данный момент лучший вариант - DirectX, это и есть движок - всё остальное - бутафория и ускоспециализированная [censored] Если хочешь что - то делать - кроме Windows SDK и DirectX тебе ничего больше не надо.
3. В добавок, думаю, что лучше всё же начать проект на Qt, не знаешь как связать ужа с ежём? Спроси меня как ))))))))

Добавлено через 1 минуту
programina присоединяйся )))))

Добавлено через 1 минуту
просто на данные момент, со временем галяк - и лучшим вариантом будет: "сам пиши - а я помогу", где Я - это Я )))
0
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
09.11.2013, 14:11  [ТС]
newbie666, почему Qt а не OGL, и в чем преимущества?

Добавлено через 6 минут
newbie666, протупил, не то написал) Почему именно Qt, а не VS или еще что?
0
09.11.2013, 14:21

Не по теме:

Цитата Сообщение от Ryuk Посмотреть сообщение
протупил, не то написал) Почему именно Qt, а не VS или еще что?
ещё раз протупил

0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
09.11.2013, 14:30
Лучший ответ Сообщение было отмечено как решение

Решение

Геймдев очень специфичная область. Разработка игр не то, чтобы что-то невероятно трудное, но требует высокой усидчивости, очень много кропотливого труда и отъедает много времени. В геймдеве надо, что называется, "руку набить" и "собаку съесть".

Цитата Сообщение от newbie666 Посмотреть сообщение
Выбирая 3d движок - я думаю, что на данный момент лучший вариант - DirectX, это и есть движок - всё остальное - бутафория и ускоспециализированная ... Если хочешь что - то делать - кроме Windows SDK и DirectX тебе ничего больше не надо.
DirectX это не "движок", это набор API для обращения к устройствам хитрым способом, практически на прямую.
Кроме SDK и DirectX потребуется еще дофига всего. Особенно в 3d. Как минимум, библиотеки расчета векторов, алгоритмы поиска пути, расчет коллизий ("физики"), работа с картами, текстурами, загрузка моделей и мешей из файлов, и т.д и т.п. Это все обычно предоставляет "движок", который может годами делаться командой узкоспециализированных специалистов. Без этой "бутафории" вы будете пару лет писать велосипеды, подпирая их костылями.

Взгляните, например, на панду.

Цитата Сообщение от newbie666 Посмотреть сообщение
programina присоединяйся )))))
Цитата Сообщение от newbie666 Посмотреть сообщение
просто на данные момент, со временем галяк - и лучшим вариантом будет: "сам пиши - а я помогу", где Я - это Я )))
Пока у вас не будет хотя бы небольшого работающего кода, у вас нет никакого проекта и не к чему присоединяться. Как показывает практика, максимум, чего с таким подходом добиваются это пустой проект на гитхабе с полутора комитами.

Хотите писать игру -- садитесь и пишите. Покажите, что вы на что-то способны. Выберите движок, нарисуйте десяток моделек, заставьте их хотя бы шевелиться не очень убого. Покажите, что вы способны довести дело до хотя бы голимого, но конца. А "джва года хотеть эту игру" ни к чему не приведет.
3
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
09.11.2013, 15:01  [ТС]
Jupiter, это разве не что-то типо среды?

Добавлено через 3 минуты
lemegeton, само начало не понятно. Взять за пример тот же Unity, это что, это что-то типо редактора, так ведь?
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
09.11.2013, 17:30
Ryuk, не ищите готовых движков, делайте сами. Стоолько всего узнаете, если с ума не сойдете от глубокой отладки в поиске багов или не бросите на начальных (или на любых других) этапах. Но результат все же дает много положительных эмоций. Пусть будет криво, но будет Ваше собственное. Тут по сути важен полученный опыт все же.
2
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
09.11.2013, 17:39
Цитата Сообщение от Ryuk Посмотреть сообщение
Взять за пример тот же Unity, это что, это что-то типо редактора, так ведь?
Unity -- это довольно большой набор библиотек самого движка, плюс сильно интегрированная IDE.
0
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
09.11.2013, 18:15  [ТС]
BumerangSP, не понимаю логически, с чего начать и как это должно выглядеть. Как-нибудь своими словами если можно.
0
погромист
 Аватар для coloc
415 / 251 / 30
Регистрация: 27.08.2012
Сообщений: 550
09.11.2013, 20:40
Ryuk, качаешь отсюда http://libsdl.org/ СДЛ. Хочешь стать на грабли, как многие новички, начинай делать свой движок, который через неделю будет припадать пылью. Просто начни делать свою игру. Потом со времен все станет на свои места. Ты поймешь, что игры делать не так то и легко и как сказал ув. lemegeton, это очень тяжелая и кропотливая работа. А вообще лучше всего не будь наивным и иди учи С++. Больше пользы будет.
0
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
09.11.2013, 20:43
Цитата Сообщение от Ryuk Посмотреть сообщение
Jupiter, это разве не что-то типо среды?
Среда Qt Creator
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
09.11.2013, 20:56
Croessmah, нет под иде он имел в виду не иде для программирования на с++, а то, что юнити включает в себя иде с редактором, позволяющим "мышкой делать игры"
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
09.11.2013, 21:21
Ryuk, ну, вообще, правильно будет начать с литературы: запастись кучей книжек по игровой тематике. Там многое из того, что понадобится, описано. Хотя, опять же, велосипедов никто не отменял. Плюс того, что придумываешь сам, еще и в том, что косвенно получаешь и другие знания, закрываешь пробелы в уже имеющихся.
Желательно уже на хорошем уровне знать яп, на котором писать, чтобы к проблемам проектирования игры не добавлялись проблемы незнания языка. Да и графических библиотек тоже, будь то opengl, directx, etc...
Что касается структуры (как там все должно выглядеть и т.д.), здесь лучше включить фантазию, если лень книжки читать. Через день не получится - через неделю точно выйдет Главное - терпение)
1
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
09.11.2013, 21:26  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
кучей книжек по игровой тематике
Какие вы бы могли посоветовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.11.2013, 21:26
Помогаю со студенческими работами здесь

sdl,c++ создание 2D игры
Доброго времени суток подскажите пожалуйста где у меня тут ошибка #include <SDL.h> #include "глобал.h" int main(int...

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

Создание игры - Змейка.
Здравствуйте. Подскажите с помощью чего можно создать такую игру как Змейка. Не в консольном варианте, а с 2D графикой. Изучил...

Создание игры на Visual C++
Здравствуйте, я вот подумал что в связи с тем, что я стал много времени тратить на игры, вместо практики программирования, стоит связать...

Создание текстовой игры
Захотелось создать текстовую игру. Но в С++ почти ноль. Понимаю что больших знаний для такой игры не надо, но даже не знаю с чего начать....


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка 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 и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru