Cool to see a VCMI developer here. I'm the creator of Project Ironfist, the Heroes 2 mod that works by some seriously cool binary modification tech (www.ironfi.st).
That's neat art on here, but might be you should at least add link to github on website. Also I unsure whatever one can actually apply free license on reverse engineered code, but at least some licensing information would be expected.
One question, why wasn't it built on top of Free Heroes 2? Though I suppose for the same reasons why some people preferred to work on ERA / WoG / HotA instead of rewriting engine from scratch.
Exactly as you said. It's a lot easier to make something better than the original game when you start with the original game, instead of trying to get a million subtle things right.
Also, developing on fheroes2 is not necessarily easier. Our tech lets us mod the game almost as easily as if we had the original code.
I think it's depend on goals. I started contribute to VCMI because I wanted seamless maps, more layers than two, simultaneous turns, advanced path finding and smarter AI. All of it is very hard to implement with reverse engineering if possible at all.
Of course there are some very talented programmers who able to achieve almost anything, but it's nearly impossible to get external contributors into project like that and if main developers lose interest there usually no one to continue their work.
Totally. Although, I think you underestimate just what you can do with modding; some of the things you mentioned sound like they would be about as easy to do in Ironfist as in a rewrite.
Here's one way to put it: the amount of programming work that has gone into fheroes2 is several times that of Ironfist. Because of our approach as a mod instead of a rewrite, in a lot of ways, we are far ahead of them.
Everyone wants a rewrite. Sometimes, you have to ask how many resources you have.
(On a different note, from my last few investigations, there's a lot that I don't like about the fheroes2 codebase which provide independent reasons for not using it. Rewrites are not created equal. Apologies to any fheroes2 devs reading this.)
It's not like I underestimate modding, but I just try to not overestimate my own abilities. Reverse engineering require significantly higher programming skills or ability to learn and a lot of time.
Even in that case most of attempts to get something to playable state end up with nothing simply because there are rarely more than one expert who want to work on the same project.
With code created from scratch there is better chance someone else could continue the work if it's wasn't completed by original author.
Got it, except.....doing something like VCMI in some ways requires more reverse engineering. I'm confused. Maybe explain your reasoning in more detail?
Sorry for delayed answer, but hopefully you'll still read it. I do agree that on some stage VCMI required plenty of reverse engineering, but even in this case developer who work on clean reimplementation don't really have to understand how original game worked. Of course you need to know how to read original assets formats, but that's all about it.
Also any developer who join project after some initial stage could simply don't care about any limitations original game code had. Like I personally use H3 a lot as reference, but I never ever needed to go into IDA or check assembly listing.
I suppose you can have completely different view on that because you're expert, but for overall person who just starting to do C++ coding it's all looks extremely scary. Even now when I understand it's just require a lot of learning and motivation I simply can't justify do such investment.
Yep, it's definitely true that the programmers on the Ironfist team have all gotten used to browsing through the decompiled listing of the original game's code, and the ones who have been on the project longer have all learned some IDA. (Though it's almost never that any of us needs to look at the assembly.) I'll agree that is a difference. It still seems to be splitting hairs to talk about the difference being knowing how the original game works, vs. knowing how your reimplementation works.
This is the difference that was important to me since when I started to work on VCMI my C++ experience was limited to creating tools in Qt. I also made few attempts to work on number of other projects before that, but never contributed anything back because code wasn't nearly good enough.
I could be biased too, but for many contributors I knew (in open source games, not just VCMI) C++ programming is no more than hobby and if barrier to entry is too high they would likely never start contributing in the first place.
PS: If you ever going to have time and interest in checking VCMI feel free to jump to our slack! We always benefit from advice or two given.
I think it's depend on where you stand. I do have plenty of useful skills and expertise in many areas, but when it comes to C++ development it's likely that I'm nowhere close to "very junior programmer" with proper education. Might be I'll try to get a job in future and will know for sure, but at moment I feel best I could hope for is some QA position.
And a lot of open source contributors are like that especially when it's come to games since there no one to pay for development. There are number of games that have very skilled people on team (VCMI has @alexvins), but usually they started with very basic things and learned along the way. As our project originator who still around, but no longer contributes said: when programmer get good enough he get a job and no longer have time for contributing. :-)
Another thing even is that gap in education quality is huge around the world. We have many people from Poland since H3 is very popular there and sadly even after computer science course their knowledges are much worse than mine and skill of practical development is none. Disclaimer: I don't have any education and situation usually much worse in Russia where I live.
If you talking about Mac version then unfortunately builds that are available don't have all need dependencies bundled and CMakeLists need fixing. And how well it's going to work under Wine I have no idea.
In either way if you have some free time you can jump to our slack (invite page link is on github) and help me fix it. Sadly we don't have any active developer with Mac and amount of testing I can do in VM is very limited.
Thanks! We're glad to accept any help and will try to provide any information needed. Generally it's should work fine on Mac since one of our contributors (Vadim Markovtsev) ironed out most of the problems some time ago, but no one worked on packaging yet.
I'm the only none that consider the skill system and magic system of Heroes of M&M IV better ? These game had good and bad points (less castles that a a fusion of the old castles of H&H 3! ), but the way of levelling and focusing a hero was very powerful.
I think the reason earth is truly broken is slow. Makes no sense that a lvl 5 can cast extreme slow on an entire army and just range-it away.
Town portal was clearly put in there to patch the terrible expeirence of spending 2 hours to move a heroe across the map. But no reason for slow to be so imbalanced!
I find it interesting how later iterations of the game fixed the Mass Slow problem, but (perhaps with the exception of the King's Bounty reboot) generally weren't considered as fun to play.
Mass slow (seriously overpowered, especially against AI), mass shield, mass stone skin - 3 of the best 1st level spells belong to earth magic school. Not to mention town portal, anti-magic, resurrection and the most powerful offensive spell - implosion. The only case I occasionally skip earth magic is when I play barbarians, where air magic (mass haste) is more important and game is expected to end during the first month.
Shameless plug: if anyone with C++ experience want to mess with almost complete Heroes 3 engine check our project: https://github.com/vcmi/vcmi