{"id":2014,"date":"2019-12-10T17:05:12","date_gmt":"2019-12-10T16:05:12","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/game-unity3d-data-driven-modding\/"},"modified":"2020-01-21T23:49:54","modified_gmt":"2020-01-21T22:49:54","slug":"game-unity3d-data-driven-modding","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/game-unity3d-data-driven-modding\/","title":{"rendered":"How Unity3D and Data Driven Modding Created an Award Winning Urban Survival Game"},"content":{"rendered":"<p>If you dream of a better society, a <span id=\"urn:enhancement-6905f957\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/pc_game\">computer game<\/span> about the reality of urban poverty and homelessness is just for you. It not only raising awareness of street life, but provides the opportunity for people to be a game content creator, at least for a day thanks to <span id=\"urn:enhancement-f07ac069\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/unity_game_engine\">Unity3D<\/span>.\u00a0<\/p>\n<p>The survival game is called <a href=\"https:\/\/www.tempi-duri.net\/presskit\/HardTimes\/index.html#factsheet\">Hard Times<\/a> and was created by <a href=\"https:\/\/events.codemotion.com\/conferences\/rome\/2019\/agenda\/#topic5\">Ivan Preziosi<\/a>. He presented a talk this year at <a href=\"https:\/\/events.codemotion.com\/conferences\/rome\/2019\/\">Codemotion Rome<\/a>, about the <strong>Data Driven Modding<\/strong> paradigm and how his game was created with <strong><span id=\"urn:enhancement-597f9fa4\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/unity_game_engine\">Unity 3D<\/span><\/strong>.\u00a0<\/p>\n<h2 id=\"e8nvi\">The Opportunity of Developing With Unity3D<\/h2>\n<p><em><span id=\"urn:enhancement-47ea55c8\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/unity_game_engine\">Unity3D<\/span> is a complete <span id=\"urn:enhancement-93f8a6f6\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/integrated_development_environment\">IDE<\/span> <span id=\"urn:enhancement-534612d6\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/game_engine\">engine<\/span>, a <span id=\"urn:enhancement-7070acf5\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/development_environment_software_development_process\">development environment<\/span>, that you can try for free and is available for both MacOS and <span id=\"urn:enhancement-b4d2612b\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microsoft_windows\">Windows<\/span>. It can deliver builds for all of the most popular gaming platforms.<\/em><\/p>\n<p><strong>Hard Times is an urban survival <span id=\"urn:enhancement-456dd579\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/pc_game\">computer game<\/span><\/strong>, where we are put in a homeless person&#8217;s shoes facing the brutal challenges of daily survival, made worse by an indifferent society and the frenetic pace of business life. The game invites us to reflect on the marginalization of poverty and feeling of indifference experienced by the homeless.<\/p>\n<figure class=\"image regular \"><picture><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/shot13_0f3799cc9c00d8473e9bac8ff16c5162_800.jpg 1x\" media=\"(max-width: 768px)\" \/><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/shot13_0f3799cc9c00d8473e9bac8ff16c5162_800.jpg 1x\" media=\"(min-width: 769px)\" \/><img decoding=\"async\" src=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/shot13_0f3799cc9c00d8473e9bac8ff16c5162_800.jpg\" alt=\"inside the Hard Times \" \/><\/picture>\n<figcaption>Hard Times developed with <span id=\"urn:enhancement-77defd32\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/unity_game_engine\">Unity3D<\/span><\/figcaption>\n<\/figure>\n<p>Ivan describes himself as a \u201chobbyist&#8221;, but he aims high, bringing his game beyond the borders of <span id=\"urn:enhancement-d639ba09\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/italy\">Italy<\/span>. He participates in many gaming events, arousing the interest of local institutions.\u00a0He has created a game with a strong social message, effective retro style graphics, and the possibility of future game extensions.<\/p>\n<h3 id=\"4ulqr\">The Architecture\u00a0<\/h3>\n<p>How can we become a game content creator? The secret is in how the game flow will be influenced by the data layer. Ivan chose the Data Driven Paradigm to model the game flow with a benefit: simplicity.\u00a0<\/p>\n<p>This allows us to modify and extend to the game only by writing some text file in a format: <span id=\"urn:enhancement-e05660fb\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/json\">JSON<\/span>.\u00a0<\/p>\n<p><em>A paradigm can be described as a set of patterns and methods that are commonly accepted by members of a scientific <span id=\"urn:enhancement-e521049e\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/community\">community<\/span>.\u00a0<\/em><\/p>\n<p>Hard Times was envisioned from the beginning as a <strong>core moddable <span id=\"urn:enhancement-1a4caf13\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/game_engine\">engine<\/span><\/strong> running a base default mod, called \u201cVanilla\u201d representing the base default <span id=\"urn:enhancement-49f50527\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/gameplay\">gameplay<\/span>. This structure was designed to make possible the easy addition of more <span id=\"urn:enhancement-a4f04829\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/user-generated_content\">user generated content<\/span>, in the form of additional mod packages. Entities\u2019 behaviour and properties are then described using a relational data structure created on top of a <span id=\"urn:enhancement-d096ff9\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/json\">JSON<\/span> file structure.\u00a0\u00a0<\/p>\n<p><em><span id=\"urn:enhancement-22451e0a\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/json\">JSON<\/span> is a human-readable data format that is used very much in <span id=\"urn:enhancement-80803e15\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/representational_state_transfer\">REST<\/span> architectures for exchanging data between services that use the <span id=\"urn:enhancement-c23fa64c\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/internet\">Internet<\/span>.\u00a0<\/em><\/p>\n<h2 id=\"7ndo3\">The Value of <strong>Data-Driven Modding<\/strong><\/h2>\n<p>At Codemotion Rome 2019 Ivan demonstrated how the game could be extended, with customisable content thanks to modding by anyyone, even if you aren&#8217;t an expert.\u00a0 He offered some insights into <strong>Data-Driven Modding, <\/strong>noting it is not his intention to get into the complexity of unnecessary software architectures.\u00a0<\/p>\n<p>The next step is the <strong>Functional-Driven Modding<\/strong>. Here, the game modifications are more complex than previously, because you have to get some minimum requirements, such as knowledge of some scripting language (<span id=\"urn:enhancement-76b5d3b7\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span>, LUA, C, etc.).\u00a0<\/p>\n<p><em>Data Driven Programming is a paradigm software architecture where the data control the flow of the <span id=\"urn:enhancement-1651d4fc\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/business_logic\">business logic<\/span>, only by changing the data-layer without touching the <span id=\"urn:enhancement-5ed3e3b5\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">source code<\/span>.\u00a0<\/em><\/p>\n<p>Hard Times wants a <strong>society to be accessible to everyone<\/strong> regardless of money, gender or ability. Ivan wants a <strong>modding system more usable by the players<\/strong> and to transform them into creators of the game itself.\u00a0 Thanks to these design choices we get:\u00a0<\/p>\n<p>\u25cf <u>EASY TO IMPLEMENT<\/u>: short, strategic steps;\u00a0<\/p>\n<p>\u25cf <u>SECURITY<\/u>: the possibility of injecting malicious logic into\u00a0the <span id=\"urn:enhancement-c338f457\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">source code<\/span> is avoided ;\u00a0<\/p>\n<p>\u25cf <u>USE<\/u>: changing or adding original content to the game is a\u00a0simple operation without the need for advanced technical skills;\u00a0<\/p>\n<p>\u25cf <u>ZERO ENVIRONMENT<\/u>: the system is based on <span id=\"urn:enhancement-c86924a2\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/json\">.json<\/span>, .png and .ogg\u00a0 files, a notepad and free editors like Gimp or Audacity are enough;\u00a0<\/p>\n<p>\u25cf <u>DISTRIBUTION<\/u>: mods are auto contained in a\u00a0zip.\u00a0<\/p>\n<h2 id=\"3jtc\">Implementation\u00a0<\/h2>\n<p>Hard Times uses the Full Serializer library, a more powerful tool than the built-in serializer code in C#.\u00a0<\/p>\n<p>In Ivan&#8217;s design, each game entity which has an effect on our player stats is mediated by a <strong>\u201cplayer effect\u201d<\/strong>, a json described entity, who will directly affect character\u2019s stats, such as stamina, life, hunger or smell. This makes it possible to extend and create new player effects in order to modify the behaviour of any given game entity.<\/p>\n<p>To create a change, we must respect the conventions of the structure of our folders, files and <span id=\"urn:enhancement-b8fe6085\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/json\">JSON<\/span> themselves.<\/p>\n<figure class=\"image regular \"><picture><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/my-image_1_a33f99eb8354fcb9925c545e1a190823_800.png 1x\" media=\"(max-width: 768px)\" \/><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/my-image_1_a33f99eb8354fcb9925c545e1a190823_800.png 1x\" media=\"(min-width: 769px)\" \/><img decoding=\"async\" src=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/my-image_1_a33f99eb8354fcb9925c545e1a190823_800.png\" alt=\"Schema of A JSON FILE\" \/><\/picture>\n<figcaption>An example of <span id=\"urn:enhancement-2b5d1c7\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/json\">JSON<\/span> file with relations<\/figcaption>\n<\/figure>\n<p>Each object has an \u201cid\u201d (identification like relation id table) reference just like an entity of a relational database, allowing us to define game mechanics and relationships between all the various game entities.\u00a0<\/p>\n<p>The various entities of the game (items, furniture, doors, scenes, etc.) each have a Manager class that will handle the creation and modification of the relevant data structure (resembling the organisation of tables in a database).\u00a0<\/p>\n<p>Data loading order is important due to Hard Times&#8217; <strong>additive approach<\/strong>, where the data contained in the <span id=\"urn:enhancement-f77897cd\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/json\">JSON<\/span> &#8211; when possible &#8211; <strong>is merged with that previously loaded<\/strong>.\u00a0<\/p>\n<figure class=\"image regular \"><picture><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/my-image_2_59334c8b3a37d7308a7caf81d077a87f_800.png 1x\" media=\"(max-width: 768px)\" \/><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/my-image_2_59334c8b3a37d7308a7caf81d077a87f_800.png 1x\" media=\"(min-width: 769px)\" \/><img decoding=\"async\" src=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/my-image_2_59334c8b3a37d7308a7caf81d077a87f_800.png\" alt=\"Schema of custom module loading\" \/><\/picture>\n<figcaption>Mod <span id=\"urn:enhancement-af36609e\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/game_engine\">Engine<\/span> \u2013 How module loaded at game bootstrap<\/figcaption>\n<\/figure>\n<figure class=\"image regular \"><picture><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/my-image_3_f2ce26e9e956b8cad706811639967808_800.png 1x\" media=\"(max-width: 768px)\" \/><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/my-image_3_f2ce26e9e956b8cad706811639967808_800.png 1x\" media=\"(min-width: 769px)\" \/><img decoding=\"async\" src=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/my-image_3_f2ce26e9e956b8cad706811639967808_800.png\" alt=\"Schema of Additive Module\" \/><\/picture>\n<figcaption>Mod <span id=\"urn:enhancement-fe708da1\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/game_engine\">Engine<\/span> \u2013 Additive module loading phase<\/figcaption>\n<\/figure>\n<p>For game dynamics in which <strong>control must be predictable<\/strong> and not lead to anomalies, such as the control of weather, Ivan instead opted for the <strong>substitute<\/strong> approach. In this case, we would not have an additive behaviour, but a complete replacement of the properties.\u00a0<\/p>\n<figure class=\"image regular \"><picture><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/my-image_4_b0473351e5fb84d4df9c51403f9d319a_800.png 1x\" media=\"(max-width: 768px)\" \/><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/my-image_4_b0473351e5fb84d4df9c51403f9d319a_800.png 1x\" media=\"(min-width: 769px)\" \/><img decoding=\"async\" src=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/my-image_4_b0473351e5fb84d4df9c51403f9d319a_800.png\" alt=\"Schema Of Substitute Module\" \/><\/picture>\n<figcaption>Mod <span id=\"urn:enhancement-8c4f3214\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/game_engine\">Engine<\/span> \u2013 Substitute module loading phase<\/figcaption>\n<\/figure>\n<h2 id=\"5h42r\">The Steps to Publishing<\/h2>\n<p>Mods publishing and distribution, between creators and users, need an appropriate platform. There are various free solutions for the distribution of your code, each with their own characteristics and potential pitfalls (such as the security of the uploaded material).\u00a0<\/p>\n<p>While more tailored adhoc solutions are possible, they require time, money and extensive experience to manage problems related to:\u00a0<\/p>\n<ul>\n<li>Security;\u00a0<\/li>\n<li>API additions;\u00a0<\/li>\n<li>Data processing.\u00a0<\/li>\n<\/ul>\n<p>With limited resources and time, you should rely on a mod repository service such as:\u00a0<\/p>\n<ul>\n<li>Steam;\u00a0<\/li>\n<li>Mod.io;\u00a0<\/li>\n<li>ModDB.\u00a0<\/li>\n<\/ul>\n<p>In conclusion, with thoughtful design and software choices, it is possible to create easily moddable video games using Unity3D, which enjoy an extended lifespan, a more active and committed <span id=\"urn:enhancement-d932c930\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/community\">community<\/span> and the possibility to benefit from final users\u2019 creativity and talent, providing a creative and rewarding experience which goes far from the simple work initially developed by the game creator.<\/p>\n<p><em> Hard Times was selected as an Indie Prize Finalist at Codemotion Rome 2019 and earned a dev scholarship to fly to the GameDaily Connect 2019 in Los Angeles to showcase among other finalists from all over the world.<\/em><\/p>\n<p><!-- strchf script --><script>        if(window.strchfSettings === undefined) window.strchfSettings = {};    window.strchfSettings.stats = {url: \"https:\/\/codemotion.storychief.io\/game-unity3d-data-driven-modding?id=500486400&type=2\",title: \"How Unity3D and Data Driven Modding Created an Award Winning Urban Survival Game\",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","protected":false},"excerpt":{"rendered":"<p>Hard Times is a survival game created by Ivan Preziosi. He presented a talk this year at Codemotion Rome, about the Data Driven Modding paradigm and how he created his game with Unity3D.<\/p>\n","protected":false},"author":79,"featured_media":2015,"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":[4],"collections":[],"class_list":{"0":"post-2014","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-gamedev","8":"tag-codemotion-rome","9":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Unity3D and Modding Created an Award Wining Video Game<\/title>\n<meta name=\"description\" content=\"The Hard Times survival video game was presented at Codemotion Rome 2019. It was created by Ivan Preziosi with Unity3D and data driven modding.\" \/>\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\/game-unity3d-data-driven-modding\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Unity3D and Data Driven Modding Created an Award Winning Urban Survival Game\" \/>\n<meta property=\"og:description\" content=\"The Hard Times survival video game was presented at Codemotion Rome 2019. It was created by Ivan Preziosi with Unity3D and data driven modding.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/game-unity3d-data-driven-modding\/\" \/>\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-12-10T16:05:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-01-21T22:49:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png\" \/>\n\t<meta property=\"og:image:width\" content=\"975\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lorenzo Franceschini\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lorenzo Franceschini\" \/>\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\\\/game-unity3d-data-driven-modding\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/gamedev\\\/game-unity3d-data-driven-modding\\\/\"},\"author\":{\"name\":\"Lorenzo Franceschini\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/c48e30a376daa81f0b5099d3e0c16b04\"},\"headline\":\"How Unity3D and Data Driven Modding Created an Award Winning Urban Survival Game\",\"datePublished\":\"2019-12-10T16:05:12+00:00\",\"dateModified\":\"2020-01-21T22:49:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/gamedev\\\/game-unity3d-data-driven-modding\\\/\"},\"wordCount\":1106,\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-hub\\\/gamedev\\\/game-unity3d-data-driven-modding\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png\",\"keywords\":[\"Codemotion Rome\"],\"articleSection\":[\"Game Development\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/gamedev\\\/game-unity3d-data-driven-modding\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-hub\\\/gamedev\\\/game-unity3d-data-driven-modding\\\/\",\"name\":\"Unity3D and Modding Created an Award Wining Video Game\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-hub\\\/gamedev\\\/game-unity3d-data-driven-modding\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-hub\\\/gamedev\\\/game-unity3d-data-driven-modding\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png\",\"datePublished\":\"2019-12-10T16:05:12+00:00\",\"dateModified\":\"2020-01-21T22:49:54+00:00\",\"description\":\"The Hard Times survival video game was presented at Codemotion Rome 2019. It was created by Ivan Preziosi with Unity3D and data driven modding.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-hub\\\/gamedev\\\/game-unity3d-data-driven-modding\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-hub\\\/gamedev\\\/game-unity3d-data-driven-modding\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-hub\\\/gamedev\\\/game-unity3d-data-driven-modding\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png\",\"width\":975,\"height\":675,\"caption\":\"How Unity3D and Data Driven Modding Created an Award Winning Urban Survival Game\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-hub\\\/gamedev\\\/game-unity3d-data-driven-modding\\\/#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\":\"How Unity3D and Data Driven Modding Created an Award Winning Urban Survival Game\"}]},{\"@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\\\/c48e30a376daa81f0b5099d3e0c16b04\",\"name\":\"Lorenzo Franceschini\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/adfbaabe86bc433a00657b5827f9f5d47c1d66c20519afedcf67805ef30c9fb2?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/adfbaabe86bc433a00657b5827f9f5d47c1d66c20519afedcf67805ef30c9fb2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/adfbaabe86bc433a00657b5827f9f5d47c1d66c20519afedcf67805ef30c9fb2?s=96&d=mm&r=g\",\"caption\":\"Lorenzo Franceschini\"},\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/author\\\/lorenzo-franceschini\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Unity3D and Modding Created an Award Wining Video Game","description":"The Hard Times survival video game was presented at Codemotion Rome 2019. It was created by Ivan Preziosi with Unity3D and data driven modding.","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\/game-unity3d-data-driven-modding\/","og_locale":"en_US","og_type":"article","og_title":"How Unity3D and Data Driven Modding Created an Award Winning Urban Survival Game","og_description":"The Hard Times survival video game was presented at Codemotion Rome 2019. It was created by Ivan Preziosi with Unity3D and data driven modding.","og_url":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/game-unity3d-data-driven-modding\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2019-12-10T16:05:12+00:00","article_modified_time":"2020-01-21T22:49:54+00:00","og_image":[{"width":975,"height":675,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png","type":"image\/png"}],"author":"Lorenzo Franceschini","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Lorenzo Franceschini","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/game-unity3d-data-driven-modding\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/game-unity3d-data-driven-modding\/"},"author":{"name":"Lorenzo Franceschini","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/c48e30a376daa81f0b5099d3e0c16b04"},"headline":"How Unity3D and Data Driven Modding Created an Award Winning Urban Survival Game","datePublished":"2019-12-10T16:05:12+00:00","dateModified":"2020-01-21T22:49:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/game-unity3d-data-driven-modding\/"},"wordCount":1106,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/game-unity3d-data-driven-modding\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png","keywords":["Codemotion Rome"],"articleSection":["Game Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/gamedev\/game-unity3d-data-driven-modding\/","url":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/game-unity3d-data-driven-modding\/","name":"Unity3D and Modding Created an Award Wining Video Game","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/game-unity3d-data-driven-modding\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/game-unity3d-data-driven-modding\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png","datePublished":"2019-12-10T16:05:12+00:00","dateModified":"2020-01-21T22:49:54+00:00","description":"The Hard Times survival video game was presented at Codemotion Rome 2019. It was created by Ivan Preziosi with Unity3D and data driven modding.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/game-unity3d-data-driven-modding\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/game-unity3d-data-driven-modding\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/game-unity3d-data-driven-modding\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png","width":975,"height":675,"caption":"How Unity3D and Data Driven Modding Created an Award Winning Urban Survival Game"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/dev-hub\/gamedev\/game-unity3d-data-driven-modding\/#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":"How Unity3D and Data Driven Modding Created an Award Winning Urban Survival Game"}]},{"@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\/c48e30a376daa81f0b5099d3e0c16b04","name":"Lorenzo Franceschini","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/adfbaabe86bc433a00657b5827f9f5d47c1d66c20519afedcf67805ef30c9fb2?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/adfbaabe86bc433a00657b5827f9f5d47c1d66c20519afedcf67805ef30c9fb2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/adfbaabe86bc433a00657b5827f9f5d47c1d66c20519afedcf67805ef30c9fb2?s=96&d=mm&r=g","caption":"Lorenzo Franceschini"},"url":"https:\/\/www.codemotion.com\/magazine\/author\/lorenzo-franceschini\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000-600x400.png","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000-600x600.png","author_info":{"display_name":"Lorenzo Franceschini","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/lorenzo-franceschini\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png",975,675,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000-150x150.png",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000-300x208.png",300,208,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000-768x532.png",768,532,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png",975,675,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png",975,675,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png",975,675,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000.png",100,69,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000-180x128.png",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000-896x504.png",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000-400x225.png",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000-600x400.png",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/12\/cover_6f49ed22ca418e5bd826aeaf7a443412_2000-600x600.png",600,600,true]},"uagb_author_info":{"display_name":"Lorenzo Franceschini","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/lorenzo-franceschini\/"},"uagb_comment_info":0,"uagb_excerpt":"Hard Times is a survival game created by Ivan Preziosi. He presented a talk this year at Codemotion Rome, about the Data Driven Modding paradigm and how he created his game with Unity3D.","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/2014","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\/79"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=2014"}],"version-history":[{"count":3,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/2014\/revisions"}],"predecessor-version":[{"id":2882,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/2014\/revisions\/2882"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/2015"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=2014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=2014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=2014"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=2014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}