Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Open Source heroes3.exe
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Архив разделов форума Heroes III
Страницы: 1, 2, 3
ZVS
Для полностью плоской графики и DX3 подойдет. Больше не надо. Прозрачные поверхности есть, альфа канал для них тоже уже есть. Что еще нужно?
Кстати, для рисования карты GDI скорее всего будет тормозить, DX ваши все прозрачные картинки всегда будет держать на готове и аппаратно их "класть" на нужное место, в отличии от GDI (там их каждый раз придется "выбирать" для вашего DC).
coff
Да, с GDI все ясно. А с помощью AlphaBlend никак нельзя, интересно?

ZVS, я имел в виду сам API движка, а не используемый графический API. То есть классы, методы, которые экспортирует движок. Сейчас как раз время для обсуждения и внесения изменений.
NordStar
А что соб-сно сделано то? Если уж open-source дык и стоит делать действительно опен - открывай код, разбивай на модули и пусть пишут все а не ты один.
coff
Я пока лучше попишу один. Как будет работоспособная демка, тогда будет иметь смысл выложить исходники. Думаю, никому не захочется ковыряться в сыром коде.
NordStar
Хотя бы структуру модулей мог выложить. Тады можно было бы продумывать кому за что браться.
Хотя смотри сам.
coff
Да какую структуру модулей. Пока еще ничего не ясно. Я делаю рендерер, подхожу плавно к интерфейсу. До карт пока еще долго, к тому же формат их не ясен, придется смотреть.

Когда будет нормальный API, тогда и начнется реальный open-source. Что полуфабрикат-то выкладывать?
ZVS
AlphaBlend в GDI тормоз страшный - сам проверял. В DX нормально. Но, кстати, в 3-х альфа канал вообще в единичных случаях использовался (показать там полупрозрачного Героя за деревом), а так все больше ключевой цвет у спрайта и все проблемы.
Я не понял что такое "сам API движка" и "графический API" приминительно к GDI или DX.
Если бы спросили меня, то только DX в игре и DX в окне карты в редакторе.
coff
Да, странная вещь GDI все-таки. AlphaBlend реализуется через Escape драйверу, т.е. акселерация принципиально возможна. Тут уж отговорками об универсальности GDI, похоже, не отделаешся smile.gif .

Альфа-канал в HoMM3 еще используется при переходе экранов (например, из режима карты в режим боя), при телепорте и т.п. И еще у меня есть подозрение, что границы спрайтов придется тоже размывать, а то получится ступенчатость.

Насчет API. Вот есть движок, который, используя "графический" API (т.е. DX, к примеру), предоставляет свой унифицированный интерфейс остальным компонентам игры. Вот этот интерфейс и хотелось бы обсудить.
ZVS
Самое большое преимущество DX в том, что поверхности храняться в памяти ускорителя (если возможно) плюс аппаратная реализация BitBlt с эффектами. В GDI так же используется аппаратное ускорение BitBlt, а вот ресурсы не храняться (по умолчанию) в памяти адаптера. Отсюда основной тормоз в копировании данных туда-сюда каждый раз.
На счет использования Альфа Канала при телепорте - не обращал внимание, возможно. Но это единичная работа в конкретной ситуации, т.е. он используется только пока происходит анимация.
На счет интерфейса - ясно теперь, только не ыижу большого смысла что-то придумывать. Я бы испоьзовал DX поверхности как ключевой элемент и уже их связывал с кем нужно и как нужно.
Guest
Coff

используй кросплатформенную библиотеку SDL www.libsdl.org
Паел
Народ что притихли? Хочу Heroes 3 на КПК. Хочу точно таких без изменений игры. Простую портацию без урезаний.
BARS
Ну так сделай!
Bourn
Цитата(Паел @ 14 Oct 2005, 11:51)
Народ что притихли? Хочу Heroes 3 на КПК. Хочу точно таких без изменений игры. Простую портацию без урезаний.

Тебе сюда http://heroes.h12.ru/
__Se
Что-то тему не туда ушла , как там кстати поживают герои опенсорсовые ?
sergroj
Цитата(coff @ 30 Mar 2005, 15:55)
Мне нужно полное описание формата карт (т.е. с артифактами, монстрами и т.д.). Также .FNT и .DEF, .MSK. Пока недостаточно информации, думаю, придется самому ковыряться.


