Hi, first of all I want to thank to the long time maintainer of FHeroes 2.
Improvements already:
1. CMake based build (meaning that if you want to use anything but makefiles, you are free to do so). Let's say Xcode
2. C++ 11 code-base
3. Few UI tweaks, more to follow: you can upgrade units if you have resources with one click. Buing buildings is also with one click. It feels a bit alien initially, but it is very addictive after
4. The drawing of lines is with antialiasing
Targets:
1. support either only SDL1 or SDL2, having one target (very likely: "desktop only") will make development more focused. Today SDL1 works best and enabling SDL2 makes the drawing to be really messy.
2. make new binaries: I can support OS X and Linux. Help me build it on Windows
3. Smoothen the UI, even if it means breaking some Heroes 2 "identical UI" idea: Yes/No to be bottom right
4. Modernize the code: some bugs are just because the code is not ussing correctly binding functions of std::bind. Using C++ 11 constructs may be help at least to point these errors out. Making code modern makes it easier to be imported in an IDE and get good code completion (like in Visual Studio if you are using it, or CLion, or XCode)
5. Long term target: make possible to have quick battle combat or replay.
6. Remove tools like extraction tool
Open issues (maybe a person can step in and help here):
1. help me build it on Windows. CMake experience is a bit required, but feel free to ask for help from me at least how to build it initially
2. help into bundling: can you give to me free of charge maps? I personally own Heroes 2, but I would love to be real maps which are bundled as part of package. If you can build on Windows I can help making InnoSetup installer
NB. I'm not a C++ developer by trade, so I did try my best to make the code readable for me. Feel free to review and fix some code as pull-requests on GitHub
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Nice idea, but why would you remove SDL2 renderer..? It was working pretty well on some platforms. And while some love CMake, removal of Makefiles seems questionable too..
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I will support just one renderer as if it is me. If let's assume that SDL2 renderer works on let's say all desktop platforms, I will support SDL2, otherwise, SDL1. The reason is practical: I'm just one monkey at just one type-writer. If you think you can support SDL2 instead of SDL1, please contribute and we will drop SDL1. So just feel free to contribute to any area and you will also get all my help around.
Removing of Makefiles makes sense for two reasons: I'm not a C++ developer and everywhere I looked, people target typically CMake today. And the second reason is that CMake generates native projects including makefiles on Linux. Run: "cmake ." and will generate a Makefile on Linux (if I recall right). If not, definitely: "cmake . -g" ... But the point of CMake is to allow more modern tools to work with. (I work with CLion, but some people work with XCode on a Mac). If CMake doesn't generate the Makefile you want, or you want to support a platform that doesn't work so well with these Makefiles (namely Windows doesn't generate now a Makefile, and even it would generate, probably it wouldn't build, as VS would not know how to make that project).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, first of all I want to thank to the long time maintainer of FHeroes 2.
Improvements already:
1. CMake based build (meaning that if you want to use anything but makefiles, you are free to do so). Let's say Xcode
2. C++ 11 code-base
3. Few UI tweaks, more to follow: you can upgrade units if you have resources with one click. Buing buildings is also with one click. It feels a bit alien initially, but it is very addictive after
4. The drawing of lines is with antialiasing
Targets:
1. support either only SDL1 or SDL2, having one target (very likely: "desktop only") will make development more focused. Today SDL1 works best and enabling SDL2 makes the drawing to be really messy.
2. make new binaries: I can support OS X and Linux. Help me build it on Windows
3. Smoothen the UI, even if it means breaking some Heroes 2 "identical UI" idea: Yes/No to be bottom right
4. Modernize the code: some bugs are just because the code is not ussing correctly binding functions of std::bind. Using C++ 11 constructs may be help at least to point these errors out. Making code modern makes it easier to be imported in an IDE and get good code completion (like in Visual Studio if you are using it, or CLion, or XCode)
5. Long term target: make possible to have quick battle combat or replay.
6. Remove tools like extraction tool
Code is on Github:
https://github.com/ciplogic/fheroes2enh
Open issues (maybe a person can step in and help here):
1. help me build it on Windows. CMake experience is a bit required, but feel free to ask for help from me at least how to build it initially
2. help into bundling: can you give to me free of charge maps? I personally own Heroes 2, but I would love to be real maps which are bundled as part of package. If you can build on Windows I can help making InnoSetup installer
NB. I'm not a C++ developer by trade, so I did try my best to make the code readable for me. Feel free to review and fix some code as pull-requests on GitHub
Great News! Looking forward to the first releases to test.
Regarding bundling you may want to look at the demo version that includes some extra maps. https://www.fileplanet.com/133144/130000/fileinfo/Heroes-of-Might-and-Magic-II-Gold-Trial-Client
Nice idea, but why would you remove SDL2 renderer..? It was working pretty well on some platforms. And while some love CMake, removal of Makefiles seems questionable too..
@Taras, I will answer you point by point:
I will support just one renderer as if it is me. If let's assume that SDL2 renderer works on let's say all desktop platforms, I will support SDL2, otherwise, SDL1. The reason is practical: I'm just one monkey at just one type-writer. If you think you can support SDL2 instead of SDL1, please contribute and we will drop SDL1. So just feel free to contribute to any area and you will also get all my help around.
Removing of Makefiles makes sense for two reasons: I'm not a C++ developer and everywhere I looked, people target typically CMake today. And the second reason is that CMake generates native projects including makefiles on Linux. Run: "cmake ." and will generate a Makefile on Linux (if I recall right). If not, definitely: "cmake . -g" ... But the point of CMake is to allow more modern tools to work with. (I work with CLion, but some people work with XCode on a Mac). If CMake doesn't generate the Makefile you want, or you want to support a platform that doesn't work so well with these Makefiles (namely Windows doesn't generate now a Makefile, and even it would generate, probably it wouldn't build, as VS would not know how to make that project).
This is how it feels/runs (you have to build it from Git):
https://youtu.be/AmPKviRAPB4
Version 0.9 - Quick combat is here. Few UI tweaks and not only :)
Sadly the original versioning doesn't have increments smaler than 0.1, otherwise, it would be version 0.8 something.
https://www.youtube.com/watch?v=cP2Gq2lv4JE
Video describing what was done in this release:
https://youtu.be/A8KwfSmW0G4
Added full installer here:
https://github.com/ciplogic/fheroes2enh/releases/tag/0.9.5
Performance and a Heroes 2 Launcher are created (sadly it runs for now only on Windows or on Linux with Mono) are now included.