Четверг, 09 Мая 2024, 21:27

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Ваши проекты » Разработка движков и сред разработки » Sora Graphics Engine (Разработка графического 2D движка)
Sora Graphics Engine
Lord_ZeonДата: Четверг, 24 Января 2013, 21:17 | Сообщение # 1
частый гость
Сейчас нет на сайте
Направленность: 2D игры (Визуальные новеллы, разного рода rpg и квесты).
Платформа: Windows (Пока хватит и одной.)
Язык программирования: C/C++
Открытый исходный код: нет, только для ограниченного круга лиц.
API: OpenGL.
Дата начала работ: 28.01.13
Последняя версия: 0.3.4b

Планируется:
Система частиц.
Реализовать простой GUI.
Лог: Обработка ошибок и запись в файл лога.
Шейдеры.
Редактор карт.

Что уже готово:
Инициализация окна средствами GLFW, полноэкранный\оконный режимы.
Загрузка картинок и отрисовка спрайтов, поддерживаемые форматы - (BMP, JPEG, PNG, TGA).
Приведение текстур размеру кратному степени двойки (для старых видеокарт).
Загрузка TrueType шрифтов, вывод текста.
Структуры для работы с вершинами и четырехугольниками (аналог RECT).
Менеджер сортировки, загрузки\отрисовки спрайтов в VBO.
Трансформация сцены.
Система ввода.
Работа с файлами.

Основные функции:


Класс Image


Класс Sprite


Класс Animation


Класс Font:


Сообщение отредактировал Lord_Zeon - Суббота, 23 Февраля 2013, 08:17
nazar79Дата: Воскресенье, 27 Января 2013, 22:53 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
а ты работаеш вместе с kikas?
LightsoftДата: Понедельник, 28 Января 2013, 01:02 | Сообщение # 3
частый гость
Сейчас нет на сайте
Цитата (Lord_Zeon)
Для начала что нужно реализовать:
Инициализация окна, что лучше использовать для этого? Кроссплатформенный FreeGlut как вариант, или все же писать свою обертку под winapi?
Инициализация OpenGL. Если брать глут то это отпадает.

Я считаю, что лучше написать свою обертку, так как это может облегчить жизнь если надо будет что-то изменить в инициализации окна, не придется разбираться с чужим кодом. Управление таймером, перерисовкой и другими сообщениями будет своё.

Цитата (Lord_Zeon)
Реализовать вывод текста:
Пока склоняюсь к стандартным функциям. Как можно другими способами?

Обычно шрифты делают через загрузку подготовленного изображения с символами, а текст выводят выбором символа по текстурным координатам.

Заметка по архитектуре:
Если память выделяется в процедуре, то лучше сделать освобождение памяти текстуры тоже отдельной процедурой:
Код
LoadTexture(&spr, "src_01.png", 160, 32);
Lord_ZeonДата: Вторник, 05 Февраля 2013, 07:39 | Сообщение # 4
частый гость
Сейчас нет на сайте
nazar79,
Нет, я работаю один.

Lightsoft,
С освобождением текстуры были мысли, но проект так или иначе был остановлен, в новом можно будет обойтись и без выделения памяти (Использование без указателей).

Как быть с загрузкой шрифтов из файлов? Что представляет из себя ttf?

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

Добавлено (05.02.2013, 07:39)
---------------------------------------------
Обновил тему.

Сообщение отредактировал Lord_Zeon - Понедельник, 04 Февраля 2013, 20:10
XakepДата: Вторник, 05 Февраля 2013, 07:58 | Сообщение # 5
めちゃくちゃちゃ
Сейчас нет на сайте
нафиг свою обертку писать, смысла нету практически, особенно для игр, тупо окно и работа с устройствами ввода/вывода, есть хорошая библиотека SDL можно прикрутить как OpenGL так и DirectX, есть еще GLFW для OpenGL хорошо тоже подходит, а вот glut не советю использовать, там даже unicode не поддерживается.
для работы с ttf можно так же исопльзовать SDL но лучше взять FTGL очень удобная вещица, работает через FreeType, так что он тоже пригодится.
ttf - это обычнй файл шрифтов.
Lord_ZeonДата: Вторник, 05 Февраля 2013, 08:10 | Сообщение # 6
частый гость
Сейчас нет на сайте
Xakep,
Цитата (Xakep)
нафиг свою обертку писать, смысла нету практически, особенно для игр, тупо окно и работа с устройствами ввода/вывода, есть хорошая библиотека SDL