Тута мы можем помоч. H3M - всего формата нет, но есть большая часть. FNT и DEF - известно почти все. MSK - все важное, вроде бы, известно.
Bourn
Цитата(sergroj @ 14 Oct 2005, 20:07)
Цитата(coff @ 30 Mar 2005, 15:55)
Мне нужно полное описание формата карт (т.е. с артифактами, монстрами и т.д.). Также .FNT и .DEF, .MSK. Пока недостаточно информации, думаю, придется самому ковыряться.


Тута мы можем помоч. H3M - всего формата нет, но есть большая часть. FNT и DEF - известно почти все. MSK - все важное, вроде бы, известно.

У coff'a есть вся инфа кроме карт, хотя Слава большую часть работы уже провел biggrin.gif (достаточно посмотреть ЕРМ).Интерес вызывает заголовок карт. Формат FNT и MSK известны полностью, а вот ДЕФ.. интересен тип второй вроде....ну который не открывает ДЕФвьювер
sergroj
Цитата(Bourn @ 15 Oct 2005, 00:11)
У coff'a есть вся инфа кроме карт, хотя Слава большую часть работы уже провел biggrin.gif (достаточно посмотреть ЕРМ).Интерес вызывает заголовок карт.

И я о том же. Но, для RoE, возможно, придется и второй список объектов пересматривать. Зато для RoE есть полный формат заголовка.

Цитата(Bourn @ 15 Oct 2005, 00:11)
Формат FNT и MSK известны полностью, а вот ДЕФ.. интересен тип второй вроде....ну который не открывает ДЕФвьювер

Не знаю, что за зверь. PCXHeader.Unk1=2 чтоли? Его DefViewer не открывает даже после DefTool ("Prepare for DefViewer")?
Stormsss
Xex, ну я Линуксоид, фан HoMM3 и уже пытаюсь писать что-то на C++ используя SDL=> OpenGL. Пока только накодил прогу по распаковке snd, в процессе прога по распаковке lod (C++ Only). Герои конечно идут под Wine(X)/Cedega, но мне и моим друзьям всё-равно хочется их спортить. Если вы собираетесь кодить на Delphi под DXD, то, увы, нам не попути. Иначе - Обьеденим же усилия! (С кодингом я ПОКА не силён, но активно читаю учебники, скоро (думаю) смогу оказать реальную помощь.)
З.Ы. (Оффтоп: а под Wine(X)/Cedega и Underground 2 летает и Q4 не падает)
Maddy
Ну Коль пошла такая пьянка - то я тож готов участвовать wink.gif PPC нет и не будет по идейным соображениям( я пальму люблю) , но движок-то может и должен быть платформенно независимым ... Особенно Ежли на плюсах wink.gif А как морда рисуеться - это вопрос второго плана .... Так-что если есть необходимость в руках и голове - то их есть уменя wink.gif
CrackedMind
Пострадаю некрофилизмом...

Заинтересованные еще есть? smile.gif Есть наработки в виде разбора формата карты, почти полностью, не ясно всего пару полей, но это мелочи...
sergroj
Есть даже команда людей, этим занимающаяся. А разобранный формат карт - это очень интересно. 2 описания формата карт уже есть, но оба с дырками.
CrackedMind
А поподробней про эту команду можно? Где их найти и т.д. smile.gif
CrackedMind
Ах да, еще частично разобран формат компаний.
qwebek
я видел 3 герои под кпк, но не факт что они точно такие как на пк (успел лишь немного поиграть)
Bes
Это не ново.
у меня такие есть (если это те)... там только один город (Оплот).
Это называется "Heroes III Uriel Mod"

если у вас др., то поделитесь местом скачки sorry.gif
CrackedMind
Судя по соседнему топику народ лучше будет дизассмить SoD & WoG чем писать OpenSource клон, который можно сделать модифицируемый... Времени и сил то не жалко?
Irh
Это извечный вопрос. Модификация существующего exe, безусловно, позволяет быстрее решить одну проблему - но сравнить полный реинжиниринг программы с совокупностью модификаций является весьма непростой задачей. Тем более что первый путь означает, что для получения первых результатов нужно проделать большой объем работы; по второму пути уже проделана большая работа, и, кроме того, неизвестно, что еще предстоит - какие точные планы.

