Пятница, 29 Марта 2024, 13:41

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Ваши проекты » Разработка движков и сред разработки » WindMill 2D Game Engine (Движок для 2D игр любого жанра.)
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
JackNazaryanДата: Воскресенье, 28 Октября 2012, 02:05 | Сообщение # 261
старожил
Сейчас нет на сайте
Это все модераторы создают супер проекты cool ?
nilremДата: Суббота, 03 Ноября 2012, 23:11 | Сообщение # 262
Просветленный разум
Сейчас нет на сайте
Quote (ilgamer)
Будь возможность видео-заставки в игру вставлять


Будет. Но видео и звук придется воспроизводить отдельно.

Кстати, лед тронулся. На текущий момент прогресс разработки достиг 50 %.


Windmill 2

WindMill 2D Game Engine
СибирскийДата: Воскресенье, 04 Ноября 2012, 12:18 | Сообщение # 263
Javatar
Сейчас нет на сайте
nilrem, можешь закрепить в шапку версии для разных языков, которые давно кидал.

nilremДата: Воскресенье, 04 Ноября 2012, 23:09 | Сообщение # 264
Просветленный разум
Сейчас нет на сайте
Новый патч 1.42
Он обеспечивает стабильную работу в Windows 8.
C# версия требует .NET Framework 4. (Предустановленный в Win8).
Для работоспособности движка в "голой" ОС достаточно установить последний DirectX.
Также правит один критический баг, внесенный патчем 1,41. Так что ссылку на него я с шапки убираю.

Ну и небольшой анонс. Довольно скоро, может даже в этот месяце, появится преальфа WindMill 2.

Quote (Сибирский)
nilrem, можешь закрепить в шапку версии для разных языков, которые давно кидал.

Версий для разных языков не существует. Все собрано в одном SDK.
То, что я давно кидал по отдельности для делфи и java, это были тестовые сборки.


Windmill 2

WindMill 2D Game Engine
GhostEncДата: Четверг, 08 Ноября 2012, 00:03 | Сообщение # 265
почетный гость
Сейчас нет на сайте
Вопрос на миллион: заметил, что функция DrawSprite катастрофически сажает фпс, например одновременный вывод 600 неанимированных спрайтов оставляет игру в принципе играбельной, но падение сильно ощущается. Это как бы некритично, поэтому я легко смирился. Сегодня экспериментировал с редактором карты, проверял одну функцию по добавлению объекта в сцену, но картинку к нему не нарисовал, соответственно отображался стандартный спрайт windmill с мельницей и надписью "картинка не найдена". В общем суть в том, что я добавил 2000 с лишним подобных объектов подряд и никакого падения производительности не заметил - фпс как был 124 так и остался. Я подозреваю, что за выводом изображения об отсутствующем спрайте руководит какая то отличная от DrawSprite функция? Если это вообще возможно, было бы здорово воспользоваться подобным механизмом для нее, потому как в настоящем варианте это очень нестабильная штука. Хм, то есть стабильная конечно, но жутко тормознутая.

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

Dr. H.Story - аркадный платформер.
nilremДата: Четверг, 08 Ноября 2012, 12:01 | Сообщение # 266
Просветленный разум
Сейчас нет на сайте
Quote (GhostEnc)
Я подозреваю, что за выводом изображения об отсутствующем спрайте руководит какая то отличная от DrawSprite функция?

Нет, функция одна и та же. Это легко проверить, убрав в демке производительно файл с изображением. ФПС изменится незначительно, и то только потому, что дефолтная картинка небольшая, имеет низкое разрешение.
Вообще, резкое падение производительности для видеокарт, это нормально, но оно не линейное. Если пустой экран выдает 10000 то добавление всего одного спрайта может просадить его вдвое. А при тыще спрайтов станет 200, при 10000 - 50.

И небольшой совет, вызывайте функцию рисования только для видимых объектов. Хоть движок и отсекает невидимые, все равно выполняется слишком много проверок, чтобы такой вызов остался незаметным.


Windmill 2

