Thread Rating:
  • 5 Vote(s) - 3.8 Average
  • 1
  • 2
  • 3
  • 4
  • 5
The A-Engine: A new Beat 'em Up game engine
#41
@Someoneelse: A buzzword? I think not. How's a spacecraft made of chocolate innovative in the functionality sense? You explained it by yourself right there. Replacing the main "menu" with a stage, however, alters the way you operate between the modes. Don't compare apples to oranges. A better analogy would be comparing a spacecraft operated by a terminal, where you'd give it commands on what it'd do next, and another that is operated by a wheel and pedals.

What is important here is whether it is going to appeal to the players or not in the first place. If the problem is just with the time, one can just assign shortcut keys (say the numeral keys) for each room, or even have a popup menu for that purpose. It can be made to just be a stage in VS mode, and it will actually be, but in that you can't allow stuff like letting the player get into the closed rooms.

As for the effort, it wouldn't really be much different than creating a stage since every menu is a game instance by itself where every item is an object affected by gravity and all. I am still going to give it a go and see how it works for myself. You made some very good points though, and I should bring them up next time I discuss this with the team guys.


@Rashar: Replicating the LF2 feel into the an A-Engine powered game should not be a problem at all. Actually, I am planning to write an LF2 to A-Engine character converter, but not until I get a stable A-Engine build first.
[Image: signature.png]
A-Engine: A new beat em up game engine inspired by LF2. Coming soon

A-Engine Dev Blog - Update #8: Timeout

Reply
Thanks given by:
#42
a man. U told this is a engine can u archive this engine to rar and give a download link in here.
New Member Just Joined "2017"
Reply
Thanks given by:
#43
What I have right now is very unstable and is not ready to be used for development just yet. In case you're asking about the A-Engine game demo, I posted the download link in the previous page.
[Image: signature.png]
A-Engine: A new beat em up game engine inspired by LF2. Coming soon

A-Engine Dev Blog - Update #8: Timeout

Reply
Thanks given by:
#44
thats awesome a-man u can be a great game developer
you should really go to a field where you actually belong like computer science game developing ---
Reply
Thanks given by:
#45
Thanks!
So, I believe I am quite close to releasing the first A-Engine's developers' kit y'all. Stay tuned :P.
[Image: signature.png]
A-Engine: A new beat em up game engine inspired by LF2. Coming soon

A-Engine Dev Blog - Update #8: Timeout

Reply
Thanks given by: NewToTheEra , Ariyan
#46
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
Marked as 'dump' by Someone Else (Click to View)
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.
Ultimately, my constant dissatisfaction with the way things are becomes the driving force behind everything I do.
[Image: sigline.png]
LF2 IDE - Advanced visual data changer featuring instant data loader
LF2 Sprite Sheet Generator - Template based sprite sheet generator based on Gad's method
[Image: sigline.png]
There is no perfect language, but C++ is the worst.
Reply
Thanks given by:
#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:
#48
I don't know much about the programming stuff but I think that your post is a bit meaningless NOW because A-engine is very much done and developed no matter how "extremely difficult" stuff was to implement here, the core is all already done.. I know that being an A-insider along with many other things like how the engine itself can handle pretty much what you can throw at it.
Also I can't help but notice your personal hateful bias towards C++ :( you were too harsh at it.
(03-20-2016, 06:41 PM)mfc Wrote:  Be the unsqueezable sponge!
My new life motto!
Reply
Thanks given by:
#49
(06-19-2015, 04:10 AM)Nightmarex1337 Wrote:  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.
Oh really? One major reason why you would want to use C++ is CPU caches (here here and here), as you have much more control on how data is layed out in memory.
Granted for a 2D game this is (like you stated later) less of an issue.

It is NOT horrible nor is it verbose, disgusting, error prone or unproductive, nor are C# and Java somehow exactly the opposite. If you this is the case at least provide examples of why you think so.
When it comes to C++ there are (just like you stated for Java and C#) "a lot of sophisticated and flexible libraries out there", granted the standard library is smaller than that of C# and Java.
I do not see how using a different language would magically be five times faster.

(06-19-2015, 04:10 AM)Nightmarex1337 Wrote:  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).
I doubt that it is "extremely difficult to implement an AI system in C++", so please give examples. That said reflection is a feature that C++ is lacking (there is a study group for it though). I would add that one reason for having AI work using a different language, is that you would be able to change the AI without having to modify the source code.

(06-19-2015, 04:10 AM)Nightmarex1337 Wrote:  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.
A game like LF2 may not require nearly the same level of optimization, but it is really easy to paint yourself into a corner with poorly performing code (goes for C++ as well). That said I agree that it is probably not a big deal here.
A lot of Android games using Java is an appeal to majority.

