Для полностью плоской графики и DX3 подойдет. Больше не надо. Прозрачные поверхности есть, альфа канал для них тоже уже есть. Что еще нужно?
Кстати, для рисования карты GDI скорее всего будет тормозить, DX ваши все прозрачные картинки всегда будет держать на готове и аппаратно их "класть" на нужное место, в отличии от GDI (там их каждый раз придется "выбирать" для вашего DC).
Да, с GDI все ясно. А с помощью AlphaBlend никак нельзя, интересно?
ZVS, я имел в виду сам API движка, а не используемый графический API. То есть классы, методы, которые экспортирует движок. Сейчас как раз время для обсуждения и внесения изменений.
NordStar
01 Apr 2005, 21:34
А что соб-сно сделано то? Если уж open-source дык и стоит делать действительно опен - открывай код, разбивай на модули и пусть пишут все а не ты один.
Я пока лучше попишу один. Как будет работоспособная демка, тогда будет иметь смысл выложить исходники. Думаю, никому не захочется ковыряться в сыром коде.
NordStar
01 Apr 2005, 21:44
Хотя бы структуру модулей мог выложить. Тады можно было бы продумывать кому за что браться.
Хотя смотри сам.
Да какую структуру модулей. Пока еще ничего не ясно. Я делаю рендерер, подхожу плавно к интерфейсу. До карт пока еще долго, к тому же формат их не ясен, придется смотреть.
Когда будет нормальный API, тогда и начнется реальный open-source. Что полуфабрикат-то выкладывать?
AlphaBlend в GDI тормоз страшный - сам проверял. В DX нормально. Но, кстати, в 3-х альфа канал вообще в единичных случаях использовался (показать там полупрозрачного Героя за деревом), а так все больше ключевой цвет у спрайта и все проблемы.
Я не понял что такое "сам API движка" и "графический API" приминительно к GDI или DX.
Если бы спросили меня, то только DX в игре и DX в окне карты в редакторе.
Да, странная вещь GDI все-таки. AlphaBlend реализуется через Escape драйверу, т.е. акселерация принципиально возможна. Тут уж отговорками об универсальности GDI, похоже, не отделаешся

.
Альфа-канал в HoMM3 еще используется при переходе экранов (например, из режима карты в режим боя), при телепорте и т.п. И еще у меня есть подозрение, что границы спрайтов придется тоже размывать, а то получится ступенчатость.
Насчет API. Вот есть движок, который, используя "графический" API (т.е. DX, к примеру), предоставляет свой унифицированный интерфейс остальным компонентам игры. Вот этот интерфейс и хотелось бы обсудить.
Самое большое преимущество DX в том, что поверхности храняться в памяти ускорителя (если возможно) плюс аппаратная реализация BitBlt с эффектами. В GDI так же используется аппаратное ускорение BitBlt, а вот ресурсы не храняться (по умолчанию) в памяти адаптера. Отсюда основной тормоз в копировании данных туда-сюда каждый раз.
На счет использования Альфа Канала при телепорте - не обращал внимание, возможно. Но это единичная работа в конкретной ситуации, т.е. он используется только пока происходит анимация.
На счет интерфейса - ясно теперь, только не ыижу большого смысла что-то придумывать. Я бы испоьзовал DX поверхности как ключевой элемент и уже их связывал с кем нужно и как нужно.
Coff
используй кросплатформенную библиотеку SDL www.libsdl.org
Народ что притихли? Хочу Heroes 3 на КПК. Хочу точно таких без изменений игры. Простую портацию без урезаний.
Цитата(Паел @ 14 Oct 2005, 11:51)
Народ что притихли? Хочу Heroes 3 на КПК. Хочу точно таких без изменений игры. Простую портацию без урезаний.
Тебе сюда
http://heroes.h12.ru/
Что-то тему не туда ушла , как там кстати поживают герои опенсорсовые ?
sergroj
14 Oct 2005, 19:07
Цитата(coff @ 30 Mar 2005, 15:55)
Мне нужно полное описание формата карт (т.е. с артифактами, монстрами и т.д.). Также .FNT и .DEF, .MSK. Пока недостаточно информации, думаю, придется самому ковыряться.
Тута мы можем помоч. H3M - всего формата нет, но есть большая часть. FNT и DEF - известно почти все. MSK - все важное, вроде бы, известно.
Цитата(sergroj @ 14 Oct 2005, 20:07)
Цитата(coff @ 30 Mar 2005, 15:55)
Мне нужно полное описание формата карт (т.е. с артифактами, монстрами и т.д.). Также .FNT и .DEF, .MSK. Пока недостаточно информации, думаю, придется самому ковыряться.
Тута мы можем помоч. H3M - всего формата нет, но есть большая часть. FNT и DEF - известно почти все. MSK - все важное, вроде бы, известно.
У coff'a есть вся инфа кроме карт, хотя Слава большую часть работы уже провел

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

