<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Zach </title>
    <description>The latest articles on DEV Community by Zach  (@zacharysarette).</description>
    <link>https://dev.to/zacharysarette</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F311841%2Fb3da80b9-211b-453e-8687-d501b3def0b2.png</url>
      <title>DEV Community: Zach </title>
      <link>https://dev.to/zacharysarette</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zacharysarette"/>
    <language>en</language>
    <item>
      <title>How to Automate Unity Builds on your Local Windows Machine</title>
      <dc:creator>Zach </dc:creator>
      <pubDate>Sun, 02 Feb 2025 15:26:41 +0000</pubDate>
      <link>https://dev.to/zacharysarette/how-to-automate-unity-builds-on-your-local-windows-machine-49bg</link>
      <guid>https://dev.to/zacharysarette/how-to-automate-unity-builds-on-your-local-windows-machine-49bg</guid>
      <description>&lt;p&gt;If you have a Windows PC and you want to automate your unity build process, then look no further! &lt;/p&gt;

&lt;p&gt;I will show you how you can make bat files to do this easily.&lt;/p&gt;

&lt;p&gt;Bat files also known as batch scripts are instructions you can run to tell your computer to do things. Almost anything on the command line that you can do, you can do in a bat file.&lt;/p&gt;

&lt;p&gt;To make one is easy. You can open up notebook, write a few commands, and then save it as my_bat_file.bat. Then you can run the file by typing in the path to the file in the command line, or simply double clicking on it.&lt;/p&gt;

&lt;p&gt;If you can run an application process from the command line, you can automate this task in a bat file. &lt;/p&gt;

&lt;h2&gt;
  
  
  Running Unity on the Command Line
&lt;/h2&gt;

&lt;p&gt;Unity lets you run it on the command line giving it arguments. Therefore you can write a batch script automating the build.&lt;br&gt;
Here's an example script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;@echo &lt;span class="na"&gt;off&lt;/span&gt;
&lt;span class="kd"&gt;set&lt;/span&gt; &lt;span class="kd"&gt;projectpath&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"C:\Users\MyUserName\Projects\MyGame"&lt;/span&gt;
&lt;span class="kd"&gt;set&lt;/span&gt; &lt;span class="kd"&gt;buildpath&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"C:\Users\MyUserName\Builds"&lt;/span&gt;
&lt;span class="kd"&gt;set&lt;/span&gt; &lt;span class="kd"&gt;logfilepath&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"C:\Users\MyUserName\UnityBuildLogs\unityOutputLogFileForWebBuild.txt"&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="kd"&gt;Building&lt;/span&gt; &lt;span class="kd"&gt;Unity&lt;/span&gt;
&lt;span class="s2"&gt;"C:\Program Files\Unity\Hub\Editor\6000.0.35f1\Editor\Unity.exe"&lt;/span&gt; &lt;span class="na"&gt;-quit -batchmode &lt;/span&gt;&lt;span class="se"&gt;^
&lt;/span&gt;&lt;span class="na"&gt;-projectPath &lt;/span&gt;&lt;span class="nv"&gt;%projectpath%&lt;/span&gt; &lt;span class="se"&gt;^
&lt;/span&gt;&lt;span class="na"&gt;-executeMethod &lt;/span&gt;&lt;span class="kd"&gt;Builder&lt;/span&gt;.PerformBuild &lt;span class="se"&gt;^
&lt;/span&gt;&lt;span class="na"&gt;-buildPath &lt;/span&gt;&lt;span class="nv"&gt;%buildpath%&lt;/span&gt; &lt;span class="se"&gt;^
&lt;/span&gt;&lt;span class="na"&gt;-logfile &lt;/span&gt;&lt;span class="nv"&gt;%logfilepath%&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;%errorlevel%&lt;/span&gt; &lt;span class="ow"&gt;equ&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="kd"&gt;Build&lt;/span&gt; &lt;span class="kd"&gt;succeeded&lt;/span&gt;&lt;span class="err"&gt;!&lt;/span&gt;
&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="kd"&gt;Build&lt;/span&gt; &lt;span class="kd"&gt;failed&lt;/span&gt;.
&lt;span class="o"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can save this anywhere on your computer. Maybe a projects folder for batch scripts. Give it a useful name like unity_build_for_web.bat&lt;/p&gt;