Добавлено ([mergetime]1192613485[/mergetime]):
Есть еще вариант - не писать с нуля, а дизассемблировать, получив компилируемый текст, и постепенно заменять в нем ассемблер на высокоуровневый код. В этом подходе есть свои +/-.
easy-to-kill
Вобщем я написал Coff'у вот это письмо:

>Я тут сидел, читал форум forum.df2.ru. Вобщем ты там собирался написать
>свой екзешник для героев. Вот хотелось бы узнать работаешь ли ты еще над этим.
>Если да - то как продвигаются дела?

и получил такой ответ:

>Я сейчас работаю на новой работе, времени заниматься пока нет, поэтому
>проект заморожен. То, что сделано, может рендерить PCX и DEF из LODов, карту
>показывает только частично.

Видать не скоро мы увидим OpenHeroes, а хотелось бы.
gamecreator
Цитата(Irh @ 17 Oct 2007, 12:31)
Есть еще вариант - не писать с нуля, а дизассемблировать, получив компилируемый текст, и постепенно заменять в нем ассемблер на высокоуровневый код. В этом подходе есть свои +/-.

можно попробовать проги, восстанавливающие код по екзешнику. (фактически то же самое, только без ручной работы)

Добавлено ([mergetime]1192645572[/mergetime]):
Цитата(easy-to-kill @ 17 Oct 2007, 16:43)
Видать не скоро мы увидим OpenHeroes, а хотелось бы.

а зачем?
CrackedMind
gamecreator
А мне бы вот хотелось запускать Героев не только под виндой, но и под Linux'ом, в котором я щас это и пишу. Причем запускать хочу без всяких эмуляторов. Да и кое какие баги и недоработки оригинальных героев и вога раздражают.
izrukvruki
а ты думаешь, что написав заново - ты не наляпаешь новых багов и недоработок?

ну думаю, что если ты уже много чего сделал, но тебе нужна помощь - то попробуй как-то организовать работу, людей заинтересованных и грамотных поищи/подключи. Вообще идея открытого кода - хорошая, но думаю ОЧЕНЬ сложная.

а ты на каком языке пишешь? и что реально уже сделал?
CrackedMind
Так вот и ищу заинтересованных людей. Может не там ищу? smile.gif

Пишу на С++ и Python, пока из наработок только разбор формата карты (95%) и формата компании (50%), а также куча идей smile.gif Скрипт по распаковке и упаковке lod'ов на Python еще есть.

Цитата
а ты думаешь, что написав заново - ты не наляпаешь новых багов и недоработок?


Наляпую и еще как. Просто если это будет опенсорс, то гораздо проще патчить, на основе патчей от других людей smile.gif
izrukvruki
Думаю тебе нуно составить подробный план работ и пути его реализации. На общие слова люди неохотно идут, а вот если увидят какие-нибудь результаты - то побегут, успевай отгонять...

Какая реальная помощь нужна? какие насущие задачи стоят?

