Четверг, 11 Августа 2022, 18:23

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Форум игроделов » Ваши проекты » Разработка движков и сред разработки » 2D Sapphire (Мой двухмерный игровой движок)
2D Sapphire
warzesДата: Вторник, 17 Мая 2011, 08:01 | Сообщение # 1
участник
Сейчас нет на сайте
Характеристика:

Жанровая направленность: 2D игры и приложения любого жанра и типа;
Платформа: Windows в стабильной версии (в теории возможны и другие, но не проверялось);
Лицензия: MIT (до версии 1.0, а там решу);
Языки программирования: C++
Открытый исходный код: да;
Рендер: OpenGL 1.x,2.x
Текущая версия: 0.5 от 02.06.2011
Сайт (пока в наполнении): Сайт

Ключевые особенности:

Четкая концентрация на 2D игры
Данный движок спроектирован для создания именно 2D игр и не имеет избыточных особенностей.

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

Технически развитый.
2D Sapphire построен на использовании графического API OpenGL, чтобы дать вам множество разнообразных эффектов и возможностей.

Полная документация
В этой документации есть все что вам нужно для использования движка. От описания всего синтаксиса, до примеров и советов.

Свободный
2D Sapphire распространяется в данный момент по лицензии MIT.

Возможности:

- Вывод двухмерной графики пока только статической позже и анимированной. Поддерживаются следующие форматы bmp png pcx jpg. А также вращение, масштабирование, установка прозрачности.
- Работа с устройствами ввода (клавиатура, мышь)
- Вывод текста с использованием TrueType-шрифтов, с возможностью смены цвета, установкой прозрачности, вращением текста и изменением размера.
- Поддержка любых локализаций.
- Введение лога
- Быстрый псевдослучайный генератор чисел
- Минимум лишнего кода.

Минимально возможная программа:
Code

#include "SapphireCore.h"

int main(int argc, char *argv[])
{
       if (!InitEngine(300, 200, "Minimal"))
           return 1;

       while (true)
       {
          Gfx_Clear();

          FrameEngine();

          if (IsEngineQuit())
             break;
       }

       QuitEngine();
       return 0;
}

В которой всего 5 строк работы с движком. Или так:
Code

#include "SapphireCore.h"

bool run()
{
      Gfx_Clear();
      return true;
}

int main(int argc, char *argv[])
{
       if (!InitEngine(300, 200, "Minimal"))
           return 1;

       RunEngine(run);

       return 0;
}

Здесь кода еще меньше
Скачать:
Архив версии 0.6а - движок

Самую последнюю версию вы можете скачать из репозитория - http://2d-sapphire.googlecode.com/svn/trunk/


Мой блог
Вики DirectX


Сообщение отредактировал warzes - Пятница, 23 Декабря 2011, 08:20
Stas96Дата: Вторник, 17 Мая 2011, 14:55 | Сообщение # 2
Programmer and Game Designer
Сейчас нет на сайте
warzes, Молодец,продолжай в тоже духе, со временем если ты его закончишь и будешь развивать,он может переплюнуть HGE, и стать одним из популярных 2D - движок.
Удачи!
P.S.:Если понадобится тестер могу помочь,сам работаю с SDL и OpenGL
warzesДата: Вторник, 17 Мая 2011, 17:04 | Сообщение # 3
участник
Сейчас нет на сайте
Конечно я его не брошу, мне он для своих проектов нужен, не люблю я учить чужие библиотеки и мне реально легче написать свое чем изучить полностью тот же hge или popcap biggrin Тем более 2D не 3D особых навыков и не требует.
Кстати, наконец-то вернул в движок спрайты скоро выложу.


Мой блог
Вики DirectX
thitemДата: Вторник, 17 Мая 2011, 17:43 | Сообщение # 4
частый гость
Сейчас нет на сайте
Quote (warzes)
критику и замечания по устройству движка

Там слишком мало всего чтобы критиковать. Могу только посоветовать комментировать все с самого начала для Doxygen, чтобы потом документацию легко было делать.

Quote (warzes)
мысли по отлову событий

Я бы сделал либо систему сообщений как в Windows API, либо создал функцию, которая ставит нужному событию в соответствие функцию обработки этого события:
Code
void SetCallback(char event, bool (*function)(int param1, int param2));

event - событие, которому назначается функция обработки
bool (*function)(int param1, int param2) - указатель на функцию обработки события, param1 и param2 - параметры собтия (координаты мыши, коды клавиш и т.д.)

Плюс в том, что так удобно переназначать или отключать (в качестве указателя на функцию передать NULL) функции для события.

warzesДата: Понедельник, 23 Мая 2011, 13:48 | Сообщение # 5
участник
Сейчас нет на сайте
Quote
Могу только посоветовать комментировать все с самого начала для Doxygen, чтобы потом документацию легко было делать.

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

