{"id":95298,"date":"2019-06-17T15:50:33","date_gmt":"2019-06-17T15:50:33","guid":{"rendered":"http:\/\/gamefromscratch.com\/post.aspx?id=b8a6e85d-480c-478b-9fe4-52f6e4075b02"},"modified":"2019-06-17T15:50:33","modified_gmt":"2019-06-17T15:50:33","slug":"ncine-2d-open-source-game-engine","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2019\/06\/17\/ncine-2d-open-source-game-engine\/","title":{"rendered":"nCine 2D Open Source Game Engine"},"content":{"rendered":"<p>The <a href=\"https:\/\/ncine.github.io\/\">nCine Engine<\/a> is a C++ powered, open source MIT licensed 2D game engine that has been under development for over 7 years.&nbsp; It is a lower level code based framework, although it does support Lua scripting out of the box.&nbsp; The engine also integrates the ImGui framework making creating tools and UIs a breeze.&nbsp; The nCine engine works on Windows, Linux, Mac and Android.<\/p>\n<p>Highlighted features <a href=\"https:\/\/ncine.github.io\/features\/\">include<\/a>:<\/p>\n<ul>\n<li>ImGui debug overlay and profilers<\/li>\n<li>Lua integration for scripting<\/li>\n<li>OPenGL 3.3\/OpenGL ES 3.0<\/li>\n<li>Spritesheet based animated sprites<\/li>\n<li>Scengraph based transformations<\/li>\n<li>Particle simulation with affectors<\/li>\n<li>Sound and music playback<\/li>\n<li>Text rendering with kerning<\/li>\n<li>Support for multiple texture formats<\/li>\n<li>Profiler graphs and statistics<\/li>\n<li>Works on multiple platforms<\/li>\n<li>Template containers and algorithms<\/li>\n<li>Fully C++11 compliant codebase <\/li>\n<li>High precision monotonic timers <\/li>\n<li>Atomic counters <\/li>\n<li>Thread pool creation, synchronization and affinity assignment <\/li>\n<li>Basic math lbrary for vectors, 4&#215;4 matrices and quaternions <\/li>\n<li>Logging system with multiple levels and console or file output <\/li>\n<li><a href=\"http:\/\/www.glfw.org\/\">GLFW 3<\/a> or <a href=\"https:\/\/www.libsdl.org\/\">SDL 2<\/a> for window and input on PC <\/li>\n<li>Joystick support with hot swap and <a href=\"https:\/\/wiki.libsdl.org\/CategoryGameController\">gamepad mappings<\/a><\/li>\n<li>Android assets support <\/li>\n<li><a href=\"https:\/\/github.com\/google\/googletest\">Google Test<\/a> based unit tests with coverage checked with <a href=\"http:\/\/gcovr.com\/\">Gcovr<\/a><\/li>\n<li>Microbenchmarked with the <a href=\"https:\/\/github.com\/google\/benchmark\">Google Benchmark<\/a> support library <\/li>\n<li><a href=\"https:\/\/www.stack.nl\/~dimitri\/doxygen\/\">Doxygen<\/a> based documentation with <a href=\"http:\/\/www.graphviz.org\/\">Graphviz<\/a> class diagrams <\/li>\n<li>Periodically checked with <a href=\"http:\/\/cppcheck.sourceforge.net\/\">Cppcheck<\/a> and <a href=\"http:\/\/valgrind.org\/\">Valgrind<\/a><\/li>\n<li>Periodically linted with <a href=\"https:\/\/clang.llvm.org\/docs\/ClangFormat.html\">clang-format<\/a> (previously with <a href=\"http:\/\/astyle.sourceforge.net\/\">Artistic Style<\/a> and <a href=\"http:\/\/uncrustify.sourceforge.net\/\">Uncrustify<\/a>) <\/li>\n<li>Instrumentation for the <a href=\"https:\/\/bitbucket.org\/wolfpld\/tracy\">Tracy<\/a> frame profiler <\/li>\n<\/ul>\n<p>With so many game engines on the market, you may be wondering\u2026 why another one?&nbsp; Well the author explains exactly that <a href=\"https:\/\/ncine.github.io\/why\/\">right here<\/a>.&nbsp; The cCine project is hosted <a href=\"https:\/\/github.com\/nCine\/\">on GitHub<\/a> and provides a <a href=\"https:\/\/github.com\/nCine\/ncPong\">Pong demo<\/a> to get you started, implemented in both C++ and Lua.<\/p>\n<p align=\"center\">[youtube https:\/\/www.youtube.com\/watch?v=RdwuMKq2BmU&#038;w=853&#038;h=480]<\/p>\n<p class=\"under\"> <span class=\"categories\"><a href=\"https:\/\/www.gamefromscratch.com\/category\/GameDev-News.aspx\">GameDev News<\/a> <a href=\"https:\/\/www.gamefromscratch.com\/category\/Programming.aspx\">Programming<\/a><\/span> <span class=\"tags\"><a href=\"https:\/\/www.gamefromscratch.com\/?tag=\/CPP\" rel=\"tag\">CPP<\/a> <a href=\"https:\/\/www.gamefromscratch.com\/?tag=\/2D\" rel=\"tag\">2D<\/a> <a href=\"https:\/\/www.gamefromscratch.com\/?tag=\/Engine\" rel=\"tag\">Engine<\/a> <a href=\"https:\/\/www.gamefromscratch.com\/?tag=\/Lua\" rel=\"tag\">Lua<\/a><\/span> <\/p>\n<hr>\n","protected":false},"excerpt":{"rendered":"<p>The nCine Engine is a C++ powered, open source MIT licensed 2D game engine that has been under development for over 7 years.&nbsp; It is a lower level code based framework, although it does support Lua scripting out of the box.&nbsp; The engine also integrates the ImGui framework making creating tools and UIs a breeze.&nbsp; [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71,64],"tags":[72,73],"class_list":["post-95298","post","type-post","status-publish","format-standard","hentry","category-game-development","category-programming","tag-gamedev-news","tag-programming"],"_links":{"self":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/95298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/comments?post=95298"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/95298\/revisions"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=95298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=95298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=95298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}