Есть одна мысль, она конечна очень примитивна, но я ее выскажу:
хотелось бы наиболее упростить работу с ресурсами игры. Зачем нужны лоды и дефы, по сути это ведь архивы - просто сделать папки с файлами, попытаться уменьшить требования к графическим файлам (чтоб можно было использовать более широкий спектр файлов (eps, tiff, tga, bmp) и убрать жесткие требования по цветовой палитре.
Docent Picolan
Цитата
убрать жесткие требования по цветовой палитре.

тогда можно будет добиться полупрозрачности, о которой так давно все мечтают в третьих героях.. lupa.gif
easy-to-kill
Цитата
Цитата
Видать не скоро мы увидим OpenHeroes, а хотелось бы.

а зачем?


Как это зачем?
Хочу свой мод сделать.
CrackedMind
izrukvruki
План работ нужен угу smile.gif Но это попозже.

Пока предварительные желания и хотения, пока чрезвычайно обобщенные smile.gif
Кроссплатформенная игра. Для начала linux & win32 хотя бы. Писать на С++ с использованием SDL. Почти всю логику, а по возможности и АИ вынести в скрипты. В качестве скриптового языка, хочу использовать Python. Соответственно автор мода сможет дополнять и менять игру как ему вздумается, в разумных рамках конечно smile.gif Опять же нормальную поддержку национальных языков сделать, использую Unicode (UTF-16 в частности, UTF-8 не люблю, ибо костылль жуткий). Вынести все содержимое текстовых файлов в xml файлы или может не стоит этого делать smile.gif

как только разгребу дела свои, составлю более подробный план и прочее... Может найдутся желающие помочь? Хотя бы один человек smile.gif
easy-to-kill
Я я я я я я я я.

Так хочу свой мод создать что аж чешется, так что буду всячески помогать и способствовать выходу OpenHeroes.

Если чето надо пиши в личку или сюда.

А вот еще несколько вопросов.

Точно на Си будешь писать? А может лучше на Делфи? Возможности те же а язык по проще будет. Я Си плоховато знаю. На Делфи норм пишу. Хотя для такого случая могу и Си подучить.

Что за язык такой Pyton?
gamecreator
Цитата(CrackedMind @ 22 Oct 2007, 08:32)
В качестве скриптового языка, хочу использовать Python.

может все же С++, Delphi или хотя бы Basic? pray.gif

Добавлено ([mergetime]1193057927[/mergetime]):
Цитата(easy-to-kill @ 22 Oct 2007, 15:40)
Что за язык такой Pyton?

http://ru.wikipedia.org/wiki/Python
easy-to-kill
2 CrackedMind
Ты хочешь сделать что б был один кроссплатформенный екзешник или две версии - под виндоус и под линукс?

Для выполнения скриптов будешь использовать интерпретацию али компиляцию?
Лично я за компиляцию.

Как насчет того чтобы сделать возможность записывать и воспроизводить реплеи игр?

Как насчет того чтобы изменить формат карт?
Я представляю это так - карта является архивом в который можно запихнуть какие угодно файлы. Изначально(при создании карты редактором) в ней уже валяется один файл Default.map, который представляет из себя собственно саму карту(набор обьектов). Картосоздатель может наклепать сколько угодно .map файлов и добавить их в архив, что позволит в процессе игры сприптами менять текущую карту на одну из архива. Также в архиве будут хранится файлы скриптов(не хер им в глоб. событиях делать), а так же дефы, картинки, звуки, лоды, вобщем все что хочешь.
CrackedMind
Цитата
Точно на Си будешь писать? А может лучше на Делфи? Возможности те же а язык по проще будет. Я Си плоховато знаю. На Делфи норм пишу. Хотя для такого случая могу и Си подучить.


Во-первых, делфи я не знаю biggrin.gif Во-вторых, на делфи не напишешь кроссплатформенное приложение. В-третьих, и даже не Си, а С++, это все таки разные языки smile.gif

Цитата
может все же С++, Delphi или хотя бы Basic?

В качестве скриптового языка? Как ты себе это представляешь? Есть конечно CINT - С/С++ интерпретатор, но С/С++ языки сложные, С++ еще сложнее. Python такой же простой как и Basic, если не проще, если совсем в дебри языка не зарыватся smile.gif Так что я думаю для мапмейкера не обременного знаниями программирования, будет проще Python выучить.

Цитата
Ты хочешь сделать что б был один кроссплатформенный екзешник или две версии - под виндоус и под линукс?

Exe это виндовый формат выполняемых файлов, под linux - другой biggrin.gif Так что файлов будет минимум два.

Цитата
Для выполнения скриптов будешь использовать интерпретацию али компиляцию?
Лично я за компиляцию.

Скрипты по определению не компилируются... Хотя у современных языков есть возможность компиляции в байт-код, для более быстрой загрузки программы, например у того же Python. Потом есть всякие jit-компиляторы, но это уже отдельная тема smile.gif

Цитата
Как насчет того чтобы сделать возможность записывать и воспроизводить реплеи игр?

Обязательно smile.gif

Цитата
Как насчет того чтобы изменить формат карт?
Я представляю это так - карта является архивом в который можно запихнуть какие угодно файлы. Изначально(при создании карты редактором) в ней уже валяется один файл Default.map, который представляет из себя собственно саму карту(набор обьектов). Картосоздатель может наклепать сколько угодно .map файлов и добавить их в архив, что позволит в процессе игры сприптами менять текущую карту на одну из архива. Также в архиве будут хранится файлы скриптов(не хер им в глоб. событиях делать), а так же дефы, картинки, звуки, лоды, вобщем все что хочешь.

Естественно формат карт будет изменен, только не так как ты это представляешь smile.gif И естественно скрипты не будут в глобальных событиях, как это сделано в WoG. Если делать архив с дефами, лодами и прочим, то это ж целый мод получается. Это уже черезчур, помойму.
easy-to-kill
Ну с лодами я конечно переборщил, но что не так с остальным?
Я имел ввиду что мапмакер может впихать в карту что угодно.
Хочет он иметь в своей карте свои портреты для героев или какие-то картинки что б в диалогах показывать - пихает их в карту, а не отдельно от нее.
Насчет целого мода ты неправ - сейчас во многих картах используются свои картинки, дефы, и что бы сыграть в такую карту нужно сначала их установить, притом в большинстве случаев эти файлы больше нигде кроме этой карты не нужны, а удалить их низзя если в лод записаны, а если в какую то папку кинуты то просто никто не знает какие файлы к какой карте относятся и ничего не удаляют.
Надеюсь кто-то понял что я тут написал. lupa.gif

Цитата
Скрипты по определению не компилируются...

Играл в Dink SmallWood? Так вот там есть скрипты, и они компилируются.
Кстати я могу целиком и полностью занятся скриптами. Собираюсь делать компиляцией.
Не знаю как насчет простоты Питона но всегда можно придумать и попроще.

Цитата
даже не Си, а С++, это все таки разные языки

Я именно его и имел ввиду.

Цитата
Во-вторых, на делфи не напишешь кроссплатформенное приложение.

Понял. Пошел учить С++
CrackedMind
Цитата
Играл в Dink SmallWood? Так вот там есть скрипты, и они компилируются.
Кстати я могу целиком и полностью занятся скриптами. Собираюсь делать компиляцией.
Не знаю как насчет простоты Питона но всегда можно придумать и попроще.

Не играл. Смысл скриптов как раз в том чтобы запустить его без компиляции. Вообщем спор, что такое скрипт и прочее, это извечный холивар laugh.gif

Цитата
Понял. Пошел учить С++


Можно было бы и на FreePascal gigi.gif Но мне язык не нравится sad.gif А С++ полезно для развития)
easy-to-kill
Цитата
Смысл скриптов как раз в том чтобы запустить его без компиляции.