(достаточно посмотреть ЕРМ).Интерес вызывает заголовок карт.
И я о том же. Но, для RoE, возможно, придется и второй список объектов пересматривать. Зато для RoE есть полный формат заголовка.
Цитата(Bourn @ 15 Oct 2005, 00:11)
Формат FNT и MSK известны полностью, а вот ДЕФ.. интересен тип второй вроде....ну который не открывает ДЕФвьювер
Не знаю, что за зверь. PCXHeader.Unk1=2 чтоли? Его DefViewer не открывает даже после DefTool ("Prepare for DefViewer")?
Stormsss
13 Dec 2005, 20:44
Xex, ну я Линуксоид, фан HoMM3 и уже пытаюсь писать что-то на C++ используя SDL=> OpenGL. Пока только накодил прогу по распаковке snd, в процессе прога по распаковке lod (C++ Only). Герои конечно идут под Wine(X)/Cedega, но мне и моим друзьям всё-равно хочется их спортить. Если вы собираетесь кодить на Delphi под DXD, то, увы, нам не попути. Иначе - Обьеденим же усилия! (С кодингом я ПОКА не силён, но активно читаю учебники, скоро (думаю) смогу оказать реальную помощь.)
З.Ы. (Оффтоп: а под Wine(X)/Cedega и Underground 2 летает и Q4 не падает)
Ну Коль пошла такая пьянка - то я тож готов участвовать

PPC нет и не будет по идейным соображениям( я пальму люблю) , но движок-то может и должен быть платформенно независимым ... Особенно Ежли на плюсах

А как морда рисуеться - это вопрос второго плана .... Так-что если есть необходимость в руках и голове - то их есть уменя
CrackedMind
12 Oct 2007, 07:59
Пострадаю некрофилизмом...
Заинтересованные еще есть?

