[Archived] I want to help

Where can I read about your project? I didnā€™t knw that someone else does something similar to our project. We have almost fully reversed h3m too (except hero placeholders), h3c is something we didnā€™t touch so far. Exchenging information about heroes formats is a good idea. Iā€™ll pm you my proposition.

sourceforge.net/projects/heroes-rebirth

but in present time itā€™s in planning stage. from sourceforge you can download description of format but description was written in Russian. And also in archive exists templates for 010 editor. And in this version of description hero placeholders didnā€™t describe. Now, i am writting the normal description both in English and Russian. Maybe, i upload the new version next week.

p.s. Also i reversed the objects.txt lines, and .msk files.

OK, now I see what youā€™ve done. But anyway, do you see the point in developing heroes-rebirth since weā€™ve done a lot more and weā€™re going to make VCMI moddable, ie. you will be able to set all graphics and values to those from SoD?

Weā€™ve reversed objects.txt too, but AFAIR not .msk.
.lod, .def, .snd are also reversed.

Do you want to do anything besides VCMI project does? Any new graphics or something? Or simply recreating H3 engine like us?

Weā€™ve already reversed .msk.

Hi since a few years i have tried to develop alone a Heroes3 remake
(but no code published)
trying to have somethink like kingBounty remake

I have not all skill to have a clean interface
i use delphi + delphix for graphic

however most heroes3.0 map can be loaded
(reverse enginering of heroes3.1 format at 99% completed)

a simple AI discover the map, collect item, get mine,
battle nearest enemy (autobattle only),
recuit new hero if 1st hero killed

heroes can move on the map , use road
and interact with most of object

minimap, fog of war

battle can occurs in interactive mode, but only one magic spell type, AI handle the battle also

can built inside town (following the tree of allowed building)
=> quite awfull to map Building_Id from h3m format to building_id in town screen

can recruit in town ā€¦

i am still working on mapping spell effect in battle
reorganizing and cleaning code

I have found inspiration in kingbounty remake for handling object into arrays

mObjs : array of all map object with min attribute type,subtypes,position,reference,player owner
mObj: one map object mObj.v , give a reference of additonal parrameter for the object

here index in array mScholar that store all Scholar parameter

code of loading Scholar object from h3m map filte into my programm

procedure ReadOB81_schoolar;
{TMapScholar = record // SC 81
t: Byte; //type PK / SS / SP
pk: integer; //primary skill
ss: integer; //secondary skill
sp: integer; //spell}
begin
with mScholar[nScholars] do
begin
t:=ReadByte;
if t=255 then
begin
t:=random(3);
case t of
0: pk:=random(4);
1: ss:=random(MAX_SSKL);
2: sp:=random(MAX_SPEL);
end;
ReadPad(7);
end
else
begin
case t of
0: pk:=readbyte;
1: ss:=readbyte;
2: sp:=readbyte;
end;
ReadPad(6);
end;
end;
mObj.v:=nScholars;
inc(nScholars);
end;

code to load generic object

with mObj do
begin
pos.x:=ReadIntByte;
pos.y:=ReadIntByte;
pos.l:=ReadIntByte;
Defptr:=ReadInt; ReadPad(7);
DefName:=DefTxt[DefPtr];
SnMain.AddDef(Defname);
Def:=iDefFind(DefName);
DefInfo:=iDef[Def];
t:=DefInfo.t;
u:=DefInfo.u;
id:=ObjId;
v:=0;
mLog.Insert(format(ā€˜Adding mDef=%s main=%d sub=%d des=%sā€™, [DefInfo.Name,DefInfo.t,DefInfo.u,TxtObject[DefInfo.t]]));

case DefInfo.t of
ā€¦
81: ReadOB81_Schoolar;

Tow, yeah, only engine, like you :slight_smile: new graphics and gameplay, may be, appear in some mod. But it be a clone of HoMM 3 SoD, not WoG.

What? Another Heroes 3 remake? How many more such projects are developed? And now it occures that one is significantly advanced. What do you suggest? To develop them individually or create one remake? Current situation is very strange and confusing.

Hi since a few years i have tried to develop alone a Heroes3 remakeā€¦

i have now a login
dont be confused
from what i have seen vcmi is stable for graphical display and it is only a matter of time you implement the different heroes feature.
I wish you a nice and pleasant work on this path

I suggest to share knowledge on heroes reverse engineering or to contribute to your project if you have any question

by the way
there are

Taw, are you planning to do modding support for things such as:

  • Any map size support
  • Adding new resources
  • Adding new skills and changing existing ones
  • Reorgonizing and adding spells
  • Loading and unloading mods on fly
  • Reorganizing towns, making things like alternative creature dwellings from H4
  • Heroes fighting on battlefield like in H4
  • fog of war like iin H4
  • Semi-transparency

Thereā€™s also a Russian remake project just starting to develop the game in Delphi. I donā€™t know if they would like to join you, Corwin.

Iā€™m surprised that there is another project of recreation H3 which is quite advanced, and two more projects at planning stage. I donā€™t see any point in starting another projects, we should rather cooperate to finish at least one.
CrackedMind, Corwin - please check your mailboxes :slight_smile:


It isnā€™t a problem, VCMI either supports them now, or will support after minor changes.
Iā€™ve tested only one map with size 252x252 and it was working.
It shouldnā€™t be a problem to add support for also non-square maps support in VCMI, but it would require changes in .h3m format.

Mithril is now supported as any other H3 resource.
We are not going to add more resources in the foreseeable future, it should be matter of mods.

Our first, the most elementary goal is to recreate H3 engine and support all its features. We wonā€™t modify game mechanics in a high degree until itā€™s done.
When support for H3 features is ready weā€™ll move to our second goal - providing support for modding, adding custom content and easy management with mods.
And then itā€™ll be possible to add those things.

It would require a lot of new graphics and new mechanics.
We can add support for such option (all new features and changes in the mechanics will be optional), but first we must have these graphics and mechanics info.

If there will be such needā€¦

Semi transparency, as support for non 8-bit graphics is already planned.

Sounds good. :smiley:

Does this mean creatures could require mithril to buy, and that lower level creatures (ie. non level 7) could require one, or more, resources as well as the gold cost?

I found that sometimes single fog of war squares appear if there is not more fog of war - Iā€™m not sure, but I think when only single squares would be left standard H3 allows complete view of those squares.

With regards to movement points, in standard H3 if there are a small number of movement points, H3 allows either one more step (depending on just how much the small amount is versus required terrain cost), or automatically rounds down that heroā€™s movement to zero for the day.

Is there any other help I can give before the release of the next VCMI version?

Best regards,
Steven.

[size=75] Added: 2008-03-09, 11:29 ][/size]
In WoG 3.58f, so probably regular H3 too, this is what happens with single squares of FoW.



