Вторник, 26 Ноября 2024, 04:11

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 15 из 15
  • «
  • 1
  • 2
  • 13
  • 14
  • 15
WindMill 2D Game Engine
nilremДата: Воскресенье, 04 Июля 2010, 14:19 | Сообщение # 1
Просветленный разум
Сейчас нет на сайте
Все.
Сегодня я решил, что пилить двиг можно до скончания веков, и он так и не станет(на мой взгляд) пригодным для демонстрации.
Итак, встречаем.






Скачать WindMill Framework v0.88 альфа (3,59 мб)




Скачать WindMill SDK v0.90 (4,84 мб)




Скачать WindMill SDK v0.92 (5,24 мб)




Скачать WindMill SDK v1.25 (5,09 мб)




WindMill SDK v1.30 rev.39 (5,02 мб)

Учтите, что теперь SDK не содержит скомпилированные примеры, их нужно скачивать отдельно

Скачать скомпилированные примеры WindMill v1.25 (2,71 мб)




WindMill SDK v1.40 (6,02 мб)

Патч Windmill Engine 1.42
Небольшой патч движка от 1.11.2012. Стабильная работа в Windows 8.
Для установки достаточно распаковать скачанный файл в папку с Windmill SDK 1.4.

Windmill 2




Windmill framework - это построенный на базе DirectX движок для создания двухмерных игр. Задуман он был, когда делая текстовую игру я понял, что уже тошнит от псевдографики и что в гробу я ее видел. Так появился Windmill framework. За пару месяцев из 12 простых функций он разросся до текущего состояния.
Главное достоинство - простота использования. Базовое приложение, выводящее пустое окно, занимает всего 7 строк кода. Далее дабы нарисовать картинку, проиграть звук, нужно всего по одной функции на действие. Движок ориентирован на начинающих программистов, поэтому кроме просторы использование имеет и довольно высокую надежность.(я надеюсь))))
Состоит движок из нескольких взаимосвязанных классов, но для работы доступно только несколько интерфейсных функций. ООП реализация полностью скрыта. Для .NET все функции те же, но для простоты включения они собраны в базовый класс. Библиотеки импорта для С++, .NET, PDA не совместимы.
Поддерживаемые языки программирования С++, все .Net языки (пока тестил на шарпе и бейсике). Возможно и Делфи.
Также собираю версию для КПК.
Среда разработки - пока только Microsoft Visual Studio 2008/2010(в остальных просто еще не тестировал)

Возможности:
Вывод двухмерной графики, как статической, так и анимированной. Поддерживаются следующие форматы bmp tga png dds jpg.
Работы с устройствами ввода (клавиатура, мышь)
Воспроизведения звука (формат wav) в отдельном потоке.
Вывод текста(быстрый, не GDI и не его родственник D3DXFont)
Управления звуковыми и графическими ресурсами
отсечение невидимой графики,
воспроизведение звуков с учетом позиции в пространстве(EAX)
самостоятельный поиск ресурсов в структуре каталогов


Требования: DirectX Ноябрь 2008 и выше.
Знание С++ на базовом уровне (на уровне моего курса).

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

http://fabermun.at.ua/load/wmfdemo/1-1-0-13
По этой ссылке можно скачать демо движка, содержащее откомпилированные туториалы, и демку стресс-теста производительности

На закуску скрины:



Игры:

АйсТетрис с исходным кодом (1 мб)




Если у кого-то что-то не запустилось сообщать сразу же, указывая конфигурацию компа.

если вы используете версию 0,89 и выше то и лог-файл.
Прикрепления: 5820661.jpg (11.3 Kb) · 4810306.jpg (78.6 Kb) · 3150085.jpg (66.5 Kb) · 7628550.jpg (65.7 Kb)


Windmill 2

WindMill 2D Game Engine
cute_yellow_elephantДата: Пятница, 14 Декабря 2012, 16:43 | Сообщение # 281
был не раз
Сейчас нет на сайте
Ой, спасибо всем за такие быстрые ответы, думала, ждать буду дольше)

nilrem,
1. Было проверено в первую очередь, забыла написать, извините.
2. Мб. Хотя мучить движок начинала на стационарном компьютере, там стоит WinXP 32-битная вроде, шла просто по урокам, и со звуком было то же самое (дело было в сентябре-октябре, до появления патчей, мб стоит попробовать).
Мм, кстати, GuiEditor 1.1 на моей Win7 тоже не работает, как и предыдущий, а на WinXP некорректно работает при добавлении больше 3 панелей или контейнеров, или когда кнопок больше шести на трех панелях.
3-4. это печально, если так(

GhostEnc, happy Нет, я не объявляла воспроизведение звука в основном цикле. В идеале, я хотела бы добавить звук ко многим действиям внутри моей игры, но протестить звук решила на самом простом, поэтому просто сделала, как в примере, просто фоновый звук, который бы бесконечно повторялся до закрытия приложения.(под катом код WinMain)


А вообще, nilrem, спасибо за движок, действительно довольно простой в использовании)
скрин из игры
GhostEncДата: Пятница, 14 Декабря 2012, 17:50 | Сообщение # 282
почетный гость
Сейчас нет на сайте
У меня в приведенном коде звук работает. Сочувствую)