С этим я с тобой не согласен, взяв даже тот же самый SDL как раз таки придется писать обертку. Тут всего навсего у меня больше свободы.
Посмотрю GLFW. Спасибо за ответы.


Сообщение отредактировал Lord_Zeon - Вторник, 05 Февраля 2013, 18:08
dima9595Дата: Вторник, 05 Февраля 2013, 09:05 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
Lord_Zeon, получается у тебя будет движок/конструктор? типа как Eclipse Origins?

Lord_ZeonДата: Вторник, 05 Февраля 2013, 11:16 | Сообщение # 8
частый гость
Сейчас нет на сайте
dima9595,
Об этом рано думать, для начала просто графический движок, потом можно прикрутить скриптовый язык, и сделать WYSIWYG редактор

Xakep,
Глянул документацию GLFW, неплохая вещь, потестировал, не понравился только процесс создания окна. Переписал пару строк в исходнике, теперь отлично с окном.


Сообщение отредактировал Lord_Zeon - Вторник, 05 Февраля 2013, 14:05
AGENTX001Дата: Вторник, 05 Февраля 2013, 21:17 | Сообщение # 9
почётный гцупер
Сейчас нет на сайте
Цитата (Lord_Zeon)
потом можно прикрутить скриптовый язык, и сделать WYSIWYG редактор

Это далеко не главные составляющие игрового движка.
Цитата (Lord_Zeon)
я могу прямо сейчас взять готовый движок и пойти делать игры

Могу загрузить и нарисовать текстуру на OpenGL != могу "пойти делать игры".
И да, по моему рано создавать тему. Ты сначала сделай, а потом выложи.
Lord_ZeonДата: Вторник, 05 Февраля 2013, 21:55 | Сообщение # 10
частый гость
Сейчас нет на сайте
AGENTX001,
Спрашивалось не составляющие движка, а на что будет похоже. По моему ты путаешь игровой движок с графическим, у меня нет в планах писать компоненты входящие в игровой движок, я пишу только графическую часть.

Тема собственно нужна, чтобы в процессе создания можно было сразу исправить ошибки, последовать чьему-то совету.

Цитата (AGENTX001)
Могу загрузить и нарисовать текстуру на OpenGL != могу "пойти делать игры".

Оставь свои намеки при себе.
dima9595Дата: Среда, 06 Февраля 2013, 10:21 | Сообщение # 11
почти ветеран
Сейчас нет на сайте
Lord_Zeon, молодец что стремишься улучшить свои знания. Продолжай в том же духе!

AGENTX001Дата: Среда, 06 Февраля 2013, 11:19 | Сообщение # 12
почётный гцупер
Сейчас нет на сайте
Lord_Zeon, ну-ну. Вперед. Два класса, с двумя методами - гуд граф. двиг! Даже анимацию не удосужился сделать.
Цитата (AGENTX001)
у меня нет в планах писать компоненты входящие в игровой движок, я пишу только графическую часть.

Цитата (Lord_Zeon)
потом можно прикрутить скриптовый язык, и сделать WYSIWYG редактор

dry
Цитата (Lord_Zeon)
Тема собственно нужна, чтобы в процессе создания можно было сразу исправить ошибки, последовать чьему-то совету.

У тебя есть ошибки? Ты нуждаешься в совете? Вот когда будет более-менее полноценная либа, тогда бы тему и создал. Жутко бесят пустословые темы о создании "движка".
Lord_ZeonДата: Среда, 06 Февраля 2013, 11:56 | Сообщение # 13
частый гость
Сейчас нет на сайте
AGENTX001,
Все с тобой ясно, читаешь ты через строчку.
Такие посты как у тебя придают мне уверенности. Я не буду убеждать тебя в чем-то тратя свои силы на пустую болтовню и засорение темы, если ты не хочешь верить в меня, поверят другие.


