Среда, 12 Мая 2021, 18:48

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Ваши проекты » Разработка движков и сред разработки » 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
RenusДата: Суббота, 21 Августа 2010, 19:00 | Сообщение # 21
почетный гость
Сейчас нет на сайте
Че то я туплю(((
А как через Print вывести переменную?
nilremДата: Суббота, 21 Августа 2010, 19:25 | Сообщение # 22
Просветленный разум
Сейчас нет на сайте
Code


WCHAR c[50];
Print(_itow(555,c,10),100,10,5);

Здесь 555 - нужная переменная.
_itow - стандартная функция, которая преобразовывает число в юникодовскую строку.
Для использования нужно подключить stdlib.h


Windmill 2

WindMill 2D Game Engine
RenusДата: Суббота, 21 Августа 2010, 19:42 | Сообщение # 23
почетный гость
Сейчас нет на сайте
Да это я знаю, там еще через _ecvt, _fcvt, _gcvt можно, если мне память не изменяет)
Я со школы не программировал((( тока ассемблер для AVR...

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

Вообще только сегодня начал твой движок смотреть, вещь интересная и простая, мне нравиться.
Его бы доделать, а то пока что это просто голый рисовальщик, без функций для непосредственного геймплея.
Понятно что грамотный программист сам себе все пропишет, но я вот например игры не программировал никогда, только логику и всякую расчетную хрень для данных... Поэтому ничего сложного не сделаю(((

nilremДата: Суббота, 21 Августа 2010, 20:11 | Сообщение # 24
Просветленный разум
Сейчас нет на сайте
Quote (Renus)
Например функцию PrintVar() сделать, через перегрузку для всех типов...

Потому ее и не будет, что для всех типов...

Пусть начинающие программисты качают скил.

зы: Раньше как-то на это не обращал внимания, но только что придумал, как сделать без перегрузки. Если получится, то в следующей версии PrintVar() будет)


Windmill 2

WindMill 2D Game Engine
RenusДата: Воскресенье, 22 Августа 2010, 05:36 | Сообщение # 25
почетный гость
Сейчас нет на сайте
Что же, ждем)
Интересно будет посмотреть на реализацию с float, сам думал как все в одну функцию вогнать, даже пристройку прилепил небольшую...
Ну если по классике то перебором через массив, можно еще разделить до запятой и после и отдельно обработать и патом вывести(когда то так делал на паскале), хотя на с++ для АПИ есть свои команды вроде на эту тему...

Вообщем думаю попробовать игруху замутить на твоем двигле, если завтра с утра(на трезвую) решусь, то буду часто тут гадить по этой теме...

Кстати что там с новой версией, может что новое есть? А то буду ручками все лепить)))

DESOLДата: Вторник, 28 Сентября 2010, 01:01 | Сообщение # 26
участник
Сейчас нет на сайте
Посмотрел на скрины, посмотрел на возможности. И задал вопрос зачем нужны прочие движки))))) Автору респект!

Unity, Blender, Zbrush, Substance Designer/Painter, TopoGun, RizomUV, Studio One 4
nilremДата: Пятница, 01 Октября 2010, 23:58 | Сообщение # 27
Просветленный разум
Сейчас нет на сайте

Возможно, по немного изменившемуся логотипу вы догадались, что ждет вас в этой версии.
Windmill Engine версии 0.92, как и было обещано ранее, поддерживает две популярные среды разработки: Dev C++ и Code::Blocks.

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

Список изменений:

Версия 0.92 rev 22, 1.10.2010

• Изменена функция LoadRes(). Добавлена возможность загрузки ресурсов по абсолютному пути, без поиска.
• Завершена функция DevelopHelp(). Теперь кроме фпс она также отображает информацию об используемых ресурсах, и выводит на экран последнюю запись из лог-файла.
• Добавлены новые функции:
SetSoundPos() - установка позиции источника звука,
PrintDigit() - отображение числа в виде текста

• Реализация движка для работы в DevC++ и Code::Blocks.
• Урок по использованию движка совместно с DevC++.
• Урок по использованию движка совместно с Code::Blocks.
• Внесены изменения в документацию.

Ниже на скриншоте можно видеть результат работы обновленной функции DevelopHelp.
С ее помощью можно узнать сколько места в памяти занимают ресурсы, сколько раз за кадр вызывались функции рисования, и сколько объектов являются видимыми. При соотношении один к одному достигается максимальная производительность.
Советую прицепить ее на какую-нибудь клавишу, дабы включать и отключать в процессе.

Немного информации о процессе разработки

Сейчас в движке 49 функций.
Их функциональность обеспечивают 6558 строк кода.
Для поддержки NET понадобилось еще 585. А возможность работы в DevC++ и Code::Blocks стоили еще 500.
На текущий момент движок содержит все, что планировалось первоначально, на самом раннем этапе. Поэтому после тестирования и доводки(также, возможно появления поддержки Делфи) данная версия плавно мутирует в версию 1.0 и движок начнет расти до второй версии.
Поскольку уже есть некоторые наработки в эту сторону, сейчас я уже могу точно сказать, что в ней будет.
1. Пользовательский интерфейс и визуальный редактор для него.
2. Система частиц и редактор.
3. Поддержка изометрии.
4. Упаковка игровых ресурсов в зашифрованный архив.
5. Автоматическая генерация шрифтов
Ну и несколько инструментов: редактор частиц и интерфейса, компоновщик анимированных спрайтов, менеджер ресурсов.
Хотя кое что еще под вопросом.