&lt;p&gt;If you read through it it's not too hard to understand what it does.&lt;br&gt;
The important part is the middle where we call our unity program and give it arguments. &lt;/p&gt;
&lt;h2&gt;
  
  
  Calling a Method in Unity from the command line
&lt;/h2&gt;

&lt;p&gt;In Unity you can call methods from the command line. This method I set up to build the web build. Here's my script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;UnityEditor&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;UnityEngine&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Linq&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Builder&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="c1"&gt;// build for the web!&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;PerformBuild&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Get all command line arguments&lt;/span&gt;
        &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Environment&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetCommandLineArgs&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

        &lt;span class="c1"&gt;// Log the arguments (for debugging purposes)&lt;/span&gt;
        &lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;arg&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;Debug&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Arg: "&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="n"&gt;arg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="c1"&gt;// Assume the eight argument after the Unity executable is the buildPath&lt;/span&gt;
        &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;buildPath&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Length&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"."&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Default to current dir&lt;/span&gt;

        &lt;span class="n"&gt;BuildPlayerOptions&lt;/span&gt; &lt;span class="n"&gt;buildPlayerOptions&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;BuildPlayerOptions&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

        &lt;span class="n"&gt;buildPlayerOptions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scenes&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;EditorBuildSettings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scenes&lt;/span&gt;
            &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scene&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;scene&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scene&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;scene&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToArray&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

        &lt;span class="n"&gt;buildPlayerOptions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BuildTarget&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WebGL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;buildPlayerOptions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;locationPathName&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;buildPath&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="n"&gt;BuildPipeline&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;BuildPlayer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buildPlayerOptions&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can save this as Assets/Editor/Builder.cs&lt;/p&gt;

&lt;p&gt;This should be enough to get you started. You can change the target to whichever target you want.&lt;/p&gt;

&lt;h1&gt;
  
  
  Closing and Reopening Unity
&lt;/h1&gt;

&lt;p&gt;Unity should be closed for this to work. But what if your unity is open and you want to run this script?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;@echo &lt;span class="na"&gt;off&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="kd"&gt;Closing&lt;/span&gt; &lt;span class="kd"&gt;all&lt;/span&gt; &lt;span class="kd"&gt;instances&lt;/span&gt; &lt;span class="kd"&gt;of&lt;/span&gt; &lt;span class="kd"&gt;Unity&lt;/span&gt; &lt;span class="kd"&gt;Forcefully&lt;/span&gt; &lt;span class="kd"&gt;so&lt;/span&gt; &lt;span class="kd"&gt;make&lt;/span&gt; &lt;span class="kd"&gt;sure&lt;/span&gt; &lt;span class="kd"&gt;you&lt;/span&gt; &lt;span class="kd"&gt;have&lt;/span&gt; &lt;span class="kd"&gt;saved&lt;/span&gt;
&lt;span class="c"&gt;:: This line will close all running Unity instances&lt;/span&gt;
&lt;span class="nb"&gt;taskkill&lt;/span&gt; &lt;span class="na"&gt;/F /IM &lt;/span&gt;&lt;span class="kd"&gt;Unity&lt;/span&gt;&lt;span class="err"&gt;.exe&lt;/span&gt; &lt;span class="na"&gt;/T

&lt;/span&gt;&lt;span class="c"&gt;:: This line will also close Unity Hub if it's running&lt;/span&gt;
&lt;span class="nb"&gt;taskkill&lt;/span&gt; &lt;span class="na"&gt;/F /IM &lt;/span&gt;&lt;span class="kd"&gt;UnityHub&lt;/span&gt;&lt;span class="err"&gt;.exe&lt;/span&gt; &lt;span class="na"&gt;/T

&lt;/span&gt;&lt;span class="c"&gt;:: End of script&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="kd"&gt;All&lt;/span&gt; &lt;span class="kd"&gt;Unity&lt;/span&gt; &lt;span class="kd"&gt;instances&lt;/span&gt; &lt;span class="kd"&gt;have&lt;/span&gt; &lt;span class="kd"&gt;been&lt;/span&gt; &lt;span class="kd"&gt;closed&lt;/span&gt;.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save it as something like "close_all_unity_instances.bat"&lt;/p&gt;

&lt;p&gt;And now you want to re-open your unity program so you can continue working on your project, right?&lt;/p&gt;