(06-19-2015, 04:10 AM)Nightmarex1337 Wrote:  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.
I have been programming in C++ for many years, and I seriously do not think memory management is a problem. Use smart pointers (unique_ptr, shared_ptr, whatever you write yourself) for owned resources and the problem is mostly solved already.
Source on The Witcher 2?

(06-19-2015, 04:10 AM)Nightmarex1337 Wrote:  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?)
I am not sure that this was meant as an argument against C++, but yeah three out of four of the IDEs you mentioned also work for C++. There are of course also other C++ IDEs (Code::Blocks, CodeLite).
Profilers are also available for C++, although (like previously mention) the standard library is somewhat lacking in comparison to that of C# and Java. It is being worked on (and there are non standard libraries available) but for the moment that is indeed a valid argument against C++.

(06-19-2015, 04:10 AM)Nightmarex1337 Wrote:  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.
This is not necessarily wrong, but I can come up with a good reason for this, namely it can be easier to read and write for humans, which is the same reason why programming languages don't use a markup language structure.
By a special data changer I imagine (correct me if I am wrong) that you mean a graphical interface with textfields and other controls as opposed to just an editor with a large textarea, where you write code, but in my experience such a program can easily be slower than simply writing everything in a texteditor.
Notepad++ would also be usable for any new format, that is stored in plain text. Making a syntax highlighter for a new language is not a problem in Notepad++.

(06-19-2015, 04:10 AM)Nightmarex1337 Wrote:  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).
I do not see how you could at all sell this as a feature. Honestly that is just dumb. You would achive the exact same effect by simply releasing the source code.

(06-19-2015, 04:10 AM)Nightmarex1337 Wrote:  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.
Honestly source theft is not a thing I would worry about, no matter how easy it would be, so I will not argue against that.
I do not know much about D, but there is certainly some things I like (for example the ! syntax for templates is somewhat nice, and so is the static if stuff), but that is about it.

(06-19-2015, 04:10 AM)Nightmarex1337 Wrote:  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.
I guess I may as well then shout to everyone who wants to make anything: Do not just prefer C# and Java because they are easier than C++, because they are not. Try out the languages a bit and get a feel for the style you like to use, then pick a language that you like. Personally I find Java especially (and somewhat also C#) to be too lacking in core language features.
Age ratings for movies and games (and similar) have never been a good idea.
One can learn a lot from reinventing wheels.
An unsound argument is not the same as an invalid one.
volatile in C++ does not mean thread-safe.
Do not make APIs unnecessarily asynchronous.
Make C++ operator > again
Trump is an idiot.
Reply
Thanks given by:
#50
I've got to admit that a reason that might be why I picked up C++ is because, like you said, everyone was using it. It's pretty natural if you ask me; I just picked what I thought has a bigger community I could learn from. All what you said about the syntax is subjective, so I won't say anything about it. I am not sure about flexibility though. The mere existence of pointers in C++ makes things much more flexible than any of the languages you've named. C++ might be error-prone, but I'd hate to have things work undercover too. People criticize me for constantly trying to "reinvent the wheel", but I like knowing as much as possible about what is going on with stuff I do. I do try to stay away from that premise when time is at stake though, but here I am just doing it to learn. The A-Engine code has been refactored so many times that I could be certain the whole thing went through several rewrites in the process.

I've no idea what reflection is, but I don't think AI would work very different from what SomeoneElse and Silva managed to do. The engine would simply compile the C/C++ AI function files the user writes at launch. In case you don't want to do complicated AIs, there will be a layer script you can write that does the common and skips on the details.
While I am not going to argue and say C++ is faster, I will say that what LF2 is capable of is barely a thing with the A-Engine. As the A-Engine is to support polygonal platforms, one might need to go a bit over simple 2D stuff (using 3D models for platforms, and consequently shadow mapping would be a must. The physics would have to get more elaborate also.) I am not a very good programmer like you are, and C++ being faster in nature is a big plus for me. I still often reach bottlenecks even with C++, and I don't think I can afford moving to something more high-level until I have a good grasp on how things work on a reasonable fundamental level.
As for the auto-completion, I've tried VS, DevC++, Eclipse and Code::blocks IDEs and all those have the auto-completion feature as SomeoneElse have mentioned.

Okay, you've made a point there. I am forcing people to learn a completely different language when I could've just used what is already there and commonly used. However, things have proved to be quite readable the way they are currently. I will look up into Protobuf the next time I do something mod-able, but now, it's gotten late. Thanks for the suggestion though!

I take too much from the internet to feel bad about giving away this little. Regardless, I do not wish to start learning a new language with similar purpose to what I know already. C++ as a language has been improving over time, and I am sure it will has most of what D has in the near future.
[Image: signature.png]
A-Engine: A new beat em up game engine inspired by LF2. Coming soon

A-Engine Dev Blog - Update #8: Timeout

Reply
Thanks given by:




Users browsing this thread: 7 Guest(s)