Есть наработки в виде разбора формата карты, почти полностью, не ясно всего пару полей, но это мелочи...
sergroj
12 Oct 2007, 08:47
Есть даже команда людей, этим занимающаяся. А разобранный формат карт - это очень интересно. 2 описания формата карт уже есть, но оба с дырками.
CrackedMind
12 Oct 2007, 09:01
А поподробней про эту команду можно? Где их найти и т.д.
CrackedMind
12 Oct 2007, 13:00
Ах да, еще частично разобран формат компаний.
qwebek
16 Oct 2007, 14:43
я видел 3 герои под кпк, но не факт что они точно такие как на пк (успел лишь немного поиграть)
Это не ново.
у меня такие есть (если это те)... там только один город (Оплот).
Это называется "Heroes III Uriel Mod"
если у вас др., то поделитесь местом скачки
CrackedMind
17 Oct 2007, 08:34
Судя по соседнему топику народ лучше будет дизассмить SoD & WoG чем писать OpenSource клон, который можно сделать модифицируемый... Времени и сил то не жалко?
Это извечный вопрос. Модификация существующего exe, безусловно, позволяет быстрее решить одну проблему - но сравнить полный реинжиниринг программы с совокупностью модификаций является весьма непростой задачей. Тем более что первый путь означает, что для получения первых результатов нужно проделать большой объем работы; по второму пути уже проделана большая работа, и, кроме того, неизвестно, что еще предстоит - какие точные планы.
Добавлено ([mergetime]1192613485[/mergetime]):
Есть еще вариант - не писать с нуля, а дизассемблировать, получив компилируемый текст, и постепенно заменять в нем ассемблер на высокоуровневый код. В этом подходе есть свои +/-.
easy-to-kill
17 Oct 2007, 16:43
Вобщем я написал Coff'у вот это письмо:
>Я тут сидел, читал форум forum.df2.ru. Вобщем ты там собирался написать
>свой екзешник для героев. Вот хотелось бы узнать работаешь ли ты еще над этим.
>Если да - то как продвигаются дела?
и получил такой ответ:
>Я сейчас работаю на новой работе, времени заниматься пока нет, поэтому
>проект заморожен. То, что сделано, может рендерить PCX и DEF из LODов, карту
>показывает только частично.
Видать не скоро мы увидим OpenHeroes, а хотелось бы.
gamecreator
17 Oct 2007, 21:26
Цитата(Irh @ 17 Oct 2007, 12:31)
Есть еще вариант - не писать с нуля, а дизассемблировать, получив компилируемый текст, и постепенно заменять в нем ассемблер на высокоуровневый код. В этом подходе есть свои +/-.
можно попробовать проги, восстанавливающие код по екзешнику. (фактически то же самое, только без ручной работы)
Добавлено ([mergetime]1192645572[/mergetime]):
Цитата(easy-to-kill @ 17 Oct 2007, 16:43)
Видать не скоро мы увидим OpenHeroes, а хотелось бы.
а зачем?
CrackedMind
18 Oct 2007, 06:29
gamecreator
А мне бы вот хотелось запускать Героев не только под виндой, но и под Linux'ом, в котором я щас это и пишу. Причем запускать хочу без всяких эмуляторов. Да и кое какие баги и недоработки оригинальных героев и вога раздражают.
izrukvruki
18 Oct 2007, 10:16
а ты думаешь, что написав заново - ты не наляпаешь новых багов и недоработок?
ну думаю, что если ты уже много чего сделал, но тебе нужна помощь - то попробуй как-то организовать работу, людей заинтересованных и грамотных поищи/подключи. Вообще идея открытого кода - хорошая, но думаю ОЧЕНЬ сложная.
а ты на каком языке пишешь? и что реально уже сделал?
CrackedMind
18 Oct 2007, 10:37
Так вот и ищу заинтересованных людей. Может не там ищу?

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