А нах оно надо?
В WOG тоже скрипты запускаются без компиляции, и все мы знаем какая при этом скорость.
CrackedMind
Цитата
В WOG тоже скрипты запускаются без компиляции, и все мы знаем какая при этом скорость.

Ну во-первых, скорость у интерпретатора питона в разы выше laugh.gif У гугла много сервисов на нем написано к примеру. Во-вторых, ERM не быстрый и синтаксис у него ужасный smile.gif (не в обиду автору)
easy-to-kill
Хоть скорость у питона по сравнению с ЕРМ в разы выше(как и у любого другого языка) но с компиляцией он не сравнится(как и любая другая интерпретация).
Скорость выполнения скриптов должна быть максимальной.
К тому же ты собираешся делать AI в скриптах, чего гугл явно не делал.

Добавлено ([mergetime]1193136318[/mergetime]):
А вообще первоочередной задачей стоит движок. Ты там вроде бы умеешь лоды распаковывать и SDL знаешь. Делай пока что движок, а я компилятор напишу.
Завтра выложу демку.
gamecreator
Цитата(CrackedMind @ 23 Oct 2007, 10:42)
Можно было бы и на FreePascal

это почти делфи
sergroj
Цитата(CrackedMind @ 23 Oct 2007, 10:16)
Во-вторых, на делфи не напишешь кроссплатформенное приложение.

Напишешь. Дельфи под линух называется "Kelyx". Но лучше C++, т.к. существующая команда пишет на нем.

Цитата(CrackedMind @ 23 Oct 2007, 10:16)
Естественно формат карт будет изменен, только не так как ты это представляешь smile.gif И естественно скрипты не будут в глобальных событиях, как это сделано в WoG. Если делать архив с дефами, лодами и прочим, то это ж целый мод получается. Это уже черезчур, помойму.

