Войти
ПроектыФорумУтилиты

2D движок Sapphire 0.6a

Страницы: 1 2 315 16 Следующая »
#0
20:12, 1 июня 2011

Характеристика:


Жанровая направленность: 2D игры и приложения любого жанра и типа;
Платформа: Windows (в теории возможны и другие, но не проверялось);
Лицензия: MIT (до версии 1.0, а там решу);
Языки программирования: C++
Открытый исходный код: да;
Рендер: OpenGL
Стороние библиотеки: freetype, ftgl, SDL, SDL image и другие, используемые этими библиотеками
Текущая версия: 0.6а от 12.11.2011
Сайт: http://warzes.3dn.ru/index/2d_sapphire_dvukhmernyj_dvizhok/0-5

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

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

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

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

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

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

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


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

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

#include "SapphireCore.h" 

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

      while (true) 
      { 
         Gfx_Clear(); 

         if (!FrameEngine()) 
            break; 
      } 

      QuitEngine(); 
      return 0; 
}
В которой всего 5 строк работы с движком.
И еще более минимальная
#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.5с-0.6
(ИДЕТ РАБОТА)- сделать анимацию и объект
(СДЕЛАНО)- презентационная игра (demo1)
- задокументировать виджеты. Хоть они есть уже сейчас (пока только кнопка и надпись, а также абстрактный виджет), я решил не включать их официально, потому как думаю что немного переделаю.
(СДЕЛАНО)- сделать ресурс менеджер.
(СДЕЛАНО)- звук
(СДЕЛАНО)- музыка
(СДЕЛАНО)- парсер ini файлов.
- добавить рисование примитивов (опять же, уже есть точка и треугольник и опять же официально я их не включал, но в коде они есть)
- сеть и интернет

0.6-0.7
- начать генератор проектов
- таблица строк
- построение gui из файла
- редактор gui
- больше гуи
- система частиц

0.7-0.8
- редактор частиц
- менеджер сцены, камера, обрезка невидимой графики
- редактор сцен

0.9-1.0
- рефакторинг кода, чистка, упрощение, оптимизация.

Скачать


Архив версии 0.6a

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


#1
20:12, 1 июня 2011

Скриншоты:

Скришот второго урока
tut2 | 2D движок Sapphire 0.6a

Скриншот третьего урока
tut3 | 2D движок Sapphire 0.6a

Демо 1
demo1 2011-06-27 18-12-02-58 | 2D движок Sapphire 0.6a

Демо 3
demo3 - Snake 2011-08-14 03-36-00-87 | 2D движок Sapphire 0.6a

Арканоид
Изображение

#2
20:13, 1 июня 2011

резерв

#3
20:13, 1 июня 2011

резерв

#4
20:13, 1 июня 2011

резерв

#5
20:20, 1 июня 2011

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

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

И хочу сказать что этот код тестовый, возможны баги.

Скриншоты не ахти какие - но ночь, уже сил делать демки нет. Завтра сделаю красивые

Сайт пока что обустраиваю так что не пугайтесь странным юкозским текстам.

В архиве - демка, исходники движка, все (надеюсь) стороние библиотеки (в том числе и .lib/.h, нужные для сборки движка, лежат в папке SapphireCore\deps) и документация по коду с первым обучающим уроком - надеюсь вменяемо написанная и легкая в навигации.

#6
20:33, 1 июня 2011

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

Я также знаю что 2D движков много, это ни как не влияет на развитие моего движка.

В данный момент это просто графический движок, но в целях сделать его игровым.

А кстати на счет упомянутых ключевых возможностей - это идеал к которому я стремлюсь, пока не реализованы полностью

#7
21:50, 1 июня 2011

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

Документацию потом не забудь на сайте (в хтмл и chm виде).

Качать не стал - подожду пока с сайтом закончишь, там поглядим ))

Удачи в дальнейшей разработке!

#8
22:59, 1 июня 2011

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

Еще одно замечание - это сайт, как обычно у "мощных" проектов это ucoz, что давно считается убогим.
Насчет арта все уже было сказано.

Не могу не заметить и то, что использован SDL, а он сам по себе включает все, что вы сейчас нам показали. (насколько я осведомлен)

Удачи с начинаниями.

#9
23:37, 1 июня 2011

SoulSharer
> Не в обиду автору, но как миним пугает "Minimal", поскольку лучше это задать константой в хедере (заголовочном файле)
Может быть это заголовок окна?

#10
0:49, 2 июня 2011

[A][R][T]
>Может быть это заголовок окна?
Да, пару кликов в хелпе и находим:
bool Engine_Init(int width, int height, char *caption, bool fullscreen=false);

warchief
>Введение лога
лишняя 'в'

#11
2:02, 2 июня 2011

SoulSharer
> Еще одно замечание - это сайт, как обычно у "мощных" проектов это ucoz, что
> давно считается убогим.
кста, а gcup.ru тоже на ucoz. Я согласен, что может так и убого. Но на создание полноценного сайта пока нет времени и пока нечем этот сайт наполнить, чтобы окупить даже те немногие затраты на него.

SoulSharer
> Не в обиду автору, но как миним пугает "Minimal",
Этож заголовок окна, зачем его в хидер?

>>Не могу не заметить и то, что использован SDL, а он сам по себе включает все, что вы сейчас нам показали
Нет, не включает, там кроме вывода поверхности на экран нет ни шрифтов, ни тем более их вращения, ни вращения самих поверхностей и много чего вообще нет. SDL используется только для создания окна и работы с событиями, вместо к примеру glut.

Therg
> лишняя 'в'
спс, исправлю

#12
6:46, 2 июня 2011

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

#13
10:29, 2 июня 2011

warchief
А чем этот движок лучше, скажем, HGE?
Кроме того, что HGE расчитан только на Windows, а у тебя теоретически везде заработает...
Ежели он не лучше, то тебе ещё придётся очень много поработать до того момента, как движок станет конкурентоспособным.
А готов ли ты так много работать? Не лучше ли взять HGE и написать какую-нибудь крутую (или не очень) игру?

Хотя, конечно, мне ужасно не нравится API HGE... Но зато всё там красиво выглядит и даёт хорошую производительность....

#14
10:33, 2 июня 2011

[A][R][T]
>Может быть это заголовок окна?

Извиняюсь, мой промох, думал это вызов минимальных настроек движка

warchief
> SoulSharer
> > Еще одно замечание - это сайт, как обычно у "мощных" проектов это ucoz, что
> > давно считается убогим.
> кста, а gcup.ru тоже на ucoz. Я согласен, что может так и убого. Но на создание
> полноценного сайта пока нет времени и пока нечем этот сайт наполнить, чтобы
> окупить даже те немногие затраты на него.

Если вы внимательно почитаете этот gcup, то поймете какое там сообщество сидит, что уж тут говорить про сайт.
Поэтому его лучше даже и не упомянать.


И думаю лучше стоило так написать, хотя это дело вкуса наверное.

#include "SapphireCore.h"

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

   while (true)
   {
      Gfx_Clear();

      Engine_Run();

      if (IsEngineQuit())
         break;
   }

   Engine_Quit();
   return 0;
}
Страницы: 1 2 315 16 Следующая »
ПроектыФорумУтилиты

Тема в архиве.