Сообщение отредактировал Lord_Zeon - Среда, 06 Февраля 2013, 12:29
kravchiДата: Среда, 06 Февраля 2013, 12:35 | Сообщение # 14
был не раз
Сейчас нет на сайте
Lord_Zeon, просто с одной стороны AGENTX001 понять можно... Есть сотни страниц Интернета, десятки тем, где люди пишут, что вот, создам "такой двиг, что блин", со слюнями на монитор smile Я вот верю, что ты напишешь движок. Но Господа, давайте все же будем к друг-другу более благосклонны biggrin И старайся почаще обновлять нулевой пост. Будет свежая информация, будет и народ, и внимание к проекту, и советы wink
P.S. Lord_Zeon, я, кстати, сам велосипедист еще тот тоже) Удачи проекту. Буду следить.
AGENTX001Дата: Среда, 06 Февраля 2013, 16:01 | Сообщение # 15
почётный гцупер
Сейчас нет на сайте
Lord_Zeon, с тобой тоже все понятно... Посмотри вот движок. И вот, например. Разницу чувствуешь? Эти темы были созданы, когда был реализован хоть какой-нибудь функционал. Когда было хоть на что-нибудь посмотреть. А что в твоем случае? Вот ты за эти два дня сделал что-то полезное для движка? Теме две недели, а прогресса - ноль...
Lord_ZeonДата: Пятница, 08 Февраля 2013, 19:30 | Сообщение # 16
частый гость
Сейчас нет на сайте
kravchi,
Спасибо за добрые слова.

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

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

Обновил нулевой пост.

Добавлено (08.02.2013, 19:30)
---------------------------------------------
Обновление (0.2.4):
Добавлена анимация, упрощены основные функции.
Убрана поддержка смены экранного режима после создания окна (временно).


Сообщение отредактировал Lord_Zeon - Пятница, 08 Февраля 2013, 19:32
AGENTX001Дата: Суббота, 09 Февраля 2013, 00:41 | Сообщение # 17
почётный гцупер
Сейчас нет на сайте
Lord_Zeon, не совсем понимаю зачем три класса: Image, Sprite, Animation. Последние два обычно одно целое:)
XakepДата: Суббота, 09 Февраля 2013, 10:31 | Сообщение # 18
めちゃくちゃちゃ
Сейчас нет на сайте
2AGENTX001, может для оптимизации, ну Image - это что-то вроде текстуры, и это просто массив который не рендерится, а Sprite это статический объект без какой-либо анимации, а Animation уже с анмацией, естественное с анимацией будет жрать больше памяти и выполнять лишнии команды. Хотя название странное, лучше бы AnimSprite ну или как-то так, хотя может я не правильно понимаю назначение этого объекта))
AGENTX001Дата: Суббота, 09 Февраля 2013, 11:49 | Сообщение # 19
почётный гцупер
Сейчас нет на сайте
Xakep, +)
Lord_ZeonДата: Четверг, 14 Февраля 2013, 00:02 | Сообщение # 20
частый гость
Сейчас нет на сайте
Image отвечает за загрузку картинки и ее преобразования. Далее по плану она будет загружаться в память с помощью менеджера.

Sprite никак практически не связан с Image и содержит только ид загруженной картинки. Он имеет в себе только информацию о вершинах и дополнительные переменные для расчетов спрайта. (За отрисовку этой информации будет отвечать менеджер).

Animation имеет в себе объект спрайта (агрегация), реализует расчеты кадров, а за отрисовкой обращается к спрайту. Меньше кода, и можно изменять код в спрайте не затрагивая анимацию.

Система партиклов также будет иметь в себе объект спрайта.

Примерно выйдет вот так. Image -> Sprite -> Animation, Particles ...

Обновлен класс анимации, добавлены новые методы. (0.2.5)

Добавлено (14.02.2013, 00:02)
---------------------------------------------
Сделал менеджер сортировки и загрузки\отрисовки спрайтов в VBO. (0.3.0)
Тест демка анимации тут.


Сообщение отредактировал Lord_Zeon - Четверг, 14 Февраля 2013, 00:06
Форум игроделов » Ваши проекты » Разработка движков и сред разработки » Sora Graphics Engine (Разработка графического 2D движка)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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