А если выкинуть несколько мелочей?

Code
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)   
{    
   WindowIni(L"Civilization",1018,640);
   TextGen(L"Arial",25,true,false);

   ResourceIni();
   InputIni();
   SceneManagerIni(6);
   SoundEngineIni(10,true);
   SoundPlayEx(L"mass.wav",1,0,0,0,0,true);
   RunEngine(game); // запуск движка   
   return 0;   
}

То же самое выдает?


Игровая студия Good Ghost City

Dr. H.Story - аркадный платформер.
cute_yellow_elephantДата: Пятница, 14 Декабря 2012, 18:40 | Сообщение # 283
был не раз
Сейчас нет на сайте
GhostEnc, да, все та же автоматная очередь мне в ответ вместо era - the mass( да и вместо любой другой wav, я даже попробовала, мало ли)
GhostEncДата: Пятница, 14 Декабря 2012, 18:58 | Сообщение # 284
почетный гость
Сейчас нет на сайте
sad вроде все говорит о том, что конфликт с железом/дровами или чем еще. Но в этом случае очень странно выглядит тот факт, что на win xp 32 битной это проявляется точно также. Ну, похоже, невероятное совпадение dry

Игровая студия Good Ghost City

Dr. H.Story - аркадный платформер.


Сообщение отредактировал GhostEnc - Пятница, 14 Декабря 2012, 18:58
nilremДата: Вторник, 18 Декабря 2012, 23:59 | Сообщение # 285
Просветленный разум
Сейчас нет на сайте
Вчера собрал первую работоспособную версию движка в dll. Так что отловлю поверхностные баги, и скоро выложу первую "преальфа" версию. Пока только для с++.
Сегодня боролся с производительностью. Оказывается новая система анимации немного, на 10-15 % медленнее. За все нужно платить, ведь она намного удобнее в использовании. Я учел все те жалобы, что были раньше. Редактора пока нет, да и появится не скоро, так что сделал функцию ее создания схожей с той, что была в виндмилл 1.
Целый день я пытался оптимизировать код, пока не понял, что все упирается в производительность видеокарты. Так что с оптимизацией покончено.
Завтра немножко поковыряю звук. Самописный мр3 кодек оказался убог: тормозит, жрет память, да еще и проигрывает не все файлы, так что весьма вероятно что либо выкину его нафиг, либо оставлю с припиской "использовать на свой страх и риск".
Буду дописывать первые туториалы, после чего выложу windmill 2 для первого ознакомления.


Windmill 2

WindMill 2D Game Engine
zodiakДата: Суббота, 29 Декабря 2012, 13:12 | Сообщение # 286
постоянный участник
Сейчас нет на сайте
Цитата (cute_yellow_elephant)
Мм, кстати, GuiEditor 1.1 на моей Win7 тоже не работает


Вот он ссылку давал на версию редактора 1.2.

В этом году виндмил 2 никто не увидят. Обещает после старого нового года.
Но я могу похвастаться что методом постоянного нытья смог таки его пощупать. На первый взгляд движок сильно отличается от предыдущей версии. Очень много изменений, а функционал так вообще впечатляет. Могу предположить, что стольких возможностей сразу в любительских движках нет вообще, я во всяком случае нигде не видел.
Например:
сходу можно использовать Lua скрипты, для этого не нужно подключать никаких библиотек.
возможность проигрывания видеофайлов, вставки его в любой спрайт. Вот только звук при этом не воспроизводится, нужно отдельно запускать звуковую дорожку. Ну и в фри версии можно проигрывать только одно видео.
функции проверки столкновений между различными фигурами точка, линия, круг, прямоугольник. функции возвращают точку столкновения.
Ресурсы(графику, звуки и прочее) можно защищать, упаковивая их в архив.
Система частиц, но без эдитора ее хз как использовать.

Непонравилось:
Спрайты, как обычные так и анимированные теперь нужно создавать. Раньше можно было рисовать тупо по имени. Теперь же нужно думать о передаче идентификатора спрайта в нужное место.
Невозможность инициализации подсистем движка из кода, только через конфиг-файл создаваемый специальной программой. Может кому то так и проще, но не мне.
Органичение на максимум спрайтов в сцене - 50000. С одной стороны, движок все равно не понянет больше, с другой стороны неприятно.
По производительности движок таки проигрывает первой версии. Специально переделал те же тесты, что были и в первом. Если для обычных спрайтов сторость та же, или чуть-чуть выше, то анимация отрисовывается значительно медленнее. На виндмилл 1 30 фпс выдает при 30000 спрайтов, на виндмилл 2 - 24000. Но зато теперь анимацией проще и понятнее управлять. Можно самому указывать, какой кадр отображать, и можно узнать, какой отображается. Ну и хочется надеятся, что еще будут оптимизации.

А, что еще понравилось - теперь туториалы последовательно описывают создание простенькой игрушки.


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