Quote
Плюс в том, что так удобно переназначать или отключать (в качестве указателя на функцию передать NULL) функции для события.

Я сделал как в формошлепках, событие прописывается путем наследования от базовой пустой функции. В примере функция void OnKeyUp(SDLKey sym, SDLMod mod, Uint16 unicode) является такой пронаследованной. То есть программисту просто нужно описать тело функции события, а движок сам ее вызовет в нужное время. Но все равно, я не знаю насколько это хорошо.

А для гуи была написана другая система работы с событиями, у каждого виджета были указатели на функции-действия (нажатие кнопки, ввод текста и т.д.) Программисту нужно было только описать эти функции и передать виджету.

Добавлено (19.05.2011, 11:11)
---------------------------------------------
Скоро выложу версию 0.5, я заканчиваю там кое какие моменты

В новой версии появится:
- Спрайты имеющие весь функционал аналогичных из HGE.
- Документация.
- рисование примитивов (в том числе и 3D).

Возможно также появится и следующее (или в ближайших версиях):
- Анимация
- Шрифты
- Гуи
- Звук
- "Режим эксперта" (замена пользователем любого функционала движка, без изменения кода, путем написания своих функций по принципу callback)

Ну а пока скриншот документации:


Прокоментируйте общее оформление пожалуйста.

Добавлено (23.05.2011, 13:48)
---------------------------------------------
Скоро выложу версию 0,5

Вот так выглядит минимальное приложение на моем движке:

Code

#include "SapphireCore.h"

bool isexit = false;

int main(int argc, char *argv[])
{
   // создаем окно размером 400-200
   Engine_Init(400, 200, "Minimal");
    
   // запускаем бесконечный цикл
   while (isexit == false)
   {
     // очищаем экран
     Gfx_Clear();
     // здесь нужно рисовать
     // ...рисование
     // конец отрисовки

     // Отрисовываем кадр
     Engine_Run();
     // проверяем не был ли закрыт наш проЭкт
     // другими программами или нажатием по крестику
     // если да, то выходим из цикла
     if (IsEngineQuit() == true)
       isexit = true;
   }
   // очищаем занятые движком ресурсы
   Engine_Quit();
   return 0;
}


Мой блог
Вики DirectX
nilremДата: Понедельник, 23 Мая 2011, 14:11 | Сообщение # 6
Просветленный разум
Сейчас нет на сайте
Quote (warzes)
Gfx_Clear();

Зачем очищать экран каждый кадр?. Все равно ведь выводимые изображения перекроют нарисованное ранее.
У меня, в движке под винмобайл, если включить принудительную очистку экрана, фпс падает в 4 раза.


Windmill 2

WindMill 2D Game Engine
warzesДата: Четверг, 21 Июля 2011, 08:28 | Сообщение # 7
участник
Сейчас нет на сайте
>>Зачем очищать экран каждый кадр?. Все равно ведь выводимые изображения перекроют нарисованное ранее.
Если двигать спрайт и не очищать каждый кадр, то на экране будет куча спрайтов-мусора.

На счет мобильных платформ не знаю - потому что никогда для них не программировал (не хочу изучасть java а как использовать C чтобы писать под мобильные девайсы не знаю) И вообще терзают меня смутные сомения что под мобилы двиг будет непригодет - я ведь еще и векторные шрифты использую а они ведь тоже тормозят и если на компах незаметно, но думаю на мобилах будет очень ощутимо

Добавлено (01.06.2011, 20:40)
---------------------------------------------
Выложил новую версию. Смотреть первый пост.

Добавлено (03.06.2011, 06:42)
---------------------------------------------
В первый пост выложил новую версию 0.5b. В ней:
Два новых урока - вывод графики и текста, а также простенькая игра на реакцию
и новый класс Timer, позволяющий автоматически выполнять действие по истечению интервала времени

Так как по странным причинам я не смог залить архив на сайт, то в первом посте даны ссылки на скачивание с гаймдева.

Добавлено (05.06.2011, 14:39)
---------------------------------------------
Вот сделал демку на своем движке:

[img=http://www.gamedev.ru/files/images/68026_1307269334_demo1.jpg]

Файл и исходники - http://www.gamedev.ru/files/?id=68025

Это 2d если что:)

Чтобы собрать из исходников, нужно скачать движок и указать папку include, папку depends\include и папку lib с папкой depends\lib.
Чтобы запустить собранную нужны dll-ки, которые лежат в архиве движка в папке tutorial, скопируйте все .dll из этой папки в папку demo1, туда где лежит .exe. Извините что не положил их в архив, но у меня сейчас скорость интернета упала, так что 1мб закачать нереально.

Смысл демки - вы оператор пушки. Ваша задача непропустить демонов через свою зону. У вас пять жизней.

