Вторник, 19 Марта 2024, 08:57

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Ваши проекты » Разработка движков и сред разработки » Как сделать 2d движок?
Как сделать 2d движок?
DeadDayДата: Суббота, 21 Мая 2016, 17:20 | Сообщение # 1
New game Studio
Сейчас нет на сайте
Всем привет.Давно тут ни чего не писал.

Хотел бы получить и/или узнаю нужную информацию для написания 2d движка. Есть планы для написания игры.

По игре.

2d хоррор с элементами выживания. Но скорее всего большой акцент именно на выживание, странствие и крафт. На первых парах планирую вообще делать с минимальной графикой. Графика спрайтовая. Ну, может и потом на 3d или изометрия. Переходы по локациям и т.д.

Движок будет создаваться только для своей игры. Не будет потом такого, что для общего пользования. И тем более для личной выгоды и денег. Нет, это я не планировал и не буду.

По движку.

Писать хочу на C#. Но поштудировал не много по форумам, многие пишут что лучше для этого использовать C++. Но пока не могу определиться что взять. DirectX так же хочу использовать.

Вообщем нужна полная информация по всему этому. Какие библиотеки нужны, что подключать (звук, и т.д.). Может кто ещё что посоветует. Буду рад лючой информации.

Готовые движки и конструкторы не предлагать. Если я хотел бы их брать, тему бы не создавал.



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
wcptДата: Суббота, 21 Мая 2016, 19:10 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Цитата DeadDay ()
Движок будет создаваться только для своей игры. Не будет потом такого, что для общего пользования.

то есть, одноразовый движок? На DirectX? Подумай-ка ещё раз.
GudleifrДата: Суббота, 21 Мая 2016, 19:22 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Цитата DeadDay ()
Как сделать
Никак. Вы изначально шли правильным путем. Делали то, что хотели так, как умели. Так и идите дальше. Что-то изучили - прикрутили. Не понравилось - выбросили. В какой-то момент Вы вдруг обнаружите, что сам собой нарисовался некоторый джижок (Т-с-с: все хорошие движки так и были созданы...).
Остается только два вопроса:
Что прикручивать следующим? (Когда этот вопрос станет приятным, считайте, что стали программистом). Посмотрите вокруг - выберите аналог и выясняйте, как он устроен.
Можно ли ускорить процесс, почитав книжки? Думаю, погуглив "Создание игр под Винду", найдете достаточно много чего. Берите только халяву. И - ни в коем случае - не видеоуроки. Канонические решения чисто игровых вопросов можете посмотреть у меня.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.

Сообщение отредактировал Gudleifr - Суббота, 21 Мая 2016, 19:27
DeadDayДата: Суббота, 21 Мая 2016, 19:33 | Сообщение # 4
New game Studio
Сейчас нет на сайте
wcpt,
Цитата
одноразовый движок


Нет конечно. Если удастся доделать игру до конца и смогу выпустить, то разработка игры будет продолжаться дальше. Т.е. 2 часть. И соответственно модернизация движка под новую игру и функционал.

Цитата
На DirectX? Подумай-ка ещё раз.


Вот как раз и думаю. Я не сильно понимаю пока разницу. Нужна профессиональная так сказать помощь и консультация.
Может и OpenGL...

Добавлено (21 мая 2016, 19:33)
---------------------------------------------
Gudleifr,

Цитата
Вы изначально шли правильным путем. Делали то, что хотели так, как умели.


- Извини, но если честно я не понял про что ты...

На данный момент, я изучаю php, js(+). И как раз делаю браузерную игру по этой же игре. И в дальнейшем хочу её перенести на windosw.

Цитата
Что прикручивать следующим?


Я хочу пока понять структуру движков. Хоть он и будет 2d и очень простой. Но всё же для меня как начинающего, очень сложный...

Цитата
Посмотрите вокруг - выберите аналог и выясняйте, как он устроен.