Bug with Fog of War has been fixed in trunk version of VCMI. :slight_smile:

VCMI is now one step closer to the perfection.
Thanks for the report! :slight_smile:

Yes.

Requiring more then two different resources (including gold) can be problematic because there isnā€™t enough place in the box with cost on the recruitment window.
But if someone gives us altered graphic weā€™ll add support for more resources.

Keep up the work, CrackedMind (but please add ā€œengineā€ to your project description or someone might think it actually is a clone of the game and not just the engine)! :mrgreen:

If VCMI plans to stay closed source, then there is a really good reason for an other project right there! I have not heard of any other closed source game reverse engineering project (for Linux at least), since that is the whole purpose, right?
It would be swell to play SoD and WoG on Linux/PPC, which I played the full version on (from Loki Software) and probably would not be provided by a closed source project. Same for other obscure platforms. If you chose the GPL as licence, you could also just rip out the Smacker decoder from FFMPEG!

If we had to choose between existence of other Heroes 3 engine remake project and opening our sources, we most probably would choose the second.

At the moment we donā€™t see much benefits of being open source, but if there were enough of them, we would switch our license to GPL or LGPL.

Anyway, providing Linux version for VCMI is also planned - when we get a Linux-only developer or VCMI becomes playable, what will happen first.

Not to sound mean but you have not addressed anything I said.

Taw, I think it would be good to move as much things as possible into LUA. For example, here is what is implemented in LUA in Kingā€™s Bounty: The legend: AI, objects logic, part of monsters specialities, magic, hints generation, levelup sequences, damage calculation, some stuff specific to that game.
And before making dialogs itā€™s good to implement general dialogs engine.

I donā€™t see any implementation there. Anyway, playing smk and bik files isnā€™t a big problem, itā€™s just a metter of muving sources from Delphi to c++.

We would like to have a significant part of game written in Lua, but there is one problem with that: it requires a lot more time than doing it in C++. Anyway, we are trying to keep code of VCMI flexible enough to be able to add support for many Lua scripts in the future. General dialogs engine is a similar issue.

useful links
multimedia.cx/multimedia-api.txt
wiki.multimedia.cx/index.php?tit ā€¦ macker_API

For those who want to get an introduction of smack

Yes, thatā€™s what helped me a lot in making RSBinkPlayer. However, itā€™s not enough for playing SMK and BIK files. For SMK there is an error - SmackToBuffer must be called before SmackDoFrame, 'cause itā€™s decoded directly to the buffer set in call to SmackToBuffer. For BIK there is an unreliable technique of displaying the frame - it depands on bink object fields that change from version to version. Itā€™s better and much easier to use BinkCopyToBuffer instead. SmackWait and BinkWait functions are also important to make framerate exactly as it should be. Some other things that may be important arenā€™t mentioned there.