Ну и напоследок скажу по секрету. Возможно, что некоторые улучшения в версии 0,92 на самом деле окажутся ухудшением. Замечена некорректная работа на старых видеокартах. Данный баг сейчас находится под самым пристальным вниманием. Если ты обладатель оного антикварного девайса, буду рад отзывам.

Прикрепления: 7081802.jpg(45.4 Kb) · 3404916.jpg(161.4 Kb)


Windmill 2

WindMill 2D Game Engine
GavolotДата: Воскресенье, 03 Октября 2010, 01:59 | Сообщение # 28
Последователь Тени
Сейчас нет на сайте
Тоесть эту вещь можно будет запустить и на Visual Basic 6 на сколько я понял?

В общем что-то делаю, но пока не пойму ни как :)
Тень - выражение основной сущности человека.
QwertyXДата: Вторник, 09 Ноября 2010, 08:17 | Сообщение # 29
уже был
Сейчас нет на сайте
А мне почему то выдает такую ошибку:
Code
fatal error C1083: Не удается открыть файл include: C:\\Users\\*****\\Documents\\Visual Studio 2008\\Projects\\GameTest\\wme\\windmill.h: No such file or directory

Все на месте... а говорит что нет sad
nilremДата: Вторник, 09 Ноября 2010, 12:00 | Сообщение # 30
Просветленный разум
Сейчас нет на сайте
Как подключаешь?
Попробуй так:

Code

#include "C:/Users/*****/Documents/Visual Studio 2008/Projects/GameTest/wme/windmill.h"

По корану в путях к подключаемым файлам нужно использовать обратный слеш /, хотя \\ в Visual Studio работает.

Попробуй использовать относительный путь, вроде:

"../wme/windmill.h"

Или изменить расположение файла, может ему путь чем-то не нравится.)


Windmill 2

WindMill 2D Game Engine
QwertyXДата: Вторник, 09 Ноября 2010, 16:42 | Сообщение # 31
уже был
Сейчас нет на сайте
Quote (nilrem)
Или изменить расположение файла, может ему путь чем-то не нравится.)


Я уже везде где только можно понапихал файл- нечего не работает smile

Кстати... В пдф файлике, все на С++...
А я только-только начинаю программировать на СиШарп...(ну азы консольки и формов знаю хорошо smile )
Не будет еще 1 файла пдф с обьяснилкой на СиШарп? sad

Добавлено (09.11.2010, 16:42)
---------------------------------------------
П.С.
Все то же...
не хочет... ошибка та же sad

nilremДата: Среда, 17 Ноября 2010, 10:15 | Сообщение # 32
Просветленный разум
Сейчас нет на сайте
Уже третий раз ко мне приходит ЛС, в котором разные люди спрашивают об одной и той же ошибке, ошибкой не являющейся. Документация по движку пока разрабатывается, обновленная версия появится не ранее чем через две недели, поэтому объясняю здесь. Объясняю не ошибку, а теорию, незнание которой ее и порождает.
Движок Windmill может использовать любое заданное количество слоев для отображения спрайтов. У меня эти слои направлены в глубь экрана, от зрителя. Если вы создаете 5 слоев, то получаете 5 слоев с нумерацией от 0 до 4. При этом, самым нижним будет слой № 4, а верхним нулевой.

Здесь есть одна особенность. Слой №0 предназначен для отображения пользовательского интерфейса, использовать его в иных целях не рекомендуется, и на это есть две причины.
1. На спрайты в этом слое не действует функция SetViewport , то есть, как бы вы не меняли мировое пространство, эти спрайты всегда будут отображаться на заранее определенном месте.
2. Все, что будет направлено в нулевой слой, будет отображаться поверх стандартного пользовательского интерфейса, это будет портить картинку, но может оказаться и полезным. Например, таким образом отображается функцией DevelopHelp вспомогательная информация.

Далее, функции GetMouseX, GetMouseY возвращает позицию курсора мыши в экранных координатах, приведенных к клиентской области, если приложение работает в оконном режиме. Если вы воспользуетесь функцией SetViewport то координаты вашего мира сместятся, а функции по-прежнему будут возвращать те же самые экранные координаты. Чтобы получить мировые координаты, вам нужно самостоятельно учитывать это самое смещение. Но это до следующей версии, в которой появятся функции GetWorldX, GetWorldY, возвращающие мировые координаты.
Вроде все.

Quote (QwertyX)
Не будет еще 1 файла пдф с обьяснилкой на СиШарп?

Скорее всего нет, поскольку использование функций для обоих языков идентично.
Прикрепления: 1237456.png(3.3 Kb)


Windmill 2