Что посоветуешь? Смотрел не много X-Ray.



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
GudleifrДата: Суббота, 21 Мая 2016, 19:35 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
Цитата DeadDay ()
Извини, но если честно я не понял про что ты...
Про проект в Вашей подписи.
Цитата DeadDay ()
Я хочу пока понять структуру движков.
Да нет таковой. Это чисто маркетинговое. Как гиперлалек "Ашан".
Цитата DeadDay ()
Смотрел не много X-Ray.
Смотрите на игры, а не на движки.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
ShortKedrДата: Суббота, 21 Мая 2016, 19:44 | Сообщение # 6
Renword Studio
Сейчас нет на сайте
DeadDay, ну смотри, тебе нужно реализовать все необходимые системы движка. Так как тебе не нужен общий доступ к движку, делай его как SDK. На C++ вроде как быстрее должно, потому как всеми аспектами использования памяти ты занимаешься) Но на С# тоже можно реализовать.

Цитата DeadDay ()
Движок будет создаваться только для своей игры. Не будет потом такого, что для общего пользования. И тем более для личной выгоды и денег. Нет, это я не планировал и не буду.

Надеюсь ты его не для одной игры собрался делать ^_^



Сообщение отредактировал ShortKedr - Суббота, 21 Мая 2016, 19:53
DeadDayДата: Суббота, 21 Мая 2016, 19:46 | Сообщение # 7
New game Studio
Сейчас нет на сайте
Gudleifr,
Цитата
Смотрите на игры, а не на движки.


Так как я один, мне всё равно на графику.



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
GudleifrДата: Суббота, 21 Мая 2016, 19:55 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
Цитата DeadDay ()
Так как я один, мне всё равно на графику.
Дык, об том и речь. Выберите что-то из того, что "не все равно", и посмотрите, как сделано у людей.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
DeadDayДата: Суббота, 21 Мая 2016, 19:56 | Сообщение # 9
New game Studio
Сейчас нет на сайте
ShortKedr,
Цитата
Приведу пример, с чего я начал реализовывать движок для 2д игр под андроид на Java. Сначала я реализовал базовый класс для всех объектов, имеется ввиду игровых и подобных, реализовал все нужные механизмы, добавил методы, которые будут обрабатываться движком, что-то вроде OnStart, OnUpdate, OnDestroy. Далее сделал базовый класс сцены, которая является главным элементом контакта юзера и движка. Добавил туда обработку основных событий объектов через отдельный поток. Унаследовал от базового класса объектов несколько новых классов разновидностей объектов, добавил им всякий плюшки, анимацию, вращение спрайта и т.д.
От базового класса сцены унаследовал два новых класса, один реализовывал графику под Windows, второй под Android. В тот же момент добавил Вьюпорты - камеры в 2д скажем так, для скрола сцены
После реализовал систему обработки клавиш, она получилась аналогичной Unity3d. После этого я впервые его протестировал и написал небольшую демку с анимацией, прокруткой карты и бегающим человечком)
Затем я реализовывал систему коллизий, систему звука, систему просчёта пути и т.п.


Можешь показать результат или хотя бы скрины чего нибудь?

Цитата
Надеюсь ты его не для одной игры собрался делать ^_^


Цитата
Нет конечно. Если удастся доделать игру до конца и смогу выпустить, то разработка игры будет продолжаться дальше. Т.е. 2 часть. И соответственно модернизация движка под новую игру и функционал.

Добавлено (21 мая 2016, 19:56)
---------------------------------------------
Gudleifr,

Цитата
Дык, об том и речь. Выберите что-то из того, что "не все равно", и посмотрите, как сделано у людей.


