Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 5.00
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
#1

Создание игры - C++

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

Добрый вечер. Начал работу над собственным проектом, и задался вопросом. (gamedev и прочие сайты перечитывал, но так ответа и не нашел. Может плохо искал?):
Движок. На OGL можно вывести окно и заставить бегать по нему квадрат, затем квадраты сцепить и т.д., в итоге мы получим 2d игру змейка ну или еще что (в зависимости от фантазии). Я не понимаю как организовать из этого движок, чтобы мы могли например добавлять те же самые препятствие на поле змейки и вообще создавать какие-либо декорации и прочее...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2013, 23:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание игры (C++):

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

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

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

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

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

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

59
Kuzia domovenok
1951 / 1804 / 140
Регистрация: 25.03.2012
Сообщений: 6,246
Записей в блоге: 1
09.11.2013, 00:03 #2
А чем тебе змейка не "сам себе движок"¿? Для простых игр вроде змейки не требуется не**имоверного уровня абстракции и расширяемости, чтобы твой код назывался движком ¡
Либо ты неверно понимаешь, что такое движок, либо я!
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
09.11.2013, 00:11  [ТС] #3
Kuzia domovenok, я понимаю это как что-то вроде редактора. А змейку привел для примера.
0
JOKFEN
6 / 5 / 1
Регистрация: 11.12.2012
Сообщений: 39
09.11.2013, 04:30 #4
Вообще это будет называться не "движок", а редактор уровней Сделать его не очень то и трудно. Если вы под словом "движок" понимаете что-то подобное как CryEngine или тот же Unity то я вам рекомендую бросить эту идею.
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
09.11.2013, 08:08  [ТС] #5
JOKFEN, объясните тогда что такое игровой движок, если вам не трудно (ибо из википедии я не понял)
0
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
09.11.2013, 09:42 #6
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
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
09.11.2013, 09:58 #7
Движок - это просто набор кода, который не нужно переписывать.
Надеюсь это понятно.

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

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

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

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

Не по теме:

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

0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
09.11.2013, 14:30 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Геймдев очень специфичная область. Разработка игр не то, чтобы что-то невероятно трудное, но требует высокой усидчивости, очень много кропотливого труда и отъедает много времени. В геймдеве надо, что называется, "руку набить" и "собаку съесть".

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

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

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

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

Добавлено через 3 минуты
lemegeton, само начало не понятно. Взять за пример тот же Unity, это что, это что-то типо редактора, так ведь?
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
09.11.2013, 17:30 #13
Ryuk, не ищите готовых движков, делайте сами. Стоолько всего узнаете, если с ума не сойдете от глубокой отладки в поиске багов или не бросите на начальных (или на любых других) этапах. Но результат все же дает много положительных эмоций. Пусть будет криво, но будет Ваше собственное. Тут по сути важен полученный опыт все же.
2
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
09.11.2013, 17:39 #14
Цитата Сообщение от Ryuk Посмотреть сообщение
Взять за пример тот же Unity, это что, это что-то типо редактора, так ведь?
Unity -- это довольно большой набор библиотек самого движка, плюс сильно интегрированная IDE.
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
09.11.2013, 18:15  [ТС] #15
BumerangSP, не понимаю логически, с чего начать и как это должно выглядеть. Как-нибудь своими словами если можно.
0
09.11.2013, 18:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2013, 18:15
Привет! Вот еще темы с ответами:

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

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

Задача на создание карточной игры. - C++
Здравствуйте. Собственно, само задание звучит, как "Написать программу, которая на основе классов реализует карточную игру Блэк-Джек.". ...

Создание 3D игры на UDK используя C++ - C++
Народ всем привет короче у меня появилась идея создать игру на UDK который использует C++. типо этой ==>...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru