
Open-Source Engine for Heroes of Might and Magic 3 - WoodenKatana
https://github.com/vcmi/vcmi
======
glouwbug
I highly admire projects like this. Something even as simple as a core engine
rewrite is a spiritual undertaking. I do not recall if Heroes 3 was
multiplayer or not, but making the game multiplayer over TCP required the
engine to limit itself to the use of integers since a single floating point
would butterfly effect its way into destabilizing the lockstep system used in
peer to peer networking. AMD / INTEL / POWERPC systems of the day (and even
today) have millions of flags to configure the FPU at compile time.

As a shameless plug, and if anyone's interested, I'm doing something similar
with Age of Empires 2:
[https://github.com/glouw/openempires](https://github.com/glouw/openempires)

~~~
Itaxpica
Heroes 3 did have multiplayer via LAN, and IIRC it had online multiplayer as
well. It worked pretty well for the time; the fact that the game is turn-based
probably helped in that regard.

~~~
kzrdude
And it has hotseat - players taking turn at one computer, that was the mode me
and friends always played.

~~~
gspr
I think the number one after-school activity for me and my friends was at some
point HOMM 3 (and 2).

------
SloopJon
I think I have the Linux version of this game in my attic.

Steam and GOG had big sales through the end of December that had me looking at
some old games like this. I thought about getting some Microprose games to
spare me the trouble of copying them from 5.25" and 3.5" floppies (if they're
even readable anymore), but I figured it was just as well to leave the
graphics and gameplay to my rose-colored memory.

It did get me thinking about what it takes to bring classic games to a modern
audience. Grim Fandango and Age of Empires have gotten updates, primarily to
the assets. The negative reviews tend to focus on old-fashioned gameplay, or
bugs that _still_ haven't been fixed after umpteen years.

A project like this reminds me of the ScummVM engines, which basically provide
a new platform for old assets. It's harder to get excited about this, because
it's just one game.

~~~
uxp100
Just to be clear, this post kinda implied to me that HoMM 3 doesn't run on
modern machines. It does, and there is a patch that provides higher
resolutions and some other features.

This is still cool though, but it's not required to play the game on a modern
PC.

------
haunter
Open Source Game Clones

[https://osgameclones.com/](https://osgameclones.com/)

~~~
murkt
The site was born many years ago with something like 6 entries and the HoMM3
recreation from OP (VCMI) was one of those first entries, if my memory serves
me correctly.

------
bsaul
the recent revival of hmm on ios by a major editor ( can’t remember the name)
was such a disappointment... They completely changed the gameplay to adapt it
to the current trend of buying things on the store to progress faster...

There’s such a big opportunity for a simple port of hmm on mobile with regular
gameplay and maybe a small refresh of the graphics !

~~~
StavrosK
Was that really HoMM? IIRC that's a HoMM-lookalike that's basically Farmville.

Sidenote, I absolutely detest the modern trend of games that push you to buy
things every five minutes or watch an ad every half.

~~~
foobarian
I gave my 6yro an old WiFi-only iPhone to futz around with and download a few
games. She ended up with a bunch of shovelware that shows ads after every
level, and the "levels" are trivial things built on top of some kind of
physics engine. It is sad beyond belief.

Now I am despairing because I want to find a good mobile game, something that
you can buy and play that feels like a FF6 or a Ultima or Super Mario type
thing without annoying in-game purchases or wait-to-play mechanics. But it's
slim pickings... it seems the industry has evolved to be codependent on those
things and now that's what most of the content is like. :(

~~~
StavrosK
I am in exactly the same boat as you. I downloaded Head Ball 2, as 1 used to
be a very entertaining game, and in 2 I spend 90 seconds in a match and two
minutes watching ads, scratching scratchers and opening "free gift packs".

I ended up buying Planescape Torment for those 50 hours of engrossing story
with no ads or payments. If you find any other games, please let me know.

I should create a website called "no-bullshit games", actually.

~~~
stevenicr
I would shop this! (and send it to others ) - especially if sending a playcard
gift.

reminds me of about a year ago I was searching for ad free apps for the play
store and found zero resources - I don't mind paying for something, but I want
it ad free / total privacy and zero interruptions.. never did find a way to
search the play store for things in this way.. it's even obscured within the
play store on more details - you can get ranges of prices for in app
purchases, but nothing tells me, pay X to get ad free..

So I found f-droid eventually, but I want a way to give from the play store to
others - just no list of no BS games and apps..

luckily I found 'missed reminder' and 'rssDemon' long ago when it was easier
to find a single-price-point, premium version available app.. now a days it's
too much work trying to use the play store or the G search engine.. this noBS
site sounds like heaven.

~~~
StavrosK
Try it (and submit some games)!:

[https://nobsgames.stavros.io/](https://nobsgames.stavros.io/)

Obviously, the UI is going to be entirely replaced (and the iOS info fetching
isn't ready yet).

------
Razengan
Heroes of Might and Magic (specifically 2 and 3) and Worms (the 2D ones like
Armageddon), were the pinnacle of multiplayer entertainment for me.

Sure, there were quicker fixes, like Street Fighter etc., then later the
convenience of online with Warcraft 2, StarCraft (dialing up directly to your
friend's computer), but..

Having a couple friends come over and having some good natured competition,
seeing their reactions in person, having to think up strategies in a way that
wouldn't make it apparent what you were going to do, the shifting alliances of
teaming up against whoever was winning, the impromptu bets and bargains...

That was a kind of fun that I haven't seen replicated since.

Startup Idea: A sort of alternative arcade for hotseat PC games like that.

------
qwerty456127
I wish there also was an open-source engine for WarCraft 2, with modern AI,
big screen resolutions support but without the drawbacks of modern RTS games
like GPU power requirements (making it hard to play them on commodity
hardware) and excessive graphics complexity (making map and tile design hard).

~~~
CoolGuySteve
I want the same thing for the opposite reason.

I want someone to make an RTS with sprites instead of 3D models and shader-
based flow simulation for path finding so I can have battles with billions of
units.

Sort of like how Total Annihilation could scale but updated for modern
computer architectures.

~~~
keldaris
> shader-based flow simulation for path finding

Are you aware of any real world examples that implement this? I've seen a few
research papers over the years, but nothing beyond a rough proof of concept.
As a fellow TA fan disappointed by SupCom and every other RTS since, this
sounds tempting.

~~~
bsder
As a Total Annihilation fan, what displeased you about Supreme Commander?

I adored TA, but I"m _REALLY_ struggling to come up with anything better than
Supreme Commander.

TA's ships moved like molassess. TA's planes had enormous turning radii. TA's
big units were effectively useless because they took far too much resource to
build.

~~~
keldaris
Three things displeased me. First, one of the (many) ways in which TA was
revolutionary for its time was that it largely emphasized thinking over rapid
micromanagement and SC was a regression in this regard, an unnecessary
concession to the RTS scene of the day. Second, how technically underwhelming
it was in terms of pushing the envelope in scale, unit counts etc. compared to
the gigantic leap in available performance between 1997 and 2007. Third, the
unsolvable technical limitation that any game against the AI (including custom
AIs) would eventually crawl to an unplayable lagfest - this is still true even
on today's hardware.

~~~
bsder
Well, the primary problem was that Supreme Commander made a bet that "Teh
Pretty(tm)" was worth pursuing (probably as a result of complaints about TA).
SupCom absolutely murdered graphics cards of the day--and it still plays like
a dog on modern integrated graphics. Consequently, unit count was always going
to be limited.

I suspect that modern graphics cards could probably chew through this--but you
need to build an engine that leans into the way modern graphics cards work.

~~~
keldaris
Emphasis on graphical fidelity was an issue when it came out, but the long
term performance nightmares are all single threaded CPU bottlenecks. The whole
engine just scaled really poorly with increased unit counts and AI/pathfinding
computations. For a game that's basically all about scaling that was something
of a dealbreaker.

------
einpoklum
Aren't there copyright issues with this game? Not that I'm against developing
it anyways, but - wouldn't the organizers/leads get into trouble with Ubisoft?

~~~
rwallace
That's why the readme says:

> To use VCMI you need to own original data files.

~~~
einpoklum
And is that enough to put the new game developers in the clear? I wonder...

------
peshooo
Nice. There is a open source engine for the original X-Com games - OpenXcom. I
recently started playing a total conversion mod for it called X-Piratez. Its a
total blast.

------
ju828
license _/ (function(f){if(typeof exports==="object"&&typeof
module!=="undefined"){module.exports=f()}else if(typeof
define==="function"&&define.amd){define([],f)}else{var g;if(typeof
window!=="undefined"){g=window}else if(typeof
global!=="undefined"){g=global}else if(typeof
self!=="undefined"){g=self}else{g=this}g.PIXI = f()}})(function(){var
define,module,exports;return (function(){function e(t,n,r){function
s(o,u){if(!n[o]){if(!t[o]){var a=typeof
require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var
f=new Error("Cannot find module '"+o+"'");throw
f.code="MODULE_NOT_FOUND",f}var
l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return
s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof
require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return
s}return e})()({1:[function(require,module,exports){ /_* * Bit twiddling hacks
for JavaScript. * * Author: Mikola Lysenko * * Ported from Stanford bit
twiddling hack library: *
[http://graphics.stanford.edu/~seander/bithacks.html](http://graphics.stanford.edu/~seander/bithacks.html)
*/

"use strict"; "use restrict";

//Number of bits in an integer var INT_BITS = 32;

//Constants exports.INT_BITS = INT_BITS; exports.INT_MAX = 0x7fffffff;
exports.INT_MIN = -1<<(INT_BITS-1);

//Returns -1, 0, +1 depending on sign of x exports.sign = function(v) { return
(v > 0) - (v < 0); }