&lt;p&gt;Simply :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;@echo &lt;span class="na"&gt;off&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="kd"&gt;Opening&lt;/span&gt; &lt;span class="kd"&gt;Unity&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="kd"&gt;MyGame&lt;/span&gt;
&lt;span class="kd"&gt;set&lt;/span&gt; &lt;span class="kd"&gt;projectpath&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"C:\Users\Me\Projects\MyGame"&lt;/span&gt;
&lt;span class="s2"&gt;"C:\Program Files\Unity\Hub\Editor\6000.0.35f1\Editor\Unity.exe"&lt;/span&gt; &lt;span class="na"&gt;-projectPath &lt;/span&gt;&lt;span class="nv"&gt;%projectPath%&lt;/span&gt;
&lt;span class="k"&gt;exit&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save it as open_unity_project.bat&lt;/p&gt;

&lt;p&gt;Simple enough. Notice how we don't feed in the -quit or -batchmode arguments so it opens in regular mode and stays open.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tying it all together
&lt;/h2&gt;

&lt;p&gt;Okay, so now we have three separate scripts we have to run. Why not just put them all together in one big bat file?&lt;/p&gt;

&lt;p&gt;I would argue that you want to keep them separate. They all are self contained tasks.&lt;/p&gt;

&lt;p&gt;Instead, you can make a pipeline for all these tasks with another batch script! We treat each of the previous files as jobs to run. &lt;/p&gt;

&lt;p&gt;Here's what that looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;@echo &lt;span class="na"&gt;off&lt;/span&gt;
&lt;span class="k"&gt;call&lt;/span&gt; &lt;span class="s2"&gt;"C:\Users\Me\Projects\Batch\close_all_unity_instances.bat"&lt;/span&gt;
&lt;span class="k"&gt;call&lt;/span&gt; &lt;span class="s2"&gt;"C:\Users\Me\Projects\Batch\unity_build_for_web.bat"&lt;/span&gt;
&lt;span class="k"&gt;call&lt;/span&gt; &lt;span class="s2"&gt;"C:\Users\Me\Projects\Batch\open_unity_project.bat"&lt;/span&gt;
&lt;span class="nb"&gt;pause&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yo dawg! I heard you like batch scripts. So you can use the call command to call other batch scripts from your batch script.&lt;/p&gt;

&lt;p&gt;You can save this with a useful name like build_my_game_for_web.bat&lt;/p&gt;

&lt;p&gt;And now you can see the power of batch scripting!&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You can use curl to call webhooks to post an update message to slack or discord.&lt;/li&gt;
&lt;li&gt;You can upload your game to itch with a program called butler&lt;/li&gt;
&lt;li&gt;You can zip up your build, rename it with the date and time, and move it into another folder&lt;/li&gt;
&lt;li&gt;You can buy a mini programmable keyboard/controller and program it to run your build at the press of a button.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope this article helped. There are many ways to automate. This is just one way on a Windows machine with bat files. You could use other languages such as Perl or Python. But you don't have to install anything to run bat files on Windows.&lt;/p&gt;

&lt;p&gt;If you want to build on Linux or Mac, look into shell scripting.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;




&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@marvelous?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash" rel="noopener noreferrer"&gt;Marvin Meyer&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/people-sitting-down-near-table-with-assorted-laptop-computers-SYTO3xs06fU?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>unity3d</category>
      <category>automation</category>
      <category>bat</category>
    </item>
    <item>
      <title>Survive A Game Jam, 8 tips</title>
      <dc:creator>Zach </dc:creator>
      <pubDate>Thu, 23 Jan 2020 15:17:48 +0000</pubDate>
      <link>https://dev.to/zacharysarette/survive-a-game-jam-8-tips-1jei</link>
      <guid>https://dev.to/zacharysarette/survive-a-game-jam-8-tips-1jei</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1565700309503-e78580f9f5d8%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1650%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1565700309503-e78580f9f5d8%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1650%26q%3D80" alt="A game arcade room" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Make the Jam Easy
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Estimate Time
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Do you have enough time for the jam? &lt;/li&gt;
&lt;li&gt;Do you have enough time to build the game you have in your head?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Join a Team!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;People you know is best&lt;/li&gt;
&lt;li&gt;People you don't know can be fun&lt;/li&gt;
&lt;li&gt;Requires more communication and planning&lt;/li&gt;
&lt;li&gt;You can do many tasks in parallel&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Go Solo!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Can you do art, sound music and programming?&lt;/li&gt;
&lt;li&gt;Saves time on communication and management&lt;/li&gt;
&lt;li&gt;You might not have time to make all the things&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1482649671545-bc53dcf1ad7c%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1650%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1482649671545-bc53dcf1ad7c%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1650%26q%3D80" alt="A gun with a scope" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Limit Scope
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Animation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;As little as possible&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Mechanics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;One or two.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The best AI is none&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Inputs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;one button game&lt;/li&gt;
&lt;li&gt;point and click&lt;/li&gt;
&lt;li&gt;use standard controls &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Art
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Limit colors&lt;/li&gt;
&lt;li&gt;Make shapes more uniform&lt;/li&gt;
&lt;li&gt;have one style&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Sound
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Have a few sounds to cover what you need.&lt;/li&gt;
&lt;li&gt;keep it short and simple&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Music
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;make a few good simple loops&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Code
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Don't get clever. &lt;/li&gt;
&lt;li&gt;Keep it small and short. &lt;/li&gt;
&lt;li&gt;The best code is no code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1472745433479-4556f22e32c2%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1050%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1472745433479-4556f22e32c2%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1050%26q%3D80" alt="A man reading a book" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Do what you know
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Design
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Don't build things you have to do a lot of research for&lt;/li&gt;
&lt;li&gt;Build things you know in a new way&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use tools you have used before&lt;/li&gt;
&lt;li&gt;Use tools you are good at&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  No Google
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Don't do things you have to Google a lot for. &lt;/li&gt;
&lt;li&gt;Google is for ideas and light debugging&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Use a GDD
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Themes and Limitations
&lt;/h3&gt;