Взломщик
Battle City.Net
AGENTX001Дата: Суббота, 29 Декабря 2012, 21:49 | Сообщение # 287
почётный гцупер
Сейчас нет на сайте
zodiak, а для Free Pascal хедеры есть?

Добавлено (29.12.2012, 21:49)
---------------------------------------------

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

Подхалим:)
Цитата (zodiak)
Теперь же нужно думать о передаче идентификатора спрайта в нужное место.

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

Не впечатлило. Обещанный Box2D добавлен не был, как я понимаю?
Цитата (zodiak)
сходу можно использовать Lua скрипты

Хм, даже не знаю, как реагировать...
Цитата (zodiak)
А, что еще понравилось - теперь туториалы последовательно описывают создание простенькой игрушки.

А это да - хорошо! Не многие инди движки вообще достаточно продокументированы.
zodiakДата: Суббота, 29 Декабря 2012, 23:18 | Сообщение # 288
постоянный участник
Сейчас нет на сайте
Цитата (AGENTX001)
Подхалим:)

Я обещал рекламу)

Цитата (AGENTX001)
Не впечатлило. Обещанный Box2D добавлен не был, как я понимаю?

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

Цитата (AGENTX001)
а для Free Pascal хедеры есть?

Пока только С++.


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

Взломщик
Battle City.Net
AGENTX001Дата: Воскресенье, 30 Декабря 2012, 02:41 | Сообщение # 289
почётный гцупер
Сейчас нет на сайте
Цитата (zodiak)
Но его очень просто добавить самому.

Я знаю. Но... Сам понимаешь.
PandemoniumДата: Четверг, 31 Января 2013, 15:27 | Сообщение # 290
частый гость
Сейчас нет на сайте
Вопрос: что необходимо передавать в RunEngine() для того что бы он запустился?
Код
using System;  
using WindmillEngine;  

namespace FirstGame  
{  
       class Program  
       {  
           static void Main()  
           {  
               Windmill ge = new Windmill();  
               ge.IniEngine("FirstGame", 800, 600, false, ge.COLOR(255, 0, 0, 0));  
               ge.RunEngine(null);  
           }  

           static void Game(Windmill gameEngine)  
           {  
               gameEngine.DrawLine(10, 10, 400, 400, 1, 1, gameEngine.COLOR(255, 255, 255, 255));  
           }  
       }  
}
nilremДата: Четверг, 31 Января 2013, 16:33 | Сообщение # 291
Просветленный разум
Сейчас нет на сайте
Проще использовать статический WindmillCore.
Код

            static void Main()   
            {   
                WindmillCore.IniEngine("FirstGame", 800, 600, false, ge.COLOR(255, 0, 0, 0));   
                WindmillCore.RunEngine(Game);   
            }   

            static void Game()   
            {   
                WindmillCore.DrawLine(10, 10, 400, 400, 1, 1, gameEngine.COLOR(255, 255, 255, 255));   
            }  


Windmill 2

WindMill 2D Game Engine
nilremДата: Вторник, 12 Февраля 2013, 15:18 | Сообщение # 292
Просветленный разум
Сейчас нет на сайте
Цитата (zodiak)
Органичение на максимум спрайтов в сцене - 50000.


Только заметил дезинформацию. Не в сцене, а в слое. При 5 слоях максимум спрайтов == 250000, и тд. Нужно только правильно ими манипулировать.
Но и это не окончательное решение. Сейчас для всех спрайтов память выделяется заранее, на 50000 уходит примерно 5 мб. Мне это сильно не нравится, но зато работает значительно быстрее, чем если выделять память по мере необходимости.


Windmill 2

WindMill 2D Game Engine
WookieДата: Четверг, 27 Марта 2014, 08:53 | Сообщение # 293
Decembear
Сейчас нет на сайте
Сегодня начал работать с WM на C#. Есть несколько вопросов:
1. Где искать таблицу кодов клавиш для KeyCheck?
2. Есть код, вроде этого:
Код
public static void Game()
{
var x = 0;
var y = 0;
//Здесь вывод спрайта, x и y - переменные выше
// Здесь if (MouseLBPress == true) {x = GetMouseX; y = GetMouseY;}
}

Вызывается из RunEngine. Работает, но после того как ЛКМ отпущена, спрайт прорисовывается обратно на x = 0; y = 0;. Что делать?


nilremДата: Пятница, 28 Марта 2014, 11:30 | Сообщение # 294
Просветленный разум
Сейчас нет на сайте
1. Перечисление KEY (после ставишь точку и получаешь все варианты)
2. Не обнулять х и у в каждом кадре.


Windmill 2

WindMill 2D Game Engine
OmniGamerДата: Четверг, 05 Февраля 2015, 15:12 | Сообщение # 295
был не раз
Сейчас нет на сайте
Цитата nilrem ()
Знание С++ на базовом уровне (на уровне моего курса)

Так значит,Что двиг на c++?Можно исходник?
ok ?


  • Страница 15 из 15
  • «
  • 1
  • 2
  • 13
  • 14
  • 15
Поиск:

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