Скрипт по распаковке и упаковке lod'ов на Python еще есть.
Цитата
а ты думаешь, что написав заново - ты не наляпаешь новых багов и недоработок?
Наляпую и еще как. Просто если это будет опенсорс, то гораздо проще патчить, на основе патчей от других людей
izrukvruki
18 Oct 2007, 11:35
Думаю тебе нуно составить подробный план работ и пути его реализации. На общие слова люди неохотно идут, а вот если увидят какие-нибудь результаты - то побегут, успевай отгонять...
Какая реальная помощь нужна? какие насущие задачи стоят?
Есть одна мысль, она конечна очень примитивна, но я ее выскажу:
хотелось бы наиболее упростить работу с ресурсами игры. Зачем нужны лоды и дефы, по сути это ведь архивы - просто сделать папки с файлами, попытаться уменьшить требования к графическим файлам (чтоб можно было использовать более широкий спектр файлов (eps, tiff, tga, bmp) и убрать жесткие требования по цветовой палитре.
Docent Picolan
18 Oct 2007, 12:41
Цитата
убрать жесткие требования по цветовой палитре.
тогда можно будет добиться полупрозрачности, о которой так давно все мечтают в третьих героях..
easy-to-kill
19 Oct 2007, 09:46
Цитата
Цитата
Видать не скоро мы увидим OpenHeroes, а хотелось бы.
а зачем?
Как это зачем?
Хочу свой мод сделать.
CrackedMind
22 Oct 2007, 08:32
izrukvrukiПлан работ нужен угу

Но это попозже.
Пока предварительные желания и хотения, пока чрезвычайно обобщенные

Кроссплатформенная игра. Для начала linux & win32 хотя бы. Писать на С++ с использованием SDL. Почти всю логику, а по возможности и АИ вынести в скрипты. В качестве скриптового языка, хочу использовать Python. Соответственно автор мода сможет дополнять и менять игру как ему вздумается, в разумных рамках конечно

Опять же нормальную поддержку национальных языков сделать, использую Unicode (UTF-16 в частности, UTF-8 не люблю, ибо костылль жуткий). Вынести все содержимое текстовых файлов в xml файлы или может не стоит этого делать
как только разгребу дела свои, составлю более подробный план и прочее... Может найдутся желающие помочь? Хотя бы один человек
easy-to-kill
22 Oct 2007, 15:40
Я я я я я я я я.
Так хочу свой мод создать что аж чешется, так что буду всячески помогать и способствовать выходу OpenHeroes.
Если чето надо пиши в личку или сюда.
А вот еще несколько вопросов.
Точно на Си будешь писать? А может лучше на Делфи? Возможности те же а язык по проще будет. Я Си плоховато знаю. На Делфи норм пишу. Хотя для такого случая могу и Си подучить.
Что за язык такой Pyton?
gamecreator
22 Oct 2007, 15:58
Цитата(CrackedMind @ 22 Oct 2007, 08:32)
В качестве скриптового языка, хочу использовать Python.
может все же С++, Delphi или хотя бы Basic?
Добавлено ([mergetime]1193057927[/mergetime]):
Цитата(easy-to-kill @ 22 Oct 2007, 15:40)
Что за язык такой Pyton?
http://ru.wikipedia.org/wiki/Python
easy-to-kill
22 Oct 2007, 17:26
2 CrackedMind
Ты хочешь сделать что б был один кроссплатформенный екзешник или две версии - под виндоус и под линукс?
Для выполнения скриптов будешь использовать интерпретацию али компиляцию?
Лично я за компиляцию.
Как насчет того чтобы сделать возможность записывать и воспроизводить реплеи игр?
Как насчет того чтобы изменить формат карт?
Я представляю это так - карта является архивом в который можно запихнуть какие угодно файлы. Изначально(при создании карты редактором) в ней уже валяется один файл Default.map, который представляет из себя собственно саму карту(набор обьектов). Картосоздатель может наклепать сколько угодно .map файлов и добавить их в архив, что позволит в процессе игры сприптами менять текущую карту на одну из архива. Также в архиве будут хранится файлы скриптов(не хер им в глоб. событиях делать), а так же дефы, картинки, звуки, лоды, вобщем все что хочешь.
CrackedMind
23 Oct 2007, 06:16
Цитата
Точно на Си будешь писать? А может лучше на Делфи? Возможности те же а язык по проще будет. Я Си плоховато знаю. На Делфи норм пишу. Хотя для такого случая могу и Си подучить.
Во-первых, делфи я не знаю

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

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

Так что я думаю для мапмейкера не обременного знаниями программирования, будет проще Python выучить.
Цитата
Ты хочешь сделать что б был один кроссплатформенный екзешник или две версии - под виндоус и под линукс?
Exe это виндовый формат выполняемых файлов, под linux - другой

Так что файлов будет минимум два.
Цитата
Для выполнения скриптов будешь использовать интерпретацию али компиляцию?
Лично я за компиляцию.
Скрипты по определению не компилируются... Хотя у современных языков есть возможность компиляции в байт-код, для более быстрой загрузки программы, например у того же Python. Потом есть всякие jit-компиляторы, но это уже отдельная тема

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

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

И естественно скрипты не будут в глобальных событиях, как это сделано в WoG. Если делать архив с дефами, лодами и прочим, то это ж целый мод получается. Это уже черезчур, помойму.
easy-to-kill
23 Oct 2007, 09:27
Ну с лодами я конечно переборщил, но что не так с остальным?
Я имел ввиду что мапмакер может впихать в карту что угодно.
Хочет он иметь в своей карте свои портреты для героев или какие-то картинки что б в диалогах показывать - пихает их в карту, а не отдельно от нее.
Насчет целого мода ты неправ - сейчас во многих картах используются свои картинки, дефы, и что бы сыграть в такую карту нужно сначала их установить, притом в большинстве случаев эти файлы больше нигде кроме этой карты не нужны, а удалить их низзя если в лод записаны, а если в какую то папку кинуты то просто никто не знает какие файлы к какой карте относятся и ничего не удаляют.
Надеюсь кто-то понял что я тут написал.
Цитата
Скрипты по определению не компилируются...
Играл в Dink SmallWood? Так вот там есть скрипты, и они компилируются.
Кстати я могу целиком и полностью занятся скриптами. Собираюсь делать компиляцией.
Не знаю как насчет простоты Питона но всегда можно придумать и попроще.
Цитата
даже не Си, а С++, это все таки разные языки
Я именно его и имел ввиду.
Цитата
Во-вторых, на делфи не напишешь кроссплатформенное приложение.
Понял. Пошел учить С++
CrackedMind
23 Oct 2007, 10:42
Цитата
Играл в Dink SmallWood? Так вот там есть скрипты, и они компилируются.
Кстати я могу целиком и полностью занятся скриптами. Собираюсь делать компиляцией.
Не знаю как насчет простоты Питона но всегда можно придумать и попроще.
Не играл. Смысл скриптов как раз в том чтобы запустить его без компиляции. Вообщем спор, что такое скрипт и прочее, это извечный холивар

Цитата
Понял. Пошел учить С++
Можно было бы и на FreePascal

Но мне язык не нравится

А С++ полезно для развития)
easy-to-kill
23 Oct 2007, 11:54
Цитата
Смысл скриптов как раз в том чтобы запустить его без компиляции.
А нах оно надо?
В WOG тоже скрипты запускаются без компиляции, и все мы знаем какая при этом скорость.
CrackedMind
23 Oct 2007, 12:18
Цитата
В WOG тоже скрипты запускаются без компиляции, и все мы знаем какая при этом скорость.
Ну во-первых, скорость у интерпретатора питона в разы выше