Демку делал не больше часа (и большую часть времени потратил вспоминая работу vector:) )
Надеюсь код демки не сложный для понимания.

Также заметил глюк движка, у прозрачных спрайтов снизу и справа появилась странная черная линия... Если кто подскажет почему так (у меня сейчас нет времени искать проблему), буду очень благодарен

Добавлено (19.06.2011, 05:49)
---------------------------------------------
Залил движок на репозиторий - http://2d-sapphire.googlecode.com/svn/trunk/
Теперь вы всегда сможете скачать самую свежую версию движка.

Добавлено (21.06.2011, 09:32)
---------------------------------------------
В исходниках на репозитории появилась возможность работы со звуком и музыкой...

И эта, хотелось бы хоть какой-то обратной связи. Все таки движок уже пригоден для создания 2D игр (без особых наворотов, конечно). Документация тоже есть. как и примеры.

Добавлено (01.07.2011, 15:12)
---------------------------------------------
Если что, на репозитории движок обновляется каждый день, так что всем интересующимся советую освоить скачку с SVN (мой выбор - TortoiseSVN)
Изменения с последнего поста - возможность воспроизводить музыку, ini-парсер и сейчас доделывается класс Animation.

Ваше мнение мне все еще интересно dry
Никто не тестил движок?
И еще, никто не даст мне каких предложений, чтоб еще сделать в движке по вашему взгляду?

Добавлено (21.07.2011, 08:28)
---------------------------------------------
Люди, пожалуйста, не проходим мимо. Движок обновляется каждый день (на репозитории конечно), очень интересует меня ваше мнение.

И уже скоро будет версия 0.6 и новый туториал в котором будет создана игра на движке


Мой блог
Вики DirectX


Сообщение отредактировал warzes - Понедельник, 23 Мая 2011, 15:04
VinchensooДата: Четверг, 21 Июля 2011, 08:34 | Сообщение # 8
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (warzes)
Никто не тестил движок? И еще, никто не даст мне каких предложений, чтоб еще сделать в движке по вашему взгляду?

Я лично посмотрю только, когда будет игра. Код движка мне не доставил.

ООП нужно, чтобы его использовать или можно процедурно все оформить?


warzesДата: Четверг, 21 Июля 2011, 09:32 | Сообщение # 9
участник
Сейчас нет на сайте
Quote (Vinchensoo)
Код движка мне не доставил.

Что не понравилось?

Quote (Vinchensoo)
ООП нужно, чтобы его использовать или можно процедурно все оформить?

Можно процедурно - все туториалы в движке процедурные (точнее функциольные).


Мой блог
Вики DirectX
VinchensooДата: Четверг, 21 Июля 2011, 12:47 | Сообщение # 10
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (warzes)
Можно процедурно - все туториалы в движке процедурные (точнее функциольные).

Это гуд.
Quote (warzes)
Что не понравилось?

Не могу сформулировать. Может я просто к другому привык =)


warzesДата: Воскресенье, 14 Августа 2011, 06:01 | Сообщение # 11
участник
Сейчас нет на сайте
Так на репозитории уже очень много изменений. А кроме того появилась новая демка движка - Змейка

Все также ожидаю критику, советы, предложения
Две следующие демки - некий примитивный варгейм и игра про космический кораблик защищающий торговый звездолет от нападений


Мой блог
Вики DirectX
zodiakДата: Воскресенье, 14 Августа 2011, 11:18 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
А почему у тебя в гуглькоде нельзя ничего скачать. Например скомпиленные демки, заархивленные исходники.
Качать с репозитория меня не прикалывает.


Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net
DemeronДата: Воскресенье, 14 Августа 2011, 11:27 | Сообщение # 13
User created in C++
Сейчас нет на сайте
Слишком много файлов приходиться таскать с собой, а это плохо...
warzesДата: Пятница, 23 Декабря 2011, 08:19 | Сообщение # 14
участник
Сейчас нет на сайте
Quote (zodiak)
А почему у тебя в гуглькоде нельзя ничего скачать. Например скомпиленные демки, заархивленные исходники.

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

Quote (Demeron)
Слишком много файлов приходиться таскать с собой, а это плохо...

Всего-то 14 biggrin Никто не мешает пересобрать все используемый либы статически... Я пока оставил этот момент на потом

Добавлено (12.11.2011, 15:29)
---------------------------------------------
На репозитории немного обновлений. В том числе - частично обновлена документация.

Список изменений с последнего фикса:

>>>------ ВЕРСИЯ 0.5d (27.06.11) ------<<<
+ парсер ini файлов
теперь для окна приложения можно назначить значок
- класс Bitmap, так как больше не нужен.
Класс Image переписан, теперь он не содержит пиксели, теперь он хранит только ид рисунка, то есть стал независимым. Загрузка и хранение изображений теперь прерогатива ресурсменеджера.
рисунку теперь при загрузке можно задать прозрачный цвет

