{"id":272,"date":"2020-11-09T16:51:12","date_gmt":"2020-11-09T16:51:12","guid":{"rendered":"http:\/\/mycours.es\/gamedesign2020\/?page_id=272"},"modified":"2020-12-11T14:00:21","modified_gmt":"2020-12-11T14:00:21","slug":"teamwork-with-unity","status":"publish","type":"page","link":"http:\/\/mycours.es\/gamedesign2020\/teamwork-with-unity\/","title":{"rendered":"Teamwork with Unity"},"content":{"rendered":"<h2>Unity Collaborate &amp; Teams<\/h2>\n<p><a href=\"http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/unity-teams-resources-collaborate.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-273\" src=\"http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/unity-teams-resources-collaborate.png\" alt=\"\" width=\"740\" height=\"389\" srcset=\"http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/unity-teams-resources-collaborate.png 740w, http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/unity-teams-resources-collaborate-300x158.png 300w\" sizes=\"auto, (max-width: 740px) 85vw, 740px\" \/><\/a><\/p>\n<p>Unity projects usually include relatively large assets that make version control difficult with github.<br \/>\nMy recommendation is to use the collaborate feature, which allows team members to synchronize projects remotely and monitor changes in a small team.<\/p>\n<p>The free version of Unity Teams is limited to 3 members.<br \/>\nWe are all going to use my account so you don&#8217;t have to subscribe to anything.<\/p>\n<p>You can follow the team <a href=\"https:\/\/unity3d.com\/how-to\/happier-faster-teamwork?_ga=2.235877634.241023637.1604935466-926088520.1594863387\">setup tutorial here<\/a><\/p>\n<p>&#8230;and the intro to Collaborate <a href=\"https:\/\/unity.com\/unity\/features\/collaborate\">here<\/a><\/p>\n<p>Make sure that each team works: create a couple of cubes in the scene and see if the projects synchronize.<\/p>\n<p><strong>If you ever need to share or backup Unity content outside of Collaborate use the import and export function. Unitypackages are much smaller and transferable than project folders.<\/strong><\/p>\n<h2>Visual studio live<\/h2>\n<p><a href=\"http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/v3-Debug-Comp-FINAL-optimized.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-304\" src=\"http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/v3-Debug-Comp-FINAL-optimized.gif\" alt=\"\" width=\"850\" height=\"516\" \/><\/a><a href=\"https:\/\/visualstudio.microsoft.com\/services\/live-share\/\">You can Visual Studio Live Share<\/a> and\/or Github for Unity if collab doesn&#8217;t work for you<\/p>\n<p><a href=\"https:\/\/blogs.unity3d.com\/2020\/07\/14\/10-ways-to-speed-up-your-programming-workflows-in-unity-with-visual-studio-2019\/\">Check this article<\/a>, especially the parts about Live Share, Github and the <strong>debugger<\/strong><\/p>\n<p>&nbsp;<\/p>\n<h2>Project management and Codecks.io<\/h2>\n<p>Elect a <em>project manager<\/em> in your team.<br \/>\nThe project manager is not going to be the &#8220;boss&#8221;, or somebody who is more responsible that others, but rather a person who:<\/p>\n<ul>\n<li>schedules meetings<\/li>\n<li>writes down notes, tasks and meeting decisions<\/li>\n<li>structures and maintains the project management system codecks.io<\/li>\n<li>oversees and identifies issues in the\u00a0workflow<\/li>\n<li>acts as a liaison with the professor outside of class if needed<\/li>\n<\/ul>\n<p>Nobody here has real experience with project management, so volunteer yourself if you think this could be a possible direction of your life after graduation.<\/p>\n<p>The project manager is still expected to do creative work in the team, but if you already have the impression you are going to contribute less than others for any reason, this could be a job for you!<\/p>\n<p><a href=\"http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/decks-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-274\" src=\"http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/decks-1.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/decks-1.png 960w, http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/decks-1-300x169.png 300w, http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/decks-1-768x432.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/p>\n<p>We are going to try <a href=\"https:\/\/www.codecks.io\/\">codecks.io<\/a> for project management.<br \/>\nIt&#8217;s a tool for tracking tasks similar to <a href=\"https:\/\/trello.com\/en-US\">Trello<\/a>, but oriented to game development.<\/p>\n<h2>Exercise project<\/h2>\n<p><a href=\"http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/Image-098.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-275\" src=\"http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/Image-098.png\" alt=\"\" width=\"977\" height=\"549\" srcset=\"http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/Image-098.png 977w, http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/Image-098-300x169.png 300w, http:\/\/mycours.es\/gamedesign2020\/files\/2020\/11\/Image-098-768x432.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/p>\n<p><strong>Make a simple Unity scene together starting from a randomly assigned theme.<br \/>\nThe goal is to make something thematically and visually consistent in ONE HOUR.<br \/>\n<\/strong><\/p>\n<p>Create a codecks.io account.<br \/>\nI&#8217;ll create team projects and add the team members.<\/p>\n<p>Have a short meeting on Discord in which you discuss and assign the following tasks on codecks.io:<\/p>\n<ul>\n<li>Code: you can start with a single player <a href=\"https:\/\/drive.google.com\/file\/d\/1i8qAzdls8aS-izPbeCtxjKPPdbnc4CPq\/view?usp=sharing\">template package here<\/a> (double click with the project open or import). You can use either the gallery or the outdoor scene as a starting point.<br \/>\nAlternatively you can start with the <a href=\"http:\/\/mycours.es\/gamedesign2020\/unity-socket-io\/\">Distributed Authority<\/a> template.<\/li>\n<li>Game Design: design 3 or more simple interactions with the environment, or with networked objects if using the multiplayer template. Interactions as in: things that require some programming<\/li>\n<li>Code: implement the interactions<\/li>\n<li>Art: find at least 4 assets on the internet (see resources below)<\/li>\n<li>Art: create one simple 3D asset from scratch with your program of choice<\/li>\n<li>Art: import the assets in the scene, make sure the materials are ok or create new ones<\/li>\n<li>Art: create one simple 2D asset from scratch with your program of choice<\/li>\n<li>Art: import the asset in the scene<\/li>\n<li>Art\/Code: set up the lighting: lights, shadows, skybox, baking&#8230; (see below)<\/li>\n<li>Sound: find a soundtrack and\/or sounds<\/li>\n<li>Sound: import and play the sounds in engine<\/li>\n<li>Game Design: arrange the object in the scene<\/li>\n<li>Art\/Code: enhance the look and feel with post-processing effects<\/li>\n<\/ul>\n<h2>Finding assets online<\/h2>\n<p>For the first exercise you\u2019ll need to find some\u00a0<strong>free<\/strong>\u00a03d models online. The best type of files are FBX and OBJ. You can usually import .blend. There are plenty of website with free assets online but some of them are a bit sketchy.<br \/>\nThese ones are legit and have a lot of free stuff, they generally require a free account:<\/p>\n<p><a href=\"https:\/\/assetstore.unity.com\/?category=3d&amp;free=true&amp;orderBy=1\">Unity Asset Store<\/a>\u00a0filter by free.\u00a0<em>Show import process<\/em>.<br \/>\n<a href=\"https:\/\/davidoreilly.itch.io\/\">Everything library<\/a>\u00a0free generic low poly assets from the game Everything<br \/>\n(expand the fbx in assets &gt; drag the mesh in the scene &gt; create new material &gt; assign &gt; change the material shader to Particles\/Standard Surface to show the vertex colors)<br \/>\n<a href=\"https:\/\/sketchfab.com\/3d-models\/popular\">https:\/\/sketchfab.com\/3d-models\/popular<\/a>\u00a0artsy\/stylish stuff not always great for games.\u00a0<em>Show download and import<\/em><br \/>\n<a href=\"https:\/\/www.cgtrader.com\/\">https:\/\/www.cgtrader.com<\/a><br \/>\n<a href=\"http:\/\/www.blendswap.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/www.blendswap.com\/<\/a><br \/>\n<a href=\"https:\/\/free3d.com\/\">https:\/\/free3d.com\/<\/a><br \/>\n<a href=\"http:\/\/opengameart.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/opengameart.org\/<\/a><br \/>\n<a href=\"http:\/\/www.models-resource.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/www.models-resource.com\/<\/a><br \/>\n<a href=\"http:\/\/archive3d.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/archive3d.net\/<\/a>\u00a0(mostly hi-res architectural 3ds)<\/p>\n<p>Note: Some models will not import properly.<br \/>\nIf they have a messy geometry, dark faces or holes, it\u2019s probably easier to find an alternative model<br \/>\nSome textures and materials may not work, it\u2019s kind of normal. I recommend to change all the materials within Unity for this assignment.<\/p>\n<p>Remember we are working in\u00a0<strong>real time<\/strong>\u00a0so we need low poly count models.<br \/>\nWhat does low poly mean? It\u2019s relative. For a character or prop, in anno domini 2020, the model on the right is preferable.<br \/>\nIf, when visualizing the wireframe, the edges are too dense to blend together, the model is definitely too detailed for this purpose:<\/p>\n<h2><a href=\"http:\/\/mycours.es\/ems2\/files\/2020\/10\/white-tiger-high-poly-and-low-poly-3d-model-low-poly-max-obj-3ds-fbx-mtl-768x432-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2506\" src=\"http:\/\/mycours.es\/ems2\/files\/2020\/10\/white-tiger-high-poly-and-low-poly-3d-model-low-poly-max-obj-3ds-fbx-mtl-768x432-1.jpg\" sizes=\"auto, (max-width: 768px) 85vw, 768px\" srcset=\"http:\/\/mycours.es\/ems2\/files\/2020\/10\/white-tiger-high-poly-and-low-poly-3d-model-low-poly-max-obj-3ds-fbx-mtl-768x432-1.jpg 768w, http:\/\/mycours.es\/ems2\/files\/2020\/10\/white-tiger-high-poly-and-low-poly-3d-model-low-poly-max-obj-3ds-fbx-mtl-768x432-1-300x169.jpg 300w\" alt=\"\" width=\"768\" height=\"432\" \/><\/a>Lighting<\/h2>\n<p>The light game objects are quite straighforward components to use.<br \/>\nHowever in a 3D engine the lighting depends on a variety of other factors such as:<\/p>\n<ul>\n<li><strong>Materials<\/strong>: they contain information like color, texture, and how they reflect light (or better, simulate light reflection). The logic that govern light reflection (and more) in a material is defined by scripts called\u00a0<strong>shaders<\/strong>. Shader programming is hard but you can use and tweak existing shaders.<\/li>\n<li><strong>Textures<\/strong>: texture images are properties of the materials but their\u00a0<em>mapping,<\/em>\u00a0or how they wrap around meshes, depends on the model. Texture mapping is a complex process that can\u2019t be done in Unity so we won\u2019t talk about it. If a model comes with a texture properly mapped, you can try to modify the image in photoshop, but creating your own textures is beyond the scope of this class.<\/li>\n<li><strong>Ambient light and other global settings:<\/strong>\u00a0they are a lot, and they are in the \u201clighting\u201d panel. You should always keep it open next to the inspector (menu window &gt; rendering &gt; lighting settings). We\u2019ll just look at the\u00a0<strong>skybox<\/strong>\u00a0and the\u00a0<strong>fog.<\/strong>\u00a0We will\u00a0<strong>not<\/strong>\u00a0get into baking lights and other rendering pipelines.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/mycours.es\/ems2\/files\/2020\/10\/Screen-Shot-2018-10-29-at-4.32.46-PM-499x480-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2521\" src=\"http:\/\/mycours.es\/ems2\/files\/2020\/10\/Screen-Shot-2018-10-29-at-4.32.46-PM-499x480-1.png\" sizes=\"auto, (max-width: 208px) 85vw, 208px\" srcset=\"http:\/\/mycours.es\/ems2\/files\/2020\/10\/Screen-Shot-2018-10-29-at-4.32.46-PM-499x480-1.png 499w, http:\/\/mycours.es\/ems2\/files\/2020\/10\/Screen-Shot-2018-10-29-at-4.32.46-PM-499x480-1-300x289.png 300w\" alt=\"\" width=\"208\" height=\"200\" \/><\/a><\/p>\n<ul>\n<li><strong>Post-processing effects<\/strong>\u00a0\u2013 they are a bit like instagram filters applied to the image after it\u2019s being rendered. Activating post-<a href=\"https:\/\/www.youtube.com\/watch?v=gaY0AC6AX5o&amp;ab_channel=JimmyVegas\">processing effects is a bit tricky<\/a>\u00a0but the template I\u2019m giving you should have them already set up. Just add the effects on the \u201cPost Processing effects\u201d object, activate each singleOne of the many tutorials covering lights<\/li>\n<\/ul>\n<p><iframe loading=\"lazy\" title=\"How to get rid of Unity default skybox look ! Unity Lighting fundamentals\" src=\"https:\/\/www.youtube.com\/embed\/f6zUot73-gg?feature=oembed\" width=\"840\" height=\"473\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"><\/iframe><\/p>\n<h2><\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Unity Collaborate &amp; Teams Unity projects usually include relatively large assets that make version control difficult with github. My recommendation is to use the collaborate feature, which allows team members to synchronize projects remotely and monitor changes in a small team. The free version of Unity Teams is limited to 3 members. We are all &hellip; <a href=\"http:\/\/mycours.es\/gamedesign2020\/teamwork-with-unity\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Teamwork with Unity&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":8,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-272","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/mycours.es\/gamedesign2020\/wp-json\/wp\/v2\/pages\/272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/mycours.es\/gamedesign2020\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/mycours.es\/gamedesign2020\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/mycours.es\/gamedesign2020\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mycours.es\/gamedesign2020\/wp-json\/wp\/v2\/comments?post=272"}],"version-history":[{"count":8,"href":"http:\/\/mycours.es\/gamedesign2020\/wp-json\/wp\/v2\/pages\/272\/revisions"}],"predecessor-version":[{"id":306,"href":"http:\/\/mycours.es\/gamedesign2020\/wp-json\/wp\/v2\/pages\/272\/revisions\/306"}],"wp:attachment":[{"href":"http:\/\/mycours.es\/gamedesign2020\/wp-json\/wp\/v2\/media?parent=272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}