Воскресенье, 24 Ноября 2024, 23:45

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
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
AGENTX001Дата: Суббота, 17 Декабря 2011, 17:02 | Сообщение # 121
почётный гцупер
Сейчас нет на сайте
Quote (nilrem)
Перезалил с другой длл, в которую пытался впихнуть фикс для вин64, попробуй.

норм.
Quote (nilrem)
Обсуждаемо.

Делай процедурной.) А то все дельфиновские двиги ООП, ну кроме дгле, так он не развивается.. А новичку во всех этих типах, объектах, методов разобраться не реал.
ps хотя некоторых "усложнений" хочется, напр когда ресы загружаются, присваивай им идентификатор, удобнее, чем писать имя файла.

Добавлено (17.12.2011, 17:02)
---------------------------------------------
Ещё нужны шейдеры (хотябы штук 15 стандартных эффектов) и изометрия.

prog_154rusДата: Суббота, 17 Декабря 2011, 18:41 | Сообщение # 122
Lonely Developer
Сейчас нет на сайте
Учите ООП.
0x90Дата: Суббота, 17 Декабря 2011, 19:06 | Сообщение # 123
участник
Сейчас нет на сайте
Quote (nilrem)
Обсуждаемо.

Еще один голос за процедурность. Если кому-то непременно хочется объектов, сам обернет.

Добавлено (17.12.2011, 19:06)
---------------------------------------------
Начиная со второго тутора ничего не работает. Глючит функция DrawSprite.

zodiakДата: Четверг, 22 Декабря 2011, 13:34 | Сообщение # 124
постоянный участник
Сейчас нет на сайте
Quote (0x90)
Еще один голос за процедурность. Если кому-то непременно хочется объектов, сам обернет.

Что интересно, ничего там оборачивать не нужно, а как раз наоборот, нужно разворачивать. Поскольку движок и так состоит из классов, завернутых в функции (смотрите исходники). Сделано это, скорее всего, для упрощения поддержки нескольких языков программирования, с классами это было бы сложнее.
Но с классами было бы удобнее работать. так что я за них.

Quote (0x90)
Начиная со второго тутора ничего не работает. Глючит функция DrawSprite.

У меня не глючит. Хоть бы конкретнее описал.


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

Взломщик
Battle City.Net
prog_154rusДата: Суббота, 24 Декабря 2011, 12:03 | Сообщение # 125
Lonely Developer
Сейчас нет на сайте
Голос за ООП. В java точно. Кстати, сделай c-библиотеку для Пайтона
AGENTX001Дата: Суббота, 24 Декабря 2011, 13:52 | Сообщение # 126
почётный гцупер
Сейчас нет на сайте
Quote (prog_154rus)
Кстати, сделай c-библиотеку для Пайтона

Блин, может лучше он доделает всё по нормальному для дельфина?)
0x90Дата: Суббота, 24 Декабря 2011, 14:36 | Сообщение # 127
участник
Сейчас нет на сайте
Quote (zodiak)
У меня не глючит. Хоть бы конкретнее описал.

Нечего описывать. Просто вылетает и всё, какое-то необработанное исключения. Видимо проблема только у меня. Позже ради интереса потрейсю и посмотрю что не так.
prog_154rusДата: Суббота, 24 Декабря 2011, 14:37 | Сообщение # 128
Lonely Developer
Сейчас нет на сайте
AGENTX001, дельфи уже не держится под натиском java, c#, VB
AGENTX001Дата: Суббота, 24 Декабря 2011, 14:41 | Сообщение # 129
почётный гцупер
Сейчас нет на сайте
prog_154rus, очень даже держится!
VinchensooДата: Суббота, 24 Декабря 2011, 14:42 | Сообщение # 130
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (0x90)
Нечего описывать. Просто вылетает и всё, какое-то необработанное исключения. Видимо проблема только у меня. Позже ради интереса потрейсю и посмотрю что не так.

Дотнет установлен? Вчера вспоминал, сколько было грязного секса с дотнетом, когда тестили первые версии движка. Он просто отказывался нормально работать.


AGENTX001Дата: Суббота, 24 Декабря 2011, 14:44 | Сообщение # 131
почётный гцупер
Сейчас нет на сайте
Кстате где автор? С понедельника не появлялся...
VinchensooДата: Суббота, 24 Декабря 2011, 14:50 | Сообщение # 132
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (AGENTX001)
Кстате где автор? С понедельника не появлялся...

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


