Пятница, 08 Ноября 2024, 10:39

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Проектирование ядра игры
DeswingДата: Суббота, 20 Апреля 2013, 16:02 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Я понял уже синтаксис С++, писал свои программки (в основном вычислительного характера). Но я совсем не понимаю как проектируются ядра. Хочу создать игру (скорее всего консольную), но СОВСЕМ не понимаю что такое ядро и как его проектировать. Пожалуйста, помогите мне, хоть немного натолкните на верный путь
FumleadДата: Суббота, 20 Апреля 2013, 16:40 | Сообщение # 2
участник
Сейчас нет на сайте
Как я понял под ядром ты понимаешь игровой движок. Можешь выбрать уже готовый (советую SDL или HGE). Если тебе нужно написать собственный движок - тут ничего посоветовать не могу. В инете есть пара уроков, но тут нужно исходить из собственных потребностей.

Параноик с гениальным планом по захвату мира.
OpenGOOДата: Суббота, 20 Апреля 2013, 19:54 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Можешь это почитать, Sams Teach Yourself Game Programming in 24 Hours, толково написано, но это не для консолей.

Если что, на торрентах есть сборник Game Design eBooks Pack, там книг по этой тематике читать не перечитать.


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]


Сообщение отредактировал OpenGOO - Суббота, 20 Апреля 2013, 20:14
daunДата: Суббота, 20 Апреля 2013, 23:03 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
DeswingДата: Воскресенье, 21 Апреля 2013, 21:09 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
А кто-то может скинуть исх простейшего движка? P.s. на С++

Добавлено (21.04.2013, 21:09)
---------------------------------------------
ап...

clidiДата: Воскресенье, 21 Апреля 2013, 21:23 | Сообщение # 6
почетный гость
Сейчас нет на сайте
Deswing, У HGE предоставляется исходный код. А вообще лучше начинать с чего то простого. Посмотри shatalov.

Добавлено (21.04.2013, 21:23)
---------------------------------------------
daun, Хорошая схема yes

UndeadДата: Воскресенье, 21 Апреля 2013, 21:50 | Сообщение # 7
NeoAxis User
Сейчас нет на сайте
Deswing, Посмотри ещё Irrlicht, Ogre, OSG, IdTech 4

Вcем зла.
DeswingДата: Воскресенье, 21 Апреля 2013, 22:22 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Спасибо большое за движки, гляну их внутренности!
Я вот думаю графический движок писать с использованием OpenGL. Как я понял, GLUT - это несерьезно. Что тогда "юзать"?
Lord_ZeonДата: Воскресенье, 21 Апреля 2013, 23:30 | Сообщение # 9
частый гость
Сейчас нет на сайте
Цитата
Как я понял, GLUT - это несерьезно. Что тогда "юзать"?

Почему ты так считаешь?

Тебе уже это должны были разъяснить в прошлых темах, ты стоишь на одном месте и спрашиваешь совета. Попробуй начать что-то делать, возьми хорошую книгу (в библиотеку ведь бегать не надо?), определись со своими целями и вперед. Уверен что некоторые вопросы отпадут сами собой со временем.

OpenGOOДата: Понедельник, 22 Апреля 2013, 00:00 | Сообщение # 10
почти ветеран
Сейчас нет на сайте
Deswing,
Смотри главу №3, там есть пример простого движка, проще я вроде и не встречал. В других главах уже более усовершенствованная версия.
Исходники к книге Game Programming in 24 Hours


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
clidiДата: Понедельник, 22 Апреля 2013, 01:50 | Сообщение # 11
почетный гость
Сейчас нет на сайте
Deswing, На самом деле GLUT это очень крутая штука, но он сейчас не поддерживается. Посмотри freeglut, sdl, GLFW, SFML, OGLplus.
DeswingДата: Вторник, 23 Апреля 2013, 00:10 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Бред усталого школьника (меня) хх
Цитата
Игровой движок будет состоять из:
1)GraphicEngine
2)PhysicsEngine
3)SoundEngine
4)LogicEngine

GraphicEngine
GraphicEngine ответственен за рендер и отображение двухмерной графики на экране пользователя. Будет использован OpenGL Utility Toolkit (GLUT).
Графический движок должен уметь:
1)Отображать курсор и в случае необходимости заменять его спрайтом.
2)Рисовать элементы интерфейса (кнопки, флажки, панели, диалоговые окна, меню, списки, текст).
3)Загружать графические объекты (спрайты) в форматах PNG, JPG, BMP.
4)Рисовать спрайты по X, Y.
5)Вращать спрайты.
6)Взаимодействовать при необходимости с остальными движками (PhysicsEngine, LogicEngine, SoundEngine).
7)Проверять себя на ошибки в режиме реального времени и в случае критических ошибок сообщать об этом пользователю.

PhysicsEngine
Физика игры.

SoundEngine
Все фичи, связанные со звуком и музыкой. Звуковой движок должен уметь загружать и проигрывать звуковые файлы в форматах MP3, WAV, OGG.

LogicEngine
Логика объектов, искусственный интеллект и дополнительные функции игрового движка, которые не попали в остальные движки.


я походу что-то не так воспринимаю, но всё равно тяжко всё идёт biggrin
Опять застрял на том, что я лишь смог написать функцию инициализации окна

Добавлено (23.04.2013, 00:10)
---------------------------------------------
Пожалуйста, помогите мне в начальном проектировании движка. Сейчас больше всего уделяю внимание графическому движку. Так сказать составляю план действий. Может быть я выгляжу очень смешно для опытных программистов, но мне и впрямь хочется. Я согласен, у меня было очень много попыток, я много топтался на одном месте. И до сих пор преследую эту цель

