Вторник, 24 Декабря 2024, 16:21

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как устроен движок к 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, достаточно сказали.

facepalm тяжелый случай, не говори за других ок? ТС сам решил достаточно ему сказали или нет.


Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-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++.

Протеворечащие "вопрос" и "утверждение". В прочем ответ был выше, открываешь чужое и смотришь - как оно работает (это самый простой метод).
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг