The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

Overview

alt text

Please note that Atomic is no longer actively being developed or maintained. Issues will not be attended to, though PRs that fix build issues may be considered. The remainder of this README has been kept in place for future reference.

Website: https://github.com/AtomicGameEngine/AtomicGameEngine

Why Atomic?

The Atomic Game Engine is powerful native technology with a consistent API and tooling available in C++, C#, Typescript and JavaScript. The Atomic Editor is installed in over 75 countries and has hit “critical mass” with production in multiple industries.

Atomic can also be used as a library in existing projects with a C++ SDK, C# NuGet, and JavaScript npm package in development.

Atomic Technology

  • Consistent 2D/3D API available in JavaScript, TypeScript, C#, and C++
  • Built-in Monaco JavaScript/TypeScript editor and support for VSCode and Atom
  • C# IDE integration with Visual Studio, Xamarin Studio, and MonoDevelop
  • Android, iOS, Windows, macOS, Linux, and WebGL platform deployment
  • High performance native C++ core with single command builds and absolute minimum dependencies
  • Node based scene graph with access to low level graphics API for custom rendering on D3D 9/11, OpenGL 2/3/ES2, and WebGL
  • Modular component system including C#, JavaScript, TypeScript, and C++ logic components with networking
  • Drag and drop standard 2D/3D format import, including Autodesk FBX, Collada, Blender, Spriter, Tiled, and more
  • Innovative preview mode runs in subprocess for editor stability, reduced memory fragmentation, and is the foundation for future previewing on device
  • Chromium WebView for E-Commerce payments, accessing Facebook social graph, video streaming, and many more use cases
  • Automated script binding generation of native C++ subsystems
  • Best in class third party integrations including Box2D/Bullet physics, Recast/Detour pathfinding, TurboBadger UI, CEF3, duktape VM, SDL2
  • Available as precompiled binaries or fork on GitHub under the permissive MIT license
  • Backed by professionals with decades of experience in the technology and game industries

Build Instructions

The Atomic Editor can be built for your platform using these build instructions.

Atomic Resources

Community

Discourse
Gitter Chat

Documentation

Wiki


Screenshots

Atomic Examples

alt text

Atomic on Mobile

alt text

Atomic Build Settings

alt text

Atomic History

THUNDERBEAST GAMES began developing the Atomic Game Engine on November 12th, 2014 by forking Urho3D. It was released under the permissive MIT license during GDC 2016. Atomic is now being used in production environments, has 27 contributors, and runs on Windows, macOS, Android, iOS, Linux, and WebGL!

Issues
  • Miscellaneous editor feedback and usability issues

    Miscellaneous editor feedback and usability issues

    so. rather than post everything in gitter for suggestions and not put it in my own list of wishes - this is better. these are just my own thoughts about what i would like to see. im not begging for these, these are just my views on what would be cool for atomic. these are either cosmetic or actual features of use i am using the repo version also, if you are wondering ;)

    • after running a project. a window pops up saying what has happened. this should go into console instead. • key layouts other than QWERTY need to be addressed. such as the camera/scene movement. you can move the camera with WASD, but for others without a QWERTY layout, this is problematic. arrow keys instead? • to be able to minimive/maximize views, such as the sidebars and move things to your liking • saves your layout • to be able to make text in the editor bigger/smaller • move the top bar 'play' options away and put them either next to the actual top bar, next to file-edit etc. or above the 'project' name on the top left, or put it to the top right above 'inspector'. this leaves room for the tabs to move up and take that space, giving more for scene view • take away the cartoony tick boxes in the inspector. they are out of sync with atomic. i would go for a blue/color box that lights when on, grey when off. a bit like the dropdown markers in inspector • also the cartoony 'x' for closing files are out of place. plus are a little hard to see.

    i had some more. but really thats good for now. ill add as and when i think of them. but something just thats on my mind when i first use atomic

    status: multiple issues ATOMIC 2: Potentially Irrelevant 
    opened by lewislepton 141
  • easy_profiler integration

    easy_profiler integration

    This PR integrates easy_profiler replacing old and not really useful on-screen profiler.

    Features:

    • Profiling data is cached and sent over network (easy mobile device and application startup profiling)
    • Profiling data can be saved to file and loaded later
    • Profiler recognizes different threads
    • Options for changing profiled block color (displayed in profiler tool). Events are orange, resource loading is blue
    • Profiler tool is using Qt5. On systems where Qt is not available cmake will display warning but engine will still build
    • C# support, requires projects to define ATOMIC_PROFILING.
    • Profiler is enabled automatically for debug builds
    • Command line parameters to set profiler port and enable/disable application listening for profiler connections

    In the future easy_profiler maintainers plan support for dx11/12, opengl, vulkan and cuda profiling. Maintainers were very helpful and implemented non-scoped profiler blocks on my request. Tracking arbitrary values (my request as well) is already in the works, this will be useful for tracking c#/js object counts and what not.

    I found a way to do reasonably low-overhead c# code block profiling using lambda. There is still a chance to optimize a little by defining custom bindings to Profiler::BeginBlock() which takes const char* as parameter. It looks like this:

    Profiler.Block("BlockName", () => {
        // Code here
    });
    

    I did not add js support, however it is trivial. Is there a spot somewhere we could add some extra code for typescript to use much like Script/AtomicNET/AtomicNET/Core/Profiler.cs? In js it would look like so:

    Profiler.block("BlockName", function() {
        // Code here
    });
    

    Can we set engineParameters_ from c#/js applications? If we can - how? We need this in order to make listening for profiler connections opt-in instead of opt-out.

    TODO:

    • [x] js support
    • [x] Add ATOMIC_PROFILING to debug configurations of C# projects
    • [x] Make profiler not listen by default
    • [x] Add manual optimized bindings for Profiler::BeginBlock()

    Please review.

    opened by rokups 32
  • [LINUX] Editor crash when creating a new 3D project, or when trying to open some example projects

    [LINUX] Editor crash when creating a new 3D project, or when trying to open some example projects

    Creating a new 3D project: Info, T0: Leaving post processing pipeline [Fri Mar 18 11:21:50 2016] DEBUG: Created directory /home/username/AtomicProjects/MyGame/Resources/Models/Materials Skipping save of existing material DefaultMaterial [Fri Mar 18 11:21:50 2016] DEBUG: Loading resource .mdl [Fri Mar 18 11:21:50 2016] ERROR: Could not open file /home/username/AtomicProjects/MyGame/Cache/ Could not open output file /home/username/AtomicProjects/MyGame/Cache/

    When opening some example projects (for example Basic3D or ToonTown), same error: Info, T0: Leaving post processing pipeline [Fri Mar 18 11:27:04 2016] DEBUG: Created directory /home/username/temp/AtomicExamples/Basic3D/Resources/Models/Materials Skipping save of existing material DefaultMaterial [Fri Mar 18 11:27:04 2016] DEBUG: Loading resource .mdl [Fri Mar 18 11:27:04 2016] DEBUG: Loading resource Models/Materials/DefaultMaterial.material [Fri Mar 18 11:27:04 2016] DEBUG: Loading resource Techniques/Diff.xml [Fri Mar 18 11:27:04 2016] DEBUG: Loading resource Textures/chest.png [Fri Mar 18 11:27:04 2016] ERROR: Could not open file /home/username/temp/AtomicExamples/Basic3D/Cache/ Could not open output file /home/username/temp/AtomicExamples/Basic3D/Cache/

    Opening Basic2D and BunnyMark example projects worked fine, but they have another issue described in #713.

    I'm running Arch Linux and got no errors during the build (built with ./Build_AtomicEditor.sh, build with QtCreator fails). I copied the files mentioned in #708 and the editor started fine after that, however it's not usable due to the issues described above.

    opened by guzzard 30
  • Adding TSLint process to the build

    Adding TSLint process to the build

    This adds TSLint to the build process. I was sitting on these changes until the Linux PR merged in so I could take those into account.

    There are some significant changes to the node modules on here though, so take note...some of them may need to be thought about and if they are too invasive it may just be that TSLint doesn't need to be part of the editor build. A less invasive option would be just to store a tslint.json file in the root and have the Atom editor configured to read it during development, but not throw errors on build.

    Changes

    • in node 5, the node modules are flattened out to the top level, so now individual modules no longer contain deep hierarchies of duplicate nodes under nested node_modules directories. This ultimately saves space, but makes your root node_modules much larger. Pulling in the tslint and typescript modules added to the root of node_modules. Ideally, jake and fs-extra should also be updated to do the same.
    • Although you don't want to require npm to build, it might be something to contemplate to reduce the source control size. There is a way to lock in particular versions of a package via npm shrinkwrap and that could be an option to lock down dependencies to the version that you know works ( https://docs.npmjs.com/cli/shrinkwrap )
    • TSLint has a dependency on TypeScript and requires that it be located in the node_modules directory so it can be resolved, so now there is a TypeScript folder under node_modules as well as in the build directory. Ideally, the one in node_modules would stay and the other one would be removed. BuildCommon.js has been updated to use the tsc in node_modules.
    • Added a tslint ignore option to the generated .d.ts files since they have spacing and content that TSLint doesn't like. These should be addressed in the future. The spacing shouldn't be difficult to fix in the generator, but there are a couple instances where the same variable names are used and that will take some analysis. HTTP-ERROR HTTP-INITIALIZING HTTP-OPEN and HTTP-CLOSED are duplicates.

    Let me know if this is the direction you would like to proceed, or if you would rather a more minimalistic approach.

    -Shad

    opened by shaddockh 27
  • [WIP] Typescript Compilation + Exploring editor extensions

    [WIP] Typescript Compilation + Exploring editor extensions

    This PR is more of an experimental dive into trying to provide the ability to transpile TypeScript on save of a .ts file in the editor as well as playing with an editor extension type of architecture.
    TypeScriptLanguageService.ts This shows two ways of handling typescript. Either a simple single file transpile, which is very fast, but will only catch blatant syntax issues, or a full compile which loads all the TS files in the project and runs through full type checking etc. This second option runs pretty slowly, and maybe either that can only be done on request, or during the build process.

    Typescript.js this is a customized version of typescript.js that fixes a regex issue that duktape doesn't like. The BuildCommon.js copies this file into the modules folder on build.

    Extension Services Basically what is happening is that there is ServiceLocator that extensions can register with. When editor events occur, they notify the ServiceLocator that the event happened and the ServiceLocator delegates to anything registered for that event that can handle it. Right now only the SaveResource method is hooked in, but this could be hooked into menu rendering, inspector creation, even filetype resource editors if it got robust enough.

    Some thoughts behind this were that you could have a Resources/EditorExtensions folder that could dynamically be queried by the editor to register new extensions. In this example, the TypeScript resource extension is manually loaded in. Also, it might be better to somehow hook into the normal event subscription model to notify these extensions of changes.

    Anyway, this is definitely a WIP and needs some discussion and iteration to make it better.

    opened by shaddockh 26
  • [C#] Releasing a scene does not release resources owned by that scene

    [C#] Releasing a scene does not release resources owned by that scene

    To reproduce

    1. add the following destructor to 04_StaticScene.cs in the FeatureExamples project:
    ~StaticSceneSample()
    {
        GetSubsystem<Player>().UnloadScene(scene);
        ResourceCache cache = AtomicNET.GetSubsystem<ResourceCache>();
        cache.ReleaseAllResources(false);
    }
    
    1. run the project with metrics enabled
    2. run the Static Scene sample
    3. Exit the sample by pressing escape
    4. Watch the metrics, after a few seconds theGC will run and Scene should disappear from the list of objects. Note that all other objects from the scene (geometry, Textures, etc) will remain
    opened by mattbenic 20
  • Linux compilation on Manjaro

    Linux compilation on Manjaro

    Im getting this error: In file included from /home/user/Desktop/AtomicGameEngine/Source/ThirdParty/TurboBadger/tb_renderer.h:12:0, from /home/user/Desktop/AtomicGameEngine/Source/ThirdParty/TurboBadger/tb_renderer.cpp:6: /home/user/Desktop/AtomicGameEngine/Source/ThirdParty/TurboBadger/tb_linklist.h: In Konstruktor »tb::TBLink::TBLink()«: /home/user/Desktop/AtomicGameEngine/Source/ThirdParty/TurboBadger/tb_linklist.h:72:21: Fehler: »nullptr« wurde in diesem Gültigkeitsbereich nicht definiert TBLink() : prev(nullptr), next(nullptr), linklist(nullptr) {} ^ /home/user/Desktop/AtomicGameEngine/Source/ThirdParty/TurboBadger/tb_linklist.h: In Konstruktor »tb::TBLinkList::TBLinkList()«: /home/user/Desktop/AtomicGameEngine/Source/ThirdParty/TurboBadger/tb_linklist.h:96:26: Fehler: »nullptr« wurde in diesem Gültigkeitsbereich nicht definiert TBLinkList() : first(nullptr), last(nullptr), first_iterator(nullptr) {} ^ Source/ThirdParty/TurboBadger/CMakeFiles/TurboBadger.dir/build.make:86: die Regel für Ziel „Source/ThirdParty/TurboBadger/CMakeFiles/TurboBadger.dir/tb_renderer.cpp.o“ scheiterte make[2]: *** [Source/ThirdParty/TurboBadger/CMakeFiles/TurboBadger.dir/tb_renderer.cpp.o] Fehler 1 CMakeFiles/Makefile2:608: die Regel für Ziel „Source/ThirdParty/TurboBadger/CMakeFiles/TurboBadger.dir/all“ scheiterte make[1]: *** [Source/ThirdParty/TurboBadger/CMakeFiles/TurboBadger.dir/all] Fehler 2 Makefile:83: die Regel für Ziel „all“ scheiterte make: *** [all] Fehler 2

    opened by nifker 19
  • Shortcut fixes for #697

    Shortcut fixes for #697

    This hooks up the editor menu shortcuts properly and fixes #697

    Edit->Undo Edit->Redo Edit->Cut Edit->Copy Edit->Paste Edit->Select All Edit->Format Code

    Testing was done on OSX, but this needs to also be tested in Linux and Windows since the shortcut keys are different (CMD becomes CTRL in Windows and Linux).

    This also fixes some linter errors in the TS.

    opened by shaddockh 17
  • [Linux] Script editor has stopped working

    [Linux] Script editor has stopped working

    Getting this error when trying to open any script in the editor. The script editor worked before..

    *** Error in `/home/guzzard/git/build-AtomicGameEngineQt-Desktop-Debug/Source/AtomicEditor/AtomicEditor --type=renderer --primordial-pipe-token=EC79B7F02D73F965CF31616223A96050 --l ang=en-US --lang=en-US --log-file=/home/guzzard/git/build-AtomicGameEngineQt-Desktop-Debug/Source/AtomicEditor/debug.log --enable-pinch --num-raster-threads=4 --content-image-textu re-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --video-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 - -disable-accelerated-video-decode --channel=4181.3.1423980943 --v8-natives-passed-by-fd --v8-snapshot-passed-by-fd': **double free or corruption (out): 0x0000000002e401f0 ***** ======= Backtrace: ========= /usr/lib/libc.so.6(+0x6ed4b)[0x7f0c93a81d4b] /usr/lib/libc.so.6(+0x74546)[0x7f0c93a87546] /usr/lib/libc.so.6(+0x74d1e)[0x7f0c93a87d1e] /home/guzzard/git/build-AtomicGameEngineQt-Desktop-Debug/Source/AtomicEditor/AtomicEditor --type=renderer --primordial-pipe-token=EC79B7F02D73F965CF31616223A96050 --lang=en-US --lang=en-US --log-file=/home/guzzard/git/build-AtomicGameEngineQt-Desktop-Debug/Source/AtomicEditor/debug.log --enable-pinch --num-raster-threads=4 --content-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --video-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --disable-accelerated-video-decode --channel=4181.3.1423980943 --v8-natives-passed-by-fd --v8-snapshot-passed-by-fd(ft_mem_free+0x2f)[0x16cfb8b] /home/guzzard/git/build-AtomicGameEngineQt-Desktop-Debug/Source/AtomicEditor/AtomicEditor --type=renderer --primordial-pipe-token=EC79B7F02D73F965CF31616223A96050 --lang=en-US --lang=en-US --log-file=/home/guzzard/git/build-AtomicGameEngineQt-Desktop-Debug/Source/AtomicEditor/debug.log --enable-pinch --num-raster-threads=4 --content-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --video-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --disable-accelerated-video-decode --channel=4181.3.1423980943 --v8-natives-passed-by-fd --v8-snapshot-passed-by-fd[0x16ca457] /home/guzzard/git/build-AtomicGameEngineQt-Desktop-Debug/Source/AtomicEditor/AtomicEditor --type=renderer --primordial-pipe-token=EC79B7F02D73F965CF31616223A96050 --lang=en-US --lang=en-US --log-file=/home/guzzard/git/build-AtomicGameEngineQt-Desktop-Debug/Source/AtomicEditor/debug.log --enable-pinch --num-raster-threads=4 --content-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --video-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --disable-accelerated-video-decode --channel=4181.3.1423980943 --v8-natives-passed-by-fd --v8-snapshot-passed-by-fd(FT_Remove_Module+0xb0)[0x16ca9f9] /home/guzzard/git/build-AtomicGameEngineQt-Desktop-Debug/Source/AtomicEditor/AtomicEditor --type=renderer --primordial-pipe-token=EC79B7F02D73F965CF31616223A96050 --lang=en-US --lang=en-US --log-file=/home/guzzard/git/build-AtomicGameEngineQt-Desktop-Debug/Source/AtomicEditor/debug.log --enable-pinch --num-raster-threads=4 --content-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --video-image-texture-target=3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553,3553 --disable-accelerated-video-decode --channel=4181.3.1423980943 --v8-natives-passed-by-fd --v8-snapshot-passed-by-fd(FT_Done_Library+0x155)[0x16caf05] ./libcef.so(+0xd45aa0)[0x7f0c95910aa0] ./libcef.so(+0xdd5fdc)[0x7f0c959a0fdc] ./libcef.so(+0xdd6264)[0x7f0c959a1264] ./libcef.so(+0xdd4fb9)[0x7f0c9599ffb9] ./libcef.so(+0xdd4df9)[0x7f0c9599fdf9] ./libcef.so(+0xbe12cf)[0x7f0c957ac2cf] ./libcef.so(+0xbe11bc)[0x7f0c957ac1bc] ./libcef.so(+0xbd76c7)[0x7f0c957a26c7] ./libcef.so(+0xbd3041)[0x7f0c9579e041] ./libcef.so(+0x2708538)[0x7f0c972d3538] ./libcef.so(+0xbdae80)[0x7f0c957a5e80] ./libcef.so(+0xbdad60)[0x7f0c957a5d60] ./libcef.so(+0xbdab43)[0x7f0c957a5b43] ./libcef.so(+0x2b3dc7b)[0x7f0c97708c7b] ./libcef.so(+0x2a4d118)[0x7f0c97618118] ./libcef.so(+0x2a4d5db)[0x7f0c976185db] ./libcef.so(+0x2b28aaf)[0x7f0c976f3aaf] ./libcef.so(+0x2b2228d)[0x7f0c976ed28d] ./libcef.so(+0x2a6055a)[0x7f0c9762b55a] ./libcef.so(+0x2a5f63b)[0x7f0c9762a63b] ./libcef.so(+0x2a63b77)[0x7f0c9762eb77] ./libcef.so(+0x2a52a46)[0x7f0c9761da46] ./libcef.so(+0x2a523d0)[0x7f0c9761d3d0] ./libcef.so(+0x2a48199)[0x7f0c97613199] ./libcef.so(+0x2a53763)[0x7f0c9761e763] ./libcef.so(+0x2a539b5)[0x7f0c9761e9b5] ./libcef.so(+0x2a5707b)[0x7f0c9762207b] ./libcef.so(+0x2a52a65)[0x7f0c9761da65] ./libcef.so(+0x2a523d0)[0x7f0c9761d3d0] ./libcef.so(+0x2a48199)[0x7f0c97613199] ./libcef.so(+0x2a53763)[0x7f0c9761e763] ./libcef.so(+0x2a539b5)[0x7f0c9761e9b5] ./libcef.so(+0x2a5707b)[0x7f0c9762207b] ./libcef.so(+0x2a52a65)[0x7f0c9761da65] ./libcef.so(+0x2a523d0)[0x7f0c9761d3d0] ./libcef.so(+0x2a48199)[0x7f0c97613199] ./libcef.so(+0x2af3492)[0x7f0c976be492] ./libcef.so(+0x289ee33)[0x7f0c97469e33] ./libcef.so(+0x289d8da)[0x7f0c974688da] ./libcef.so(+0x2422044)[0x7f0c96fed044] ./libcef.so(+0x2421f85)[0x7f0c96fecf85] ./libcef.so(+0x28b1c47)[0x7f0c9747cc47] ./libcef.so(+0x2cfc2d8)[0x7f0c978c72d8] ./libcef.so(+0x1c8f43d)[0x7f0c9685a43d] ./libcef.so(+0x1cd39e0)[0x7f0c9689e9e0] ./libcef.so(+0x1cd2dd6)[0x7f0c9689ddd6] ./libcef.so(+0x1c7f1bc)[0x7f0c9684a1bc] ./libcef.so(+0x1c861e0)[0x7f0c968511e0] [0x2d6a1d6092a7] ======= Memory map: ========

    opened by guzzard 17
  • User preferences system for extensions

    User preferences system for extensions

    This PR adds the ability for host extensions to store and retrieve preferences from the project user preferences file. These preferences are also propagated to the web client so that editor extensions can retrieve the settings. Additionally, whenever preferences are changed from the host, a preference change event is sent to the web client so the web client can respond appropriately.

    The other changes here are some lint whitespace changes and also refactoring of the webview client extension names and structure to more closely match the changes made the host extension naming done in a previous PR.

    I did have a question on the user preference file. I'm using:

    ToolCore.toolSystem.project.userPrefsFullPath 
    

    to store the preferences in and this points to a file called projectname.userpreferences. It appears that the Snap Settings dialog stores settings in a different file called UserPrefs.json . Should't those also be stored in the projectname.userpreferences file?

    I updated the routine that saves the Snap Settings to not overwrite the file, but to retain any extraneous settings that may also be in there and just update with the known settings, so switching over to the projectname.userpreferences file should be seamless if that's the way you would like to go. Either that or have ToolCore.toolsSystem.project.userPrefsFullPath point to the UserPrefs.json file.

    I'm going to be using this to coordinate some settings in the TypeScript extension, but thought I would break out just the user settings piece into it's own PR so it's easier to digest.

    opened by shaddockh 17
  • Compiling on Linux

    Compiling on Linux

    I currently try to compile the source on linux (Mint 17/Ubuntu 14.10) and I am documenting what is needed to compile on linux.

    As far I have done following changes(and in this order) to succesfully build:

    • libCpuId typedef redefinition with different types ('long' vs 'long long') I removed their definition(libcpuid_types.h) of int64_t as sys/types.h already has this type.
    • TurboBadger use of undeclared identifier 'nullptr' Definitely a missing -std=c++11. Added in the generated flags.make
    • Atomic/Graphics/ 'd3d9.h' file not found I do not know why it was choosen to work on DirectX so I added a -DATOMIC_OPENGL in the corresponding flags.make.
    • Atomic/Environment/ProcSky.cpp unknown type name 'uint8_t' I added the commented lines
    #if defined(_MSC_VER)
    #include "stdint.h"
    // #else
    // #include <stdint.h>
    #endif
    
    • Several kNet header error: unknown type name 'sockaddr_in' Add some points the #if defined(KNET_UNIX) seemed not the be taken although in the flags.make it is defined. So I changed to no condition.
    • JSBind/cplusplus no template named 'unordered_map' in namespace 'std'; did you mean 'std::tr1::unordered_map'? and 'auto' type specifier is a C++11 extension Added a missing -std=c++11 to the flags.make

    But now I stuck at the following point: Linking CXX executable JSBind It lacks on several linkings against the following libraries:

    • GL
    • GLEW
    • DL
    • pthread
    • rt

    I tried to add these as CXX_FLAGS but it did not change anything. Same undefined reference errors on gl_, glew_, sem_, pthread_, dl_*

    Can anyone help me to fix these linkings?

    FYI: I am not used to configure cmake makefiles so I do not know whether I change things at the right point. C(++) compiler is clang(++).

    opened by JoshuaBehrens 17
  • cling based C++ as scripting language / hot code reload

    cling based C++ as scripting language / hot code reload

    cling based C++ as scripting language / hot code reload Why? Able to run C++ script in runtime or compile it for max speed ( as in example https://github.com/derofim/cling-cmake ) Also: May be used to improve modules compile time

    HOT code reload possible approaches:

    store app state fix cling undo for files https://root-forum.cern.ch/t/loading-unloading-class-as-interpreted-macro-in-cling-multiple-times/32976/2

    execute cling code to change callbacks & variables nested cling::Interpreter with multiple cling::MetaProcessor IDK how to do it, but you can create child cling::Interpreter

    opened by blockspacer 0
  • Right and middle buttons should be swapped

    Right and middle buttons should be swapped

    Right mouse button is 1 while middle button is 2 in imgui:

    https://github.com/AtomicGameEngine/AtomicGameEngine/blob/1729e34a09fd6c530f90a7ec4c1c2b4c828dfd80/Source/Atomic/UI/SystemUI/SystemUI.cpp#L145

    difficulty: 1 priority: low 
    opened by SuperWangKai 2
  • Unable to clone git on Ubuntu 16.04

    Unable to clone git on Ubuntu 16.04

    I am unable to build the atomic engine. i am getting an error when i try to clone the git recursively as well as regularly. --Regularly-- command run: git clone https://github.com/AtomicGameEngine/AtomicGameEngine.git

    following message: Cloning into 'AtomicGameEngine'... remote: Counting objects: 55476, done. error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received. fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed

    --Recursively-- command run: git clone --recursive https://github.com/AtomicGameEngine/AtomicGameEngine

    following message: Cloning into 'AtomicGameEngine'... remote: Counting objects: 55476, done. remote: Total 55476 (delta 0), reused 0 (delta 0), pack-reused 55475 Receiving objects: 100% (55476/55476), 110.97 MiB | 107.00 KiB/s, done. Resolving deltas: 100% (36473/36473), done. Checking connectivity... done. Submodule 'Submodules/AtomicExamples' (https://github.com/AtomicGameEngine/AtomicExamples) registered for path 'Submodules/AtomicExamples' Submodule 'Submodules/CEF' (https://github.com/AtomicGameEngine/CEF3Binaries) registered for path 'Submodules/CEF' Cloning into 'Submodules/AtomicExamples'... remote: Counting objects: 8352, done. error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received. fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed fatal: clone of 'https://github.com/AtomicGameEngine/AtomicExamples' into submodule path 'Submodules/AtomicExamples' failed

    opened by RishabhSystemBuilder 0
  • Binary build for windows?

    Binary build for windows?

    Hi everyone,

    I'm new here, and so far have not been able to run this engine.

    AtomicGameEngine page says:

    "Atomic Editor binary downloads are not currently available. Build from source for your platform using these instructions."

    I compiled it without any error , but it can't run correctly. AtomicEditor.exe get: "Error executing main.js"

    Can somebody give me a binary download link for windows? please

    opened by Mitra-M 1
Flax Engine – multi-platform 3D game engine

Flax Engine – multi-platform 3D game engine

Flax Engine 3.5k Aug 10, 2022
Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.

OpenXRay OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. S

null 2k Aug 10, 2022
MAZE (My AmaZing Engine) - 🎮 Personal open-source cross-platform game engine

MAZE (My AmaZing Engine) is the self-written open-source cross-platform game engine in the active development stage. At the moment it is my main pet project, developed for the purpose of learning and preserving different game dev technologies.

Dmitriy Nosov 11 Jan 9, 2022
CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine

CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine. This engine has been designed with a cross-platform design in mind. Thanks to Vulkan API it delivers a next-gen experience with ray tracing to both Linux and Windows platforms

Jakub Biliński 33 Jul 28, 2022
Ground Engine is an easy to use Game Engine for 3D Game Development written in C++

Ground Engine is an easy to use Game Engine Framework for 3D Game Development written in C++. It's currently under development and its creation will b

 PardCode 54 Aug 10, 2022
Steam API for the Godot game engine

Steam API for the Godot game engine

GP Garcia 1.2k Aug 10, 2022
Stealthy way to hijack the existing game process handle within the game launcher (currently supports Steam and Battle.net). Achieve external game process read/write with minimum footprint.

Launcher Abuser Stealthy way to hijack the existing game process handle within the game launcher (currently supports Steam and Battle.net). Achieve ex

Ricardo Nacif 78 Aug 12, 2022
Game Boy, Game Boy Color, and Game Boy Advanced Emulator

SkyEmu SkyEmu is low level cycle accurate GameBoy, GameBoy Color and Game Boy Advance emulator that I have been developing in my spare time. Its prima

Sky 193 Aug 6, 2022
Multi Theft Auto (MTA) is a software project that adds network play functionality to Rockstar North's Grand Theft Auto game series,

Multi Theft Auto: San Andreas Multi Theft Auto (MTA) is a software project that adds network play functionality to Rockstar North's Grand Theft Auto g

null 2 Oct 22, 2021
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU

Panda3D Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs. Panda3D is open-source and free for a

Panda3D 3.4k Aug 15, 2022
Intrinsic is a Vulkan based cross-platform game and rendering engine

Intrinsic is a Vulkan based cross-platform game and rendering engine

Benjamin Wrensch 1k Jul 31, 2022
Free, cross-platform 2D game engine powered by Haxe and OpenFL

flixel | addons | ui | demos | tools | templates | docs | haxeflixel.com Links Here are the most important links to get you started with HaxeFlixel: G

HaxeFlixel 1.6k Aug 14, 2022
Open-source, cross-platform, C++ game engine for creating 2D/3D games.

GamePlay v3.0.0 GamePlay is an open-source, cross-platform, C++ game framework/engine for creating 2D/3D mobile and desktop games. Website Wiki API De

gameplay3d 3.8k Aug 11, 2022
KlayGE is a cross-platform open source game engine with plugin-based architecture.

KlayGE KlayGE is a cross-platform open source game engine with plugin-based architecture. It's started since 2003. The explicit goal of KlayGE is: to

Minmin Gong 1.8k Aug 8, 2022
A cross-platform 2D game engine

nCine nCine is a cross-platform 2D game engine. It is released under the MIT License, Copyright (c) 2011-2021 Angelo Theodorou. For additional informa

nCine 735 Aug 10, 2022
A powerful free cross-platform RTS game engine

Spring RTS game engine README Spring (formerly TASpring) is an Open Source Real Time Strategy game engine. Visit our project homepage for help, sugges

Spring RTS 2.7k Aug 7, 2022
CSEngine is a cross-platform 3D game engine.

CSEngine - Cross Platform C++ Game Engine CSEngine is a cross-platform 3D game engine. ?? As it is under development, it is not yet suitable for pract

ounols 45 Jun 27, 2022
Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.

RetroArch RetroArch is the reference frontend for the libretro API. Popular examples of implementations for this API includes video game system emulat

null 6.9k Aug 16, 2022
Minetest is an open source voxel game engine with easy modding and game creation

Minetest is an open source voxel game engine with easy modding and game creation

Minetest 7.8k Aug 14, 2022