Alright, there are a few things I need to note.
The website is very hard to navigate. Usage of fixed frames makes a lot of screen space wasted and when I open a link in new tab, it opens only the frame so all navigation is gone. Also, the buttons are images but they are just rectangles with text. You can do better with just CSS. Since buttons are raster and seems to use fixed size in pixels, they are very small on HiDPI screens.
I've spent several minutes looking for a repository link or any way to download the source code. Apparently, you've decided to put the source code and binaries in the same archive. Well, yes, it's nice for us GPL lovers but me and most devs would really like just the source code. Next, tar.tar.gz? What? Why did you do that? That makes no sense. No need for double tar'ing. So I finally unpack this whole thing and I see a bunch of source code and "bin" and "obj" dirs. It looks like you've just took your dev setup and archived it. That's not usually how it's done. Also, apparently all assets are in the "bin" directory. Why? Bin is usually where the output files go in a dev setup and it is cleaned between rebuilds.
Now, you claim that building is so easy. Well, in 21st century, the easy way to build C++ code is usually:
- {l Code}: {l Select All Code}
mkdir -p Build
cd Build
cmake ..
make
But you demand to install a very old and bloated Code::Blocks just to build the code. It's just not practical. I myself use CodeLite but I make sure the users of my code will never need to install any IDE just to build it. It's an explicit decision to remove the "works on my machine" problem.
Let's dive deep in the code.
- {l Code}: {l Select All Code}
char name [255]; // unique name
In 2018? Really? Again, maybe that is because you *really* care about performance but it's 2018...
- {l Code}: {l Select All Code}
void CModel::setName (char *name)
{
strcpy (this->name, name);
}
Since name is char[20] that is a buffer overflow vulnerability and will lead you in a world of hurt. It's 2018 and we have std::string since 1998.
- {l Code}: {l Select All Code}
#include <stdlib.h>
The only excuse to do that is if you inherited a very old C codebase which doesn't seem the case.
It looks like pretty much all big variables are global and every tiny detail is totally hardcoded. The only way to mod the game is to recompile the whole thing each time.
It looks like the codebase was written by someone who is very new to C++ and only using features from the 1990s. That's not how to write code in 2018. Thankfully, it's not that hard to rewrite it according to
C++ core guidelines.
I know my post may sound harsh but I really just want to make the game and site better.