CINXE.COM
Game Development Courses and Tutorials | Envato Tuts+
<!DOCTYPE html><html data-app-version="-production" lang="en"><head><link rel="next" href="https://gamedevelopment.tutsplus.com?page=2"></link><link rel="preload" href="https://static.tutsplus.com/packs/static/fonts/fa-solid-900-130191cbdfe1d7a5dde9.woff2" as="font" type="font/woff2" crossorigin="anonymous"><link rel="preload" href="https://static.tutsplus.com/packs/static/fonts/fa-regular-400-7b8124cb811f19c72e48.woff2" as="font" type="font/woff2" crossorigin="anonymous"><link rel="preload" href="https://static.tutsplus.com/packs/static/fonts/fa-brands-400-78547c4b11a377e195ff.woff2" as="font" type="font/woff2" crossorigin="anonymous"><script>window.Tutsplus = {}; window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; Tutsplus.environment = 'production'; Tutsplus.apexDomain = 'tutsplus.com'; Tutsplus.recaptchaSiteKey = '6Ldpx74UAAAAACuA5loIvNFtSYkAxOiK89Otp9dp'; Tutsplus.rollbarToken = '15981c89d2cb4b20994adb78613f9f59'; Tutsplus.rollbarEnabled = false; Tutsplus.ssoEnabled = true; Tutsplus.ssoServer = 'https://account.envato.com'; Tutsplus.ssoSignInPath = '/sso/sign_in.json'; Tutsplus.resetPasswordPath = 'https://account.envato.com/reset_password?to=tutsplus?to=tutsplus'; Tutsplus.forcedResetPasswordPath = 'https://account.envato.com/password_reset_required?to=tutsplus?to=tutsplus'; Tutsplus.adsEnabled = true; Tutsplus.is_posts_page = false; Tutsplus.is_post_page = false; Tutsplus.ext_social = false; Tutsplus.load_mathjax_library = false; Tutsplus.load_twitter_widget = false;</script><script type="text/javascript" data-turbo-eval="false"> window.addEventListener("CookiebotOnDialogDisplay", (event) => { const cookieDialog = event.srcElement.CookieConsentDialog.DOM cookieDialog.dataset.turbo = false }) </script> <script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="d10f7659-aa82-4007-9cf1-54a9496002bf" data-framework="TCFv2.2" type="text/javascript" data-georegions="{'region':'US','cbid':'d9683f70-895f-4427-97dc-f1087cddf9d8'}" async> </script> <script type="text/plain" data-cookieconsent="statistics" data-test-id="gtm-loader"> window['gtag_enable_tcf_support'] = true; if (!window.gtmLoaded) { (function(w,d,s,l,i) { w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'}); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l!='dataLayer'?'&l='+l:''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id='+i+dl; f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MXT8M8X'); window.gtmLoaded = true; } </script> <script src="https://static.tutsplus.com/packs/js/runtime-76a1416ff3535925e8ac.js" data-turbo-suppress-warning="" async="async"></script> <script src="https://static.tutsplus.com/packs/js/556-0e43d15004b7bcb6044a.js" data-turbo-suppress-warning="" async="async"></script> <script src="https://static.tutsplus.com/packs/js/697-215d08194352e868864e.js" data-turbo-suppress-warning="" async="async"></script> <script src="https://static.tutsplus.com/packs/js/topic-75f5849b2de08d735459.js" data-turbo-suppress-warning="" async="async"></script><link rel="stylesheet" media="all" href="https://static.tutsplus.com/packs/css/697-de6b682b.css" /> <link rel="stylesheet" media="all" href="https://static.tutsplus.com/packs/css/topic-635f2018.css" /><link href="/tailwind.css" rel="stylesheet" type="text/css" /><meta content="no-referrer-when-downgrade" name="referrer" /><meta charset="utf-8" /><meta content="no-cache" name="turbo-cache-control" /><meta content="reload" name="turbo-visit-control" /><meta content="" name="geo-regions" /><meta content="nocache" name="bingbot" /><link href="https://static.tutsplus.com" rel="preconnect" /><title>Game Development Courses and Tutorials | Envato Tuts+</title><link rel="canonical" href="https://gamedevelopment.tutsplus.com/" /><link rel="icon" type="image/x-icon" href="https://static.tutsplus.com/packs/static/images/favicon-f8d459d2fa865233f59c.ico" /><link rel="apple-touch-icon" type="image/png" href="https://static.tutsplus.com/packs/static/images/apple-touch-icon-46747f8b314a25bfa124.png" /><link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="https://tutsplus.com/posts.atom" /><meta content="width=device-width, initial-scale=1" name="viewport" /><meta content="index, follow" name="robots" /><meta content="Game Development Courses and Tutorials | Envato Tuts+" property="og:title" /><meta content="Game Development Envato Tuts+" property="og:site_name" /><meta content="1494084460809023" property="fb:app_id" /> <meta property="og:description" name="description" content="Free tutorials and online courses to help you learn game development from experienced industry instructors, for building and designing your own games. Join our community to learn new skills, theory, game dev software, and more. What would you like to learn?"> <meta property="og:type" content="website"> <meta property="og:url" content="https://gamedevelopment.tutsplus.com/"> <meta content="https://static.tutsplus.com/packs/static/images/favicon-831ac44a947d39de4326.png" property="og:image" /><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Organization", "name": "Envato", "alternateName": "Envato Tuts+", "url": "https://tutsplus.com/", "logo": "https://static.tutsplus.com/packs/static/images/envato-tutsplus-dark-da1bf6c5a7fd83433e94.png", "contactPoint": {"@type": "ContactPoint", "telephone": "+61 3 8376 6284", "contactType": "corporate contact"}, "parentOrganization": {"@type": "Organization", "name": "Envato Pty Ltd", "url": "https://www.envato.com/about"}, "sameAs": [ "https://tutsplus.com/", "https://business.tutsplus.com/", "https://code.tutsplus.com/", "https://design.tutsplus.com/", "https://webdesign.tutsplus.com/", "https://photography.tutsplus.com/", "https://music.tutsplus.com/", "https://cgi.tutsplus.com/", "https://gamedevelopment.tutsplus.com/", "https://computers.tutsplus.com/", "https://elements.envato.com/", "https://themeforest.net/", "https://codecanyon.net/", "https://audiojungle.net/", "https://videohive.net/", "https://graphicriver.net/", "https://photodune.net/", "https://3docean.net/", "https://placeit.net/", "https://mixkit.co/", "https://www.reshot.com/", "https://twitter.com/envato", "https://www.facebook.com/envato", "https://www.youtube.com/user/Envato", "https://www.instagram.com/envato/", "https://www.pinterest.com/envato/", "https://market.envato.com/" ] }</script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "name": "Envato Tuts+", "url": "https://tutsplus.com" } </script> <meta content="t60fIs6JfmiK5FpPBlh_bKr5lJSX6abJYYIFjqiFG3M" name="google-site-verification" /><meta content="D3E35339A8EC086B14C62277CBEC8234" name="msvalidate.01" /><meta content="zvqxFgQqdy" name="baidu-site-verification" /></head><body class="page-body body--announcement-bar topic-gamedevelopment post__fullwidth-inarticle-ad-footer" data-analytics-context="body" data-controller="ga-analytics content-filters utm" data-ga-autolink-domains="activeden.net,audiojungle.net,themeforest.net,videohive.net,graphicriver.net,3docean.net,codecanyon.net,photodune.net,market.envato.com,elements.envato.com,build.envatohostedservices.com,author.envato.com,envato.com" data-ga-domain="tutsplus.com" data-wt-dcsid="dcs222cpd4g6lg7wb3cum8l5g_6w6m" name="page-body"><!-- Google Tag Manager Body --> <script data-test-id="gtm-page-attributes"> window.dataLayer = window.dataLayer || []; function normalizeAttributeValue(value) { if (value === undefined) return undefined if (value === null) return undefined var normalizedValue = value .toString() .toLowerCase() .trim() .replace(/&/g, '&') .replace(/'/g, "'") .replace(/\s+/g, ' ') if (normalizedValue === '') return undefined return normalizedValue } (function () { if (document.documentElement.hasAttribute('data-turbo-preview')) return var pageAttributes = { app_name: 'tutsplus', app_version: '1124', app_env: 'production', topic: 'game development', page_type: 'topic', category: '', sub_category: '', software_tag: '', tag: '', ga_param: '' } var normalizedPageAttributes = { event_attributes: null } Object.keys(pageAttributes).forEach(function(key) { normalizedPageAttributes[key] = normalizeAttributeValue(pageAttributes[key]) }) dataLayer.push(normalizedPageAttributes) dataLayer.push({ event: 'analytics_ready', event_attributes: { custom_timestamp: Date.now() } }) })() </script> <noscript data-test-id="gtm-noscript"> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MXT8M8X" height="0" width="0" style="display:none;visibility:hidden" > </iframe> </noscript> <!-- End Google Tag Manager --> <!--[if lt IE 10]><div class="legacy-ie-banner"><h2 class="legacy-ie-banner__title">Unsupported browser</h2><p class="legacy-ie-banner__text">This site was designed for modern browsers and tested with Internet Explorer version 10 and later. </p><p class="legacy-ie-banner__text">It may not look or work correctly on your browser. </p></div><![endif]--><script src="https://static.tutsplus.com/packs/js/global_nav_scroll-e15d1af062eca0d35d71.js" defer="defer"></script><nav class="global-nav view new-nav" data-analytics-context="navigation" data-controller="global-nav"><a class="global-new-nav__skip-to-content-link" data-action="click->global-nav#sendNewNavDataLayerEvent" href="#page-content">Skip to content</a><div class="announcement-bar view announcement-bar--open" data-controller="announcement-bar" data-announcement-id="newbrand_dec24" data-background-image="" data-fallback-background-color="#9CEE69" data-text-color="#000000" data-link-color="#FFFFFF" data-analytics-context="announcement bar" > <div class="announcement-bar__content"> <div class="announcement-bar__primary"> <div class="announcement-bar__title"> <div align="center" class="font-family-polysan-regular"> <span class="announcement-bar__title-desktop"> <strong>Unlimited fonts, graphic templates, mockups, add-ons & more </strong> </span> <span class="announcement-bar__title-mobile"> <strong>Unlimited creative assets </strong> </span> <a rel="noskim" href="https://elements.envato.com/?utm_source=tutsplus.com&utm_medium=promos&utm_campaign=elements_tuts-header_promo" data-action="click->ga-analytics#sendElementsClickEvent">From $16.50/m</a> </div> <style> .announcement-bar__title a { border-radius:4px; background-color:#191919; padding:0px 20px; box-shadow:0px 0px 0px #aeec7b; margin:10px 10px 10px 10px; font-size:12px; height:30px; line-height:30px; text-decoration:none; color:#ffffff; } .announcement-bar__title a:hover { background-color: #383838; text-decoration:none; color:#25410d; } </style> </div> </div> <div class="announcement-bar__secondary"> <a title="Close this announcement bar" class="announcement-bar__close-link" data-action="click->announcement-bar#close click->global-nav#onAnnouncementBarClose" href="#"> <span class="announcement-bar__close-label">Dismiss</span> <i class="fa fa-times announcement-bar__close-icon"></i> </a> </div> </div> </div> <div class="global-nav__mobile-closed"><div class="nav-actions"><a class="mobile-menu-icon mobile-header-action" data-action="click->global-nav#toggle" href="javascript:"><i class="fa fa-reorder"></i></a><a class="global-nav__header-tuts-logo-link mobile-header-action mobile-home-logo" data-action="click->global-nav#sendNewNavDataLayerEvent" href="https://tutsplus.com/"><img alt="envato-tuts+" class="global-nav__header-tuts-logo-image new-nav-mobile" src="https://static.tutsplus.com/packs/static/images/envato-tutsplus-dark-da1bf6c5a7fd83433e94.png" /></a><a class="mobile-search-icon mobile-header-action" data-action="click->global-nav#toggle" href="javascript:"><i class="fa fa-magnifying-glass"></i></a></div></div><div class="global-nav__mobile-overlay"></div><div class="global-nav__mobile-new"><section class="view global-nav__mobile-open-header"><a class="global-nav__header-tuts-logo-link mobile-header-action mobile-home-logo" data-action="click->global-nav#sendNewNavDataLayerEvent" href="https://tutsplus.com/"><img alt="envato-tuts+" class="global-nav__header-tuts-logo-image new-nav-mobile" src="https://static.tutsplus.com/packs/static/images/envato-tutsplus-dark-da1bf6c5a7fd83433e94.png" /></a><a class="mobile-close-icon mobile-header-action" data-action="click->global-nav#toggle" href="javascript:"><i class="fa fa-times"></i></a></section><section class="global-nav__mobile-search view new-nav-mobile" data-controller="global-search"><form class="global-nav__search-form mobile" data-turbo="false" data-action="submit->global-nav#sendSearchDataLayerEvent submit->global-search#perform_search" action="https://gamedevelopment.tutsplus.com/t/tutorials/search" accept-charset="UTF-8" method="get"><input type="text" name="search[terms]" id="search_terms" value="" placeholder="Search tutorials, courses and resources" class="font-family-polysan-regular !global-nav__search-terms" data-action="keydown->global-search#keydown input->global-search#auto_suggestions focus->global-search#focus_in" /> <div class="search__auto_suggestions_container " data-global-search-target="suggestionContainer" data-action="mousedown->global-search#onSuggestionContainerMousedown" > <div class="search__auto_suggestions_content"> <div class="search__auto_suggesstion_list_container"> <div class="search__auto_suggesstion_list_content"> <ul class="search__auto_suggesstion_list" role="listbox" data-global-search-target="suggestionList"> </ul> </div> </div> </div> </div><button name="button" type="submit" class="global-nav__search-button" aria-label="Search"><i class="fa fa-search"></i></button></form></section><ul class='global-nav__mobile-top-level new-nav-mobile'> <li class='global-nav__mobile-top-level-item' test-nav-item-name='Design'> <a href='https://design.tutsplus.com' class='global-nav__mobile-top-level-link global-nav__mobile-top-level-link-new-nav' data-action=''> <span class='global-nav__mobile-top-level-link-title'> Design </span> </a> </li> <li class='global-nav__mobile-top-level-item' test-nav-item-name='Business'> <a href='https://business.tutsplus.com' class='global-nav__mobile-top-level-link global-nav__mobile-top-level-link-new-nav' data-action=''> <span class='global-nav__mobile-top-level-link-title'> Business </span> </a> </li> <li class='global-nav__mobile-top-level-item' test-nav-item-name='Photo'> <a href='https://photography.tutsplus.com/photo' class='global-nav__mobile-top-level-link global-nav__mobile-top-level-link-new-nav' data-action=''> <span class='global-nav__mobile-top-level-link-title'> Photo </span> </a> </li> <li class='global-nav__mobile-top-level-item' test-nav-item-name='Video'> <a href='https://photography.tutsplus.com/video' class='global-nav__mobile-top-level-link global-nav__mobile-top-level-link-new-nav' data-action=''> <span class='global-nav__mobile-top-level-link-title'> Video </span> </a> </li> <li class='global-nav__mobile-top-level-item' test-nav-item-name='Web Design'> <a href='https://webdesign.tutsplus.com' class='global-nav__mobile-top-level-link global-nav__mobile-top-level-link-new-nav' data-action=''> <span class='global-nav__mobile-top-level-link-title'> Web Design </span> </a> </li> <li class='global-nav__mobile-top-level-item' test-nav-item-name='Code'> <a href='https://code.tutsplus.com' class='global-nav__mobile-top-level-link global-nav__mobile-top-level-link-new-nav' data-action=''> <span class='global-nav__mobile-top-level-link-title'> Code </span> </a> </li> <li class='global-nav__mobile-top-level-item' test-nav-item-name='Music'> <a href='https://music.tutsplus.com' class='global-nav__mobile-top-level-link global-nav__mobile-top-level-link-new-nav' data-action=''> <span class='global-nav__mobile-top-level-link-title'> Music </span> </a> </li> </ul> <hr class="global-nav__mobile-divider" /><ul class="global-nav-mobile__envato-links new-nav-mobile"><li class="global-nav__mobile-top-level-item"><turbo-frame id="user_mobile_session_info" loading="lazy" src="/user_mobile_session?show_greeting=false"><a data-turbo="false" class="global-nav__mobile-user-link" href="https://tutsplus.com/sign_in?redirect_to=https%3A%2F%2Fgamedevelopment.tutsplus.com%2F">Sign In</a></turbo-frame></li><li class="global-nav__mobile-top-level-item"><a class="global-mobile__header-item--envato-link font-family-polysan-regular" data-action="click->global-nav#sendNewNavDataLayerEvent" href="https://www.youtube.com/channel/UC8lxnUR_CzruT2KA6cb7p0Q">Tuts+ YouTube</a></li><li class="global-nav__mobile-top-level-item"><a class="global-mobile__header-item--envato-link" data-action="click->global-nav#sendNewNavDataLayerEvent" href="https://elements.envato.com">Envato</a></li></ul></div><div class="global-new-nav__header"><div class="global-new-nav__header-content"><div class="global-new-nav__header-top"><div class="global-new-nav__header-right"><ul class="global-new-nav__header-list"><li class="global-new-nav__header-item"><a class="global-nav__header-item--envato-link leading-5 font-family-polysan-regular" data-action="click->ga-analytics#sendElementsClickEvent" href="https://elements.envato.com?utm_campaign=elements_tuts-header_nav&utm_medium=promos&utm_source=tutsplus">Envato Elements</a></li><li class="global-new-nav__header-item global-new-nav__header-divider">|</li><li class="global-new-nav__header-item"><a class="global-nav__header-item--envato-link leading-5 font-family-polysan-regular" data-action="click->global-nav#sendNewNavDataLayerEvent" href="https://www.youtube.com/channel/UC8lxnUR_CzruT2KA6cb7p0Q?utm_campaign=elements_tuts-header_nav&utm_medium=promos&utm_source=tutsplus">Tuts+ YouTube</a></li><li class="global-new-nav__header-item global-new-nav__header-divider">|</li><li class="global-new-nav__header-item"><turbo-frame id="user_session_info" loading="lazy" src="/user_session"><a data-turbo="false" class="global-new-nav__user-link font-bold leading-5 font-family-polysan-regular-bulky" rel="nofollow" href="https://tutsplus.com/sign_in?redirect_to=https%3A%2F%2Fgamedevelopment.tutsplus.com%2F">Sign In</a></turbo-frame></li></ul></div></div><div class="global-new-nav__header-bottom"><ul class="global-nav__header-list" data-controller="subcategories-nav"><li class="global-nav__header-item global-nav__header-item-tuts-logo"><a class="global-nav__header-tuts-logo-link" data-action="click->global-nav#sendNewNavDataLayerEvent" href="https://tutsplus.com/"><img alt="envato-tuts+" class="global-nav__header-tuts-logo-image new-nav-mobile" src="https://static.tutsplus.com/packs/static/images/envato-tutsplus-dark-da1bf6c5a7fd83433e94.png" /></a></li> <li class='global-nav__header-item font-semibold leading-5 !px-2 !pb-[5px] font-family-polysan-regular-median '> <a href='https://design.tutsplus.com' class='global-new-nav__header-link global-nav__header-link--primary !font-semibold' data-action='click->global-nav#sendNewNavDataLayerEvent focusin->subcategories-nav#hideAllSubCategoriesMenuWrappers'> <span>Design</span> </a> </li> <li class='global-nav__header-item font-semibold leading-5 !px-2 !pb-[5px] font-family-polysan-regular-median '> <a href='https://business.tutsplus.com' class='global-new-nav__header-link global-nav__header-link--primary !font-semibold' data-action='click->global-nav#sendNewNavDataLayerEvent focusin->subcategories-nav#hideAllSubCategoriesMenuWrappers'> <span>Business</span> </a> </li> <li class='global-nav__header-item font-semibold leading-5 !px-2 !pb-[5px] font-family-polysan-regular-median '> <a href='https://photography.tutsplus.com/photo' class='global-new-nav__header-link global-nav__header-link--primary !font-semibold' data-action='click->global-nav#sendNewNavDataLayerEvent focusin->subcategories-nav#hideAllSubCategoriesMenuWrappers'> <span>Photo</span> </a> </li> <li class='global-nav__header-item font-semibold leading-5 !px-2 !pb-[5px] font-family-polysan-regular-median '> <a href='https://photography.tutsplus.com/video' class='global-new-nav__header-link global-nav__header-link--primary !font-semibold' data-action='click->global-nav#sendNewNavDataLayerEvent focusin->subcategories-nav#hideAllSubCategoriesMenuWrappers'> <span>Video</span> </a> </li> <li class='global-nav__header-item font-semibold leading-5 !px-2 !pb-[5px] font-family-polysan-regular-median '> <a href='https://webdesign.tutsplus.com' class='global-new-nav__header-link global-nav__header-link--primary !font-semibold' data-action='click->global-nav#sendNewNavDataLayerEvent focusin->subcategories-nav#hideAllSubCategoriesMenuWrappers'> <span>Web Design</span> </a> </li> <li class='global-nav__header-item font-semibold leading-5 !px-2 !pb-[5px] font-family-polysan-regular-median '> <a href='https://code.tutsplus.com' class='global-new-nav__header-link global-nav__header-link--primary !font-semibold' data-action='click->global-nav#sendNewNavDataLayerEvent focusin->subcategories-nav#hideAllSubCategoriesMenuWrappers'> <span>Code</span> </a> </li> <li class='global-nav__header-item font-semibold leading-5 !px-2 !pb-[5px] font-family-polysan-regular-median '> <a href='https://music.tutsplus.com' class='global-new-nav__header-link global-nav__header-link--primary !font-semibold' data-action='click->global-nav#sendNewNavDataLayerEvent focusin->subcategories-nav#hideAllSubCategoriesMenuWrappers'> <span>Music</span> </a> </li> </ul><div class="global-new-nav__header-right" data-controller="global-search"><form class="global-nav__search-form nonmobile" data-turbo="false" data-action="submit->global-nav#sendSearchDataLayerEvent submit->global-search#perform_search" action="https://gamedevelopment.tutsplus.com/t/tutorials/search" accept-charset="UTF-8" method="get"><input type="text" name="search[terms]" id="search_terms" value="" placeholder="Search tutorials, courses and resources" class="placeholder:leading-5 global-nav__search-terms !font-family-polysan-regular search-terms-nonmobile" data-action="keydown->global-search#keydown input->global-search#auto_suggestions focus->global-search#focus_in" /> <div class="search__auto_suggestions_container " data-global-search-target="suggestionContainer" data-action="mousedown->global-search#onSuggestionContainerMousedown" > <div class="search__auto_suggestions_content"> <div class="search__auto_suggesstion_list_container"> <div class="search__auto_suggesstion_list_content"> <ul class="search__auto_suggesstion_list" role="listbox" data-global-search-target="suggestionList"> </ul> </div> </div> </div> </div><button name="button" type="submit" class="global-nav__search-button" aria-label="Search"><i class="fa fa-search"></i></button></form></div></div></div></div></nav><div class="empty-sticky-nav-background-div" style="height: 155px"></div><div class="page-content " id="page-content"><main class="content !m-0 !max-w-none !p-0" style="background-color: transparent;"><div class="content-banner"></div><div class="content-title"></div> <div class="section-container"> <div name="" class="full-section " style=""> <div class="lg:max-w-[960px] md:max-w-screen 2xl:max-w-[1290px] pt-10 md:pt-20 pl-4 pr-4 md:pl-6 md:pr-6 lg:pl-0 lg:pr-0 mt-0 mb-0 ml-auto mr-auto"> <div> <h1 class="m-0 md:text-5xl font-family-polysan-regular-median"> Game Development </h1> <div class="category-heading-intro-wrapper"> <div class="content-banner__description introductory-text view" data-controller="introductory-text" data-max-height="42"><div class="show-less" data-introductory-text-target="content" id="introductory-text__content"><p>Explore this collection of free game development tutorials from experienced industry instructors. Join our community to learn new skills, theory, game dev software, and more.</p> <p>If you want, you can get deep into the programming of games, but you can also learn about the theory of game design and game mechanics. And you can master the business aspects of game development, like which digital game distribution platform to use.</p> <p>With hundreds of free game dev tutorials in the library, there's plenty for you to explore. What would you like to learn?</p></div><div data-introductory-text-target="divider" id="introductory-text__links-divider"></div><div class="introductory-text-links"><a aria-label="Read more" data-action="click->introductory-text#toggleReadMode" data-introductory-text-target="read_more" href="javascript:void(0);" id="introductory-text__read-more-link">Read more</a><a aria-label="Read less" data-action="click->introductory-text#toggleReadMode" data-introductory-text-target="read_less" href="javascript:void(0);" id="introductory-text__read-less-link">Read less</a></div></div> </div> </div> </div> </div> <div name="" class="full-section " style=""> <div class="lg:max-w-[960px] md:max-w-screen 2xl:max-w-[1290px] pt-10 md:pt-20 pl-4 pr-4 md:pl-6 md:pr-6 lg:pl-0 lg:pr-0 mt-0 mb-0 ml-auto mr-auto"> <div class="flex"> <div class="content-title--section-switcher-item mr-6 last:mr-0"> <a class="text-sm text-grey-500 pb-6 font-medium content-title--category-switcher-item-link__active topic-gamedevelopment" href="https://gamedevelopment.tutsplus.com">All content</a> </div> </div> </div> </div> <div name="content-filters__content-section" class="full-section odd:bg-grey-25 even:bg-none" style=""> <div class="lg:max-w-[960px] md:max-w-screen 2xl:max-w-[1290px] pt-10 pb-10 md:pt-20 md:pb-20 pl-4 pr-4 md:pl-6 md:pr-6 lg:pl-0 lg:pr-0 mt-0 mb-0 ml-auto mr-auto"> <div class="flex justify-between items-end mt-0 mb-6" data-controller="section-header" data-menu-class="language-selector-wrapper"> <h2 class="mt-0 mb-6 leading-5 font-family-polysan-regular-median !m-0"> All Game Development Content: </h2> <div> </div> </div> <div class='flex flex-row mt-8'> <div class='content-filters__large-screen hidden lg:block mr-0 w-full h-[100px] lg:h-auto lg:min-w-[304px] lg:max-w-[304px] lg:pr-6 lg:mr-6 mb-[94px] border-grey-300/20 border-solid border-0 lg:border-r'> <div class='flex flex-row mb-6 xl:mb-9 items-center'> <img alt="content filters" class="mr-4 h-6 w-6" src="https://static.tutsplus.com/packs/static/images/filters-icon-00c6395442b34ee30e92.svg" /> <span class='text-sm text-grey-700 font-bold font-family-polysan-regular-median'>Filters</span> </div> <turbo-frame id='content-filters' src='https://gamedevelopment.tutsplus.com/content_filters' /> </div> <div> <div class='content-filters__small-screen block lg:hidden mb-6' data-controller='content-filters-small-screen-component'> <button class='flex flex-row items-center justify-between cursor-pointer w-36 px-3 py-4 border border-solid border-grey-100 rounded-lg' style='background: transparent;' data-action='click->content-filters-small-screen-component#toggleContentFiltersDialog'> <span class='text-sm text-grey-700'>Filters</span> <img alt="content filters" class="h-[18px] w-[18px] ml-2" src="https://static.tutsplus.com/packs/static/images/filters-icon-00c6395442b34ee30e92.svg" /> </button> <div class="relative z-10 hide" aria-labelledby="modal-title" role="dialog" aria-modal="true"> <div class="fixed inset-0 bg-black bg-opacity-50 transition-opacity"></div> <div class="fixed inset-0 z-10 w-screen overflow-y-auto"> <div class="flex min-h-full items-center justify-center p-4"> <div class="relative transform overflow-hidden rounded-lg bg-white text-left shadow-xl transition-all w-full"> <div class="p-6 h-[calc(100vh-181px)]"> <div class='flex flex-row mb-6 xl:mb-9 items-center justify-between'> <div class='flex items-center'> <img alt="content filters" class="mr-4 h-6 w-6" src="https://static.tutsplus.com/packs/static/images/filters-icon-00c6395442b34ee30e92.svg" /> <span class='text-sm text-grey-700 font-bold font-family-polysan-regular-median'>Filters</span> </div> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none" data-action='click->content-filters-small-screen-component#toggleContentFiltersDialog'> <path d="M15.8027 13.9221C15.929 14.0473 16 14.2178 16 14.3956C16 14.5734 15.929 14.7439 15.8027 14.8691L14.8691 15.8027C14.7439 15.929 14.5734 16 14.3956 16C14.2178 16 14.0473 15.929 13.9221 15.8027L8 9.88066L2.07793 15.8027C1.9527 15.929 1.78225 16 1.60443 16C1.42661 16 1.25615 15.929 1.13093 15.8027L0.197268 14.8691C0.0710153 14.7439 0 14.5734 0 14.3956C0 14.2178 0.0710153 14.0473 0.197268 13.9221L6.11934 8L0.197268 2.07793C0.0710153 1.9527 0 1.78225 0 1.60443C0 1.42661 0.0710153 1.25615 0.197268 1.13093L1.13093 0.197268C1.25615 0.0710153 1.42661 0 1.60443 0C1.78225 0 1.9527 0.0710153 2.07793 0.197268L8 6.11934L13.9221 0.197268C14.0473 0.0710153 14.2178 0 14.3956 0C14.5734 0 14.7439 0.0710153 14.8691 0.197268L15.8027 1.13093C15.929 1.25615 16 1.42661 16 1.60443C16 1.78225 15.929 1.9527 15.8027 2.07793L9.88066 8L15.8027 13.9221Z" fill="#3A3A3A"/> </svg> </div> <div class='h-[calc(100%-48px)] overflow-auto [&>turbo-frame>div:first-child]:mt-0'> <turbo-frame id='content-filters' src='https://gamedevelopment.tutsplus.com/content_filters' /> </div> </div> <div class='p-6 border-grey-300/20 border-solid border-0 border-t flex justify-between'> <button type='button' class='text-blue-500 text-sm font-bold bg-white border-0 inline-block p-0' data-action='click->content-filters-small-screen-component#clearFilters'>Clear Filters</button> <button type='button' class='text-white text-sm font-bold bg-blue-500 border-0 px-4 py-3 rounded' data-action='click->content-filters-small-screen-component#showResults'>Show Results</button> </div> </div> </div> </div> </div> </div> <ol class="inline-flex flex-wrap list-none p-0 m-0 [&>*]:mb-10 md:[&>*]:mb-16 [&>*]:mr-6 content-results__with-filters" data-controller='category-sidebar-ad-mobile' data-analytics-context="content results" > <li class="w-full md:w-[304px] inline-block relative rounded-md" data-explanation="" data-controller="post-card-tracking" data-index="0" data-type="standard" data-url="https://gamedevelopment.tutsplus.com/articles/20-cinematic-music-tracks-to-inspire-and-excite-your-next-video--cms-28008" > <a class="flex z-[1] absolute w-full h-full rounded-md" aria-label="Article: 23 Cinematic Music Tracks to Inspire Your Next Video" data-action="click->post-card-tracking#onClick" href="https://gamedevelopment.tutsplus.com/articles/20-cinematic-music-tracks-to-inspire-and-excite-your-next-video--cms-28008"> </a> <article class="flex flex-col h-[auto]"> <header class="h-[auto]"> <div class="flex w-max h-fit mr-4 relative !w-full"> <img class="rounded-md min-w-[150px] h-auto !w-full md:max-w-[304px] aspect-[304/210.5]" width="304px" height="210.5px" alt="23 Cinematic Music Tracks to Inspire Your Next Video" loading="lazy" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1200/uploads/users/392/posts/28008/preview_image/cinematic-music-tracks.jpg 2x" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=600/uploads/users/392/posts/28008/preview_image/cinematic-music-tracks.jpg" /> </div> <div> <a class="flex z-[1] relative font-bold mt-4 text-xs text-bubble-gum uppercase !inline-block font-family-polysan-regular-bulky" aria-label="Category: Audio" href="https://photography.tutsplus.com/video/c/production-recording/s/audio"> Audio </a></div> <h3 class="font-semibold text-lg text-grey-1000 m-0 mt-1 line-clamp-3 font-family-polysan-regular-median"> 23 Cinematic Music Tracks to Inspire Your Next Video </h3> <div class="font-normal text-grey-900 text-sm mt-1"> <span>Tutorial</span> <span>•</span> <span>Beginner</span> </div> <p class="text-sm leading-5 m-0 text-grey-500 mt-2 line-clamp-4"> Your choice of music can be everything regarding your video project. We've put together some of our favorite pieces, loosely categorized to make it easy for... </p> </header> <footer> <div class="flex mt-4 [&>div>a]:!inline-block [&>div>a]:truncate [&>div>a]:max-w-[160px]"> <a class="flex z-[1] relative rounded-md" aria-label="Author: Envato Market" href="https://tutsplus.com/authors/envato-market"> <img src="https://cms-assets.tutsplus.com/uploads/users/2844/profiles/19999/profileImage/Logo_Social_400x400.jpg" class="rounded-md" alt="Envato Market" width="32px" height="32px" loading="lazy"> </a> <div class="text-xs md:text-sm flex ml-2 w-max leading-5 items-center"> <a class="flex z-[1] relative text-grey-900 font-family-polysan-regular block" aria-label="Author: Envato Market" href="https://tutsplus.com/authors/envato-market"> Envato Market </a> <span class="text-grey-500 ml-1 mr-1">•</span> <time class="text-grey-500 font-family-polysan-regular">14 Dec 2022</time> </div> </footer> </article> </li> <li class="w-full md:w-[304px] inline-block relative rounded-md" data-explanation="" data-controller="post-card-tracking" data-index="1" data-type="standard" data-url="https://gamedevelopment.tutsplus.com/articles/want-the-secret-to-insta-success-enrol-for-the-school-of-instagram--cms-34219" > <a class="flex z-[1] absolute w-full h-full rounded-md" aria-label="Article: Want the Secret to Insta-Success? Enrol in the School of Instagram" data-action="click->post-card-tracking#onClick" href="https://gamedevelopment.tutsplus.com/articles/want-the-secret-to-insta-success-enrol-for-the-school-of-instagram--cms-34219"> </a> <article class="flex flex-col h-[auto]"> <header class="h-[auto]"> <div class="flex w-max h-fit mr-4 relative !w-full"> <img class="rounded-md min-w-[150px] h-auto !w-full md:max-w-[304px] aspect-[304/210.5]" width="304px" height="210.5px" alt="Want the Secret to Insta-Success? Enrol in the School of Instagram" loading="lazy" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1200/uploads/users/48/posts/34219/preview_image/School%20of%20Instagram.jpg 2x" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=600/uploads/users/48/posts/34219/preview_image/School%20of%20Instagram.jpg" /> </div> <div> <a class="flex z-[1] relative font-bold mt-4 text-xs text-bubble-gum uppercase !inline-block font-family-polysan-regular-bulky" aria-label="Category: Social Media" href="https://design.tutsplus.com/c/graphic-templates/s/social-media"> Social Media </a></div> <h3 class="font-semibold text-lg text-grey-1000 m-0 mt-1 line-clamp-3 font-family-polysan-regular-median"> Want the Secret to Insta-Success? Enrol in the School of Instagram </h3> <div class="font-normal text-grey-900 text-sm mt-1"> <span>Tutorial</span> <span>•</span> <span>Beginner</span> </div> <p class="text-sm leading-5 m-0 text-grey-500 mt-2 line-clamp-4"> Why do some people seem to gain Instagram followers effortlessly, while others struggle to get any traction? Find the answer by enrolling in the School of... </p> </header> <footer> <div class="flex mt-4 [&>div>a]:!inline-block [&>div>a]:truncate [&>div>a]:max-w-[160px]"> <a class="flex z-[1] relative rounded-md" aria-label="Author: Andrew Blackman" href="https://tutsplus.com/authors/andrew-blackman"> <img src="https://cms-assets.tutsplus.com/uploads/users/23/profiles/18578/profileImage/AndrewBlackman-400.jpg" class="rounded-md" alt="Andrew Blackman" width="32px" height="32px" loading="lazy"> </a> <div class="text-xs md:text-sm flex ml-2 w-max leading-5 items-center"> <a class="flex z-[1] relative text-grey-900 font-family-polysan-regular block" aria-label="Author: Andrew Blackman" href="https://tutsplus.com/authors/andrew-blackman"> Andrew Blackman </a> <span class="text-grey-500 ml-1 mr-1">•</span> <time class="text-grey-500 font-family-polysan-regular">11 Nov 2019</time> </div> </footer> </article> </li> <li class="w-full md:w-[304px] inline-block relative rounded-md" data-explanation="" data-controller="post-card-tracking" data-index="2" data-type="standard" data-url="https://gamedevelopment.tutsplus.com/tutorials/how-to-create-a-chess-icon-set-in-adobe-illustrator--cms-31649" > <a class="flex z-[1] absolute w-full h-full rounded-md" aria-label="Tutorial: How to Create an Abstract Icon Set in Adobe Illustrator" data-action="click->post-card-tracking#onClick" href="https://gamedevelopment.tutsplus.com/tutorials/how-to-create-a-chess-icon-set-in-adobe-illustrator--cms-31649"> </a> <article class="flex flex-col h-[auto]"> <header class="h-[auto]"> <div class="flex w-max h-fit mr-4 relative !w-full"> <img class="rounded-md min-w-[150px] h-auto !w-full md:max-w-[304px] aspect-[304/210.5]" width="304px" height="210.5px" alt="How to Create an Abstract Icon Set in Adobe Illustrator" loading="lazy" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1200/uploads/users/403/posts/31649/preview_image/chess-icons-thumnail.jpg 2x" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=600/uploads/users/403/posts/31649/preview_image/chess-icons-thumnail.jpg" /> </div> <div> <a class="flex z-[1] relative font-bold mt-4 text-xs text-bubble-gum uppercase !inline-block font-family-polysan-regular-bulky" aria-label="Category: Icon Design" href="https://design.tutsplus.com/c/graphic-design/s/icon-design"> Icon Design </a></div> <h3 class="font-semibold text-lg text-grey-1000 m-0 mt-1 line-clamp-3 font-family-polysan-regular-median"> How to Create an Abstract Icon Set in Adobe Illustrator </h3> <div class="font-normal text-grey-900 text-sm mt-1"> <span>Tutorial</span> <span>•</span> <span>Beginner</span> </div> <p class="text-sm leading-5 m-0 text-grey-500 mt-2 line-clamp-4"> Create a chess icon set in Adobe Illustrator that you can use in video games, graphic design and illustration projects. </p> </header> <footer> <div class="flex mt-4 [&>div>a]:!inline-block [&>div>a]:truncate [&>div>a]:max-w-[160px]"> <a class="flex z-[1] relative rounded-md" aria-label="Author: Jonathan Lam" href="https://tutsplus.com/authors/jonathan-lam"> <img src="https://cms-assets.tutsplus.com/uploads/users/403/profiles/18836/profileImage/jon_lam.jpg" class="rounded-md" alt="Jonathan Lam" width="32px" height="32px" loading="lazy"> </a> <div class="text-xs md:text-sm flex ml-2 w-max leading-5 items-center"> <a class="flex z-[1] relative text-grey-900 font-family-polysan-regular block" aria-label="Author: Jonathan Lam" href="https://tutsplus.com/authors/jonathan-lam"> Jonathan Lam </a> <span class="text-grey-500 ml-1 mr-1">•</span> <time class="text-grey-500 font-family-polysan-regular">19 Oct 2018</time> </div> </footer> </article> </li> <li class="w-full md:w-[304px] inline-block relative rounded-md" data-explanation="" data-controller="post-card-tracking" data-index="3" data-type="standard" data-url="https://gamedevelopment.tutsplus.com/interactive-storytelling-part-3--cms-31299a" > <a class="flex z-[1] absolute w-full h-full rounded-md" aria-label="Article: Interactive Storytelling: Non-Linear" data-action="click->post-card-tracking#onClick" href="https://gamedevelopment.tutsplus.com/interactive-storytelling-part-3--cms-31299a"> </a> <article class="flex flex-col h-[auto]"> <header class="h-[auto]"> <div class="flex w-max h-fit mr-4 relative !w-full"> <img class="rounded-md min-w-[150px] h-auto !w-full md:max-w-[304px] aspect-[304/210.5]" width="304px" height="210.5px" alt="Interactive Storytelling: Non-Linear" loading="lazy" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1200/uploads/users/849/posts/31299/preview_image/banner_small.jpg 2x" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=600/uploads/users/849/posts/31299/preview_image/banner_small.jpg" /> </div> <div> <a class="flex z-[1] relative font-bold mt-4 text-xs text-bubble-gum uppercase !inline-block font-family-polysan-regular-bulky" aria-label="Category: Game Development" href="https://gamedevelopment.tutsplus.com/c/game-development"> Game Development </a></div> <h3 class="font-semibold text-lg text-grey-1000 m-0 mt-1 line-clamp-3 font-family-polysan-regular-median"> Interactive Storytelling: Non-Linear </h3> <div class="font-normal text-grey-900 text-sm mt-1"> <span>Tutorial</span> <span>•</span> <span>Beginner</span> </div> <p class="text-sm leading-5 m-0 text-grey-500 mt-2 line-clamp-4"> In this final part of our series about interactive storytelling, we'll talk about the future of storytelling in videogames. </p> </header> <footer> <div class="flex mt-4 [&>div>a]:!inline-block [&>div>a]:truncate [&>div>a]:max-w-[160px]"> <a class="flex z-[1] relative rounded-md" aria-label="Author: Matteo Sciutteri" href="https://tutsplus.com/authors/matteo-sciutteri"> <img src="https://cms-assets.tutsplus.com/uploads/users/849/profiles/355/profileImage/390139_4667812933919_2119034857_n.jpg" class="rounded-md" alt="Matteo Sciutteri" width="32px" height="32px" loading="lazy"> </a> <div class="text-xs md:text-sm flex ml-2 w-max leading-5 items-center"> <a class="flex z-[1] relative text-grey-900 font-family-polysan-regular block" aria-label="Author: Matteo Sciutteri" href="https://tutsplus.com/authors/matteo-sciutteri"> Matteo Sciutteri </a> <span class="text-grey-500 ml-1 mr-1">•</span> <time class="text-grey-500 font-family-polysan-regular">29 Jun 2018</time> </div> </footer> </article> </li> <li class="w-full md:w-[304px] inline-block relative rounded-md" data-explanation="" data-controller="post-card-tracking" data-index="4" data-type="standard" data-url="https://gamedevelopment.tutsplus.com/creating-toon-water-for-the-web-part-3--cms-30487t" > <a class="flex z-[1] absolute w-full h-full rounded-md" aria-label="Tutorial: Creating Toon Water for the Web: Part 3" data-action="click->post-card-tracking#onClick" href="https://gamedevelopment.tutsplus.com/creating-toon-water-for-the-web-part-3--cms-30487t"> </a> <article class="flex flex-col h-[auto]"> <header class="h-[auto]"> <div class="flex w-max h-fit mr-4 relative !w-full"> <img class="rounded-md min-w-[150px] h-auto !w-full md:max-w-[304px] aspect-[304/210.5]" width="304px" height="210.5px" alt="Creating Toon Water for the Web: Part 3" loading="lazy" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1200/uploads/users/728/posts/30487/preview_image/Optimized_Preview.jpg 2x" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=600/uploads/users/728/posts/30487/preview_image/Optimized_Preview.jpg" /> </div> <div> <a class="flex z-[1] relative font-bold mt-4 text-xs text-bubble-gum uppercase !inline-block font-family-polysan-regular-bulky" aria-label="Category: Game Development" href="https://gamedevelopment.tutsplus.com/c/game-development"> Game Development </a></div> <h3 class="font-semibold text-lg text-grey-1000 m-0 mt-1 line-clamp-3 font-family-polysan-regular-median"> Creating Toon Water for the Web: Part 3 </h3> <div class="font-normal text-grey-900 text-sm mt-1"> <span>Tutorial</span> <span>•</span> <span>Advanced</span> </div> <p class="text-sm leading-5 m-0 text-grey-500 mt-2 line-clamp-4"> In part 2 of this series on using vertex shaders and the depth buffer to create stylized water, we're going to apply underwater distortion as a post-process... </p> </header> <footer> <div class="flex mt-4 [&>div>a]:!inline-block [&>div>a]:truncate [&>div>a]:max-w-[160px]"> <a class="flex z-[1] relative rounded-md" aria-label="Author: Omar Shehata" href="https://tutsplus.com/authors/omar-shehata"> <img src="https://cms-assets.tutsplus.com/uploads/users/728/profiles/610/profileImage/profile_final.jpg" class="rounded-md" alt="Omar Shehata" width="32px" height="32px" loading="lazy"> </a> <div class="text-xs md:text-sm flex ml-2 w-max leading-5 items-center"> <a class="flex z-[1] relative text-grey-900 font-family-polysan-regular block" aria-label="Author: Omar Shehata" href="https://tutsplus.com/authors/omar-shehata"> Omar Shehata </a> <span class="text-grey-500 ml-1 mr-1">•</span> <time class="text-grey-500 font-family-polysan-regular">25 Jun 2018</time> </div> </footer> </article> </li> <li class="w-full md:w-[304px] inline-block relative rounded-md" data-explanation="" data-controller="post-card-tracking" data-index="5" data-type="standard" data-url="https://gamedevelopment.tutsplus.com/creating-toon-water-for-the-web-part-2--cms-30485t" > <a class="flex z-[1] absolute w-full h-full rounded-md" aria-label="Tutorial: Creating Toon Water for the Web: Part 2" data-action="click->post-card-tracking#onClick" href="https://gamedevelopment.tutsplus.com/creating-toon-water-for-the-web-part-2--cms-30485t"> </a> <article class="flex flex-col h-[auto]"> <header class="h-[auto]"> <div class="flex w-max h-fit mr-4 relative !w-full"> <img class="rounded-md min-w-[150px] h-auto !w-full md:max-w-[304px] aspect-[304/210.5]" width="304px" height="210.5px" alt="Creating Toon Water for the Web: Part 2" loading="lazy" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1200/uploads/users/728/posts/30485/preview_image/Optimized_Preview.jpg 2x" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=600/uploads/users/728/posts/30485/preview_image/Optimized_Preview.jpg" /> </div> <div> <a class="flex z-[1] relative font-bold mt-4 text-xs text-bubble-gum uppercase !inline-block font-family-polysan-regular-bulky" aria-label="Category: Game Development" href="https://gamedevelopment.tutsplus.com/c/game-development"> Game Development </a></div> <h3 class="font-semibold text-lg text-grey-1000 m-0 mt-1 line-clamp-3 font-family-polysan-regular-median"> Creating Toon Water for the Web: Part 2 </h3> <div class="font-normal text-grey-900 text-sm mt-1"> <span>Tutorial</span> <span>•</span> <span>Advanced</span> </div> <p class="text-sm leading-5 m-0 text-grey-500 mt-2 line-clamp-4"> In part 2 of this series on using vertex shaders and the depth buffer to create stylized water, we'll cover applying buoyancy to objects, adding water lines... </p> </header> <footer> <div class="flex mt-4 [&>div>a]:!inline-block [&>div>a]:truncate [&>div>a]:max-w-[160px]"> <a class="flex z-[1] relative rounded-md" aria-label="Author: Omar Shehata" href="https://tutsplus.com/authors/omar-shehata"> <img src="https://cms-assets.tutsplus.com/uploads/users/728/profiles/610/profileImage/profile_final.jpg" class="rounded-md" alt="Omar Shehata" width="32px" height="32px" loading="lazy"> </a> <div class="text-xs md:text-sm flex ml-2 w-max leading-5 items-center"> <a class="flex z-[1] relative text-grey-900 font-family-polysan-regular block" aria-label="Author: Omar Shehata" href="https://tutsplus.com/authors/omar-shehata"> Omar Shehata </a> <span class="text-grey-500 ml-1 mr-1">•</span> <time class="text-grey-500 font-family-polysan-regular">22 Jun 2018</time> </div> </footer> </article> </li> <li class="w-full md:w-[304px] inline-block relative rounded-md" data-explanation="" data-controller="post-card-tracking" data-index="6" data-type="standard" data-url="https://gamedevelopment.tutsplus.com/interactive-storytelling-part-2--cms-30273a" > <a class="flex z-[1] absolute w-full h-full rounded-md" aria-label="Article: Interactive Storytelling: Linear Storytelling" data-action="click->post-card-tracking#onClick" href="https://gamedevelopment.tutsplus.com/interactive-storytelling-part-2--cms-30273a"> </a> <article class="flex flex-col h-[auto]"> <header class="h-[auto]"> <div class="flex w-max h-fit mr-4 relative !w-full"> <img class="rounded-md min-w-[150px] h-auto !w-full md:max-w-[304px] aspect-[304/210.5]" width="304px" height="210.5px" alt="Interactive Storytelling: Linear Storytelling" loading="lazy" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1200/uploads/users/849/posts/30273/preview_image/zelda.jpg 2x" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=600/uploads/users/849/posts/30273/preview_image/zelda.jpg" /> </div> <div> <a class="flex z-[1] relative font-bold mt-4 text-xs text-bubble-gum uppercase !inline-block font-family-polysan-regular-bulky" aria-label="Category: Game Development" href="https://gamedevelopment.tutsplus.com/c/game-development"> Game Development </a></div> <h3 class="font-semibold text-lg text-grey-1000 m-0 mt-1 line-clamp-3 font-family-polysan-regular-median"> Interactive Storytelling: Linear Storytelling </h3> <div class="font-normal text-grey-900 text-sm mt-1"> <span>Tutorial</span> <span>•</span> <span>Beginner</span> </div> <p class="text-sm leading-5 m-0 text-grey-500 mt-2 line-clamp-4"> In the last article we saw where the need for storytelling comes from: now it's time to dig deep and talk about the first kind of interactive storytelling:... </p> </header> <footer> <div class="flex mt-4 [&>div>a]:!inline-block [&>div>a]:truncate [&>div>a]:max-w-[160px]"> <a class="flex z-[1] relative rounded-md" aria-label="Author: Matteo Sciutteri" href="https://tutsplus.com/authors/matteo-sciutteri"> <img src="https://cms-assets.tutsplus.com/uploads/users/849/profiles/355/profileImage/390139_4667812933919_2119034857_n.jpg" class="rounded-md" alt="Matteo Sciutteri" width="32px" height="32px" loading="lazy"> </a> <div class="text-xs md:text-sm flex ml-2 w-max leading-5 items-center"> <a class="flex z-[1] relative text-grey-900 font-family-polysan-regular block" aria-label="Author: Matteo Sciutteri" href="https://tutsplus.com/authors/matteo-sciutteri"> Matteo Sciutteri </a> <span class="text-grey-500 ml-1 mr-1">•</span> <time class="text-grey-500 font-family-polysan-regular">22 Jun 2018</time> </div> </footer> </article> </li> <li class="w-full md:w-[304px] inline-block relative rounded-md" data-explanation="" data-controller="post-card-tracking" data-index="7" data-type="standard" data-url="https://gamedevelopment.tutsplus.com/creating-toon-water-for-the-web-part-1--cms-30447t" > <a class="flex z-[1] absolute w-full h-full rounded-md" aria-label="Tutorial: Creating Toon Water for the Web: Part 1" data-action="click->post-card-tracking#onClick" href="https://gamedevelopment.tutsplus.com/creating-toon-water-for-the-web-part-1--cms-30447t"> </a> <article class="flex flex-col h-[auto]"> <header class="h-[auto]"> <div class="flex w-max h-fit mr-4 relative !w-full"> <img class="rounded-md min-w-[150px] h-auto !w-full md:max-w-[304px] aspect-[304/210.5]" width="304px" height="210.5px" alt="Creating Toon Water for the Web: Part 1" loading="lazy" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1200/uploads/users/728/posts/30447/preview_image/Optimized_Preview.jpg 2x" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=600/uploads/users/728/posts/30447/preview_image/Optimized_Preview.jpg" /> </div> <div> <a class="flex z-[1] relative font-bold mt-4 text-xs text-bubble-gum uppercase !inline-block font-family-polysan-regular-bulky" aria-label="Category: Game Development" href="https://gamedevelopment.tutsplus.com/c/game-development"> Game Development </a></div> <h3 class="font-semibold text-lg text-grey-1000 m-0 mt-1 line-clamp-3 font-family-polysan-regular-median"> Creating Toon Water for the Web: Part 1 </h3> <div class="font-normal text-grey-900 text-sm mt-1"> <span>Tutorial</span> <span>•</span> <span>Advanced</span> </div> <p class="text-sm leading-5 m-0 text-grey-500 mt-2 line-clamp-4"> Learn how to use vertex shaders and the depth buffer to create stylized water with foam lines and refraction using PlayCanvas! </p> </header> <footer> <div class="flex mt-4 [&>div>a]:!inline-block [&>div>a]:truncate [&>div>a]:max-w-[160px]"> <a class="flex z-[1] relative rounded-md" aria-label="Author: Omar Shehata" href="https://tutsplus.com/authors/omar-shehata"> <img src="https://cms-assets.tutsplus.com/uploads/users/728/profiles/610/profileImage/profile_final.jpg" class="rounded-md" alt="Omar Shehata" width="32px" height="32px" loading="lazy"> </a> <div class="text-xs md:text-sm flex ml-2 w-max leading-5 items-center"> <a class="flex z-[1] relative text-grey-900 font-family-polysan-regular block" aria-label="Author: Omar Shehata" href="https://tutsplus.com/authors/omar-shehata"> Omar Shehata </a> <span class="text-grey-500 ml-1 mr-1">•</span> <time class="text-grey-500 font-family-polysan-regular">20 Jun 2018</time> </div> </footer> </article> </li> <li class="w-full md:w-[304px] inline-block relative rounded-md" data-explanation="" data-controller="post-card-tracking" data-index="8" data-type="standard" data-url="https://gamedevelopment.tutsplus.com/interactive-storytelling-part-1--cms-30015a" > <a class="flex z-[1] absolute w-full h-full rounded-md" aria-label="Article: Interactive Storytelling: Why and How We Tell Stories" data-action="click->post-card-tracking#onClick" href="https://gamedevelopment.tutsplus.com/interactive-storytelling-part-1--cms-30015a"> </a> <article class="flex flex-col h-[auto]"> <header class="h-[auto]"> <div class="flex w-max h-fit mr-4 relative !w-full"> <img class="rounded-md min-w-[150px] h-auto !w-full md:max-w-[304px] aspect-[304/210.5]" width="304px" height="210.5px" alt="Interactive Storytelling: Why and How We Tell Stories" loading="lazy" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1200/uploads/users/849/posts/30015/preview_image/000.jpg 2x" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=600/uploads/users/849/posts/30015/preview_image/000.jpg" /> </div> <div> <a class="flex z-[1] relative font-bold mt-4 text-xs text-bubble-gum uppercase !inline-block font-family-polysan-regular-bulky" aria-label="Category: Game Development" href="https://gamedevelopment.tutsplus.com/c/game-development"> Game Development </a></div> <h3 class="font-semibold text-lg text-grey-1000 m-0 mt-1 line-clamp-3 font-family-polysan-regular-median"> Interactive Storytelling: Why and How We Tell Stories </h3> <div class="font-normal text-grey-900 text-sm mt-1"> <span>Tutorial</span> <span>•</span> <span>Beginner</span> </div> <p class="text-sm leading-5 m-0 text-grey-500 mt-2 line-clamp-4"> From books to games: how storytelling has changed during the history of humanity and why telling stories is so important. </p> </header> <footer> <div class="flex mt-4 [&>div>a]:!inline-block [&>div>a]:truncate [&>div>a]:max-w-[160px]"> <a class="flex z-[1] relative rounded-md" aria-label="Author: Matteo Sciutteri" href="https://tutsplus.com/authors/matteo-sciutteri"> <img src="https://cms-assets.tutsplus.com/uploads/users/849/profiles/355/profileImage/390139_4667812933919_2119034857_n.jpg" class="rounded-md" alt="Matteo Sciutteri" width="32px" height="32px" loading="lazy"> </a> <div class="text-xs md:text-sm flex ml-2 w-max leading-5 items-center"> <a class="flex z-[1] relative text-grey-900 font-family-polysan-regular block" aria-label="Author: Matteo Sciutteri" href="https://tutsplus.com/authors/matteo-sciutteri"> Matteo Sciutteri </a> <span class="text-grey-500 ml-1 mr-1">•</span> <time class="text-grey-500 font-family-polysan-regular">15 Jun 2018</time> </div> </footer> </article> </li> <li class="w-full md:w-[304px] inline-block relative rounded-md" data-explanation="" data-controller="post-card-tracking" data-index="9" data-type="standard" data-url="https://gamedevelopment.tutsplus.com/creating-a-unity-game-with-playmaker--cms-30437t" > <a class="flex z-[1] absolute w-full h-full rounded-md" aria-label="Tutorial: Creating a Unity Game With PlayMaker" data-action="click->post-card-tracking#onClick" href="https://gamedevelopment.tutsplus.com/creating-a-unity-game-with-playmaker--cms-30437t"> </a> <article class="flex flex-col h-[auto]"> <header class="h-[auto]"> <div class="flex w-max h-fit mr-4 relative !w-full"> <img class="rounded-md min-w-[150px] h-auto !w-full md:max-w-[304px] aspect-[304/210.5]" width="304px" height="210.5px" alt="Creating a Unity Game With PlayMaker" loading="lazy" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1200/uploads/users/34/posts/30437/preview_image/playmaker.jpg 2x" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=600/uploads/users/34/posts/30437/preview_image/playmaker.jpg" /> </div> <div> <a class="flex z-[1] relative font-bold mt-4 text-xs text-bubble-gum uppercase !inline-block font-family-polysan-regular-bulky" aria-label="Category: Game Development" href="https://gamedevelopment.tutsplus.com/c/game-development"> Game Development </a></div> <h3 class="font-semibold text-lg text-grey-1000 m-0 mt-1 line-clamp-3 font-family-polysan-regular-median"> Creating a Unity Game With PlayMaker </h3> <div class="font-normal text-grey-900 text-sm mt-1"> <span>Tutorial</span> <span>•</span> <span>Beginner</span> </div> <p class="text-sm leading-5 m-0 text-grey-500 mt-2 line-clamp-4"> In this article, you will learn how to make a game object move in five minutes or less using the PlayMaker add-on for Unity, with no code. </p> </header> <footer> <div class="flex mt-4 [&>div>a]:!inline-block [&>div>a]:truncate [&>div>a]:max-w-[160px]"> <a class="flex z-[1] relative rounded-md" aria-label="Author: Sandy Gerber" href="https://tutsplus.com/authors/sandra-gerber"> <img src="https://cms-assets.tutsplus.com/uploads/users/1302/profiles/19813/profileImage/me3.jpg" class="rounded-md" alt="Sandy Gerber" width="32px" height="32px" loading="lazy"> </a> <div class="text-xs md:text-sm flex ml-2 w-max leading-5 items-center"> <a class="flex z-[1] relative text-grey-900 font-family-polysan-regular block" aria-label="Author: Sandy Gerber" href="https://tutsplus.com/authors/sandra-gerber"> Sandy Gerber </a> <span class="text-grey-500 ml-1 mr-1">•</span> <time class="text-grey-500 font-family-polysan-regular">14 May 2018</time> </div> </footer> </article> </li> <li class="w-full md:w-[304px] inline-block relative rounded-md" data-explanation="" data-controller="post-card-tracking" data-index="10" data-type="standard" data-url="https://gamedevelopment.tutsplus.com/whats-in-a-name-data-analysis-of-5820-steam-games--cms-30101a" > <a class="flex z-[1] absolute w-full h-full rounded-md" aria-label="Article: What's in a Name? Data Analysis of 5,820 Steam Games" data-action="click->post-card-tracking#onClick" href="https://gamedevelopment.tutsplus.com/whats-in-a-name-data-analysis-of-5820-steam-games--cms-30101a"> </a> <article class="flex flex-col h-[auto]"> <header class="h-[auto]"> <div class="flex w-max h-fit mr-4 relative !w-full"> <img class="rounded-md min-w-[150px] h-auto !w-full md:max-w-[304px] aspect-[304/210.5]" width="304px" height="210.5px" alt="What's in a Name? Data Analysis of 5,820 Steam Games" loading="lazy" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1200/uploads/users/1526/posts/30101/preview_image/tutsplusteaser%20(1).png 2x" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=600/uploads/users/1526/posts/30101/preview_image/tutsplusteaser%20(1).png" /> </div> <div> <a class="flex z-[1] relative font-bold mt-4 text-xs text-bubble-gum uppercase !inline-block font-family-polysan-regular-bulky" aria-label="Category: Game Development" href="https://gamedevelopment.tutsplus.com/c/game-development"> Game Development </a></div> <h3 class="font-semibold text-lg text-grey-1000 m-0 mt-1 line-clamp-3 font-family-polysan-regular-median"> What's in a Name? Data Analysis of 5,820 Steam Games </h3> <div class="font-normal text-grey-900 text-sm mt-1"> <span>Tutorial</span> <span>•</span> <span>Beginner</span> </div> <p class="text-sm leading-5 m-0 text-grey-500 mt-2 line-clamp-4"> Are you an indie game developer, lover, or just a data enthusiast? We break down commonalities between 5,820 games released on Steam during 2017. </p> </header> <footer> <div class="flex mt-4 [&>div>a]:!inline-block [&>div>a]:truncate [&>div>a]:max-w-[160px]"> <a class="flex z-[1] relative rounded-md" aria-label="Author: Kyle Sloka-Frey" href="https://tutsplus.com/authors/kyle-sloka-frey"> <img src="https://cms-assets.tutsplus.com/uploads/users/1526/profiles/20034/profileImage/13923520_1206603516026640_8467088536321108514_o.jpg" class="rounded-md" alt="Kyle Sloka-Frey" width="32px" height="32px" loading="lazy"> </a> <div class="text-xs md:text-sm flex ml-2 w-max leading-5 items-center"> <a class="flex z-[1] relative text-grey-900 font-family-polysan-regular block" aria-label="Author: Kyle Sloka-Frey" href="https://tutsplus.com/authors/kyle-sloka-frey"> Kyle Sloka-Frey </a> <span class="text-grey-500 ml-1 mr-1">•</span> <time class="text-grey-500 font-family-polysan-regular">9 Jan 2018</time> </div> </footer> </article> </li> <li class="w-full md:w-[304px] inline-block relative rounded-md" data-explanation="" data-controller="post-card-tracking" data-index="11" data-type="standard" data-url="https://gamedevelopment.tutsplus.com/create-an-animated-movie-in-blender-part-two--cms-29804t" > <a class="flex z-[1] absolute w-full h-full rounded-md" aria-label="Tutorial: Create an Animated Movie in Blender: Part 2" data-action="click->post-card-tracking#onClick" href="https://gamedevelopment.tutsplus.com/create-an-animated-movie-in-blender-part-two--cms-29804t"> </a> <article class="flex flex-col h-[auto]"> <header class="h-[auto]"> <div class="flex w-max h-fit mr-4 relative !w-full"> <img class="rounded-md min-w-[150px] h-auto !w-full md:max-w-[304px] aspect-[304/210.5]" width="304px" height="210.5px" alt="Create an Animated Movie in Blender: Part 2" loading="lazy" srcset="https://cms-assets.tutsplus.com/cdn-cgi/image/width=1200/uploads/users/1302/posts/29804/preview_image/rsz_videoeditor.jpg 2x" src="https://cms-assets.tutsplus.com/cdn-cgi/image/width=600/uploads/users/1302/posts/29804/preview_image/rsz_videoeditor.jpg" /> </div> <div> <a class="flex z-[1] relative font-bold mt-4 text-xs text-bubble-gum uppercase !inline-block font-family-polysan-regular-bulky" aria-label="Category: Game Development" href="https://gamedevelopment.tutsplus.com/c/game-development"> Game Development </a></div> <h3 class="font-semibold text-lg text-grey-1000 m-0 mt-1 line-clamp-3 font-family-polysan-regular-median"> Create an Animated Movie in Blender: Part 2 </h3> <div class="font-normal text-grey-900 text-sm mt-1"> <span>Tutorial</span> <span>•</span> <span>Advanced</span> </div> <p class="text-sm leading-5 m-0 text-grey-500 mt-2 line-clamp-4"> In part two of this series, we will discuss how to properly render your Blender scene, add sound, and prepare your video for export. </p> </header> <footer> <div class="flex mt-4 [&>div>a]:!inline-block [&>div>a]:truncate [&>div>a]:max-w-[160px]"> <a class="flex z-[1] relative rounded-md" aria-label="Author: Sandy Gerber" href="https://tutsplus.com/authors/sandra-gerber"> <img src="https://cms-assets.tutsplus.com/uploads/users/1302/profiles/19813/profileImage/me3.jpg" class="rounded-md" alt="Sandy Gerber" width="32px" height="32px" loading="lazy"> </a> <div class="text-xs md:text-sm flex ml-2 w-max leading-5 items-center"> <a class="flex z-[1] relative text-grey-900 font-family-polysan-regular block" aria-label="Author: Sandy Gerber" href="https://tutsplus.com/authors/sandra-gerber"> Sandy Gerber </a> <span class="text-grey-500 ml-1 mr-1">•</span> <time class="text-grey-500 font-family-polysan-regular">29 Nov 2017</time> </div> </footer> </article> </li> </ol> <nav class="pagination" data-analytics-context="pagination"><span class="pagination__button pagination__prev-button pagination__button--disabled"><i class="fa fa-angle-left"></i></span><span aria-label="page 1" class="pagination__page pagination__button pagination__page--current">1</span><a rel="next" class="pagination__button " aria-label="page 2" href="?page=2">2</a><a class="pagination__button " aria-label="page 3" href="?page=3">3</a><span class="pagination__gap">…</span><a class="pagination__button " aria-label="page 5" href="?page=5">5</a><a class="pagination__button " aria-label="page 6" href="?page=6">6</a><a rel="next" class="pagination__button pagination__next-button" aria-label="next" href="?page=2"><i class="fa fa-angle-right"></i></a></nav> </div> </div> </div> </div> <!-- sign-up featured section --> <div name="" class="full-section " style=""> <div class="lg:max-w-[960px] md:max-w-screen 2xl:max-w-[1290px] pt-10 pb-10 md:pt-20 md:pb-20 pl-4 pr-4 md:pl-6 md:pr-6 lg:pl-0 lg:pr-0 mt-0 mb-0 ml-auto mr-auto"> <div data-controller="sign-up" class="sign-up-component w-full rounded-lg overflow-hidden text-base sm:h-[20.5rem] md:!h-[18.75rem] bg-[#191919] flex space-x-4 justify-between mb-0 mx-auto"> <div class=" px-6 my-10 rounded-lg md:pl-16 md:mt-12 md:pr-8 flex-1 w-full"> <div class="text-4xl leading-9 mb-2 mt-0 text-white font-family-polysan-wide">Get in the know</div> <div class="text-base max-w-lg text-white email-setting-tease mb-6 md:mb-4 font-family-polysan-regular">Get ready to make your best work yet with tips, tricks, and offers straight to your inbox.</div> <div class="input-block flex flex-col md:flex-row max-w-[29.688rem]"> <input type="email" name="email" id="email" class="email-setting-email-input-field bg-[#191919] border-none border-[#949494] outline active:outline focus:outline outline-1 active:outline-1 focus:outline-1 outline-gray-400 active:outline-gray-400 focus:outline-gray-400 font-family-polysan-regular text-white placeholder:text-grey-500 text-base w-full indent-2.5 md:w-96 h-12 mb-2 md:mr-2 rounded" placeholder="Enter your email" required="required" /> <button name="button" type="submit" data-action="sign-up#sendData click->ga-analytics#sendSignUpEmailClickEvent" class="text-green-text-button text-base font-family-polysan-regular w-full h-12 md:w-[6.563rem] bg-interactive-green rounded border-none cursor-pointer hover:bg-lime-500">Sign up</button> </div> <div class="suffix w-full mt-3 text-[#707070] "> <span class="suffix-content w-full font-family-polysan-regular">Unsubscribe at any time. <a target="_blank" rel="noopener noreferrer" class="text-grey-500 custom-underline hover:text-gray-300" href="https://www.envato.com/privacy/">Privacy Policy.</a> </span> </div> </div> <div class="background-image hidden lg:flex flex-1"> <img alt="Side image" class="w-full" src="https://s3.amazonaws.com/cms-assets.tutsplus.com/uploads/users/15/email_settings/topic_page/backgroundImage/637x300_v1__1x.png" /> </div> </div> </div> </div> </div> </main></div><div class="cta-toast-popup" data-analytics-context-detail="cta toast"><turbo-frame id="cta_toast_popup" src="/cta_toast"></turbo-frame></div> <div id="footer-promo-component" class="w-full flex justify-center items-center bg-white pb-20 px-6 font-family-polysan-regular"> <a href="https://elements.envato.com/pricing" class="h-[343px] w-full lg:max-w-[960px] md:max-w-screen 2xl:max-w-[1290px] rounded-2xl overflow-hidden flex hover:cursor-default" data-action="click->ga-analytics#sendElementsClickEvent" > <div class="w-1/2 flex flex-col justify-center xsm:px-2 sm:px-8 md:px-16 lg:pr-48 gap-y-4 bg-[#9CEE69]"> <div class="text-3xl font-semibold text-black text-left">Let’s create something extraordinary</div> <div class="text-black hidden md:flex">Your one-stop creative asset destination</div> <div class="w-full flex justify-start"> <button class="bg-[#191919] text-white rounded-md xsm:px-1 xsm:py-0 sm:px-6 sm:py-2 hover:bg-gray-800 active:bg-gray-700 text-lg border-0 hover:cursor-pointer">Let’s create!</button> </div> </div> <div class="w-1/2"> <img class="w-full h-full object-cover" src="https://s3.amazonaws.com/cms-assets.tutsplus.com/uploads/users/2843/posts/109025/image-upload/Tuts_Homepage_Uplift_FooterBanner_645x343_v1_2_.png"> </div> </a> </div> <div class="ecosystem-highlight" data-analytics-context-detail="ecosystem highlight"><div class="ecosystem-highlight__cards"><div class="ecosystem-highlight__card"><a data-action="click->ga-analytics#sendElementsClickEvent" href="https://elements.envato.com?ec_unit=ecosystem_highlight&utm_campaign=elements_tuts-ecosystem-promo_&utm_medium=promos&utm_source=tutsplus"><img alt="" class="ecosystem-highlight__card-image" loading="lazy" src="https://static.tutsplus.com/packs/static/images/ecosystem/Elements-9c6156923682e0ca754a.png" /><div class="ecosystem-highlight__card-content"><div class="ecosystem-highlight__card-title">Unlimited Downloads<br />From $16.50/month</div><div class="ecosystem-highlight__card-description">Get access to over one million creative assets on Envato.</div></div></a></div><div class="ecosystem-highlight__card"><a data-action="click->ga-analytics#sendMarketClickEvent" href="https://themeforest.net?ec_unit=ecosystem_highlight&utm_campaign=elements_tuts-ecosystem-promo_&utm_medium=promos&utm_source=tutsplus"><img alt="" class="ecosystem-highlight__card-image" loading="lazy" src="https://static.tutsplus.com/packs/static/images/ecosystem/Market-b1c3dbb6b2a34956edf4.png" /><div class="ecosystem-highlight__card-content"><div class="ecosystem-highlight__card-title"> Over 9 Million Digital Assets</div><div class="ecosystem-highlight__card-description"> Everything you need for your next creative project.</div></div></a></div><div class="ecosystem-highlight__card"><a data-action="click->ga-analytics#sendPlaceitClickEvent" href="https://placeit.net?ec_unit=ecosystem_highlight&utm_campaign=placeit_mkt-footer&utm_content=tuts_global-footer&utm_medium=promos&utm_source=tutsplus.com"><img alt="" class="ecosystem-highlight__card-image" loading="lazy" src="https://static.tutsplus.com/packs/static/images/ecosystem/Placeit-2bfac81aff196db3c276.png" /><div class="ecosystem-highlight__card-content"><div class="ecosystem-highlight__card-title"> Create Beautiful Logos, Designs <br> & Mockups in Seconds</div><div class="ecosystem-highlight__card-description"> Design like a professional without Photoshop.</div></div></a></div><div class="ecosystem-highlight__card"><a href="https://community.envato.com?ec_unit=ecosystem_highlight&utm_campaign=elements_tuts-ecosystem-promo_&utm_medium=promos&utm_source=tutsplus"><img alt="" class="ecosystem-highlight__card-image" loading="lazy" src="https://static.tutsplus.com/packs/static/images/ecosystem/Community-4973bc700aa03754d91c.png" /><div class="ecosystem-highlight__card-content"><div class="ecosystem-highlight__card-title"> Join the Community</div><div class="ecosystem-highlight__card-description"> Share ideas. Host meetups. Lead discussions. Collaborate.</div></div></a></div></div></div><footer class="page-footer view" data-analytics-context="footer" data-controller="page-footer"><div class="page-footer__content"><div class="page-footer__links-column"><div class="page-footer__section page-footer__section--first"><div class="page-footer__heading">Envato Tuts+</div><a class="page-footer__links-column-expansion-link" data-action="click->page-footer#toggleFooterSection" href="javascript:void(0);"><span class="page-footer__links-column-expansion-link-expand-text"><i class="fa fa-plus page-footer__links-column-link-icon"></i></span><span class="page-footer__links-column-expansion-link-collapse-text"><i class="fa fa-minus page-footer__links-column-link-icon"></i></span></a><div class="page-footer__item"><a class="page-footer__link" href="https://tutsplus.com/about">About Envato Tuts+</a></div><div class="page-footer__item"><a class="page-footer__link" href="https://tutsplus.com/terms-of-use">Terms of Use</a></div><div class="page-footer__item"><a target="_blank" class="page-footer__link" href="https://www.envato.com/privacy">Privacy</a></div><div class="page-footer__item"><a target="_blank" class="page-footer__link" href="https://www.envato.com/cookies/">Cookies</a></div><div class="page-footer__item"><a class="page-footer__link" data-action="click->page-footer#openCookieSettings" href="javascript:void(0);">Cookie Settings</a></div><div class="page-footer__item"><a target="_blank" class="page-footer__link" href="https://www.envato.com/privacy/#my-personal-information">Do not sell or share my personal information</a></div></div></div><div class="page-footer__links-column"><div class="page-footer__section page-footer__section--first"><div class="page-footer__heading">Help</div><a class="page-footer__links-column-expansion-link" data-action="click->page-footer#toggleFooterSection" href="javascript:void(0);"><span class="page-footer__links-column-expansion-link-expand-text"><i class="fa fa-plus page-footer__links-column-link-icon"></i></span><span class="page-footer__links-column-expansion-link-collapse-text"><i class="fa fa-minus page-footer__links-column-link-icon"></i></span></a><div class="page-footer__item"><a class="page-footer__link" href="https://help.elements.envato.com/hc/en-us/categories/360000070683">FAQ</a></div><div class="page-footer__item"><a class="page-footer__link" href="https://help.elements.envato.com">Help Center</a></div></div></div><div class="page-footer__links-column page-footer__links-last-column"><div class="page-footer__brands-wrapper"><div class="page-footer__tuts-brand"><img loading="lazy" alt="envato-tuts+" class="page-footer__tuts-logo-image tuts-logo" src="https://static.tutsplus.com/packs/static/images/tuts_logo-73b941f1418b55c886ac.svg" /><div class="page-footer__counts"><div class="page-footer__count-item"><div class="page-footer__count-value">22,977</div><div class="page-footer__count-label">Tutorials</div></div><div class="page-footer__count-item"><div class="page-footer__count-value">552</div><div class="page-footer__count-label">Courses</div></div><div class="page-footer__count-item"><div class="page-footer__count-value">17,967</div><div class="page-footer__count-label">Translations</div></div></div></div><div class="page-footer__bcorp-brand"><a class="page-footer__bcorp-brand-link" href="https://www.bcorporation.net/en-us/find-a-b-corp/company/envato" rel="noopener" target="_blank"><img alt="B Corp logo" loading="lazy" src="https://static.tutsplus.com/packs/static/images/bcorp-bfc565be3a93741fc88c.svg" /></a></div></div></div></div><div class="page-footer__envato-bar"><div class="page-footer__envato-bar-content"><div class="page-footer__envato-bar-content-left-column"><ul class="page-footer__envato-bar-links"><li class="page-footer__envato-bar-link-item"><a class="page-footer__envato-bar-link" data-action="click->ga-analytics#sendElementsClickEvent" href="https://elements.envato.com">Envato</a></li><li class="page-footer__envato-bar-link-item"><a class="page-footer__envato-bar-link" data-action="click->ga-analytics#sendMarketClickEvent" href="https://market.envato.com">Envato Market</a></li><li class="page-footer__envato-bar-link-item"><a class="page-footer__envato-bar-link" data-action="click->ga-analytics#sendPlaceitClickEvent" href="https://placeit.net/">Placeit by Envato</a></li><li class="page-footer__envato-bar-link-item"><a class="page-footer__envato-bar-link" href="https://www.envato.com/products/">All products</a></li><li class="page-footer__envato-bar-link-item"><a class="page-footer__envato-bar-link" href="https://www.envato.com/about/careers/">Careers</a></li><li class="page-footer__envato-bar-link-item"><a class="page-footer__envato-bar-link" href="https://www.envato.com/sitemap/">Sitemap</a></li></ul><div class="page-footer__copyright">© 2025 Envato Pty Ltd. Trademarks and brands are the property of their respective owners.</div></div><div class="page-footer__envato-bar-content-right-column"><ul class="page-footer__follow-us"><li class="page-footer__follow-us-element"><a class="page-footer__social-link page-footer__youtube-link" href="https://www.youtube.com/@envatotuts"><img alt="Youtube" loading="lazy" width="24px" height="24px" src="https://static.tutsplus.com/packs/static/images/social_youtube-2fdd89edede4b116d099.svg" /></a></li><li class="page-footer__follow-us-element"><a class="page-footer__social-link page-footer__instagram-link" href="https://www.instagram.com/envato/"><img alt="Instagram" loading="lazy" width="24px" height="24px" src="https://static.tutsplus.com/packs/static/images/social_instagram-f01c9d7dc71f1ea86182.svg" /></a></li><li class="page-footer__follow-us-element"><a class="page-footer__social-link page-footer__tiktok-link" href="https://www.tiktok.com/@envato"><img alt="Tiktok" loading="lazy" width="24px" height="24px" src="https://static.tutsplus.com/packs/static/images/social_tiktok-57b06ff17a284d8a1744.svg" /></a></li><li class="page-footer__follow-us-element"><a class="page-footer__social-link page-footer__facebook-link" href="https://www.facebook.com/envato/"><img alt="Facebook" loading="lazy" width="24px" height="24px" src="https://static.tutsplus.com/packs/static/images/social_facebook-f35494f677e855ad50dd.svg" /></a></li><li class="page-footer__follow-us-element"><a class="page-footer__social-link page-footer__twitter-link" href="https://twitter.com/envato"><img alt="Twitter" loading="lazy" width="24px" height="24px" src="https://static.tutsplus.com/packs/static/images/social_twitter-98772a5169f3f29dd437.svg" /></a></li><li class="page-footer__follow-us-element"><a class="page-footer__social-link page-footer__pinterest-link" href="https://www.pinterest.com.au/envato/"><img alt="Pinterest" loading="lazy" width="24px" height="24px" src="https://static.tutsplus.com/packs/static/images/social_pinterest-c768bee1968ceb51ae43.svg" /></a></li></ul></div></div></div></footer><script defer="defer" src="https://www.google-analytics.com/analytics.js"></script> <noscript> <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=912712196247539&ev=PageView&noscript=1"/> </noscript> <script src="https://static.tutsplus.com/packs/js/lazy_load_third_party_libraries-3f74f88902b8cb9ca575.js" defer="defer"></script></body></html>