>>>------ ВЕРСИЯ 0.5e (05.07.11) ------<<<
исправлена ошибка, которая происходила при изменении размера экрана, GetDisplaySize() выдавал неактуальные размеры (то есть те которые были первоначально заданы)
Image снова изменен, теперь большинство операций работают с float (из-за чего увеличилась точность). Кроме того image теперь сам ничего не делает, это удобная надстройка над DrawQuad()
+ Новый DrawQuad() c множеством настроек и возможнотсью накладывать текстуры.
+ возможность выбирать разные режимы прозрачности

>>>------ ВЕРСИЯ 0.5f (14.08.11) ------<<<
+ примитивная камера
+ несколько режимов прозрачности
Engine_Init() переименовано в InitEngine()
Engine_Run() переименовано в FrameEngine()
Engine_Quit() переименовано в QuitEngine()
+ Новая функция RunEngine()
+ при установке указателя мыши теперь можно задать центр используя значение от 0.0 до 1.0

>>>------ ВЕРСИЯ 0.6a (11.11.11) ------<<<
FrameEngine() теперь возращает false если приложение закрывается. больше не нужно совершать проверку IsEngineQuit()

Думаю в ближайшее время обновить документацию, сделать кое какие изменения в движке, оптимизировать вывод текста и официально сообщу об выходе 0.6a. Также (так как многим оказалось неудобно качать с репозитория) - теперь при каждой новой версии будет выкладываться сборка в виде архива.

Добавлено (23.12.2011, 08:19)
---------------------------------------------
Так, раз многие не умеют качать из репозитория, то выложил архив (в первом посте)
В движке не все документировано, нет документации на виджеты, камеру и звук, потому что эти элементы тестируются
С движком идет три урока и несколько демо-версий, в том числе и практически готовая игра - змейка (там только смерть не доделана)

Люди, а движок хоть кому-нибудь интересен? А то по функционалу он уже практически догнал HGE, а обратной связи я так и не вижу.


Мой блог
Вики DirectX
MrIncrofДата: Пятница, 23 Декабря 2011, 08:57 | Сообщение # 15
Lite Programmer
Сейчас нет на сайте
warzes, ну что тут сказать? Молодец! Сейчас протестирую. Если сделаешь его лучше HGE и будешь развивать - я твой фанат
warzesДата: Понедельник, 06 Февраля 2012, 12:18 | Сообщение # 16
участник
Сейчас нет на сайте
MrIncrof, я сейчас делаю игру, так что особо развивать некогда, но если интерес к нему будет хотя бы у нескольких человек, то продолжу

Добавлено (06.02.2012, 12:18)
---------------------------------------------
Маленькое обновление

В основном косметические изменения
А также - почти готовая игра Арканоид:



Качать - двиг


Мой блог
Вики DirectX
Marat111Дата: Вторник, 06 Марта 2012, 21:55 | Сообщение # 17
уже был
Сейчас нет на сайте
добрый вечер. не подумайте что я нуб, ну скажите как запустить этот движок ???

Добавлено (06.03.2012, 21:55)
---------------------------------------------
добрый вечер. не подумайте что я нуб, ну скажите как запустить этот движок ???

Добавлено (06.03.2012, 21:55)
---------------------------------------------
добрый вечер. не подумайте что я нуб, ну скажите как запустить этот движок ???

Добавлено (06.03.2012, 21:55)
---------------------------------------------
добрый вечер. не подумайте что я нуб, ну скажите как запустить этот движок ???

warzesДата: Воскресенье, 11 Марта 2012, 08:57 | Сообщение # 18
участник
Сейчас нет на сайте
Эм, для этого надо уметь программировать. Редактора-контруктора нет и в ближайшее время не будет

Мой блог
Вики DirectX
TikaraДата: Среда, 21 Марта 2012, 18:24 | Сообщение # 19
частый гость
Сейчас нет на сайте
warzes,
Quote
Но для опытных программистов этот движок дает море возможностей вмешаться в любую его часть и изменить по своему усмотрению, без изменения самого кода движка.


Хотелось бы поподробней узнать как это реализовано.

пс в windmill 2dge этого очень не хватает.
reyzorДата: Среда, 21 Марта 2012, 19:12 | Сообщение # 20
Проггер в законе
Сейчас нет на сайте
Планируется ли поддержка arm устройств ? (Android,Bada,IOS)

Юзаю Unity3d +C#
Мой твиттер
Помог - ставь +, Ответил на вопрос - ставь +.
Форум игроделов » Ваши проекты » Разработка движков и сред разработки » 2D Sapphire (Мой двухмерный игровой движок)
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

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