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
|
|
| |
zodiak | Дата: Пятница, 29 Апреля 2011, 10:38 | Сообщение # 41 |
постоянный участник
Сейчас нет на сайте
| nilrem, Допустим, что я буду использовать этот двиг для игры на конкурс №6. 1. Можно ли надеяться на оперативную техподдержку? 2. какая вероятность, что в ближайшие два месяца появится обещанная система частиц и изометрия? И в чем будет выражаться поддержка изометрии? 3. когда следующая версия, а то написано что 1,25 сырая? зы: Использовать буду С# версию. Кстати, при сворачивании на панель задач винформз-приложение через некоторое время падает не выдавая никакой ошибки.
Точка зору окремо взятого індивіда завжди суб'єктивна!
Взломщик Battle City.Net
|
|
| |
nilrem | Дата: Суббота, 30 Апреля 2011, 18:14 | Сообщение # 42 |
Просветленный разум
Сейчас нет на сайте
| 1. Смотря что считать оперативной. Спрашивают, подсказываю, если время есть. Могу пообещать отвечать на вопросы минимум раз в день, но при одном условии - проект должен быть овпенсорсным. 2. Вероятность равна 0. Пока делаю Foundling, двиг развивается только в той его части, что нужна для мобильного проекта. Но попутно найденные в двиге ошибки правлю сразу везде, чтоб потом не забыть. Тот баг, что в зы за все время я видел 1 раз, как начал делать редактор, тогда я его поймал и исправил. Под поддержкой изометрии я подразумеваю очередность отрисовки спрайтов, в зависимости от их позиции на экране. То есть, спрайты которые как бы ближе к игроку должны перекрывать те, что дальше. Сейчас они рисуются в том порядке, в котором вызывалась функция DrawSprite() и ее вариации. На очередность отрисовки сейчас влияют только слои. Изометрия появится тоже не скоро. Вообще-то там нет ничего сложного, но нужно полностью переписать весь "конвейер рендеринга", а это долго (и лень)). Кому надо - пусть пока делает сам. Всего-то добавить сортировку по координатам. 3. Следующий СДК будет, скорее всего, на годовщину движка. Если надо, могу дать текущий билд библиотек.
Windmill 2
WindMill 2D Game Engine
|
|
| |
pyatnica70rus | Дата: Вторник, 03 Мая 2011, 13:12 | Сообщение # 43 |
почетный гость
Сейчас нет на сайте
| А как вы выводите 10к спрайтов? Списками? Не может же быть, что по одному одной функцией о_о Шикарно, если честно)
Robrain noTformaT: в чем различие между скриптовым яп и обычным компилируемым яп? Ничем. Какое [] юнити? Какая [] дружба? Если ты не уважаешь никого, [] тебе это нужно?
|
|
| |
nilrem | Дата: Воскресенье, 15 Мая 2011, 13:36 | Сообщение # 44 |
Просветленный разум
Сейчас нет на сайте
| Без комментариев.
Windmill 2
WindMill 2D Game Engine
|
|
| |
Snogg | Дата: Понедельник, 16 Мая 2011, 19:22 | Сообщение # 45 |
постоянный участник
Сейчас нет на сайте
| И чо случилось? Мне показалось что-то хорошее. Кста, а справка по командам есть в двиге?
|
|
| |
nilrem | Дата: Вторник, 17 Мая 2011, 07:55 | Сообщение # 46 |
Просветленный разум
Сейчас нет на сайте
| Quote (Snogg) И чо случилось? Случилась поддержка языка Delphi, что можно заметить, если присмотреться к названию среды на скрине. Quote (Snogg) Кста, а справка по командам есть в двиге? Есть 160-страничное Руководство разработчика, содержащее 17 детальных уроков и описание всех функций.
Windmill 2
WindMill 2D Game Engine
|
|
| |
Snogg | Дата: Вторник, 17 Мая 2011, 18:07 | Сообщение # 47 |
постоянный участник
Сейчас нет на сайте
| Quote (nilrem) Есть 160-страничное Руководство разработчика, содержащее 17 детальных уроков и описание всех функций. Сам писал? И как я понял с таким руководством можно даже и без знания этих япов, писать на нём игру?
Сообщение отредактировал Snogg - Вторник, 17 Мая 2011, 18:49 |
|
| |
mihas2 | Дата: Вторник, 17 Мая 2011, 18:31 | Сообщение # 48 |
UDK User
Сейчас нет на сайте
| Snogg, тупой вопрос.
|
|
| |
TheWickerMan | Дата: Понедельник, 06 Июня 2011, 23:07 | Сообщение # 49 |
частый гость
Сейчас нет на сайте
| Движок можно как-нибудь подключить к QT Creator ?
Богам спешить некуда - у них впереди вечность.
|
|
| |
noTformaT | Дата: Понедельник, 06 Июня 2011, 23:45 | Сообщение # 50 |
Ukrainian independent game developer
Сейчас нет на сайте
| Quote (TheWickerMan) QT Creator ? от нокиа или оригинальный? Просто подключаете хедеры и нужные им динам. библы
@noTformaT
|
|
| |
vetolo | Дата: Вторник, 07 Июня 2011, 13:54 | Сообщение # 51 |
участник
Сейчас нет на сайте
| 1>c:\documents and settings\админ\мои документы\visual studio 2010\projects\tutorial_1\empty.cpp(1): fatal error C1083: Не удается открыть файл включение: ..\\..\\..\\..\\wme\\windmill.h: No such file or directory хотя папку wme закинул((
I like Minimal techno.
|
|
| |
TheWickerMan | Дата: Четверг, 09 Июня 2011, 13:23 | Сообщение # 52 |
частый гость
Сейчас нет на сайте
| не находило windmill.dll , хотя я уже запихнул этот файл во все папки проекта. Кинул в C:\Windows\SysWOW64 - заработало, хотя пишет, что 'wind.exe': Loaded 'C:\Windows\SysWOW64\windmill.dll', Binary was not built with debug information.
прога компилируется, выскакивает на секунду консольное окно и все.
Богам спешить некуда - у них впереди вечность.
Сообщение отредактировал TheWickerMan - Четверг, 09 Июня 2011, 13:37 |
|
| |
nilrem | Дата: Пятница, 10 Июня 2011, 20:56 | Сообщение # 53 |
Просветленный разум
Сейчас нет на сайте
| TheWickerMan, 1. Я уже писал что в VS 2010 express иногда появляется какой-то баг с путями. В ранних версиях были отдельные примеры под 2010, потом я на нее из-за этого бага забил) Щас посталил Ultimate там посмотрим. Попробуй создать новый проект и сделать все по руководству самостоятельно. Может при коныертации что-то где-то несовместимо.
2. Работоспособность в 64 битной винде не гарантируется.
Quote (TheWickerMan) Binary was not built with debug information. Не критично. Пытается отладить длл, но не может найти там отладочной информации.
Quote (TheWickerMan) прога компилируется, выскакивает на секунду консольное окно и все. Если все сделано правильно, консольное окно появится не может никоим образом. Лог создается? че пишет?
Quote (TheWickerMan) Движок можно как-нибудь подключить к QT Creator ? Без понятия, шо воно таке)
Windmill 2
WindMill 2D Game Engine
|
|
| |
TheWickerMan | Дата: Пятница, 10 Июня 2011, 22:03 | Сообщение # 54 |
частый гость
Сейчас нет на сайте
| У меня 2008 express edition, а не 2010 . Никакой информации в консольном окне не появляется, а сделано все правильно, проверил не раз и даже дважды переделал
Богам спешить некуда - у них впереди вечность.
|
|
| |
nilrem | Дата: Понедельник, 04 Июля 2011, 11:37 | Сообщение # 55 |
Просветленный разум
Сейчас нет на сайте
| Добрый утро. Хотя нифига оно не добрый. Думал сегодня (ровно год прошел от создания темы) выложить новую версию, но не судьба. Некоторые незначительные изменения функционала сильно ударили по производительности. Скорость работы с анимацией упала в десять раз. А виновата во всем функция удаления анимации. Раньше идентификатор анимации был порядковым номером анимации в массиве, поэтому удаление элементов было невозможным, зато работало быстро. Теперь это случайно сгенерированное уникальное число. Стало возможным делать с анимацией все что угодно, да только поиск в массиве необходимой анимации по идентификатору занимает очень много времени. Если раньше рендеринг 1000 анимированных спрайтов выдавал 600 фпс, то сейчас 50. Сейчас пытаюсь оптимизировать, но скорее всего придется производительности пожертвовать память. Каждый анимированный объект занимает 100 байт. Лучше пусть оно сожрет 100 килобайт, но при этом выдает 600 фпс.
Windmill 2
WindMill 2D Game Engine
|
|
| |
Demeron | Дата: Понедельник, 04 Июля 2011, 12:03 | Сообщение # 56 |
User created in C++
Сейчас нет на сайте
| Quote (nilrem) Раньше идентификатор анимации был порядковым номером анимации в массиве, поэтому удаление элементов было невозможным, зато работало быстро. Теперь это случайно сгенерированное уникальное число. Стало возможным делать с анимацией все что угодно, да только поиск в массиве необходимой анимации по идентификатору занимает очень много времени. что используешь для поиска в массиве? лудше используй не массив, а список (list), а ещо лудше vector (он в 3 раза быстрее чем list, а в использовании почти такой же). Я в своем движке использую vector, так как это удобно пользователю (может сделать id 100 200 300 650 10000 и тд.). Ещо лудше создать свою структуру или класс типо:
struct GameTexture { int id; LPDIRECT3DTEXTURE9 texture; int width,height; };
std::vector<GameTexture> textur; - сам вектор
А для поиска в векторе использую следующее:
LPDIRECT3DTEXTURE9 FindTexture(int ID) { std::vector<GameTexture>::const_iterator var; int id; LPDIRECT3DTEXTURE9 rettex=NULL;
for (var = textur.begin();var != textur.end(); ++var) { id=var->id; if (id==ID){rettex=var->texture;return rettex;} }
return rettex; }
Удачи!
|
|
| |
Rumata | Дата: Понедельник, 04 Июля 2011, 12:32 | Сообщение # 57 |
почетный гость
Сейчас нет на сайте
| Demeron, массив всяко быстрее вектора, потому что массив это выделенная память, а вектор это класс. И любой самописный класс будет проигрывать массиву по скорости, тут я уверен, поэтому поддерживаю идею nilrem'а
|
|
| |
Demeron | Дата: Понедельник, 04 Июля 2011, 12:46 | Сообщение # 58 |
User created in C++
Сейчас нет на сайте
| Quote (Rumata) Demeron, массив всяко быстрее вектора, потому что массив это выделенная память, а вектор это класс. И любой самописный класс будет проигрывать массиву по скорости, тут я уверен, поэтому поддерживаю идею nilrem'а Что массив быстрее вектора я убедился уже давно, НО!: что если пользователю понадобиться больше памяти, чем выделено масиву? Лишние заморочки? Темболее это я так, добавил к последнему посту автора, вдруг ему пригодиться...
|
|
| |
nilrem | Дата: Понедельник, 18 Июля 2011, 17:43 | Сообщение # 59 |
Просветленный разум
Сейчас нет на сайте
| Quote (nilrem) Если раньше рендеринг 1000 анимированных спрайтов выдавал 600 фпс, то сейчас 50. Сейчас пытаюсь оптимизировать, но скорее всего придется производительности пожертвовать память. Каждый анимированный объект занимает 100 байт. Лучше пусть оно сожрет 100 килобайт, но при этом выдает 600 фпс.
Придумал как сохранить память и не потерять производительность. В результате даже получится небольшой прирост: 1000 спрайтов - 640 фпс. Потестирую все, перепишу самплы и воможно до выходных выложу новую версию.
Типа реклама. Версию 1.3 движка можно будет использовать совместно с С++, С#, VB.NET, Delphi
Windmill 2
WindMill 2D Game Engine
|
|
| |
TideS | Дата: Понедельник, 18 Июля 2011, 20:32 | Сообщение # 60 |
заслуженный участник
Сейчас нет на сайте
| nilrem, Жду поддержки Java, можно ли надеяться на ее реализацию?
|
|
| |
|