Thread Rating:
  • 5 Vote(s) - 3.8 Average
  • 1
  • 2
  • 3
  • 4
  • 5
The A-Engine: A new Beat 'em Up game engine
#47
(06-19-2015, 04:10 AM)Nightmarex1337 Wrote:  Keep up the good work and please don't feel like I'm trying to start a fight...

There are few things I'm going crazy about:
First, why on earth people think writing a game using C++ is a good idea?!! It's horrible, verbose, disgusting, error prone and unproductive meanwhile C#, Java and derivatives are exact opposite and there are a lot of sophisticated and flexible libraries out there that makes your life so easy that you can finish the same project like 5 times faster and I'm %100 sure you would get a better result. Another drawback is that it is extremely difficult to implement an AI system in C++ while you can simply use reflection in C#/Java and let other people to code AI in the same language (which is probably much better than the one you created). Don't argue saying C++ is faster because a LF2 like game does not require such high optimization, remember you're not an AAA-Studio you're A-Man. Also keep in mind that most of the Android games are Java. Some people say garbage collection (GC) is a problem, it's NOT. Not only it will save you from manual memory management (MMM), a qualified GC can perform better if you're not a C++ pro. Even if you need to tweak GC, it's a magnitude easier than MMM. After all, "The Witcher 2" is an AAA-Game that uses GC effectively. C# and Java have so great IDE's (Visual Studio, SharpDevelop, Eclipse, Netbeans) that you feel ultra comfortable while writing code and auto-complete makes you uber fast. (Should I even mention those useful profiler tools and incredibly nice standard libraries?)

Secondly, I don't understand what the hell is wrong with those who are trying to create their own data syntax/format while they can use existing ones (XML, JSON, YAML, Protobuf, BSON...). You're doing nothing but overloading your work to write a new parser library and it will probably not going to be as fast as existing libraries that parse existing data formats. Also, inventing a brand new unique data format results with need for a new data changer, while someone can simply use Notepad++ to change a XML/JSON based data and syntax highlighting, intellisense and auto-indentation will just work. No one actually needs a new data format, existing ones are sufficient. I would recommend Protobuf as it is really fast, takes low space, backward compatible and rock-solid, but it's a binary format, meaning that it's neither human readable nor editable, it needs a special data changer, but with the help of those great high level libraries, it's not a big challenge to provide that.
I would use the following combination:
C#/Mono + OpenTK (or MonoGame for a higher level API) + Protobuf-Net
I must add that bytecode compiled languages are easy to do reverse engineering (so easy that you can extract most of the source code just using a simple program such as ILSpy). Thus, it's more likely that your game is going to be moded (and obviously we're trying to create an extensible game). If you don't like the idea of source theft, you can always obfuscate your code. But if it's not enough, and you still want your code to be compiled into native CPU instruction sets, then do yourself a favor and learn "D Programming Language". With the help of Eclipse + DDT plugin (and a compiler of course), anything is possible.

Now, I'm shouting to all those who wants to make games, don't prefer C++ just because it's popular except you really really know what you're doing and consider other options before C++ cuz chances are high that you don't know what you're falling for. Notice that Unity (game engine) use C# as it's primary scripting language GC enabled.

Erm, Hate to go Off-topic here, but LF2 is also Coded in C++, And LF2 is Still better than a lot of games out there, because of its Possibilities, Games don't have to be 3D To be Good you know, and also I know that Doctor A can make Custom AI's in this game possible, just like Silva did for LF2.

Also, you don't have to call C++ A Bad Coding Language, reasons are already Told :-)
Spoilered Spoilers (Click to View)

You're just dying if you're living and thinking about a betrayal, revive yourself.
Think about that one person that has trusted you forever, not the thousand people that have betrayed you.
Reply
Thanks given by:


Messages In This Thread
RE: The A-Engine: A new Beat 'em Up game engine - by AmadisLFE - 06-19-2015, 09:46 AM
A-Engine Supports 3D! - by A-Man - 11-23-2015, 07:40 AM
The A-Engine: Naming Conventions - by A-Man - 01-04-2016, 07:16 PM



Users browsing this thread: 14 Guest(s)