Good evening, dear community.
I'm writing in Ukrainian because it's easier for me to formulate my thoughts. I think most of the thoughts will be clear, and what isn't — well, that's what Google Translate is for.
If anyone's been following along, you might notice that the pace of writing has slowed down lately, new stuff is being added sluggishly, and mostly in reports I'd write "fixed this and that."
That's actually how it is. I once wrote a post about how I'd write Heroes in a browser. I broke it down into three parts:
1. Write the battle in the browser.
2. Write some simple duel template (e.g., JC).
3. Write the AI and the rest of the templates.
In March, quarantine started almost simultaneously in all countries. Everyone coped in their own way — for me, the transition to quarantine wasn't a big problem; the biggest one was developing the discipline to be able to work from home.
The crisis, however, started in Heroes. I had 3 months left of OH that I'd won in a betting game. It was a shame to feel that SoD was dying and all players were moving to HotA.
I don't know exactly what pushed me toward this activity. In December 2019, I took my old project
http://hexagonapp.appspot.com/ and started gradually rewriting it for SoD.
Back then I was streaming — I remember dave_hun even dropped by, which was a pleasant surprise. At that point I managed to get an angel, a champion, and a minotaur walking around instead of those three creatures from Heroes 2.
Then I shelved it for six months. I'd just gotten six months of OH and started using them to the fullest.
Then quarantine began, and I got the feeling that Heroes were no longer bringing me the satisfaction they used to. What exactly pushed me to continue working on the project — I don't know for sure.
At one point, I estimated the time to write the battle in the browser at a year of work. Of course, that's full-time work — five days a week, eight hours a day.
In short, I worked on it for a year. Only the work mostly happened on weekends. You can check the schedule in the picture from GitHub that I ripped out and that you most likely won't be able to see.
Looking back, I realize that knowing what I know now, I'd probably have spat on it and done something simpler.
Now it's just turned into some kind of obligation I've hung on myself. Like "I need to write Heroes on the weekends." That's not good. In the beginning, it brought me joy.
Now I don't know anymore. Over the last two weeks, I've opened the IDE a few times, hypnotized the code, and closed it.
I don't know what the reason is. It could be that I changed jobs in March. It could be that I'm tired. It could be that the community and everyone else don't care. It could be that I've got other priorities I'm working on now (not on weekends, but still).
So this post is a kind of self-awareness exercise — maybe after this, it'll be easier for me and clearer what and how to do next.
As for the state of Heroes in the browser — right now, battles with magic are implemented in various formats: hero vs hero, against neutrals, in the bank. With bugs, but bugs are actually trivial. The state is saved in the browser, but restoring it with server-side saving isn't a problem — that was already done back in June last year. It's just easier for me to develop this way. Besides, on the site where I post it, you can't attach a server.
There are a few fundamental problems. One I need to solve right now is the appearance of widgets and their reuse. I've hit a dead end, though it's most likely fatigue and discouragement.
There were many problems during development. First, I made the mistake of trying to do it on canvas like in hexagonapp. Then I made the mistake of writing in SVG. Then I made the mistake of drawing the graphics incorrectly.
Reworking each of these mistakes took a couple of weekends. Of course, after that, more stuff got added. Then I made the mistake of moving everything into a database too early, and I live with it now (a simple JSON would've been enough, which is actually what's on the demo).
There's a bunch of tedious work that I ultimately have to handle myself, because the people who promised to help are flaking out. Though that was expected.
That includes writing a resource extractor from .lod files, parsers for the tables on heroes.thelazy (a great wiki), and writing SQL scripts from which the needed JSON files are then generated.
Right now, the problem is positioning the various graphics I've extracted, but for them I need to find the "magic" numbers to then use to draw everything on the battlefield.
I'm not even counting minor design flaws, like a slightly different pathfinding algorithm, writing a monstrous class for spells that I then spent a long and tedious time breaking apart and rewriting to make creatures able to cast magic too, and so on.
Seems like I've done a lot, but I realize that in this state, nobody gives a damn about it, and I wouldn't want it in this state myself. In principle, if you gave me another year, I think I'd manage to finish the battles to a decent state, including town sieges.
But I no longer know if I want that. I don't understand why I'm doing this. It was interesting, you can show it to people, and they say "wow, cool," but it's not work that's done. And it's not a finished project.
Now it's turned into a kind of burden that's hard to carry, but a shame to drop.
I don't know. There probably won't be updates in the near future, because I need to figure out what's what and find motivation, or spit on it and put it in the drawer with the projects I also never finished.
In the next few months, I think I'll figure out what's next and what I want.
That's it for now.