1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Hey Guest, is it this your first time on the forums?

    Visit the Beginner's Box

    Introduce yourself, read some of the ins and outs of the community, access to useful links and information.

    Dismiss Notice

What is the KAG engine?

Discussion in 'Community Dev Corner' started by TheChosenOne2000, Aug 5, 2013.

Thread Status:
Not open for further replies.
Mods: Downburst, Mazey
  1. sinnertie

    sinnertie Ministry of Hatred Forum Moderator Donator Tester
    1. PumpkinStars - [Pk#] - Inactive

    Messages:
    252
    Replacing rendering engine would be like starting all over again and it would cause even more problems and bugs to fix though.
     
    Hawxx and Geti like this.
  2. Geti

    Geti Please avoid PMing me (poke a mod instead) THD Team Administrator Global Moderator

    Messages:
    3,730
    What the guy above said - it'd be possible but would involve changing a lot of code. It's not planned at all.
    The sound lib is an extension of irrlicht but also probably wont be replaced this late in the day, unfortunately.
     
  3. Verrazano

    Verrazano Flat Chested Haggy Old Souless Witchy Witch Witch THD Team Global Moderator Forum Moderator Tester
    1. Practitioners of War Extreme Revolution - POWER

    Messages:
    477
    If people are still wondering and end up reading this thread here is an example of a rough implementation of a similar engine to KAG's current one.
    https://forum.kag2d.com/threads/pre-libelle-source-code-example-of-kag-like-engine.18183/ It uses SFML for rendering/input/sound instead of SDL/irrlicht however it also uses angelscript/enet/box2d for scripting/networking/physics. Keep in mind understanding the source code will take prior knowledge of c++ and the ability to read 10k lines of sloppy rushed code.
     
    Noburu likes this.
  4. Ghostsiroman

    Ghostsiroman Shark Slayer

    Messages:
    16
    You devs can simply make that irrlich engine better , instead of replacind with a new one.
     
  5. Mazey

    Mazey Haxor Global Moderator Forum Moderator Staff Alumni Donator Official Server Admin

    Messages:
    1,912
    That's not true, that's why there is a totally rewritten engine.
     
  6. Geti

    Geti Please avoid PMing me (poke a mod instead) THD Team Administrator Global Moderator

    Messages:
    3,730
    ... Irrlicht is the rendering engine, we're not going to replace it with a new one. The game engine itself was rewritten to avoid the limitations of the old one. We do not regret throwing the classic engine out at all.
     
  7. kostasfighter13

    kostasfighter13 Horde Gibber

    Messages:
    11
    I really wanna get involved with game development and i really like KAG's style :dirt:. Anyone know what language/game engine i can learn to build something similar ? (im a total newbie) :QQ:
     
  8. Asu

    Asu THD Team THD Team Forum Moderator

    Messages:
    1,580
    You should aim for C++ with SFML. It's a good step to get right into "good" programming and not crappy languages (i.e. game maker), plus the community around it is quite huge.
    If you need some support with it, come to IRC (click chat, login, type /join #kag.modding) and you'll find a couple of us using it - Ferne, verra, me, zero0something...
     
  9. kostasfighter13

    kostasfighter13 Horde Gibber

    Messages:
    11
    i type /join #kag.modding and it posts it as a simple messagae, nothing happens
     
  10. Verrazano

    Verrazano Flat Chested Haggy Old Souless Witchy Witch Witch THD Team Global Moderator Forum Moderator Tester
    1. Practitioners of War Extreme Revolution - POWER

    Messages:
    477
    you put a space before the / that's why "[11:05:54] <kostasfighter13> /join #kag.modding"
     
  11. kostasfighter13

    kostasfighter13 Horde Gibber

    Messages:
    11
    o
    h thnx, im such a noob :QQ:
     
  12. EhRa

    EhRa Ooooooof Staff Alumni Donator
    1. KRPG

    Messages:
    810
    My friend makes games using GM (ik it sounds bad but it works), C++ and Unity
     
  13. Asu

    Asu THD Team THD Team Forum Moderator

    Messages:
    1,580
    Unity is evil. GM's coding is terrible and give you bad concepts for future programming. C++ is the master race.

    Let's stay intopic though. Should make a separate convo somewhere else about game engines in general.
     
  14. H3llO

    H3llO Shopkeep Stealer

    Messages:
    75
    This thread's topic was solved years ago.
    first flaming than putting a stop to the discussion, well done. (You did pretty well making my inner 12yo kid rage)

    You basically suggested a grade schooler to skip school and make an academic degree instead.
    You think C++ is the best, why? because it is fast‽ because it has tons of fancy functions and allows lots of programming paradigms‽
    C, Assembly is faster. C#, Swift allows to do a lot more stuff.
    I'm not saying C++ is a bad language, it does a lot of stuff very well, but it's not perfect. One big negative; C++ is for sure not easy to learn and speaking about "good" programming, it's way easier to write bad code in C++ than for example Python.

    A newbie to the whole game making stuff is going to look at C++, maybe achieved to write a hello world program and thinks, his next big thing will be doing a 3D Smash Bros. in Minecraft alike world with flying laser sharks and shit. What's going to happen is that he will be confused where to start, maybe read up tutorials and stuff that he doesn't understand and throwing the towel by the end of day. Better sooner than later, because this was just the first of thousand other hurdles in game making.

    What I suggest is starting small, GM, RPGmaker, Godot is very well suited for this OR choose an easy to learn programming language like Python, C#, Java, Action Script... and re-code simple games like tic-tac-toe, snake, tetris before you even make plans of your own game. Also, don't try to reinvent the wheel, some Game Engines, librarys etc. are there for years and constantly getting improved. What makes you think you can do it better than them, instead focus on other stuff. If you do a 2d game (which is pretty much the limit to a 1man company anyway) you certainly won't stretch the performance limits of current computer systems, with whatever programming/scripting language you use anyway.
    Finally, there is more stuff in making a game than programming...

    About the topic, like I said it is long overdue so you either close it or tolerate the off-topic.
     
    J-man2003 and master4523 like this.
  15. Asu

    Asu THD Team THD Team Forum Moderator

    Messages:
    1,580
    C is good, but C++ is way easier to use in a lot of cases. It's not necessary faster, also. If you know how to use C++ you can do it pretty much as fast as C. C++11 came with a lot of neat features natively.
    Assembly, nope, it is in most cases not faster EVEN if you know how to use it well. Simply because some language's compiler, if it's well done, will do a better job than you would.
    C# is already slow and runs only on windows. Mono barely implents all .NET features and is even slower.
    Swift? I hope you're joking. It's a OSX/iOS-only crap (i've read it's possible but very hard to make windows builds for example). Function names are verbose. Variable declarations are bullshit. They could have made things easy but they decided to make terrible-looking things such as this (found randomly on google) :
    Code:
    let newText: NSString = oldText.stringByReplacingCharactersInRange(range, withString: string)
    ^ Why this terrible variable definition? Why such a loooooooooooooooooooooooooong method name? why defining withString's type and not range's? Why is there even withString: string anyways? What does it mean, it's a function call, right?
    From my eyes the C++ is a perfect mix between speed, multiplatform and ease-of-use, but the language itself is not perfect.

    Also using SFML it's not necessarly harder to make a simple platformer game than in a lot of languages.

    RPGMaker barely can be called programming, GM is easy to begin with but it's hard to get away of bad concepts it's teaching you and there's like 0 object-oriented programming concepts while GM's internally living on this concept, (i don't know godot).
    Python is decent, C# also but there's a huge lack of librairies (except unity), Java, well, it's verbose, slow, slow, really slow, and I'm missing more, haven't tried Actionscript .
    Recode simple games like tic-tac-toe? After a couple days of learning C++, @blackjoker77777 did make one.

    That's true but, it's way easier to make a decent-running program in C++ than one in python, benchmarks are talking by theirselves. Python is interpreted though, while C++ isn't, so it's not really comparable but in real cases.

    Edit : @Verrazano, should we create a new topic for that or let the off-topic continue?
     
    blackjoker77777 likes this.
  16. Geti

    Geti Please avoid PMing me (poke a mod instead) THD Team Administrator Global Moderator

    Messages:
    3,730
    Locking this, some mod can split off a new thread with the posts above and this one if they wish.

    A few last words - be careful of going too much down the rabbit hole of X > Y comparisons. When it comes to programming languages, there are a lot of orthogonal axes to consider, and the correct decision(s) will always depend on the programmer, the task, and the time (-> money) allowed.

    A well written java* program will trounce a badly written C++ program any day. C++ and C can outperform each other based on how they interact with the hardware at hand**. A small python or javascript program will likely be faster to write but much slower to run than with any native language ***. Most of the platform-associated languages (C#, swing, objC...) can be nice enough to work with on the associated platforms (due to tooling and library support) but are a nightmare to use anywhere else, if it's even possible ****.

    *JVMs are some of the most aggressively optimised software in the world - putting java in the interesting position of being the fastest non-native language around. Discarding java as "slow" is a symptom of having worked with heavy-OOP indirection-at-every-corner interfaces-are-always-the-right-choice troglodyte code, or simply being inexperienced.
    **For example, a template based sort will outperform a function pointer based sort on desktop any day due to no function call overhead and reduced icache thrashing.
    ***Even if just-in-time compiled, both languages use hash maps and string operations all over the place - in js even their arrays are built this way. The call stack and program structure generally involves a lot of indirection due to variables being dynamically typed. Duck typing can cause issues in bigger projects as well, or when maintaining code over a long time.
    Both languages do get more functionality out of less syntax though, so can be authored faster by a competent programmer, and this can also serve to hide complexity from newer programmers (both a good and bad thing)
    ****this is often true for libraries built originally for one platform as well.

    One thing that C and C++ will have for the forseeable future over all other languages though is tooling and library support. OS libraries work at that level. Most libraries available for multiple languages are wrappers for the C or C++ version. C and C++ can be linked together, with a bit of work. Debuggers and IDEs are most mature for C and C++ on every platform I've worked on (maybe not android). Both of them let you drop down to assembly language should the need arise, and provide intrinsic functions that allow you to access special hardware functions in a portable manner. C++ is the standard for serious game development, and that'll change only when there's a truly viable alternative.

    At the end of the day, assembly language is a fine choice for performance sensitive work on any platform with totally known hardware, natively compiled languages are a great all-around way to write code. Scripting languages are often much more succinct than either, and can be easier to understand for people new to the field, but the performance implications must be considered.

    My personal opinion is that new programmers who are dedicated to improving will benefit a lot from going as low as possible as early as possible. Performance matters for games, and performance only comes from understanding the hardware. You have to learn it some time, and you spend a lot of time un-learning bad habits that don't translate if you take a different route.
    I'm talking assembler for an embedded system or old console, or C and the native OS libs (no portability layer) at the very least.

    The other working alternative is to pick up some fully integrated framework and start making games. Love2D or GameMaker are the only ones I'd say are workable long term and viable for new folk to pick up and play with. This route is far more fraught with constantly re-learning things though, which can be just as discouraging as not understanding in the first place. For people having trouble getting out of the gate, this can definitely be the better option.

    In both cases, initial projects should be more interesting than hello world but less intensive than your average pipe-dream. A 5 level platformer, a 1 screen survival sandbox, a bridge building sim. Avoid 3d until you've got a serious handle on the programming and the maths required, or at least use an engine that handles it for you. Good luck.
     
    cirpons, blackjoker77777, Asu and 2 others like this.
Mods: Downburst, Mazey
Thread Status:
Not open for further replies.