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 и выше то и лог-файл.
Windmill 2
WindMill 2D Game Engine
|
|
| |
Rumata | Дата: Понедельник, 09 Июля 2012, 20:13 | Сообщение # 221 |
почетный гость
Сейчас нет на сайте
| Insonex, какое управление? Внимательно читай руководство, урок 6 "Управление анимацией". Никаких проблем быть не должно
|
|
| |
Insonex | Дата: Понедельник, 09 Июля 2012, 20:26 | Сообщение # 222 |
частый гость
Сейчас нет на сайте
| Quote (Rumata) Insonex, какое управление? Внимательно читай руководство, урок 6 "Управление анимацией". Никаких проблем быть не должно Ты, похоже, не понял меня. Управление-то работает, если я делаю так: Code DrawSprite(L"Hero.png", x, y); Но... он (спрайт) появляется где-то в левом верхнем углу, а мне нужно, чтобы он появлялся там, где мне надо. Пытался задать координаты: Code DrawSprite(L"Hero.png", 10, 517); И управление перестает работать (и я даже знаю почему так, наверное), но я не знаю того, как это можно пофиксить.
|
|
| |
Demeron | Дата: Понедельник, 09 Июля 2012, 20:33 | Сообщение # 223 |
User created in C++
Сейчас нет на сайте
| Quote (Insonex) и я даже знаю почему так Да неужели? Может потому что ты задаешь статистические данные?
Quote (Insonex) а мне нужно, чтобы он появлялся там, где мне надо А ты попробуй "объяснить" движку, что ты от него хочешь, ибо даже я мало чего понял...
|
|
| |
TimKruz | Дата: Понедельник, 09 Июля 2012, 21:05 | Сообщение # 224 |
старожил
Сейчас нет на сайте
| Quote (Insonex) Управление-то работает, если я делаю так: DrawSprite(L"Hero.png", x, y); Quote (Insonex) Пытался задать координаты: DrawSprite(L"Hero.png", 10, 517); И управление перестает работать С движком я не работал, но могу предположить, что x и y - это управляющие переменные, они меняются от нажатий кнопок клавиатуры... Изначально они нулевые, т.е. задают координаты (0;0) - левый верхний угол экрана/окна. Я так понимаю, DrawSprite выводится каждый тик таймера (или каждая прорисовка экрана). Так вот, когда ты задаёшь x и y в качестве аргументов, они могут изменяться от нажатий кнопок клавиатуры и, соответственно, менять расположение спрайта (ведь он перерисовывается каждый раз). Если ты задашь константу (просто числа), то спрайт будет всегда перерисовываться в этом месте, и не будет никак зависеть от x и y, т.е. от клавиатуры. Как я уже говорил, x и y сначала нулевые, поэтому их нужно задать, но не в цикле прорисовки, а в коде инициализации окна/движка. Не знаю, где и как инициализируется WindMill, но наверняка это делается при инициализации окна (событие onCreate, эквивалентное Windows-сообщению WM_CREATE), поэтому тебе нужно найти эту строчку и после неё (и после всех остальных строчек, отвечающих за настройку движка) вписать две строчки, в которых ты присваиваешь начальные значения X и Y, в данном случае 10 и 517. А в функции DrawSprite оставь аргументы x и y.
|
|
| |
Insonex | Дата: Понедельник, 09 Июля 2012, 21:26 | Сообщение # 225 |
частый гость
Сейчас нет на сайте
| TimKruz, я уже разобрался, но все равно спасибо за старание помочь.
Сообщение отредактировал Insonex - Понедельник, 09 Июля 2012, 21:28 |
|
| |
zodiak | Дата: Понедельник, 09 Июля 2012, 23:40 | Сообщение # 226 |
постоянный участник
Сейчас нет на сайте
| Нашел баг в работе системы анимации. Чем больше времени проходит между созданием анимации функцией CreateAnimation и ее отрисовкой, тем менее предсказуемо ее поведение. Такое ощущение, что она пытается нагнать пропущенный интервал, либо проигрываясь быстрее, либо пропуская кадры. Такое происходит только один раз, потом все нормально. Если создавать анимацию непосредственно перед ее отображением, то все ок.
Точка зору окремо взятого індивіда завжди суб'єктивна!
Взломщик Battle City.Net
|
|
| |
Demeron | Дата: Понедельник, 09 Июля 2012, 23:52 | Сообщение # 227 |
User created in C++
Сейчас нет на сайте
| zodiak, скорее всего анимация просто обновляется все время, а не перед рисованием.
|
|
| |
Insonex | Дата: Вторник, 10 Июля 2012, 20:14 | Сообщение # 228 |
частый гость
Сейчас нет на сайте
| Что насчет физики? Можно ли подключить физический движок, например, Box2D?
|
|
| |
AGENTX001 | Дата: Вторник, 10 Июля 2012, 20:48 | Сообщение # 229 |
почётный гцупер
Сейчас нет на сайте
| Insonex, это зависит только от тебя
|
|
| |
nilrem | Дата: Вторник, 10 Июля 2012, 21:48 | Сообщение # 230 |
Просветленный разум
Сейчас нет на сайте
| Quote (zodiak) Такое ощущение, что она пытается нагнать пропущенный интервал, либо проигрываясь быстрее, либо пропуская кадры. Так и есть, поскольку, для упрощения использования, функция автоматически высчитывает время между кадрами. Если между созданием анимации и ее первым отображением прошло некоторое время, то часть кадров анимации будет пропущена. Чтобы этого избежать, нужно либо создавать анимацию перед воспроизведением, либо обновлять ее вручную функцией UpdateAnimation, передавая ей время, прошедшее с последнего обновления. Или при создании анимации задать ей нулевую скорость, потом установив нужную.
Windmill 2
WindMill 2D Game Engine
|
|
| |
ilgamer | Дата: Вторник, 14 Августа 2012, 15:50 | Сообщение # 231 |
Needle Games
Сейчас нет на сайте
| Давай поворот спрайта!
Извиняюсь, мой косяк.
Сообщение отредактировал ilgamer - Понедельник, 03 Сентября 2012, 12:14 |
|
| |
nilrem | Дата: Среда, 15 Августа 2012, 19:58 | Сообщение # 232 |
Просветленный разум
Сейчас нет на сайте
| Quote (ilgamer) Давай поворот спрайта! Шо?
Windmill 2
WindMill 2D Game Engine
|
|
| |
maXimBestUA | Дата: Суббота, 18 Августа 2012, 10:10 | Сообщение # 233 |
почетный гость
Сейчас нет на сайте
| Подскажите а как выводить значение переменных на экран, и записывать данные в файл(делать сохранения, таблицы рекордов)?
|
|
| |
zodiak | Дата: Четверг, 23 Августа 2012, 14:54 | Сообщение # 234 |
постоянный участник
Сейчас нет на сайте
| Quote (maXimBestUA) Подскажите а как выводить значение переменных на экран, Функциями Print и PrintDigit.
Quote (maXimBestUA) и записывать данные в файл С помощью движка никак. Используй стандартные средства языка, на котором пишешь (с++ - fstream, C# - IO.File или сериализацию в xml)Добавлено (23.08.2012, 14:54) --------------------------------------------- nilrem, Редактор GUI в Виндовз 7 падает при загрузке файла гуи. Можно поправить? Как раз очень нужно, а ВинХР рядом нет.
Точка зору окремо взятого індивіда завжди суб'єктивна!
Взломщик Battle City.Net
|
|
| |
AGENTX001 | Дата: Воскресенье, 26 Августа 2012, 13:54 | Сообщение # 235 |
почётный гцупер
Сейчас нет на сайте
| zodiak, файл гуи должен быть в одной папке с экзешником редактора. Мне помогло.
|
|
| |
nilrem | Дата: Воскресенье, 26 Августа 2012, 23:27 | Сообщение # 236 |
Просветленный разум
Сейчас нет на сайте
| Quote (zodiak) Редактор GUI в Виндовз 7 падает при загрузке файла гуи. Можно поправить? Можно, вот редактор версии 1.1. У меня на Вин7 работает. Протестируйте в ВинXP.
Windmill 2
WindMill 2D Game Engine
|
|
| |
nilrem | Дата: Суббота, 01 Сентября 2012, 13:25 | Сообщение # 237 |
Просветленный разум
Сейчас нет на сайте
| Патч Windmill Engine 1.41 Выкладываю небольшой патч движка в честь начала нового учебного года. Ничего нового он не вносит, только правит найденные баги. Для установки достаточно распаковать скачанный файл в папку с Windmill SDK 1.4.
• Основные исправление - работа звука на Вин7. Звуковой движок ранее не работал в 50% пользователей седьмой винды. • Также поправлены некоторые баги в С# врапере, в частности ошибки маршалинга. • Уменьшено потребление памяти в генераторе шрифтов (примерно на 40 мб), что согласитесь не мало. • Ускорена работа менеджера ресурсов. • Другие мелкие ошибки (23 штуки) • Используется версия DirectX от июня 2010 года. • В патч включен исправленный редактор ГУИ.
Инициатором появления патча был пользователь zodiak, который периодически слал мне найденные баги, за что ему отдельное спасибо. У него в Вин7 звук не заработал и он пригрозил бросить движок. Чтобы не потерять ценного тестера, пришлось немножко перелопатить код.))
Новая Dll полность совместима с предыдущей, можно заменять без перекомпиляции. Патч окончательно не протестирован, так что не исключено появление новых багов.
Windmill 2
WindMill 2D Game Engine
|
|
| |
ilgamer | Дата: Понедельник, 03 Сентября 2012, 07:50 | Сообщение # 238 |
Needle Games
Сейчас нет на сайте
| Подскажите как вывести значение переменной с типом int или float?
|
|
| |
nilrem | Дата: Понедельник, 03 Сентября 2012, 14:04 | Сообщение # 239 |
Просветленный разум
Сейчас нет на сайте
| Quote (ilgamer) Подскажите как вывести значение переменной с типом int или float? PrintDigit
Windmill 2
WindMill 2D Game Engine
|
|
| |
ilgamer | Дата: Суббота, 08 Сентября 2012, 08:57 | Сообщение # 240 |
Needle Games
Сейчас нет на сайте
| Спасибо. Ждите новых проектов на движке.
|
|
| |
|