{"id":1840,"date":"2019-11-27T19:19:09","date_gmt":"2019-11-27T18:19:09","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/making-of-sandox-the-cryengine-game-editor\/"},"modified":"2020-01-10T16:16:20","modified_gmt":"2020-01-10T15:16:20","slug":"making-of-sandox-the-cryengine-game-editor","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/making-of-sandox-the-cryengine-game-editor\/","title":{"rendered":"Making of Sandox, the Cryengine Game Editor"},"content":{"rendered":"\n<p>If you are a <strong><span id=\"urn:enhancement-9b23c88d\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/video_game_developer\">game developer<\/span><\/strong>, you are probably aware that there are many <strong><span id=\"urn:enhancement-e73791b3\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/game_engine\">game engines<\/span><\/strong> out there. However, only a few of them made the history of <span id=\"urn:enhancement-58b9d43c\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/video_game_development\">game development<\/span>. Among them, there are <span id=\"urn:enhancement-33ac72e2\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/docker_software\">software<\/span> like <span id=\"urn:enhancement-7a1144dc\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/unreal_engine\">Unreal Engine<\/span>, <span id=\"urn:enhancement-9d7c782d\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/unity_game_engine\">Unity<\/span> or <span id=\"urn:enhancement-c40aec9d\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_game_engine\">Source Engine<\/span> that have been used in a plethora of games. Another great <span id=\"urn:enhancement-56e10514\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/game_engine\">game engine<\/span> is <strong><span id=\"urn:enhancement-b98fbb75\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Cryengine<\/span><\/strong>, <span id=\"urn:enhancement-bbb352a\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/video_game_developer\">developed<\/span> by <span id=\"urn:enhancement-84e619d0\" class=\"textannotation disambiguated wl-organisation\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/crytek\">Crytek<\/span> and used for the development of a great <span id=\"urn:enhancement-ebdf99b7\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/video_game\">video game<\/span> like <span id=\"urn:enhancement-eb818d64\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/far_cry\">Far Cry<\/span> and <span id=\"urn:enhancement-df53d425\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/crysis\">Crysis<\/span>.<\/p>\n\n\n\n<p>While the <span id=\"urn:enhancement-4c9959fb\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/game_engine\">game engine<\/span> is one of the most important components, <span id=\"urn:enhancement-687514a9\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/video_game_developer\">developing<\/span> good games also requires proper tools and, in particular, game editors have a crucial role. During <strong>Codemotion Rome 2019<\/strong>, <strong>Alessandro Osima<\/strong>, Tools Engineer at <span id=\"urn:enhancement-6dbb6b2e\" class=\"textannotation disambiguated wl-organisation\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/crytek\">Crytek<\/span>, delivered a speech about the development of <strong><span id=\"urn:enhancement-a33a1913\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span><\/strong>, the game editor for <span id=\"urn:enhancement-abe9ed67\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Cryengine<\/span>. In this article we will provide an overview about such a game editor, starting from the history of its development and highlighting some of the crucial choices taken by the <span id=\"urn:enhancement-79b21ca6\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span> development team, based on the story narrated by Osima during his talk.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"8kkal\">Overview of Sandbox<\/h2>\n\n\n\n<p><span id=\"urn:enhancement-8c009435\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span> was originally <span id=\"urn:enhancement-e8ba8469\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/video_game_developer\">created<\/span> 15 years ago, with the specific goal of supporting the development of <span id=\"urn:enhancement-cb4f31a7\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/far_cry\">Far Cry<\/span>. From its origin, it has continuously evolved and many games were <span id=\"urn:enhancement-bc852ffd\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/video_game_developer\">created<\/span> with it, ranging from <strong><span id=\"urn:enhancement-cbd51b70\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/crysis\">Crysis<\/span><\/strong> to VR games such as <strong>The Climb<\/strong>.<\/p>\n\n\n\n<p>As with many other game editors, <span id=\"urn:enhancement-959aed91\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span> is coded mostly in <strong><span id=\"urn:enhancement-a5923d02\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/c__\">C++<\/span><\/strong> and offers a set of <span id=\"urn:enhancement-3dff9582\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/wysiwyg\">WYSIWYG<\/span> tools like <strong>material editor<\/strong>, <strong>trackview<\/strong> (used to create cutscenes), <strong>particle editor<\/strong> and many others. In addition to this, <span id=\"urn:enhancement-b2f544a1\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span> also offers an extensive set of <strong><span id=\"urn:enhancement-17971616\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/python_programming_language\">Python<\/span> bindings<\/strong> that tech artists can use to <span id=\"urn:enhancement-b4eb8781\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scripting_language\">script<\/span> simple tools.<\/p>\n\n\n\n<p>In general, every tool that is included in <span id=\"urn:enhancement-8c3e45d2\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span> is actually a <span id=\"urn:enhancement-89164b24\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/plug-in_computing\">plugin<\/span>, making such an editor highly <strong>modular<\/strong>. The Core <span id=\"urn:enhancement-ea11304f\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span> implements basic things like Asset Management, Windowing, Serialization and Plugin Management. Then, at startup, the <span id=\"urn:enhancement-9605b8d0\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/game_engine\">engine<\/span> loads all the plugins. This design choice allow developers and game teams to easily create their own plugins, with an extremely <strong>flexible approach<\/strong>.<\/p>\n\n\n\n<p><span id=\"urn:enhancement-7bddf85b\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span> is available along with <span id=\"urn:enhancement-fe867d42\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Cryengine<\/span> from the <u><a href=\"https:\/\/www.cryengine.com\/features\/sandbox-tools\">official website<\/a><\/u>, where you can find both the executable files (for <span id=\"urn:enhancement-23b4d52e\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_windows\">Windows<\/span> 64-bit and 32-bit) and the full <span id=\"urn:enhancement-9d5eadb1\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">source code<\/span>.<\/p>\n\n\n\n<div class=\"wp-block-image image regular\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/images.storychief.com\/account_16344\/MeshImporter_a4f3f644e0fbb868a530a73cb67d917c_800.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"5vkrm\">Development of Sandbox<\/h3>\n\n\n\n<p>During his talk, Osima discussed how <span id=\"urn:enhancement-9def9389\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span> has been developed, starting from the first publicly available version of it, released in 2004. As already stated, it was developed in C++, based on the <strong><span id=\"urn:enhancement-69e1f182\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_foundation_class_library\">Microsoft Foundation Classes<\/span><\/strong> (<strong><span id=\"urn:enhancement-e2c38f48\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_foundation_class_library\">MFC<\/span><\/strong>), forming a simple, monolithic level editor with basic tools. In this first release, the game <span id=\"urn:enhancement-7dcbf9b4\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/game_engine\">engine<\/span>, the editor and the game code were all in the same directory tree.<\/p>\n\n\n\n<div class=\"wp-block-image image regular\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/images.storychief.com\/account_16344\/sandboxv1_0a60346ac380cc45a86925e921f61bb0_800.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p>After the success of Far Cry, <span id=\"urn:enhancement-7ae7eac0\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Cryengine<\/span> was significantly revised and readapted for Crysis. New tools were added, including primitive versions of the material editor, flowgraph, trackview and character editor. All these tools proved to be extremely useful to support designers and developers working on Crysis.<\/p>\n\n\n\n<div class=\"wp-block-image image regular\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/images.storychief.com\/account_16344\/sandboxv2_45f845082cf8c220679ca62087c8b78f_800.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p>From <span id=\"urn:enhancement-d98b473b\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/crysis_2\">Crysis 2<\/span> onward, <span id=\"urn:enhancement-fe81a79f\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span> was available only as a modding tool for Crysis and Far Cry. We had to wait until 2011, when a <strong>free SDK for non-commercial games was released<\/strong> by <span id=\"urn:enhancement-4645815\" class=\"textannotation disambiguated wl-organisation\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/crytek\">Crytek<\/span>.<\/p>\n\n\n\n<p>The development model was based on improving on the previous version of the game editor (as well as the <span id=\"urn:enhancement-ccb48218\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/game_engine\">engine<\/span>) and kept going on through many games.<\/p>\n\n\n\n<div class=\"wp-block-image image regular\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/images.storychief.com\/account_16344\/sandboxv3_c081518271a0e312fa18f45d16050714_800.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p>By the end of the development cycle that ended with the release of <span id=\"urn:enhancement-7c22c51\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Cryengine<\/span> 3, the <span id=\"urn:enhancement-1e4ef52a\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span> team started focusing on the main critical issues to be improved. They thus identified two main areas of improvement:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>User Experience<\/strong> (<strong>UX<\/strong>): the team noted a quite <strong>steep learning curve<\/strong>, due to difficulties in following the workflow<\/li><li><strong>API<\/strong>: due to the growth of tools, API did not scale. The consequence was low <strong>stability<\/strong>, <strong>performance<\/strong> issues and also some inconsistent data handling, resulting in fragmented tools development over the years<\/li><\/ul>\n\n\n\n<p>To address these issues, Osima explained that the first main choice was to focus on UX, by introducing a new <strong>UX-driven development process<\/strong>. It consisted of translating any request for a new feature or improvement in a short-term or long-term development task. Then, a <span id=\"urn:enhancement-8eec50ad\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/user_experience\">UX<\/span> team evaluates potential solutions to the described problem, designing them and finally transferring them to the development team.<\/p>\n\n\n\n<p>The second fundamental choice was to <strong>update the <span id=\"urn:enhancement-ee192dcb\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/user_interface\">UI<\/span><\/strong>. The main problems derived from Microsoft\u2019s choice of not developing <span id=\"urn:enhancement-d60e0e47\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_foundation_class_library\">MFC<\/span> anymore. Moreover, <span id=\"urn:enhancement-5d1cccc6\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_foundation_class_library\">MFC<\/span> was complicated to programme and did not lead to consistent visual appearance. Finally, <span id=\"urn:enhancement-d4c65f59\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_foundation_class_library\">MFC<\/span> only allows us to develop <span id=\"urn:enhancement-b4a45de4\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">applications<\/span> for <span id=\"urn:enhancement-6dd9cae8\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_windows\">Windows<\/span>, which translates into a significant difficulty in supporting an eventual <span id=\"urn:enhancement-2061f1d4\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cross-platform\">cross-platform<\/span> implementation of <span id=\"urn:enhancement-db42b7e0\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span>.<\/p>\n\n\n\n<p>On the other hand, <span id=\"urn:enhancement-9b7218ef\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_foundation_class_library\">MFC<\/span> was performant and could handle lots of <span id=\"urn:enhancement-11f9293e\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/data\">data<\/span>. It also provides many assets and widgets, which make it extensible and stylable.<\/p>\n\n\n\n<p>The solution tackled by the <span id=\"urn:enhancement-5c7dfe74\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span> team was to opt for <strong><span id=\"urn:enhancement-ff0b3afc\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/qt_software\">Qt<\/span><\/strong>, one of the most common <span id=\"urn:enhancement-60116ba1\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/open_source\">open source<\/span> <span id=\"urn:enhancement-e2b5ea19\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/c__\">C++<\/span> frameworks for <span id=\"urn:enhancement-b98b0e3f\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/graphical_user_interface\">GUI<\/span> development. <span id=\"urn:enhancement-4f1bda70\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/qt_software\">Qt<\/span> is indeed a modern and <span id=\"urn:enhancement-9e96c1d\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cross-platform\">multiplatform<\/span> framework, easier than <span id=\"urn:enhancement-757c776e\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_foundation_class_library\">MFC<\/span>, as well as very well documented and widely used in many <span id=\"urn:enhancement-2628c421\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">applications<\/span>. In addition, the <span id=\"urn:enhancement-407fe970\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> also <span id=\"urn:enhancement-5ae3ba4a\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/video_game_developer\">developed<\/span> a <strong>MFCToolsPlugin<\/strong>, aimed at supporting tools already <span id=\"urn:enhancement-53dd7873\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/video_game_developer\">developed<\/span> with <span id=\"urn:enhancement-a0258622\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_foundation_class_library\">MFC<\/span>. This choice was crucial in order to support an <strong>incremental <span id=\"urn:enhancement-2498f38e\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/command-line_interface\">switch<\/span> from <span id=\"urn:enhancement-333be1\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_foundation_class_library\">MFC<\/span> to <span id=\"urn:enhancement-fc56e340\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/qt_software\">Qt<\/span><\/strong>. For instance, the material editor is still written in <span id=\"urn:enhancement-7e0b59db\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_foundation_class_library\">MFC<\/span>, and has been included in <span id=\"urn:enhancement-31bf44b5\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Cryengine<\/span> V, thanks to the MFCToolsPlugin, thus being embedded in a <span id=\"urn:enhancement-4f65254\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/qt_software\">Qt<\/span> window.<\/p>\n\n\n\n<div class=\"wp-block-image image regular\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/images.storychief.com\/account_16344\/materialeditor_912468e21304779bf7bccb95bdac16b3_800.png\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"17hjp\">Takeaways<\/h2>\n\n\n\n<p>The current versions of <span id=\"urn:enhancement-796687e0\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Cryengine<\/span> and <span id=\"urn:enhancement-6092625\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cryengine\">Sandbox<\/span> are embedding the results of all the aforementioned design choices. Analysing them in the context of the development <span id=\"urn:enhancement-842842f1\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">process<\/span> is useful to illustrate how such big projects are managed. Two aspects are particularly interesting here. First, <strong>incorporating <span id=\"urn:enhancement-f745f392\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/user_experience\">UX<\/span> evaluation in the development <span id=\"urn:enhancement-689bfa16\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">process<\/span><\/strong> allows us to include <span id=\"urn:enhancement-1a42e5e1\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span>\u2019 preferences in identifying new features and required improvements, which can significantly reduce the gradient of the learning curve, thus easing <span id=\"urn:enhancement-bf7c3ef9\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/video_game_development\">game development<\/span>. Second, <strong>using a modern <span id=\"urn:enhancement-b0e47fce\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/user_interface\">UI<\/span> framework<\/strong> might be not enough; something that is good today may become obsolete after one, two or three years. The crucial choice is not just in the ability of replacing obsolete <span id=\"urn:enhancement-181d1e3e\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/component-based_software_engineering\">components<\/span>, but in doing it by <strong>allowing incremental transitions<\/strong> between old and new <span id=\"urn:enhancement-37e00b8f\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/component-based_software_engineering\">components<\/span>. The development of the MFCToolsPlugin is a great example of this, representing a winning choice for the Sandbox development team.<\/p>\n\n\n\n<p><!-- strchf script --><script>        if(window.strchfSettings === undefined) window.strchfSettings = {};    window.strchfSettings.stats = {url: \"https:\/\/codemotion.storychief.io\/making-of-sandox-the-cryengine-game-editor?id=696673205&type=2\",title: \"Making of Sandox, the Cryengine Game Editor\",id: \"66543c6c-96d5-4792-a44b-49339654b7a1\"};            (function(d, s, id) {      var js, sjs = d.getElementsByTagName(s)[0];      if (d.getElementById(id)) {window.strchf.update(); return;}      js = d.createElement(s); js.id = id;      js.src = \"https:\/\/d37oebn0w9ir6a.cloudfront.net\/scripts\/v0\/strchf.js\";      js.async = true;      sjs.parentNode.insertBefore(js, sjs);    }(document, 'script', 'storychief-jssdk'))    <\/script><!-- End strchf script --><\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Sandbox is the game editor for Cryengine. In this article we will provide an overview about such a game editor, starting from the history of its development and highlighting some of the crucial choices taken by the Sandbox development team.<\/p>\n","protected":false},"author":3,"featured_media":1841,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[15],"tags":[3354],"collections":[],"class_list":{"0":"post-1840","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-gamedev","8":"tag-ide","9":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Making of Sandox, the Cryengine Game Editor - Codemotion<\/title>\n<meta name=\"description\" content=\"Sandbox is the game editor for Cryengine. In this article we will provide an overview about such a game editor, starting from the history of its development and highlighting some of the crucial choices taken by the Sandbox development team.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Making of Sandox, the Cryengine Game Editor\" \/>\n<meta property=\"og:description\" content=\"Sandbox is the game editor for Cryengine. In this article we will provide an overview about such a game editor, starting from the history of its development and highlighting some of the crucial choices taken by the Sandbox development team.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-27T18:19:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-01-10T15:16:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Vito Gentile\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ViGentile\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vito Gentile\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/making-of-sandox-the-cryengine-game-editor\/\"},\"author\":{\"name\":\"Vito Gentile\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f9c99d8dfb99900d709bb8199225d313\"},\"headline\":\"Making of Sandox, the Cryengine Game Editor\",\"datePublished\":\"2019-11-27T18:19:09+00:00\",\"dateModified\":\"2020-01-10T15:16:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/making-of-sandox-the-cryengine-game-editor\/\"},\"wordCount\":1022,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg\",\"keywords\":[\"IDE\"],\"articleSection\":[\"Game Development\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/making-of-sandox-the-cryengine-game-editor\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/\",\"name\":\"Making of Sandox, the Cryengine Game Editor - Codemotion\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg\",\"datePublished\":\"2019-11-27T18:19:09+00:00\",\"dateModified\":\"2020-01-10T15:16:20+00:00\",\"description\":\"Sandbox is the game editor for Cryengine. In this article we will provide an overview about such a game editor, starting from the history of its development and highlighting some of the crucial choices taken by the Sandbox development team.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg\",\"width\":1200,\"height\":675,\"caption\":\"Making of Sandox, the Cryengine Game Editor\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Game Development\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Making of Sandox, the Cryengine Game Editor\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f9c99d8dfb99900d709bb8199225d313\",\"name\":\"Vito Gentile\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ebcb5b885a4f1669578d08a55deb81064893c07c1b35b7b36eb059cce730ae90?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ebcb5b885a4f1669578d08a55deb81064893c07c1b35b7b36eb059cce730ae90?s=96&d=mm&r=g\",\"caption\":\"Vito Gentile\"},\"description\":\"I\u2019m a data scientist, tech writer, software developer with experience in mobile, web (full-stack) and Python programming, and former researcher with interests in human-computer interaction. I thus have a multi-faceted experience in the area of software development, and that\u2019s why I love my job(s)!\",\"sameAs\":[\"https:\/\/vitogentile.it\",\"https:\/\/www.linkedin.com\/in\/vitogentile\/en\",\"https:\/\/x.com\/ViGentile\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/vito-gentile\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Making of Sandox, the Cryengine Game Editor - Codemotion","description":"Sandbox is the game editor for Cryengine. In this article we will provide an overview about such a game editor, starting from the history of its development and highlighting some of the crucial choices taken by the Sandbox development team.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/","og_locale":"en_US","og_type":"article","og_title":"Making of Sandox, the Cryengine Game Editor","og_description":"Sandbox is the game editor for Cryengine. In this article we will provide an overview about such a game editor, starting from the history of its development and highlighting some of the crucial choices taken by the Sandbox development team.","og_url":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2019-11-27T18:19:09+00:00","article_modified_time":"2020-01-10T15:16:20+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg","type":"image\/jpeg"}],"author":"Vito Gentile","twitter_card":"summary_large_image","twitter_creator":"@ViGentile","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Vito Gentile","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/making-of-sandox-the-cryengine-game-editor\/"},"author":{"name":"Vito Gentile","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f9c99d8dfb99900d709bb8199225d313"},"headline":"Making of Sandox, the Cryengine Game Editor","datePublished":"2019-11-27T18:19:09+00:00","dateModified":"2020-01-10T15:16:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/making-of-sandox-the-cryengine-game-editor\/"},"wordCount":1022,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg","keywords":["IDE"],"articleSection":["Game Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/making-of-sandox-the-cryengine-game-editor\/","url":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/","name":"Making of Sandox, the Cryengine Game Editor - Codemotion","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg","datePublished":"2019-11-27T18:19:09+00:00","dateModified":"2020-01-10T15:16:20+00:00","description":"Sandbox is the game editor for Cryengine. In this article we will provide an overview about such a game editor, starting from the history of its development and highlighting some of the crucial choices taken by the Sandbox development team.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg","width":1200,"height":675,"caption":"Making of Sandox, the Cryengine Game Editor"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/making-of-sandox-the-cryengine-game-editor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Frontend","item":"https:\/\/www.codemotion.com\/magazine\/frontend\/"},{"@type":"ListItem","position":3,"name":"Game Development","item":"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/"},{"@type":"ListItem","position":4,"name":"Making of Sandox, the Cryengine Game Editor"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/f9c99d8dfb99900d709bb8199225d313","name":"Vito Gentile","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ebcb5b885a4f1669578d08a55deb81064893c07c1b35b7b36eb059cce730ae90?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ebcb5b885a4f1669578d08a55deb81064893c07c1b35b7b36eb059cce730ae90?s=96&d=mm&r=g","caption":"Vito Gentile"},"description":"I\u2019m a data scientist, tech writer, software developer with experience in mobile, web (full-stack) and Python programming, and former researcher with interests in human-computer interaction. I thus have a multi-faceted experience in the area of software development, and that\u2019s why I love my job(s)!","sameAs":["https:\/\/vitogentile.it","https:\/\/www.linkedin.com\/in\/vitogentile\/en","https:\/\/x.com\/ViGentile"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/vito-gentile\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000-600x600.jpg","author_info":{"display_name":"Vito Gentile","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/vito-gentile\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg",1200,675,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000-300x169.jpg",300,169,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000-768x432.jpg",768,432,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000-1024x576.jpg",1024,576,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg",1200,675,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg",1200,675,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000.jpg",100,56,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/MeshImporter_c3321ef1f38ba55a0ede250fd8605d67_2000-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Vito Gentile","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/vito-gentile\/"},"uagb_comment_info":0,"uagb_excerpt":"Sandbox is the game editor for Cryengine. In this article we will provide an overview about such a game editor, starting from the history of its development and highlighting some of the crucial choices taken by the Sandbox development team.","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/1840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=1840"}],"version-history":[{"count":3,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/1840\/revisions"}],"predecessor-version":[{"id":2539,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/1840\/revisions\/2539"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/1841"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=1840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=1840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=1840"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=1840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}