That said even C has already a way too rich and complex syntax. ISO is doing planned obsolescence with its syntax instead of fixing it, and no the linux kernel is not written in C, but using a gcc-massively-extended C dialect.
Then it needs discipline: c89 with benign bits of c99/c11/etc.
A good move is to write/use a C coded game engine, I wish godot was plain and simple C.
If Godot was written in C, I don't think I'd need anything else.
Still... Godot makes HEAVY use of C++'s exclusive features. The GUI system relies on complex static and virtual inheritance and the scripting engine makes serious use of macros for automatic class integration. ...and that's just me scratching the surface with my limited knowledge!
> deep cloning of data with simple assignment a = b;
> deep equality checks bool are_equal_by_value = memcmp(a, b, sizeof(some_struct_t));
Errr, wat? We seem to have very different understandings of "deep" in this context. Neither of the above are "deep" in the sense that pointers within the struct will not be followed with their referenced data copied/compared. These are shallow operations.
> C++ is the obvious choice but the syntax and endless features overwhelm me. I’m not a fan of OOP for game development - class-heavy C++ was not the right move
You can well use C++ with a very modest style, even completely without OO if needed; C++ has many advantages over C for large projects; the type system is more mature and it offers very useful features for modularization and memory management (which were already present in C++98, so it's easy to get a working compiler on virtually all platforms where there is a C compiler).
That makes a lot of sense. Any resources you would recommend? I am getting tired of making C "wrappers" to work with C++ SDKs. Will probably need to bite the bullet on this.
Where's the source code for the game itself? The github page you linked to lists resources, and a Steam page for the game, but not the code itself. That would be the most interesting thing for HN, otherwise this just seems like a submarine ad for your game.
If you're going to use FOSS code for your project you should release it as such.
That said, congrats on releasing. I play around with C a lot but couldn't imagine sticking with it long enough to finish something bigger than a library.
Isn't this a bug? Structs are allowed to have padding bytes between bytes occupied by fields, which will have unpredictable ("garbage") values. So a pair of structs with all fields pairwise same can have different padding bytes, so checking equality with this method will give a false negative.
If you don't like C++ because of classes and clutter, would Rust be a viable alternative (asking because I have not much experience in C and in Rust, so maybe if I ever try to write a very simple game engine, I might like to try in Rust)?
I don't understand why you would use C over C++ for anything other than random embedded devices where you have very intimate knowledge of the hardware. I guess you just really hate any hint of a type system?
sylware|3 years ago
That said even C has already a way too rich and complex syntax. ISO is doing planned obsolescence with its syntax instead of fixing it, and no the linux kernel is not written in C, but using a gcc-massively-extended C dialect.
Then it needs discipline: c89 with benign bits of c99/c11/etc.
A good move is to write/use a C coded game engine, I wish godot was plain and simple C.
TeaDude|3 years ago
Still... Godot makes HEAVY use of C++'s exclusive features. The GUI system relies on complex static and virtual inheritance and the scripting engine makes serious use of macros for automatic class integration. ...and that's just me scratching the surface with my limited knowledge!
pengaru|3 years ago
aarongeisler|3 years ago
Rochus|3 years ago
> C++ is the obvious choice but the syntax and endless features overwhelm me. I’m not a fan of OOP for game development - class-heavy C++ was not the right move
You can well use C++ with a very modest style, even completely without OO if needed; C++ has many advantages over C for large projects; the type system is more mature and it offers very useful features for modularization and memory management (which were already present in C++98, so it's easy to get a working compiler on virtually all platforms where there is a C compiler).
aarongeisler|3 years ago
krapp|3 years ago
If you're going to use FOSS code for your project you should release it as such.
That said, congrats on releasing. I play around with C a lot but couldn't imagine sticking with it long enough to finish something bigger than a library.
kurtreed|3 years ago
rpigab|3 years ago
If you don't like C++ because of classes and clutter, would Rust be a viable alternative (asking because I have not much experience in C and in Rust, so maybe if I ever try to write a very simple game engine, I might like to try in Rust)?
mickmack_|3 years ago
aarongeisler|3 years ago
kahlonel|3 years ago
aarongeisler|3 years ago