В WoG 3.59 будет возможность загружать свои лоды, в том числе из карт, так что не перебор. Но вам лоды лучше сделать тоже отдельно от карт.
Bourn
прокомментирую с сообщений этого года
1)Дизассемблирование не имеет смысла при размере дизассембленного файла >30м, да и найти стоящее чтото в нем трудновато будет
2)писать я так понял придеться под opengl для кроссплатформенности
3)зачем изобретать велосипед юзай LUA чем не язык для AI?
4)посмотрим что выйдет из этих задумок, думаю они вполне могут умереть, хотя не стоит загадывать, но для начала бы я не старался строить планы относительно фич, особенно щас их обсуждать, можно втихую записывать на листочек, а попробовал бы реализовать и посмотрел что из этого выйдет, а реализовать можно для начала простые ф-и героев
CrackedMind
Цитата(easy-to-kill @ 23 Oct 2007, 16:45)
Хоть скорость у питона по сравнению с ЕРМ в разы выше(как и у любого другого языка) но с компиляцией он не сравнится(как и любая другая интерпретация).
Скорость выполнения скриптов должна быть максимальной.
К тому же ты собираешся делать AI в скриптах, чего гугл явно не делал.

Добавлено ([mergetime]1193136318[/mergetime]):
А вообще первоочередной задачей стоит движок. Ты там вроде бы умеешь лоды распаковывать и SDL знаешь. Делай пока что движок, а я компилятор напишу.
Завтра выложу демку.


не занимайся велосипедостроением

Цитата(gamecreator @ 23 Oct 2007, 19:43)
Цитата(CrackedMind @ 23 Oct 2007, 10:42)
Можно было бы и на FreePascal

это почти делфи


не почти ))

Цитата(sergroj @ 23 Oct 2007, 20:36)
Цитата(CrackedMind @ 23 Oct 2007, 10:16)
Во-вторых, на делфи не напишешь кроссплатформенное приложение.

Напишешь. Дельфи под линух называется "Kelyx". Но лучше C++, т.к. существующая команда пишет на нем.


Цитата(CrackedMind @ 23 Oct 2007, 10:16)
Естественно формат карт будет изменен, только не так как ты это представляешь smile.gif И естественно скрипты не будут в глобальных событиях, как это сделано в WoG. Если делать архив с дефами, лодами и прочим, то это ж целый мод получается. Это уже черезчур, помойму.

В WoG 3.59 будет возможность загружать свои лоды, в том числе из карт, так что не перебор. Но вам лоды лучше сделать тоже отдельно от карт.


Kylix умер еще в 2002 году, он не считается smile.gif

Цитата(Bourn @ 23 Oct 2007, 21:06)
прокомментирую с сообщений этого года
1)Дизассемблирование не имеет смысла при размере дизассембленного файла >30м, да и найти стоящее чтото в нем трудновато будет
2)писать я так понял придеться под opengl для кроссплатформенности
3)зачем изобретать велосипед юзай LUA чем не язык для AI?
4)посмотрим что выйдет из этих задумок, думаю они вполне могут умереть, хотя не стоит загадывать, но для начала бы я не старался строить планы относительно фич, особенно щас их обсуждать, можно втихую записывать на листочек, а попробовал бы реализовать и посмотрел что из этого выйдет, а реализовать можно для начала простые ф-и героев

1) Про дизассемблирование это давно понятно smile.gif
2) Правильно понял )
3) А я не собираюсь велосипед изобретать, вместо lua хочу python использовать. Он кстати в Civ 4 используется
4) Естественно, надо будет для начала сделать все достаточно просто :-)
hippocamus
На Делфи под .NET (Delphi-8, 2005, 2006) можно писать под .NET, а это кроссплатформенная надстройка.
Если будет Делфи, то я тяну руку! Сам об этом думал много.
Хотя если делать модульную систему, то можно и на разных языках писать, ведь dll она и в Африке dll.
А скрипты имхо на Бэйсике. Питона не знаю, а чем тебе Бэйсик не нравится? Интерпретатор очень просто сделать.

Готов помогать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.