I’ve been thinking about rebuilding the war3 engine for years, so we can have an open source version of the game that the community can run with. I am not making any strong commitments here, but I’m throwing some feelers out there to see if there are other engine developers who have been thinking about this.
I thought Retera was kind of already doing this.
Yeah man are you trolling? I am this far so far:
I know… I know it’s just like a video of me playing warcraft 3, so the years of learning and gathering open source tools made by other people like DrSuperGood and all these things from the War3 community… it doesn’t really show in the video…
But yeah man, I can talk to you about what you’re asking about from the standpoint of someone trying to do it. I think it is a long, hard road with no financial plan. My guess is that when I finish, social media will be able to turn society as a whole against me and what I am working on, similar to Reforged.
Why do you want to walk this path? Why not make an RTS game in Unreal or Unity and make some money?
(Edit: full source code for the engine in the videos shown above is available on my github in the branch named ‘experimental’)
Why, Mr. Retera? Why? Why… Why do you do it?
Why, why post? Why keep fighting?
Do you believe you’re fighting for something, for more than your survival? Can you tell me what it is? Do you even know?
Is it freedom? Or truth? Perhaps peace? Could it be for love?
Illusions, Mr. Retera. Vagaries of perception.
Temporary constructs of a feeble human intellect trying desperately to justify an existence that is without meaning or purpose.
And all of them as artificial as the Warcraft itself! Although, only a human mind could invent something as insipid as love.
You must be able to see it, Mr. Retera! You must know it by now! You can’t win; it’s pointless to keep fighting!
Why, Mr. Retera? Why? Why do you persist!?
Because I choose to.
This is my world! My world!
…
Wait. I’ve seen this… This is it! This is the end! You were posting right there just like that, and I… I… I post here, right here. I’m supposed to say something. I say:
Everything that has a beginning has an end, Retera.
…
What? What did I just say?
No, no. This isn’t right. This can’t be right.
Get away from me!
What are you afraid of, Reforged?
It’s a trick!
someone remade the warcraft 2 engine as well, called the stratagus engine.
Impressive. Very nice.
Retera, very glad to find this. Great work and dedication. Definitely did think I was just watching warcraft. Not sure I do want to walk the path, but I either want to get on the wagon or get off. I’ll go through your source. Great work again.
Thanks! Be sure to check out the branch named “experimental”, it’s about 6 months ahead. I split off from the main stuff because I wanted to add jass support and break a lot of things, which would make less maps functional but reach towards a better goal.
I wanted a result so I really hacked the code together in some places. I’m sure in some places you may read it and think, “I could do better than this!”
Of course, if you feel that way, be my guest to do so and publish it
No problem on code quality. Some opening questions:
- Do you have casc asset support?
- Why java vs C?
- Done any thinking around path finding? Attack move?
- Done any thinking around fog of war?
Yes it should. Using JCASC. That said JCASC only supports local storage and not CDN (not sure of legality of pulling from Blizzard’s services).
Java is cross platform. In theory it will run on Linux, MacOS and Windows, both X86 and ARM without any sort of strange compatibility layers or much platform specific work, all using native JVMs and some API wrappers.
If now it is a good choice is another question. Java has made some interesting decisions in its development recently. However for a game it should still be fine.
c is also cross platform. when compiled it is converted into machine code. each platform just needs their own compiler.
Which is not cross platform? Since it means you need a build for every platform, which needs build instructions and possibly even platform specific code to support that platform.
In theory with Java one could make a build that works on every platform. Of course it is not that simple in reality, especially with the direction Java headed, but that was one of the motivations behind people like myself using Java.
the language is cross platform, though the compilers is not. most platforms have compilers for c.
The issues were regarding portability. With Java the same compiled java can run on all platforms, as the porting aspect is handed over to the JVM. Even dependent libraries like the graphics API wrappers should just work out the box with a lot of devices instead of having to be built and linked explicitly for each.
Having 1 build that works on all platforms is a lot more convenient than having a build for Windows 7 x86, Windows 10 x86-64, Windows 10 ARM, Mac OS x86-64, Mac OS ARM, Linux x86-64, Linux ARM, e.t.c.
I guess, that probably, DrSuperGood is just a slightly bit right on this^^
I do not particularly fancy Java, but if you balance the 10x slowness by the fact that a modern computer can run WC3 with minimal effort, that’s probably a fair choice.
If you think about a language to be crossplatform by its sourcecode, then every device with a text editor can basically run everything based on any language.^^