0x90Дата: Суббота, 24 Декабря 2011, 14:55 | Сообщение # 133
участник
Сейчас нет на сайте
Quote (Vinchensoo)
Дотнет установлен?

Нет. Компилировал примеры на С, зачем он нужен?
VinchensooДата: Суббота, 24 Декабря 2011, 14:59 | Сообщение # 134
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (0x90)
Нет. Компилировал примеры на С, зачем он нужен?

Ээ, может я что-то упустил в развитии движка, но раньше он работал на дотнет(С#). Соотвественно, этот самый дотнет нужен для инициализации движка. Может автор уже переписал, давно это было.
Тогда извиняюсь.


AGENTX001Дата: Суббота, 24 Декабря 2011, 15:05 | Сообщение # 135
почётный гцупер
Сейчас нет на сайте
Vinchensoo, а может у меня из-за этого дотнета не пашут стандартный тузлы из комплекта движка? Типа гуи эдитор и архиспрайтер? net framework есть а вот про дотнет не слышал... Чё за зверь такой?
VinchensooДата: Суббота, 24 Декабря 2011, 15:09 | Сообщение # 136
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (AGENTX001)
Vinchensoo, а может у меня из-за этого дотнета не пашут стандартный тузлы из комплекта движка? Типа гуи эдитор и архиспрайтер? net framework есть а вот про дотнет не слышал... Чё за зверь такой?

Подразумевается нетфреймворк. .(dot)NET


AGENTX001Дата: Вторник, 10 Января 2012, 23:06 | Сообщение # 137
почётный гцупер
Сейчас нет на сайте
Vinchensoo, аа... Кста, архиспрайтер заработал, но работает тольько когда кидаеншь его в папку со спрайтами.

Добавлено (10.01.2012, 23:04)
---------------------------------------------
nilrem, как у тя там дела?) Кста, понял, чего очень не хватает в двиге - возможности делать изометрию, коллизий. И ещё очень хочется класс стандартного игрового объекта, а то массивы для спрайтов, и процедура перебора+отрисовки уже задолбали dry

Добавлено (10.01.2012, 23:06)
---------------------------------------------
Да, и отрисовывать спрайт по имени файла очень неудобно))

RumataДата: Среда, 11 Января 2012, 18:16 | Сообщение # 138
почетный гость
Сейчас нет на сайте
Quote (AGENTX001)
И ещё очень хочется класс стандартного игрового объекта, а то массивы для спрайтов, и процедура перебора+отрисовки уже задолбали

Напиши свой (это не шутка/сарказм, а реальное предложение:))

У меня вот GUIEdit не работает, хоть ты тресни



AGENTX001Дата: Четверг, 12 Января 2012, 20:01 | Сообщение # 139
почётный гцупер
Сейчас нет на сайте
Quote (Rumata)
Напиши свой (это не шутка/сарказм, а реальное предложение:))

Ну так и делаю)) Просто это движок для новичков, а новичкам такая штука понравится))
smach1Дата: Воскресенье, 22 Января 2012, 22:21 | Сообщение # 140
был не раз
Сейчас нет на сайте
Небольшой вопрос: создаю класс, в нем функция, рисующая спрайт по координатам x y. Ну, с созданием класса и экземпляра класса все понятно, все делал по прилагающемуся мануалу.
Однако при попытке обратиться к переменной x из функции другого класса либо из основного цикла программы (да откуда угодно) способом типа

Code
Zerat.x=15


выдает ошибку "knight *Zerat Выражение должно иметь тип класса". Выражение

Code
Zerat->x=15


вполне работает, но это вроде бы не то?
Примерный листинг
Code


class knight
{
public:
     float x,y;
     knight(void);
     void Draw();
};
knight::knight(void)
{
     x=100;
     y=250;
}

void knight::Draw(void)
{
     DrawSprite(L"file.png",x,y);
}

void game();

knight *Zerat;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
   IniEngine(L"Advanced animation",800,600,false);
     

   Zerat = new knight;

   RunEngine(game);
   delete Zerat;
   return 0;
}

void game()
{
         Zerat->Draw();
         Zerat.x++;                  // Ошибка: выражение слева от ".x" должно представлять класс, структуру или объединение

}



Сообщение отредактировал smach1 - Воскресенье, 22 Января 2012, 22:24
Поиск:

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