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 Тем более 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.
Ваше мнение мне все еще интересно Никто не тестил движок? И еще, никто не даст мне каких предложений, чтоб еще сделать в движке по вашему взгляду? Добавлено (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 Никто не мешает пересобрать все используемый либы статически... Я пока оставил этот момент на потомДобавлено (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# Мой твиттер Помог - ставь +, Ответил на вопрос - ставь +.
|
|
| |
|