[Archived] I want to help

There is a lot to be done as you prbably have read, but of course you can halp in a variety of ways!

Here is the list of what you can do (will be actualized)

  • engine programming [requirements: at least average knowledge on C/C++, it would be good to know Lua or ERM also]
  • reverse engineering of HoMM3 formats (h3c, remains of h3m, maybe GM* (saves))
  • video handling (code of C++ library being able to play bink/smk videos is warmly welcomed, please use SDL to handle displaying)

Things already done/figured out:

  • extracting images form WoG (currently most wanted: sea animations near coasts, river animations) - for more details please PM/email
  • finding a better way to get player - colored bitmaps (like resource bar, hero window background etc.)

If there is anything you would know besides that, please ask here.

  1. I guess I’ve found the way water is made. There are 2 special series of colors in WATRTL.DEF palette: 229-240 and 242-254 (or 243-254, or 242-253). The animation is done by shifting those series by one, so that color 229 is moved to 230 position, 230 is moved to 231 and so on, and 240 is moved to 229.
  2. It works this way: The last 32 colors in palette are taken from Players.pal. If the color is Red, the first 32 colors are taken, for Blue player colors 32-63 are taken and so on.

Hi GrayFace,
thank you very much for that information!
We’ve already implemented new colouring function based on your advice. It’s much better :slight_smile:
Water is problematic, much code must be changed, but it’ll be done sooner or later.

I don’t have a whole lot of time to help with coding; but I think I could help with testing. Any particular method you want us to use to test your builds? How should we provide feedback?

Thanks,
Corleone

No, nothing special. Just run the application and try to find things which don’t work proporly, or crashes. Try different maps and settings.

You may post your reports here.
Please describe precisely what isn’t working and how to reproduce the bug.
If you need you can attach to your posts files (e.g. map which makes VCMI crash, or screenshot showing what’s wrong).

I think I have already given you a link to my Delphi .bik and .smk player, but I’ve refreshed it: grayface.nm.ru/RSBinkPlayer.rar

Yes, you have and it is quite helpful, but we’ve encountered a problem with converting HBITMAP to SDL_Surface - and it remains unresolved.

Actually conversion is not the biggest issue with videos. I’ve tried to rewrite function for playing them, but I’m still getting crashes. Because it’s not a critical aspect of the game we decided to postpone video support in hope that someone will do it for us (maybe I’m just too stupid :slight_smile: )
If not - we’ll return to it when the rest of big features is done.

I working on my own project called “Heroes: Rebirth”. It will be open source. I fully reversed h3m & h3c formats (but only SoD version). May be we do exchange of information?

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.