avolkoffДата: Вторник, 23 Апреля 2013, 01:12 | Сообщение # 13
частый гость
Сейчас нет на сайте
Итак, с Вашего разрешения:) подведу итоги:
1. Ты незнаешь С++;
2. Ты незнаешь G API (DirectX или OGL);
3. WINAPI? Наврядли, если только окно можешь. Ну может он и непригодится...
Со всем этим ты хочешь написать (создать) игру? Движок???
Может стоит попробовать без программирования, или со скриптами, т.е. используй готовые решения!
Если горишь желанием программировать, ну чешется аж, выучи С++ для начала, алгоритмов тучу, потом еще GAPI какой-нить, Shader Language. wacko !!!
Как вариант можешь попробовать C# и XNA GS, там все намного проще (для программера).
Еще как вариант пойти учиться на физмат!)
Ладно, хватит о плохом!

Цитата
Игровой движок будет состоять из:
1)GraphicEngine
2)PhysicsEngine
3)SoundEngine
4)LogicEngine

По-сути-то) они все из этих компонентов сделаны...
Может стоит задуматься об использовании многопроцессорности/многоядерности/многопоточности/и т.д.??? Сейчас-то машины пичкают процами не с одним ядром!
Далее управление устройствами ввода??? Тоже некая проблема, особенно на кроссплатформенных решениях...
Анимация... Ну тут все понятно!)
Физика - можно сразу использовать стороннее ПО!(Если физика реалистичная нужна)
Графика??? ... Интеллект??? Система скриптов - ну можно как-нить без нее, хотя после перечисленных пунктов она сделается на одном дыхании...
В итоге получаем огроменную систему с хт алгоритмов и прочей нечисти)

Итак, по-моему мнению ты хочешь сделать движог/двиган/гипердвиг/ит.д.... Но на многих форумах обычно пишкт ответ, а для чего этот двиг??? Т.е. вывод, надо писать движок с упором на игру... Хотя бы за тем, чтобы снизить кучу работы по универсальности двигана).

К слову, я не пытаюсь тебя отговорить от темы содания мегадвигла)

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

Цитата
GraphicEngine ответственен за рендер и отображение двухмерной графики на экране пользователя. Будет использован OpenGL Utility Toolkit (GLUT).
Графический движок должен уметь:
1)Отображать курсор и в случае необходимости заменять его спрайтом.
2)Рисовать элементы интерфейса (кнопки, флажки, панели, диалоговые окна, меню, списки, текст).
3)Загружать графические объекты (спрайты) в форматах PNG, JPG, BMP.
4)Рисовать спрайты по X, Y.
5)Вращать спрайты.
6)Взаимодействовать при необходимости с остальными движками (PhysicsEngine, LogicEngine, SoundEngine).
7)Проверять себя на ошибки в режиме реального времени и в случае критических ошибок сообщать об этом пользователю.


Ну примено так, но за исключением небольших пунктов:
► управлять графическим ускорителем - состояние, инициализация и настройка
► позволять использовать максимум из системы - ну, может использовать две видюхи, управление производительностью

Кроме этого пункты 1, 3, 4, 5 - не очень именно к движку графики относятся, скорее к подсистеме... ну или к интерфейсу адаптера, менеджера ресурсами и к сцене.

Ну вобщем как-то так!) Ах да! И не парься насчет ядра, потом сам поймешь! Undead жжешь с id tech 4)))


Сообщение отредактировал avolkoff - Вторник, 23 Апреля 2013, 01:59
ArchidoДата: Вторник, 23 Апреля 2013, 14:00 | Сообщение # 14
Сэнсэй
Сейчас нет на сайте
Deswing
Я в одной из предыдущих тем вроде кое-чего писал по этому поводу, повторюсь \ дополню:

Во-первых, без познаний в графике пытаться писать графический движок чистой воды абсурд... это ведь вполне логично и очевидно, разве нет? Поэтому надо набивать скилл, программируя на чистом OpenGL (можно в связке с глутом).
Во-вторых, чтобы его написать - нужно представлять хоть примерно как он должен выглядеть и что уметь, иначе это просто написание сферического коня в вакууме... а чтобы получить эти представления можно написать небольшую игру на каком-либо интересном движке, отметить для себя как он устроен, какие ф-ции используются и для чего, и далее в таком же духе. Для полноты картины после можно еще поверхностно посмотреть на другие. А потом можно просто скомуниздить API первоначального движка (на котором писали игру) и сделать почти также и у себя smile - будет меньше вопросов. Когда все это осилишь - начнут появляться собственные мысли, тут уже можно и насочинять собственную "орхетектуру".

Добавлю, что ты сейчас вообще не теми вопросами задаешься. Тебе нужно не о архитектурах и проектировании думать, а набивать скилл как программиста. Алгоритмы там изучать, книжки интересные читать, писать тонны С++'го кода, практики побольше одним словом, иначе ты так и будешь на одном месте топтаться.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
OpenGOOДата: Вторник, 23 Апреля 2013, 18:15 | Сообщение # 15
почти ветеран
Сейчас нет на сайте
Deswing, Если ты не смог осилить информацию которую я тебе дал, то тебе пока рано этим заниматься, ты не понимаешь какие технические проблемы возникают при создании игр.

Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]


Сообщение отредактировал OpenGOO - Вторник, 23 Апреля 2013, 18:25
  • Страница 1 из 1
  • 1
Поиск:

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