У гугла много сервисов на нем написано к примеру. Во-вторых, ERM не быстрый и синтаксис у него ужасный

(не в обиду автору)
easy-to-kill
23 Oct 2007, 13:45
Хоть скорость у питона по сравнению с ЕРМ в разы выше(как и у любого другого языка) но с компиляцией он не сравнится(как и любая другая интерпретация).
Скорость выполнения скриптов должна быть максимальной.
К тому же ты собираешся делать AI в скриптах, чего гугл явно не делал.
Добавлено ([mergetime]1193136318[/mergetime]):
А вообще первоочередной задачей стоит движок. Ты там вроде бы умеешь лоды распаковывать и SDL знаешь. Делай пока что движок, а я компилятор напишу.
Завтра выложу демку.
gamecreator
23 Oct 2007, 16:43
Цитата(CrackedMind @ 23 Oct 2007, 10:42)
Можно было бы и на FreePascal
это почти делфи
sergroj
23 Oct 2007, 17:36
Цитата(CrackedMind @ 23 Oct 2007, 10:16)
Во-вторых, на делфи не напишешь кроссплатформенное приложение.
Напишешь. Дельфи под линух называется "Kelyx". Но лучше C++, т.к. существующая команда пишет на нем.
Цитата(CrackedMind @ 23 Oct 2007, 10:16)
Естественно формат карт будет изменен, только не так как ты это представляешь

И естественно скрипты не будут в глобальных событиях, как это сделано в WoG. Если делать архив с дефами, лодами и прочим, то это ж целый мод получается. Это уже черезчур, помойму.
В WoG 3.59 будет возможность загружать свои лоды, в том числе из карт, так что не перебор. Но вам лоды лучше сделать тоже отдельно от карт.
прокомментирую с сообщений этого года
1)Дизассемблирование не имеет смысла при размере дизассембленного файла >30м, да и найти стоящее чтото в нем трудновато будет
2)писать я так понял придеться под opengl для кроссплатформенности
3)зачем изобретать велосипед юзай LUA чем не язык для AI?
4)посмотрим что выйдет из этих задумок, думаю они вполне могут умереть, хотя не стоит загадывать, но для начала бы я не старался строить планы относительно фич, особенно щас их обсуждать, можно втихую записывать на листочек, а попробовал бы реализовать и посмотрел что из этого выйдет, а реализовать можно для начала простые ф-и героев
CrackedMind
24 Oct 2007, 06:06
Цитата(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)
Естественно формат карт будет изменен, только не так как ты это представляешь

И естественно скрипты не будут в глобальных событиях, как это сделано в WoG. Если делать архив с дефами, лодами и прочим, то это ж целый мод получается. Это уже черезчур, помойму.
В WoG 3.59 будет возможность загружать свои лоды, в том числе из карт, так что не перебор. Но вам лоды лучше сделать тоже отдельно от карт.
Kylix умер еще в 2002 году, он не считается

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

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