<?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: Yashar Dabiran</title>
    <description>The latest articles on DEV Community by Yashar Dabiran (@yshrdbrn).</description>
    <link>https://dev.to/yshrdbrn</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%2F393133%2F6c7c15ae-0872-482f-9440-078f3ea5acbe.jpeg</url>
      <title>DEV Community: Yashar Dabiran</title>
      <link>https://dev.to/yshrdbrn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yshrdbrn"/>
    <language>en</language>
    <item>
      <title>The Best Game I've Ever Made</title>
      <dc:creator>Yashar Dabiran</dc:creator>
      <pubDate>Fri, 22 May 2020 20:38:06 +0000</pubDate>
      <link>https://dev.to/yshrdbrn/the-best-game-i-ve-ever-made-3a1p</link>
      <guid>https://dev.to/yshrdbrn/the-best-game-i-ve-ever-made-3a1p</guid>
      <description>&lt;h2&gt;
  
  
  Background Story
&lt;/h2&gt;

&lt;p&gt;When I took the Introduction to Game Development course in Fall 2019, I had no idea I would be making a game with this complexity. Thanks to the course format, my team and I were free to choose whatever we wanted to make so we came up with an ambitious idea.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is this game?
&lt;/h2&gt;

&lt;p&gt;It is called Catastrophe, and it's an online multiplayer third-person shooter that revolves around "capture the flag" game mode idea.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dPDWs1V3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9a2iveuul7og9jaxcrhs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dPDWs1V3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9a2iveuul7og9jaxcrhs.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are three teams in the game. The first team that takes the flag and brings it to their base is the winner.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VRdHFEP3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gh5xwtkmh46uj18va649.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VRdHFEP3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gh5xwtkmh46uj18va649.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Check it out!
&lt;/h2&gt;

&lt;p&gt;Here are the links to the game's website:&lt;br&gt;
&lt;a href="https://luna-interactive.herokuapp.com/"&gt;https://luna-interactive.herokuapp.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and the GitHub repo:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vWogaON8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-28d89282e0daa1e2496205e2f218a44c755b0dd6536bbadf5ed5a44a7ca54716.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Luna-Interactive"&gt;
        Luna-Interactive
      &lt;/a&gt; / &lt;a href="https://github.com/Luna-Interactive/catastrophe"&gt;
        catastrophe
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Bring it home!
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Catastrophe&lt;/h1&gt;
&lt;p&gt;Catastrophe is an online multiplayer tactical shooter developed by Luna Interactive where the first team (of three) to capture the flag and return it to their base wins.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://luna-interactive.herokuapp.com/" rel="nofollow"&gt;https://luna-interactive.herokuapp.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Bring it home!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
Table of Contents&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/Luna-Interactive/catastrophe/develop/#development-team"&gt;Development Team&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/Luna-Interactive/catastrophe/develop/#installation"&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/Luna-Interactive/catastrophe/develop/#reporting-a-bug"&gt;Reporting a Bug&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/Luna-Interactive/catastrophe/develop/#requesting-a-feature"&gt;Requesting a Feature&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/Luna-Interactive/catastrophe/develop/#contributing"&gt;Contributing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/Luna-Interactive/catastrophe/develop/#credits"&gt;Credits&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
Development Team&lt;/h2&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Member&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;th&gt;@GitHub&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Corentin Artaud&lt;/td&gt;
&lt;td&gt;Lead Programmer&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/corentinartaud"&gt;@corentinartaud&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gabriel Noriega&lt;/td&gt;
&lt;td&gt;QA Lead&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/gnoriega27"&gt;@gnoriega27&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hongbo Liu&lt;/td&gt;
&lt;td&gt;Art Director&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/i5un"&gt;@i5un&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lyonel Zamora&lt;/td&gt;
&lt;td&gt;Music &amp;amp; SFX Lead Designer&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/lyonelz96"&gt;@lyonelz96&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Miguel Jimenez&lt;/td&gt;
&lt;td&gt;Project Manager&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/mjimenez98"&gt;@mjimenez98&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Steven Zanga&lt;/td&gt;
&lt;td&gt;Lead Gameplay Programmer&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/stevau5"&gt;@stevau5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yashar Dabiran&lt;/td&gt;
&lt;td&gt;Lead Backend Programmer&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/yshrdbrn"&gt;@yshrdbrn&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
Installation&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Install Unity Hub.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install Unity 2018.4.11&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Clone the repo using your preferred method.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;HTTPS:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/Luna-Interactive/catastrophe.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;SSH:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone git@github.com:Luna-Interactive/catastrophe.git
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="4"&gt;
&lt;li&gt;
&lt;p&gt;On Unity Hub, go to &lt;code&gt;Projects -&amp;gt; Add&lt;/code&gt; and select the directory you chose when cloning the repo.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open the project.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
Reporting a Bug&lt;/h2&gt;
&lt;p&gt;If you found something that should not have happened while you were…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Luna-Interactive/catastrophe"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How hard was to it build?
&lt;/h2&gt;

&lt;p&gt;We built the game using the Unity game engine. For the multiplayer part, we were searching for a framework that was relatively easy to use (because of our time constraints) and was performant enough for a shooter, so we picked &lt;a href="https://www.photonengine.com/bolt"&gt;Photon Bolt&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My main contribution was to integrate our logic with Bolt and synchronize the data between the players. As it turns out, developing a multiplayer game is not as easy as writing &lt;code&gt;multiplayer_framework.MakeGameMultiplayer()&lt;/code&gt;! I spent lots of hours fixing synchronization issues that constantly came up.&lt;/p&gt;

&lt;p&gt;Thanks to my well-organized team, we had so many playtests that by the time we presented the game to our class, it had no issues in the 10 minutes we demoed it live.&lt;/p&gt;

&lt;h2&gt;
  
  
  What did I learn during this project?
&lt;/h2&gt;

&lt;p&gt;Coding-related stuff aside, I learned that making a multiplayer game is hard! After going through all sorts of troubles to just make our game playable, I'm starting to appreciate all the hard work that has gone into developing multiplayer shooters like Fortnite and Apex Legends. I hope I can be part of one someday!&lt;/p&gt;

</description>
      <category>octograd2020</category>
    </item>
  </channel>
</rss>