WindMill 2D Game Engine
GhostEncДата: Четверг, 08 Ноября 2012, 14:39 | Сообщение # 267
почетный гость
Сейчас нет на сайте
Да, рисуются только видимые объекты. Да и при количестве одних только блоков в 150000 по другому не могло быть
Не поленился, проверил: в том месте где раньше было 70 фпс - рисуется часть уровня с наибольшей плотностью блоков - теперь стало 140-170, а это больше чем удвоение производительности) И, притом, каждый блок был размером 5х5 пикселей, а мельница с ошибкой никак не менее 50х50. И такой эффект. Это как минимум нелогично) Может все таки есть какая то особенность (я очень надеюсь на это)?


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

Dr. H.Story - аркадный платформер.
nilremДата: Четверг, 08 Ноября 2012, 15:04 | Сообщение # 268
Просветленный разум
Сейчас нет на сайте
Quote (GhostEnc)
Может все таки есть какая то особенность (я очень надеюсь на это)?

Дома гляну код. А то на работе у меня исходники только Windmill 2, в нем рендер сделан по другому.


Windmill 2

WindMill 2D Game Engine
nilremДата: Пятница, 09 Ноября 2012, 14:47 | Сообщение # 269
Просветленный разум
Сейчас нет на сайте
Провел небольшой эксперимент. Взял изображение default.bmp, оно же "Картинка не найдена", и нарисовал вручную функцией DrawSprite 30000 спрайтов, получил 30 фпс. Затем удалил default.bmp, чтоб движок использовал внутренне. ФПС один в один.
Отобразил 30000 звездочек, фпс == 8, потому как больше размер, много цветов и полупрозрачность.
Так что причина изменения фпс в самой картинке.


Windmill 2

WindMill 2D Game Engine
GhostEncДата: Пятница, 09 Ноября 2012, 17:27 | Сообщение # 270
почетный гость
Сейчас нет на сайте
Да, я тоже вчера пришел к такому выводу. Чертов формат png =(

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

Dr. H.Story - аркадный платформер.
nilremДата: Вторник, 20 Ноября 2012, 11:49 | Сообщение # 271
Просветленный разум
Сейчас нет на сайте
Чуть информации про Windmill 2.

Как я писал ранее, если в движке появятся шейдеры, то он станет платным. Поэтому довожу до вашего ведома что Windmill 2 будет существовать в двух вариантах: Free и Pro.
Free будет абсолютно бесплатной, но с ограниченным функционалом. Поддержки шейдеров в ней не будет.
Те, кто позарится на Pro, помимо полного функционала, получат доступ к расширенной документации с большим количеством примеров, к библиотеке шейдеров. Также в Pro-версии будет возможность создания игр для соцсетей (ВК, Мой мир, одноклассники).
Стоимость профессиональной версии будет небольшой, из расчета чтобы хватило на качественный хостинг, поллитры да полграмма).

Создал вконтакте сообщество - http://vk.com/windmill2. Просю.


Windmill 2

WindMill 2D Game Engine
allxumukДата: Вторник, 20 Ноября 2012, 15:02 | Сообщение # 272
старожил
Сейчас нет на сайте
Quote (nilrem)
Также в Pro-версии будет возможность создания игр для соцсетей (ВК, Мой мир, одноклассники).

HTML5, Flash или какая-то более экстравагантная технология?


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
MrNeshДата: Вторник, 20 Ноября 2012, 17:22 | Сообщение # 273
Воин добра и света
Сейчас нет на сайте
Html5 наверно biggrin

nilremДата: Среда, 21 Ноября 2012, 15:06 | Сообщение # 274
Просветленный разум
Сейчас нет на сайте
Хтмл еще молодой, а флеш мне не нравится. Так что Silverlight. Удобная IDE и работает везде. почти.

Windmill 2