WindMill 2D Game Engine
Lord_FДата: Среда, 17 Ноября 2010, 12:19 | Сообщение # 33
Любопытный Игродел
Сейчас нет на сайте
QwertyX, в туториале по шарпу напиши где нибудь WM.
При этом умный IntelliSense покажет какие методы имеет этот движок. ну а их названия и действия есть в PDF'е я так понял они с С++ названиями не различаются.

P.S. я таким методом столько Америк пооткрывал!


[quote]Ничто не истина, всё дозволено[/quote]
Arab-EmirДата: Суббота, 22 Января 2011, 07:54 | Сообщение # 34
مجرد مبرمج
Сейчас нет на сайте
nilrem, что с проектом? Последняя версия датируется 1 Октября прошлого года.

العرب من الإمارات - Араб из Эмиратов.
"Плох ни тот, кто не знает, а тот, кто не хочет знать."


Skype: arab-emir


Сообщение отредактировал Arab-Emir - Понедельник, 24 Января 2011, 14:10
RikettaДата: Суббота, 22 Января 2011, 08:04 | Сообщение # 35
Strategist
Сейчас нет на сайте
Arab-Emir, меньше месяца назад был тест поддержки сети двигом. Он успешен.

Fougerite - Rust Server OpenSource API
TerraDev - Terraria OpenSource Hack
nilremДата: Вторник, 01 Марта 2011, 23:16 | Сообщение # 36
Просветленный разум
Сейчас нет на сайте

Вот, спустя пять месяцев, я решил порадовать вас новой версией.

Windmill Engine версии 1.25, обзавелся новыми возможностями: генератором шрифтов, поддержкой сети и пользовательским интерфейсом аки GUI. Их реализация пока тестовая (сырая и неполная). Как раз на такую вот недоделанность намекает последняя нечетная цифра в номере версии (это чтобы вы знали на будущее).
Уже выполнены два пункта из пяти заявленных ранее, а сеть идет в качестве бонуса)


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

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

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


Список изменений:

Версия 1.25 rev 34, 1.03.2010

• Значительные изменения архитектуры в связи с добавлением новых модулей:
1. Генератор шрифтов
2. Система пользовательского интерфейса (GUI)
3. Поддержка сети

• Изменена функция InputIni(). Ей больше не нужно передавать идентификатор приложения.
• Лог-файл пересоздается при каждом запуске.
• Добавлены новые функции:
TextGen() - Генерация шрифтов и инициализация системы работы с текстом,
GetWorldX() - получение Х-координаты мыши с учетом смещения виевпорта
GetWorldY() - получение У-координаты мыши с учетом смещения виевпорта
Функции пользовательского интерфейса (9 штук).
Сетевые функции (5 штук).

• Полностью протестирована С# версия. Исправлены множественные ошибки во врапере, в частности при работе системы ввода.
• Добавлен GuiEdit - инструмент для визуального проектирования интерфейса.
• Урок по использованию генератора шрифтов.
• Урок по использованию сети, создание простого клиента и сервера.
• Урок по программированию GUI и использованию GuiEdit.
• Внесены изменения в документацию.

СРИНШОТЫ И ДЕМКИ:

Скриншот редактора пользовательского интерфейса

Первая демка это генератор шрифтов (в отдельном модуле). Для его запуска необходим установленный NET framework. Если FontGen.exe не запускается, а фреймворк качать лень - запустите fg.exe.

Скачать FontGen (32 кб)

Вторая демо более серьезная, ибо это ММО. Для его запуска также нужен NET framework.

Весьма убогое ММО, в котором кроме чата ничего особенного и нет. В архиве находится сервер и клиент. Запустите сервер и несколько клиентов.
Будет хорошо, если кто-то пожелает запустить сервер и выложить здесь IP-адрес. Устроим массовый тест, а то я его нормально так и не протестировал. Слишком тупой у меня интернет.

Скачать ММО (790 кб)


Windmill 2

WindMill 2D Game Engine
БомберДата: Среда, 02 Марта 2011, 09:17 | Сообщение # 37
The Blank
Сейчас нет на сайте
nilrem, О круто! Наконец то новая версия!

Кстать там на последнем скрине маты, их надо убрать, они запрещены правилами.


nilremДата: Среда, 02 Марта 2011, 10:17 | Сообщение # 38
Просветленный разум
Сейчас нет на сайте
Quote (Бомбер)
Кстать там на последнем скрине маты, их надо убрать, они запрещены правилами.

Ага, как-то не заметил ночью. Это как раз антимат тестировался. biggrin


Windmill 2

WindMill 2D Game Engine
RumataДата: Воскресенье, 20 Марта 2011, 13:04 | Сообщение # 39
почетный гость
Сейчас нет на сайте
GuiEdit наотрез отказывается работать под Windows 7 Professional x64, запускается только под виртуальной машиной с XP. Это, конечно же, не айс


MorglodДата: Среда, 23 Марта 2011, 15:17 | Сообщение # 40
Вечно пилящий двиг
Сейчас нет на сайте
biggrin

вначале был #include



Сообщение отредактировал Morglod - Среда, 23 Марта 2011, 15:48
Форум игроделов » Ваши проекты » Разработка движков и сред разработки » WindMill 2D Game Engine (Движок для 2D игр любого жанра.)
Поиск:

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