Как устроен движок к 2d игре?
| |
Володькэ | Дата: Понедельник, 24 Марта 2014, 20:42 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Здравствуйте, добродушные форумчане джиса! Прошу помочь начинающему игроделу. Я неплохо знаком с GML ровно так-же как и с C++. Хотел бы узнать как работают движки для игр, что за роль они выполняют, как реализовать движок в программном коде? Для меня важно не просто сделать игру, нет, так и любой дурак может, важно для меня понять как она устроена.
Game Maker it's me! New West New West На доске проектов
|
|
| |
Snuux | Дата: Понедельник, 24 Марта 2014, 21:31 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| посмотри исходники HGE, SDL, SFML, ClanLib.
|
|
| |
OpenGOO | Дата: Вторник, 25 Марта 2014, 00:03 | Сообщение # 3 |
почти ветеран
Сейчас нет на сайте
| Основная цель игрового движка это отделить игровую логику от не игровой.
Загляни в код FlashPunk это один из самых простых и понятных 2D движок.
При простой реализации движка всё сводится к его инициализации, например задаётся размер окна, может устанавливается частота кадров в секунду, а затем запускается игровой цикл, вот и всё.
Простой игровой цикл
Код while (true) { processInput(); update(); render(); }
processInput может стоять после update или может вообще отсутствовать.
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
Ordan | Дата: Вторник, 25 Марта 2014, 02:52 | Сообщение # 4 |
Главный зомби
Сейчас нет на сайте
| Лучшие ничего не смотреть и писать самому, так больше профит.
Если 2д движок то делишь карту на блоки к примеру 40*40 пикселей. Создаешь массив записей к примеру
Код for i:=0 to 100 do for j:=0 to 100 do begin Блок[i,j].КартинкаХ:=1; Блок[i,j].КартинкаУ:=3; Блок[i,j].Проходимость:=1; Блок[i,j].Название:='Трава'; Блок[i,j].ИдОбъекта:=0; Блок[i,j].Простматриваемый:=true; end;
К этот код создает карту 100*100 параметры КартинкаХ, КартинкаУ отвечают за расположение спрайты блока в тайлсэте, похожим способом создаешь объекты, персонажей и тп.
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
vados4266 | Дата: Вторник, 25 Марта 2014, 03:07 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| Цитата Ordan ( ) Если 2д движок то делишь карту на блоки к примеру 40*40 пикселей. Создаешь массив записей к примеру ШТА? Гениально, как я раньше не допер. Не путай человека бредятиной.
|
|
| |
OpenGOO | Дата: Вторник, 25 Марта 2014, 03:19 | Сообщение # 6 |
почти ветеран
Сейчас нет на сайте
| Цитата Ordan ( ) Лучшие ничего не смотреть и писать самому, так больше профит.
В чём профит в велосипедостроение?)
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
Ordan | Дата: Вторник, 25 Марта 2014, 03:45 | Сообщение # 7 |
Главный зомби
Сейчас нет на сайте
| Цитата vados4266 ( ) ШТА? Гениально, как я раньше не допер. Не путай человека бредятиной. Я не тебе это писал, начинать надо с основ.
Цитата OpenGOO ( ) В чём профит в велосипедостроение?) Цитата Володькэ ( ) Хотел бы узнать как работают движки для игр, что за роль они выполняют, как реализовать движок в программном коде?
Может в том что бы понять и научиться?
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
allxumuk | Дата: Вторник, 25 Марта 2014, 04:25 | Сообщение # 8 |
старожил
Сейчас нет на сайте
| Цитата Ordan ( ) Может в том что бы понять и научиться? Чтобы понять, как сделать велосипед, нужно посмотреть хотя бы на один велосипед, а лучше несколько, и желательно разобрать.
Любой дурак может написать программу, которую поймёт компилятор. Хорошие программисты пишут программы, которые смогут понять другие программисты.
|
|
| |
Ordan | Дата: Вторник, 25 Марта 2014, 05:30 | Сообщение # 9 |
Главный зомби
Сейчас нет на сайте
| Цитата allxumuk ( ) Чтобы понять, как сделать велосипед, нужно посмотреть хотя бы на один велосипед, а лучше несколько, и желательно разобрать. Это уже зависит от человека, кому-то проще так, а кому-то нет. Развели флуда, лучшеб ответили на вопрос ТСа.
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
vados4266 | Дата: Вторник, 25 Марта 2014, 06:09 | Сообщение # 10 |
частый гость
Сейчас нет на сайте
| Цитата Ordan ( ) Развели флуда, лучшеб ответили на вопрос ТСа. Ответ выше! OpenGOO, Snuux, достаточно сказали. Вот еще Статейка.
Сообщение отредактировал vados4266 - Вторник, 25 Марта 2014, 06:12 |
|
| |
Wookie | Дата: Вторник, 25 Марта 2014, 06:10 | Сообщение # 11 |
Decembear
Сейчас нет на сайте
| Цитата Володькэ ( ) Для меня важно не просто сделать игру, нет, так и любой дурак может, важно для меня понять как она устроена. Чтобы делать игру, надо знать, как она устроена.
|
|
| |
Ordan | Дата: Вторник, 25 Марта 2014, 06:12 | Сообщение # 12 |
Главный зомби
Сейчас нет на сайте
| Цитата vados4266 ( ) Ответ выше! OpenGOO, Snuux, достаточно сказали. тяжелый случай, не говори за других ок? ТС сам решил достаточно ему сказали или нет.
Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)
Мои проекты ТЫК Мои видяхи на ютубэ ТЫК
Если ты споришь с идиотом, вероятно тоже самое делает и он.
|
|
| |
Wookie | Дата: Вторник, 25 Марта 2014, 06:14 | Сообщение # 13 |
Decembear
Сейчас нет на сайте
| Код 'Kirill Engine. Движок для кириллов. dir = Program.Directory GraphicsWindow.KeyUp = KeyUpd GraphicsWindow.KeyDown = KeyUpd GraphicsWindow.MouseDown = MouseUpd GraphicsWindow.MouseUp = MouseUpd LastKey = GraphicsWindow.LastKey
false = "false" true = "true"
GraphicsWindow.Show() GraphicsWindow.Title = "Kirill Engine. SBGC 2 fork, lol." exit = false 'Загрузка Sub Load EndSub
'Обновление Sub Update EndSub
'Отрисовка. Если честно, то можно все это делать и в Update, но я для ясности оставлю. Sub Draw EndSub
'Инициализация компонентов и цикл Load() While (exit = false) Program.Delay(1000/60) Update() Draw() EndWhile
Sub KeyUpd EndSub
Sub MouseUpd EndSub Вот исходный код SBGC 2.0 (точнее, это мой форк, но по сути - это оригинальный SBGC), если что.
|
|
| |
JackNazaryan | Дата: Вторник, 25 Марта 2014, 17:23 | Сообщение # 14 |
старожил
Сейчас нет на сайте
| Движок - ядро - основа.
|
|
| |
-l33t-h4xx- | Дата: Четверг, 27 Марта 2014, 09:01 | Сообщение # 15 |
участник
Сейчас нет на сайте
| Вопрос глупый и неграмотный. Что автору нужно: пошаговое руководство по созданию движков? Их строение, их роль? Почему он не хочет нам рассказать, что он уже знает о движках, какие трудности у него возникают? Надеюсь, он достаточно склонен к сотрудничеству, чтобы объяснить эти моменты и не призывать в свою тему потоки бреда, вроде того, что выше.
Как правильно задавать вопросы
|
|
| |
Akyltist | Дата: Пятница, 28 Марта 2014, 08:05 | Сообщение # 16 |
заслуженный участник
Сейчас нет на сайте
| Цитата Володькэ ( ) Я неплохо знаком с GML ровно так-же как и с C++. Хотел бы узнать как работают движки для игр, Картинка защищена авторскими правами. Использование где либо в других местах - запрещено! Цитата Володькэ ( ) что за роль они выполняют вывод графики работа с файлами (не всегда) вывод звука (не всегда) сеть (не всегда) и т.д. Цитата Володькэ ( ) как реализовать движок в программном коде? Я неплохо знаком и с C++. Протеворечащие "вопрос" и "утверждение". В прочем ответ был выше, открываешь чужое и смотришь - как оно работает (это самый простой метод).
|
|
| |
|