Да был бы хоть какой пример, я бы конечно посмотрел.



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
GudleifrДата: Суббота, 21 Мая 2016, 20:11 | Сообщение # 10
почти ветеран
Сейчас нет на сайте
Цитата DeadDay ()
Да был бы хоть какой пример, я бы конечно посмотрел.
Я уже писал: хороший пример - это Ваш прошлый проект. Не надо думать, что графику можно придумать всю и сразу (поэтому ни в коем случае не идите путем ООП).
Вот, как, например, описывал процесс Уолном (что-то похожее на упрощенный EoB):
1. Сначала он попытался понять, что такое DirectX (а это, на самом деле, просто способ рисовать под Виндой по-досовски). Кое-как научился грузить палитру и свопить буфера.
2. Потом честно написал простенький редактор лабиринта в MS VC MFC. Очень просто.
3. Потом задумался о том, что значит в лабиринте "вид из глаз". Оказалось, еще проще - тупо копирование битовых массивов. Даже MFC не понадобился.
4. Оп-паньки - игруха получилась. Можно предметов добавлять, врагов анимиролвать...
Самое главное - все эти части оказались практически независимы друг от друга. Я даже выдрал отдельно третью и выложил в упомянутых выше записках.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
DeadDayДата: Суббота, 21 Мая 2016, 21:11 | Сообщение # 11
New game Studio
Сейчас нет на сайте
Gudleifr,

Цитата
поэтому ни в коем случае не идите путем ООП


О нет, без него))))



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
ShortKedrДата: Воскресенье, 22 Мая 2016, 09:42 | Сообщение # 12
Renword Studio
Сейчас нет на сайте
DeadDay, Что?!!?!? Вы хотите написать движок без ООП. Удивительно!) :D
Не, не вариант без ООП и кучи математики) Прочитайте ещё раз мой пример, там несколько раз встречается слово/форма "унаследован", "базовый", "класс")
ООП - объектно ориентированное программирование

Добавлено (22 мая 2016, 09:42)
---------------------------------------------
Цитата DeadDay ()
Можешь показать результат или хотя бы скрины чего нибудь?

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


Сообщение отредактировал ShortKedr - Воскресенье, 22 Мая 2016, 09:54
GudleifrДата: Воскресенье, 22 Мая 2016, 09:54 | Сообщение # 13
почти ветеран
Сейчас нет на сайте
Цитата ShortKedr ()
Вы хотите написать движок без ООП.
Как и любой программист. ООП - это для чайников (или историков машин 5-го поколения). В данном конкретном случае ООП явно неприменимо, т.к. коллега хочет много чего попробовать, а ООП (см. Ваш пример) потребует от него сначала приять "окончательное решение".


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
ShortKedrДата: Воскресенье, 22 Мая 2016, 10:58 | Сообщение # 14
Renword Studio
Сейчас нет на сайте
Цитата Gudleifr ()
ООП - это для чайников (или историков машин 5-го поколения)

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

Добавлено (22 мая 2016, 10:58)
---------------------------------------------
Цитата Gudleifr ()
Как и любой программист

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


Сообщение отредактировал ShortKedr - Воскресенье, 22 Мая 2016, 11:09
GudleifrДата: Воскресенье, 22 Мая 2016, 11:02 | Сообщение # 15
почти ветеран
Сейчас нет на сайте
Цитата ShortKedr ()
Вообще не понял, причём тут чайники и историки.
Как бы это две категории людей, которые могут быть заинтересованы в ООП. Первые - потому, что маркетоидам выгодно втюхивать им 1Мб фантиков на 1Кб кода и создавать у бездарных кодеров иллюзию того, что создавая объекты/методы, они и впрямь программируют. Вторые - потому, что концепция ООП обосновывалась и оценивалась именно в рамкам этого, подохшего в 92-м году проекта - машин 5-го поколения.

Использовать или нет "готовое" - это не зависит от ООП. Если только не иметь в виду обязательный для ООП (готовый) шаблон танцев с бубном:
Цитата ShortKedr ()
Сначала я реализовал базовый класс для всех объектов, имеется ввиду игровых и подобных, реализовал все нужные механизмы, добавил методы, которые будут обрабатываться движком, что-то вроде OnStart, OnUpdate, OnDestroy. Далее сделал базовый класс сцены, которая является главным элементом контакта юзера и движка. Добавил туда обработку основных событий объектов через отдельный поток. Унаследовал от базового класса объектов несколько новых классов разновидностей объектов, добавил им всякий плюшки, анимацию, вращение спрайта и т.д.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.

