#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2014
    Posts
    4
    Rep Power
    0

    Wink ness-engine! a new open source scene-based rendering engine


    Hi all! I hope this is the right forum to post this, if not my apologies.

    As a hobby project I've written a scene-graphs 2d rendering engine based on SDL2.

    if you are not familiar with the concept it means that entities can be put inside scene nodes and transformations are inherited (such transformations include color, blend mode, position, scale, rotation, and more..). in short, it's a really cool rendering engine, totally free (zlib license), and you can make some really cool things with it! here it is:

    Ness-engine.com

    it includes lots of built-in features such as camera, z-ordering, lighting, multi-line text, canvas entity, sprite animators, and much much more! also it's very optimized so all you are left to do is writing your game biggrin.png note: this is not a game engine, it's a rendering engine with extras.

    just for a cool example, the following game is only 100 lines of code! (source included in the example projects page):


    anyway I think it could be really cool for indie developers who are into 2D games, hope some early birds try it out
    will appreciate any feedback and improvements ideas.
    thanks in advance!

    here are some more pics of example projects:
  2. #2
  3. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2014
    Location
    India
    Posts
    103
    Rep Power
    1
    Looks very cool, I really like 2D games and would want to develop one. Sadly, I don't have enough time or assets (like sprites, sounds, etc) for games, so I'm not totally into game-dev. Even though, It looks pretty awesome for a 2D rendering engine. But can you clear some of my doubts about this:

    As you said:

    just for a cool example, the following game is only 100 lines of code! (source included in the example projects page):

    # Does it uses a Programming/Scripting language, like C++ or Java or does it has its own language built-in? (If its Java/Python then I'll surely like to try it, I'm a Java developer btw)

    Extending the above question, can you tell me which language its coded in?

    And the last of all, Is it portable? I mean can you get it running on different platforms like Windows, Linux, BSDs? (Yes, with the source available, you can compile from source from your platform, but by this question I mean "code-compatibility", I'm not asking if binaries are available for Windows, Linux, etc or not, I'm asking that is the code compatible with every system?).

    Sorry for all these questions, but I would really like to know. I didn't have the time to open your site btw (my connections is really slow -_-).

    Thanks.
  4. #3
  5. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2014
    Posts
    4
    Rep Power
    0
    hello hexman, thank you for your comment

    1. the 100 line example is in cpp, no scripting involved, you can see it here ("main.cpp" is a nicer code with comments, "100_lines_of_code.cpp" is the code without comments or empty lines, just to show the code can be squeezed into 100 lines).
    2. ness-engine is written in cpp, currently has no built-in support in other languages and/or scripting languages.
    3. it's based on SDL2 and should be compatible for any popular os (linux / mac-os). as you mentioned I only have binaries for windows, but someone posted a thread in the forum regarding compilation with code::blocks, so we have someone who successfully compiled it for linux

    just a side notice: ness-engine is designed for rendering games written in cpp and I made it for my own hobby projects, but decided it will be nice to share it with the world. if it will actually become popular and people will ask for scripting support and other features I will add them over time or let the community add those features, but currently the engine is still very young and requires the brave pioneers to initiate it.

    on my spare time I'm developing my own hobby project with it and so far i'm pretty satisfied with it
  6. #4
  7. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2014
    Posts
    4
    Rep Power
    0
    oh btw, you said you are missing the assets for game development, but if this is the only thing stopping you don't let it, you can find tons of free resources you can use in your games! just for example, the rpg-maker community have lots of free resources you can use and I think you can use them even if you are not using rpg-maker (if I'm wrong someone please correct me )

    so don't let the lack of graphics stop you
  8. #5
  9. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2014
    Location
    India
    Posts
    103
    Rep Power
    1
    Thanks for the reply TheNess, it looks a really cool engine for 2D Games. Not many engines exist for 2D these days, especially when programmers are ready to do all the rendering-stuff themselves (at least some of them), but that doesn't apply for newbies since they're not that experienced in programming. I like the statement, "It'll handle the dirty work of rendering" and "memory management is the worse, but with ness-engine you got that covered.", Yeah, I also don't like doing all the memory management by hand as in C (I know C to some extent), that's why I preferred Java due to its automatic GC (I guess its both bad thing and a good thing) and memory management.

    But sadly, I don't know a thing about C++ (I know some basics of C but I don't use it) and I haven't planned if I'll learn it in near-future or not (of course, I'll have to learn it eventually). The thing is that I'm a Programming-language hobbyist, I want to learn all of the major programming languages, something like this: Java > CommonLisp > Perl > Python; and I've only reached Lisp until now, so I've not a plan to learn it right now.

    I think that people will really like your game engine, and since its OpenSource, it'll be received well by the open-source community and you'll find good fellow-developers and Testers easily. And if it grows popular, I hope that somebody will write bindings for other languages like Java and C#.

    And I like the idea of scripting support, if you add an existing scripting-language support then it'll get more popular, since Scripting languages are easier to learn than full programming-languages and I guess more people know Python than C++.

    You can embed Python or Perl into your C++ code and allow users to write Python script which will call the C++ methods. See: https://docs.python.org/2/extending/extending.html

    Or even Perl interpreter into your library, you can find more here: How can I embed Perl inside a C++ application? - Stack Overflow

    Anyways, its really cool to see such open-source game stuff like this. Keep it up man, good work .

    Thanks.
  10. #6
  11. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2014
    Location
    India
    Posts
    103
    Rep Power
    1
    Originally Posted by TheNess
    oh btw, you said you are missing the assets for game development, but if this is the only thing stopping you don't let it, you can find tons of free resources you can use in your games! just for example, the rpg-maker community have lots of free resources you can use and I think you can use them even if you are not using rpg-maker (if I'm wrong someone please correct me )

    so don't let the lack of graphics stop you
    Well, I was really interested in game-development. I tried developing games in Java, it was a competent language at first but then I realized that I would still need Graphics and Sound effects, so I tried learning Pixel-art at first. It was a slow and (relatively) boring process, it was not as easy as writing code because it depends much on your mental model and less on your handiwork but art depends on both things and its totally different, so I had to eventually give it up as I wanted to continue learning code. Now, I develop cross-platform utility programs and tools in Java but I never wrote a game once.

    I never thought that the open-source community could help me sort all this. I thought that I could never do all this (even after leaving all of the sound manipulation and creation of sound-effects), but now I think that if I would've initiated then the community might have helped. I guess the bazaar model of Open-Source development really is useful:

    Eric S. Raymond suggests a model for developing OSS known as the bazaar model. Raymond likens the development of software by traditional methodologies to building a cathedral, "carefully crafted by individual wizards or small bands of mages working in splendid isolation". He suggests that all software should be developed using the bazaar style, which he described as "a great babbling bazaar of differing agendas and approaches."
    You've done a great work man, creating this engine, and giving it to the community. I think I'll just create a retro-platformer after completing my current Lisp course, lol .

    Thanks.
  12. #7
  13. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2014
    Posts
    4
    Rep Power
    0
    thanks man, you are really supportive.

    anyway you said this:

    I want to learn all of the major programming languages, something like this: Java > CommonLisp > Perl > Python; and I've only reached Lisp until now, so I've not a plan to learn it right now.
    it's just my humble opinion, but I'd go for a different list:

    Java (since you already know) -> C/C++ -> javascript -> python.

    Java I wouldn't honestly recommend starting from Java, but since you already know it I put it first. useful for android and sometimes for desktop applications as well. not very good for games. even-though minecraft is written in Java, performance are usually not sufficient for games and if the only reason you pick Java is for memory management there are better solutions C++ has to offer.
    C/C++ one of the most common languages these days, gives great understanding of the principles of programming, memory management & code development in general. imho it's sort of a "must" language every developer should learn.
    JavaScript is very popular as well, required for web development (for client side) and with node.js for server side as well. if you know c++ javascript should be fairly easy to learn. you should look into the world of html5 and web application, it has great potential.
    Python a very powerful tool every developer should have. also, if you're into web there are great tools to develop server side in python. and even if you don't develop anything big with it, you will find yourself often using small python scripts to make your life easier. it's very easy to learn.

    and about the rest of your comment: I think you should find your calling and focus on it. don't try to be both the artist and the developer from the very start, find your field first, master it, and then you can start attacking other fields as well. if you're more of an artist you can use game engines to complete you, if you're a developer you can use free resources. and you can always team up with others to complete you.

    anyway, that's just my personal opinion

IMN logo majestic logo threadwatch logo seochat tools logo