WindMill 2D Game Engine
AGENTX001Дата: Среда, 21 Ноября 2012, 17:14 | Сообщение # 275
почётный гцупер
Сейчас нет на сайте
nilrem, а как будет проводиться "компиляция" для веба? Или нужно будет с нуля переписывать проект на С#? И ты не думал сделать что-то вроде гейм мэйкера - наделать редакторов, впилить скриптовый ЯП (Lua/Angel Script)?
nilremДата: Среда, 05 Декабря 2012, 00:09 | Сообщение # 276
Просветленный разум
Сейчас нет на сайте
Видеовставкам быть!!!
Наконец-то сделал воспроизведение видео в движке. Пришлось изрядно поднапрячь моск.
Остается доделать 2 вещи: скрипты и частицы и появится альфа-версия движка.
Также сегодня начал писать новую документацию.

Quote (AGENTX001)
nilrem, а как будет проводиться "компиляция" для веба? Или нужно будет с нуля переписывать проект на С#?

С нуля, или портировать существующий С# проект.

Quote (AGENTX001)
И ты не думал сделать что-то вроде гейм мэйкера - наделать редакторов, впилить скриптовый ЯП (Lua/Angel Script)?

Делал. В Pro-версии будут исходники простого конструктора использующего Lua.


Windmill 2

WindMill 2D Game Engine
AGENTX001Дата: Среда, 05 Декабря 2012, 21:19 | Сообщение # 277
почётный гцупер
Сейчас нет на сайте
nilrem, один мой очень авторитетный знакомый (создатель DGLE2) так выразился о Silverlight - "Очередной неудачный высер мелкософта" smile
Quote (nilrem)
Удобная IDE и работает везде. почти.

Да ну? У кого это он установлен? biggrin
Quote (nilrem)
Хтмл еще молодой

Зато перспективный и развивающийся. А динамическая компиляция Java Scripta в скором времени будет во всех браузерах, так что производительность повысится.
Quote (nilrem)
флеш мне не нравится

Флеш, увы, умирает. И адоб прекращением поддержки андроида лишь приблизила его смерть.
cute_yellow_elephantДата: Пятница, 14 Декабря 2012, 00:59 | Сообщение # 278
был не раз
Сейчас нет на сайте
nilrem,
Здравствуйте. Хочу все же поинтересоваться, почему даже с патчем звук на windows 7 может не работать. Очень бы хотелось в созданной игре-курсовой сделать звуковое сопровождение, а вместо него, хоть убейте, только скрежетание из динамиков.

Информация о системе, мм.
"Просмотр основных сведений о вашем компьютере" click
"Звуковые, видео и игровые устройства " click
nilremДата: Пятница, 14 Декабря 2012, 08:54 | Сообщение # 279
Просветленный разум
Сейчас нет на сайте
Quote (cute_yellow_elephant)
почему даже с патчем звук на windows 7 может не работать

В таком порядке:
1. Не установлен последний директх.
2. 64 битная винда.
3. Глюки системы.
4. Глюки железа.

Quote (AGENTX001)
"Очередной неудачный высер мелкософта"

Ключевое слово - "очередной". А предыдущий, наверное, "виндовс".


Windmill 2

WindMill 2D Game Engine
GhostEncДата: Пятница, 14 Декабря 2012, 11:53 | Сообщение # 280
почетный гость
Сейчас нет на сайте
64 битная винда, глюки изначально были замечены, но оказалось что я сам неверно разобрался. В итоге сейчас никаких проблем со звуком (и с чем либо еще) нет. Более того, никто из скачавших демку игры здесь и на геймдев.ру ни на что подобное не жаловался. Так что проблема скорее всего в коде. cute_yellow_elephant, скорее всего ты в основном цикле используешь функцию SoundPlay при каждой итерации, или что то менее очевидное, но приводящее к тому, что звук воспроизводится максимальное количество раз. Если это так, то тебе стоит использовать, к примеру, конструкцию типа

Code

unsigned long sound;//эту переменную объявить как глобальную или в классе
...
if(!GetSoundState(sound))
     sound=SoundPlay(L"sound.wav"); // это действие нужно произвести в основном цикле игры


Как то так. Будет работать


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

Dr. H.Story - аркадный платформер.
Форум игроделов » Ваши проекты » Разработка движков и сред разработки » WindMill 2D Game Engine (Движок для 2D игр любого жанра.)
Поиск:

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