&lt;p&gt;Theme: Water. &lt;br&gt;
Limitation: No text in the game&lt;/p&gt;

&lt;h3&gt;
  
  
  Main Mechanics/ Game Type
&lt;/h3&gt;

&lt;p&gt;Mechanic: swim and collect dirty socks &lt;br&gt;
Type: Point and Click&lt;/p&gt;

&lt;h3&gt;
  
  
  Setting
&lt;/h3&gt;

&lt;p&gt;A friends swimming pool. &lt;/p&gt;

&lt;h3&gt;
  
  
  To Do List
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;main title screen&lt;/li&gt;
&lt;li&gt;timer&lt;/li&gt;
&lt;li&gt;point and click work&lt;/li&gt;
&lt;li&gt;art&lt;/li&gt;
&lt;li&gt;sfx&lt;/li&gt;
&lt;li&gt;music
etc&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1552576949-04e3a68b0a9f%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1600%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1552576949-04e3a68b0a9f%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1600%26q%3D80" alt="A track with the finish line" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Start with the end in mind
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Win Cases
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;What are they?&lt;/li&gt;
&lt;li&gt;How many?&lt;/li&gt;
&lt;li&gt;Why?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Lose Cases
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;What are they?&lt;/li&gt;
&lt;li&gt;How many?&lt;/li&gt;
&lt;li&gt;Are they interesting??&lt;/li&gt;
&lt;li&gt;How does the game handle losing?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Main Game
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Make sure players can quit the game&lt;/li&gt;
&lt;li&gt;Make sure players can access settings&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Main Menu
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Start&lt;/li&gt;
&lt;li&gt;How to Play&lt;/li&gt;
&lt;li&gt;Credits&lt;/li&gt;
&lt;li&gt;Quit&lt;/li&gt;
&lt;li&gt;Please Rate our Game&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Be Lean
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Set up your game's web page first&lt;/li&gt;
&lt;li&gt;Publish the simplest version of your game&lt;/li&gt;
&lt;li&gt;Iterate to the next working build and publish.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. Self Management
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Sleep&lt;/li&gt;
&lt;li&gt;Eat&lt;/li&gt;
&lt;li&gt;Take Breaks&lt;/li&gt;
&lt;li&gt;If you need help, ask&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1527871369852-eb58cb2b54e2%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1489%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1527871369852-eb58cb2b54e2%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D1489%26q%3D80" alt="the world cup trophy" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Win the Jam
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Browser Playable&lt;/li&gt;
&lt;li&gt;Good Banner Image&lt;/li&gt;
&lt;li&gt;Don't skip the music!&lt;/li&gt;
&lt;li&gt;Consistent art style&lt;/li&gt;
&lt;li&gt;Test your builds!&lt;/li&gt;
&lt;li&gt;Make it Juicy&lt;/li&gt;
&lt;li&gt;Ask for a rating!&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gamejam</category>
      <category>gamedev</category>
    </item>
  </channel>
</rss>