Сообщение отредактировал Gudleifr - Воскресенье, 22 Мая 2016, 11:22
ShortKedrДата: Воскресенье, 22 Мая 2016, 11:26 | Сообщение # 16
Renword Studio
Сейчас нет на сайте
Gudleifr, %)
Я рассказал абстрактно о своём не большом движке. На деле же всё сложнее. Но итог таков, что мне достаточно написать 30 строчек, используя мой движок, и увидеть результат в виде простой игры в Pinball против ИИ.
Понимаете в чём разница, мы видим всё под разными углами.
Не знаю, откуда смотрите вы.
Если вы про скриптование MonoBehaviour в Unity или подобные вещи, где реально нет ООП в том виде(нет вообще по факту), в котором он действительно полезен и широк в применении. Это сторона, именно типичного разработчика.

Закончим этот разговор, он не имеет смысла)


Сообщение отредактировал ShortKedr - Воскресенье, 22 Мая 2016, 11:27
GudleifrДата: Воскресенье, 22 Мая 2016, 11:32 | Сообщение # 17
почти ветеран
Сейчас нет на сайте
Цитата ShortKedr ()
Я рассказал абстрактно о своём не большом движке. На деле же всё сложнее.
Выкиньте ООП-фантики - будет проще.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
ShortKedrДата: Воскресенье, 22 Мая 2016, 11:43 | Сообщение # 18
Renword Studio
Сейчас нет на сайте
Gudleifr, нет уж, спасибо. Будет наоборот сложнее. Когда-то я был таким же типичным разработчиком, который вечно искал готовые решения. Я понимал, что готовых решений на всех и на все случаи не хватит, я хотел большего, хотел системности, хотел уметь при необходимости написать любую сложную систему, хотел быть реальным программистом. В то время я не мог добиться этого, потому что смотрел не в ту сторону, сторону абстрактной глупости. Но потом меня подхватил себе на обучение мой старший товарищ, на 15 лет старше меня, он рассказал мне много чего, мы с ним много чего сделали, он мне показал всю прелесть программирования, не абстрактного, а широкого, ООП. И вот теперь при необходимости я могу сделать всё, что угодно.

Если вымрет ООП, вымрет Java, C#, C++ и т.д.
Вымрет отдел UnityTechnologies, который отвечает за разработку движка
Вымрут все те, кто занимается развитием данной области
Вымрет всё, что так любят настоящие программисты и ничего не останется. И где здесь проще? Проще только смерть!

Ответьте себе на один вопрос, вы сможете с нуля написать игровой движок?
Закончим разговор.


Сообщение отредактировал ShortKedr - Воскресенье, 22 Мая 2016, 11:45
GudleifrДата: Воскресенье, 22 Мая 2016, 11:53 | Сообщение # 19
почти ветеран
Сейчас нет на сайте
Цитата ShortKedr ()
Когда-то я был таким же типичным разработчиком, который вечно искал готовые решения.
Повторю: в данном случае и ООП и есть "готовое решение". Восходящее к первой книге Страуструпа.
Цитата ShortKedr ()
Ответьте себе на один вопрос, вы сможете с нуля написать игровой движок?
Да. Это очень просто. См. например, мои заметки по вышеуказанной ссылке. Проблема здесь не в сложности рисования, а в попытке ОО-кодеров учесть заранее все возможые частности. Или, как в случае упомянутого Вами коллеги, невозможность выйти за рамки визуального кодинга.

Добавлено (22 мая 2016, 11:53)
---------------------------------------------
Цитата ShortKedr ()
И вот теперь при необходимости я могу сделать всё, что угодно.
Вот, когда Вы поймете, что это лажа, Вы начнете становиться программистом.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.

Сообщение отредактировал Gudleifr - Воскресенье, 22 Мая 2016, 11:53
Форум игроделов » Ваши проекты » Разработка движков и сред разработки » Как сделать 2d движок?
  • Страница 1 из 1
  • 1
Поиск:

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