<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7577405488165152910</atom:id><lastBuildDate>Mon, 08 Dec 2025 16:13:54 +0000</lastBuildDate><category>commentary</category><category>Guild Wars 2</category><category>guides</category><category>game development</category><category>homeproject</category><category>unity</category><category>WoW</category><category>Guild Wars</category><category>SWTOR</category><category>game design</category><category>City of Heroes</category><category>ffxivarr</category><category>lore</category><category>personal</category><category>Defiance</category><category>Neverwinter</category><category>transmog</category><category>Diablo III</category><category>Living Story</category><category>Tera</category><category>Warlords of Draenor</category><category>blade and soul</category><category>hearthstone</category><category>seasonal</category><category>Atomic City</category><category>Destiny</category><category>Devilian</category><category>Dragon Age Inquisition</category><category>Rogue</category><category>The Division</category><category>Xbox One</category><category>exercise</category><category>indie</category><title>Of Course I&#39;ll Play It</title><description>A blog about gaming and game development.</description><link>http://ofcourseillplayit.blogspot.com/</link><managingEditor>noreply@blogger.com (Dusty Monk)</managingEditor><generator>Blogger</generator><openSearch:totalResults>117</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-1226594716020018997</guid><pubDate>Fri, 16 Sep 2016 18:35:00 +0000</pubDate><atom:updated>2016-09-16T13:35:40.995-05:00</atom:updated><title>Moving to Facebook</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdfkfL_tB1h9K65Z6Mv98T-TbPiNGMrvB6u5tXFkuEk39g8RRU_HXrIODDL6QT-CSBYrl9vBICwAf4A71gcS1hohnrP172VROvvwd7gid6101wVvhcyQjYAsr1o6vzNwrIrfvKbO8bylSg/s1600/Beastmaster.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;618&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdfkfL_tB1h9K65Z6Mv98T-TbPiNGMrvB6u5tXFkuEk39g8RRU_HXrIODDL6QT-CSBYrl9vBICwAf4A71gcS1hohnrP172VROvvwd7gid6101wVvhcyQjYAsr1o6vzNwrIrfvKbO8bylSg/s640/Beastmaster.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
OHAI there! Well as you can see, I&#39;ve pretty much abandoned the blogger blog. Actually, for the past six months I&#39;ve pretty much abandoned blogging altogether. Why? Honestly just too busy playing games and making them to spend a lot of time writing about them. And when I do have time to write, I&#39;ve been more interested in writing speculative fiction than game blogs. &lt;br /&gt;
&lt;br /&gt;
But that&#39;s how people are, people&#39;s desires, tastes, and interests change all the time. And what I find compelling right now may not interest me in the slightest tomorrow. &lt;br /&gt;
&lt;br /&gt;
However though, for the last six months I have still been really active in sharing my gaming activity - I just to it largely through social media now, rather than formal written blogs. So Facebook, Twitter, and Instagram have become my vehicles of choice. Not Google Plus - that platform I think is not long for this world, and I have certainly left it behind. &lt;br /&gt;
&lt;br /&gt;
But I am still sharing, mostly on twitter, and somewhat on Facebook. But there have been a few recent changes in the industry of late that have sort of sparked my interest in using Facebook as a social gaming platform. So to that effect, I&#39;ve created a new Facebook Gaming Page. It&#39;s called, imaginatively enough - Gaming with Dusty. And I am going to experiment with using that as sort of my central repository for sharing al things gaming and game development. And maybe even speculative fiction as well.&lt;br /&gt;
&lt;br /&gt;
So if you&#39;re search has landed you here, and you&#39;re thinking &quot;Well crap.. another dead blog..&quot; well you&#39;re right. But if you still want to engage, please follow me over to FB and/or twitter, and engage away! I look forward to seeing you! &lt;br /&gt;
&lt;br /&gt;
Here are the deets. &lt;br /&gt;
&lt;br /&gt;
The FB page can be found here:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.facebook.com/DustyGames/&quot;&gt;https://www.facebook.com/DustyGames/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
And of course, you can always find me on twitter.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://twitter.com/dusty_Monk&quot;&gt;https://twitter.com/dusty_Monk&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Cheers, and see you soon!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2016/09/moving-to-facebook.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdfkfL_tB1h9K65Z6Mv98T-TbPiNGMrvB6u5tXFkuEk39g8RRU_HXrIODDL6QT-CSBYrl9vBICwAf4A71gcS1hohnrP172VROvvwd7gid6101wVvhcyQjYAsr1o6vzNwrIrfvKbO8bylSg/s72-c/Beastmaster.JPG" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-8622787749752023242</guid><pubDate>Wed, 06 Apr 2016 13:48:00 +0000</pubDate><atom:updated>2016-04-06T08:48:09.703-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">commentary</category><category domain="http://www.blogger.com/atom/ns#">The Division</category><title>Story in The Division</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCmEI25OlbtZCnqSWlS5fCYFmW2AhXuzJVEcwprTEIl4BBTsxxNwETTcIWRiyVhk6t3YTYe9_S30uxTvSKiPS_EiZxbpOoiuq5xIcsssfWC_YmsM_MayytU1TMB3pynXP96n8KiShHANi8/s1600/Wed_Apr_6_07-25-06_CDT_2016.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCmEI25OlbtZCnqSWlS5fCYFmW2AhXuzJVEcwprTEIl4BBTsxxNwETTcIWRiyVhk6t3YTYe9_S30uxTvSKiPS_EiZxbpOoiuq5xIcsssfWC_YmsM_MayytU1TMB3pynXP96n8KiShHANi8/s640/Wed_Apr_6_07-25-06_CDT_2016.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Haven&#39;t blogged in awhile, but if you follow me on Twitter, then you know I&#39;ve been pretty much playing &lt;i&gt;Tom Clancy&#39;s The Division &lt;/i&gt;since it launched. I&#39;ve finished the main story, reached the max level, and only have a single zone of collectibles left to gather. Now that I&#39;m just sort of doing the daily gear progression thing, I wanted to take a bit and talk about the story of The Division - what I think worked, and what could have been better. I haven&#39;t seen a whole lot of commentary on The Division&#39;s story, but what I have seen has been mostly negative. And I wanted to talk about that, because I&#39;m not entirely sure the game is getting credit where credit may be due.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Spoiler Warning&lt;/b&gt;&lt;br /&gt;
Let&#39;s get this out of the way right up front - I&#39;m assuming that if you&#39;re reading this, you&#39;ve finished the main story, and have completed all of the story missions. There will be spoilers for that content ahead, so if you&#39;re worried about reveals, please come back when you&#39;re at the end.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;They Care&lt;/b&gt;&lt;br /&gt;
To start with, I can say this about Ubisoft without doubt - they care about their story. Whether you thought it was weak or it was strong, at least the story is told out through segments, clips, and elements that are &lt;i&gt;in the game&lt;/i&gt;. No sending you to a website to make you learn the story. If a developer takes the tact that &quot;the people that care about the story will go to the website to read it&quot;, it tells me they don&#39;t care about their story either. And if the developer doesn&#39;t care, why should I? Ubisoft&#39;s delivery is done over multiple layers, and whether you choose to see it, listen to, it, or pay attention to it &amp;nbsp;is entirely you, but at least it&#39;s there for you to experience.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmP65w9sopiGNye7afmWzKcIEiRIVfeBKO0NjNPWostnRCownQx2Iol25wcEpaI-Jg7fp0gfRlPGeMWJqy3fVSdrSj_N7UWW6VpjuXbkS5FXAxKsBqHk9bqcNogsvqiBwJuZw9aOPUi_c5/s1600/Wed_Apr_6_07-26-05_CDT_2016.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmP65w9sopiGNye7afmWzKcIEiRIVfeBKO0NjNPWostnRCownQx2Iol25wcEpaI-Jg7fp0gfRlPGeMWJqy3fVSdrSj_N7UWW6VpjuXbkS5FXAxKsBqHk9bqcNogsvqiBwJuZw9aOPUi_c5/s320/Wed_Apr_6_07-26-05_CDT_2016.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;The Story that Was, and the Story that Is&lt;/b&gt;&lt;br /&gt;
So if you look at the story elements overall for the game, the story can be broken down into two sort of main subsections. First, there is the story of your agent, and what they find out, as you progress through the game. It&#39;s your character&#39;s story, told through voice over, cinematic clips, and a variety of intelligence reports you receive, listen to, and experience as you progress through the game. And it&#39;s this story, I think that most people refer to when they say the story is weak - and for the most part I tend to agree. I think in terms of the main story, Ubisoft missed on some fantastic opportunities. What happened to the first wave of Division Agents? How did the virus get started? Can an antidote be &amp;nbsp;found? &amp;nbsp;The premise of The Division is incredibly relatable, and there are some very cool questions posed. &amp;nbsp;But the answers that you discover to all these questions (and they are answered), felt, at least to me, flat. While I started off full of curiosity, as each part of the story was unveiled, I only felt disappointment in the answer. Not that the answers weren&#39;t sufficient - they were. But the answers were, for lack of a better word - just mundane. And yeah I get it the real-world answers to a national epidemic might be just as simple as the one presented here - but why &lt;i&gt;not&lt;/i&gt; make it more interesting?&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWOkvLiYvQGPLh_qtSrEdzmHfRDOJYN_jl700vVlsSmOxn8w0vUxL7rT1Dq4YfqVuvdZdlQp4lHKaMoL-YsksSc-34muklRJk4zqlTQc09wEMKEb2WJ8elDV2YmbG8f2oZtdH_Kkz33rqo/s1600/Wed_Apr_6_07-24-38_CDT_2016.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWOkvLiYvQGPLh_qtSrEdzmHfRDOJYN_jl700vVlsSmOxn8w0vUxL7rT1Dq4YfqVuvdZdlQp4lHKaMoL-YsksSc-34muklRJk4zqlTQc09wEMKEb2WJ8elDV2YmbG8f2oZtdH_Kkz33rqo/s320/Wed_Apr_6_07-24-38_CDT_2016.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;You&#39;re Not Part of the Story&lt;/b&gt;&lt;br /&gt;
However though, my biggest complaint with the central story isn&#39;t so much the content itself - that&#39;s pretty subjective and I get it. But rather, it&#39;s that your character isn&#39;t really a part of it. Why are Bioware&#39;s game stories so darn compelling? Well a huge part of the reason is that your character is woven directly into the fabric of the story. The game is about you. In Dragon Age Inquisition, you&#39;re the goddamn Inquisitor! You literally sit in judgement meting out death or mercy, and your decisions directly affect the flow of the narrative. And even in a more linear game like Tomb Raider, the story is still centrally about your character - you&#39;re actively involved in the story in every step of the way. In The Division - you&#39;re just an agent - one of many. And in almost every situation, you are not affecting the story, you are just witnessing it. You get there to learn what has already happened. You arrive after the fact, when it&#39;s too late to do anything, and you just report back what occured. Your sole contribution in most cases is picking up a few pieces of evidence or biological samples along the way, and taking out a few notable troublemaking NPCs. And hell even in the end, you don&#39;t quite accomplish that mission. &amp;nbsp;As a result of this, the entire central story feels more passive than active.&lt;br /&gt;
&lt;br /&gt;
I don&#39;t fault the delivery methods of the story, just my character&#39;s participation in it. Why isn&#39;t our agent in charge of The Division? Why aren&#39;t we even in charge of the base of operations that we set up? Why isn&#39;t my character making the decisions (even if I, the player, am not) that are driving the narrative forward, or at least directly affected by the narrative? I hope going forward with the story (and let&#39;s face it, after the &quot;end&quot;, it&#39;s clear the story experienced so far is only just the first chapter), that your agent becomes a more central figure to the story itself, and what plays out, rather than a late-to-the-party reporter of what has already happened.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoCGHIjdvy1Vht3N0bZjGBR5k-LWeOT8tvni2BtRZYvpLSKry8iIxR0i6S_2XVpQldjgUesocsNwZEjf3Qu2nJpyqoRQUdWVGxbMFnkBfvLExTa0VrNw3PBQOo85cCOMUHW61tCd6Naapl/s1600/Wed_Apr_6_07-27-35_CDT_2016.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoCGHIjdvy1Vht3N0bZjGBR5k-LWeOT8tvni2BtRZYvpLSKry8iIxR0i6S_2XVpQldjgUesocsNwZEjf3Qu2nJpyqoRQUdWVGxbMFnkBfvLExTa0VrNw3PBQOo85cCOMUHW61tCd6Naapl/s320/Wed_Apr_6_07-27-35_CDT_2016.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;The Story that Was&lt;/b&gt;&lt;br /&gt;
The other half of the story that you experience as you play The Division is the back story. The story of the spread of the virus, and most importantly, of &amp;nbsp;the people that were caught up in it. You learn this story through the phone recordings, the field reports, and side missions. And I have to say - I thought this story was fantastic. The best stories - the most relatable ones, are the ones about people. And that is what you experience. You are given view into some very personal and private moments of people struggling to deal with an impossible situation, and it is incredibly compelling. The voice-over work done in the phone recordings is superb. In truth, I found myself caring far more about the people I learned about through those phone recordings than I did for most any of the story&#39;s central characters. The father who&#39;s son calls him frantic, with men breaking into their house, urgently telling his boy to find their gun, before getting cut off. The creepy ex-boyfriend who&#39;s broken out of prison, trying to stalk his ex-girlfriend down. The young college student who keeps sending messages back to his brother, who slowly turns to a very Lord of the Flies style life of barbarism. All of these stories were interesting, and compelling, and listening to them made me &lt;i&gt;feel&lt;/i&gt;. &amp;nbsp;And that, in the end, is what a story-teller wants to happen.&lt;br /&gt;
&lt;br /&gt;
The only downside, is that this story is delivered in an incredibly disjointed fashion, in bits and pieces, as you pick up the various collectibles. I&#39;m not sure how you would solve this problem any other way, to be honest, and I&#39;m not even entirely sure it&#39;s a downside, as the fragmented way you get the story leaves gaps and questions, which in itself is interesting. But it does make it more difficult to put the narrative together. And to that end, I think Ubisoft made entirely the right call, by revealing all the collectibles in a zone after you&#39;ve finished the missions, side missions, and encounters. They&#39;re saying - we hope you found the pieces of the story you experienced so far interesting enough, and if you did, here is where you go to find the rest. Which, is exactly what I&#39;m doing. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLtf51Llrx3vmTTgq7WoE0JNmKhk5UKJPRfB45dk7pMXCI4KmFYgCfEjr_Xwn5cOymfTzB2EVIewTrkKXp4xFmUAionq9c6kPZc4Ax4ZU9W80qIq-Zs95Iba8P794nFkR45qFfHBWla9_C/s1600/Wed_Apr_6_07-21-44_CDT_2016.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLtf51Llrx3vmTTgq7WoE0JNmKhk5UKJPRfB45dk7pMXCI4KmFYgCfEjr_Xwn5cOymfTzB2EVIewTrkKXp4xFmUAionq9c6kPZc4Ax4ZU9W80qIq-Zs95Iba8P794nFkR45qFfHBWla9_C/s320/Wed_Apr_6_07-21-44_CDT_2016.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;The Environment&#39;s Story&lt;/b&gt;&lt;br /&gt;
One of my favorite ways for developers to tell a story is not by telling you, through text or voice over, but by just showing you, through the environment. Not a lot of developers can afford this route, because lets face it, building a compelling scene is just straight up more expensive than writing some quest text. But for those that do, I think it adds tons to the immersion in the game. Sometimes the best story is one that just asks questions, without always answering them. The writers of &lt;i&gt;Lost&lt;/i&gt; used this method to string their audience along for years. &lt;br /&gt;
&lt;br /&gt;
In The Division, they do this in spades, which again I think is incredible. Not just the in-game echos, which is an interesting way to deliver a narrative, but if you look around after you disable the echo, you almost always find the left over real-world evidence of what happened in the echo. A crumpled body; blood stained and bullet-riddled walls; a smashed guitar that was used to clobber &amp;nbsp;a raider over the head. And even beyond the echoes, just in the world in general, if you stop, to look around, you&#39;ll see all manner of incredibly cool, unique scenes that ask questions. What&#39;s up with the rat-shrine? What happened to those JTF agents? Why did she end up playing the piano under an overpass? But to experience those stories, the onus is on the player. You have to stop, slow down, and look around from time to time.&lt;br /&gt;
&lt;br /&gt;
If you haven&#39;t done this yet, once your base is mostly or completely finished, do yourself a favor and go down to the far end, past all the vendors. You&#39;ll be rewarded with a story of people coming together in a terrible situation. Of people trying to find a little normalcy in a crisis by decorating a small Christmas tree. Friends giving each other solace while sitting on a bunk bed, and other people gathered around the sole working TV watching an old movie. It&#39;s very cool, and very humbling, and told entirely without a single bit of text or voice over.&lt;br /&gt;
&lt;br /&gt;
You have but to slow down, and listen, and you will see some amazing sights in the streets of New York.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Mirror&#39;s Edge Catalyst&lt;/i&gt; comes out soon, and I&#39;ll be departing the streets of New York almost assuredly to run, jump, and wall climb Faith through the streets of that other metropolis. Until then, you can still find me cleaning out Cleaners and putting Riker&#39;s away most nights. I&#39;m still having fun, and hope you are in whatever world you find yourself in.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaZNulbDuF9GWvc2HEaP7dKgZI8eLJCXOxfpR4_3mqdJozgdXsgbDSIk7aQ-Pz3WwRozhNjO1qPe68YlkQYCwIrNj2vvKY9oDsyLGp7ojh9MpZQTz1y82zHAwgjEi6zFlk7Xfnu0BqGlXo/s1600/Wed_Apr_6_07-22-36_CDT_2016.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaZNulbDuF9GWvc2HEaP7dKgZI8eLJCXOxfpR4_3mqdJozgdXsgbDSIk7aQ-Pz3WwRozhNjO1qPe68YlkQYCwIrNj2vvKY9oDsyLGp7ojh9MpZQTz1y82zHAwgjEi6zFlk7Xfnu0BqGlXo/s640/Wed_Apr_6_07-22-36_CDT_2016.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2016/04/story-in-division.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCmEI25OlbtZCnqSWlS5fCYFmW2AhXuzJVEcwprTEIl4BBTsxxNwETTcIWRiyVhk6t3YTYe9_S30uxTvSKiPS_EiZxbpOoiuq5xIcsssfWC_YmsM_MayytU1TMB3pynXP96n8KiShHANi8/s72-c/Wed_Apr_6_07-25-06_CDT_2016.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-6117420062946426879</guid><pubDate>Wed, 03 Feb 2016 14:05:00 +0000</pubDate><atom:updated>2016-02-03T08:31:03.757-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">blade and soul</category><category domain="http://www.blogger.com/atom/ns#">commentary</category><title>Blade and Soul - Ups and Downs</title><description>&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidhXD6CwvJzBALOsw_82c8wI7JMOcNbr1RxLZQcy8FuP6woVAapCP0kD91cKEKOyc7gqzA_0KQmOdq9bVcnfMsp5yhRDZ40g4WlpgbT51EGGALOn4HlVQnW1j3leJJmYtsBCFQ6ypWD2oI/s1600/Client_2016_02_01_00_27_49_752.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidhXD6CwvJzBALOsw_82c8wI7JMOcNbr1RxLZQcy8FuP6woVAapCP0kD91cKEKOyc7gqzA_0KQmOdq9bVcnfMsp5yhRDZ40g4WlpgbT51EGGALOn4HlVQnW1j3leJJmYtsBCFQ6ypWD2oI/s640/Client_2016_02_01_00_27_49_752.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I&#39;ve never been very good at spending my free time on more than one general activity at a time. Whether it be working on a game development project, playing my MMO de jour, or something that&#39;s caught my eye on the console, typically I tend to only focus on one thing, though I have been known to shift about pretty quickly. &amp;nbsp;And if you follow me on twitter at all, you know that for me, for the last several weeks, that&#39;s been Blade and Soul. So what&#39;s keeping me in the game?&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeg-C5KxGAym0xdUbzuZl6SySG9SitNlWNYEc_Qms2WtBcecypX05wfCkMyMHR7na12VuRw2RVvhLEZdfpKrJAOn74cTKIBJaecrGXgP4VgpRG0gnnDns2ZxzyxC2maCWVNnPUP5wnSHjX/s1600/Client_2016_01_16_15_24_05_686.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeg-C5KxGAym0xdUbzuZl6SySG9SitNlWNYEc_Qms2WtBcecypX05wfCkMyMHR7na12VuRw2RVvhLEZdfpKrJAOn74cTKIBJaecrGXgP4VgpRG0gnnDns2ZxzyxC2maCWVNnPUP5wnSHjX/s400/Client_2016_01_16_15_24_05_686.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Beautiful Game&lt;/b&gt;&lt;/div&gt;
Aesthetics are really important to me, and Blade and Soul has them in spades. And no, I don&#39;t just mean the boob physics! (though yes, they do have that as well - it is after all a Korean game) The world itself though is gorgeous. They combine a strong art direction with a bright palette and thoughtful eye towards zone layout to create a combined experience that is overall very pleasing.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Satisfying Combat&lt;/b&gt;&lt;br /&gt;
If there&#39;s anything that you want to get right in an MMO, its your combat mechanics. And I think Blade and Soul has done a fantastic job in this area. By using contextual abilities, tight animations, and a mix of both defensive and offensive maneuvers, they&#39;ve built a combat system where not only do choices in your build system matter, but so does player execution. Of course, proper rotation execution is important in any MMO, but in Blade and Soul it&#39;s not just the order of operations, but the timing of those operations as well that&#39;s key, as well as proper reactions. Sometimes when I&#39;m doing a quest that just has me running around wantonly slaying monsters, I turn off the UI just so I can more fully appreciate the experience.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;https://www.youtube.com/embed/W33DOgIvQgE&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Easy to Group&lt;/b&gt;&lt;br /&gt;
Something that has really become important to me more recently is a game&#39;s ability to form ad-hoc groups for group content. Less and less am I willing to get tied to any particular social structure for a particular game - I&#39;m just to likely to move from game to game, and I don&#39;t want a guild tying me down. But I do want to participate in the group content. So a game&#39;s ability to find pick up groups, and the quality of those groups, is really important. And this is something Blade and Soul does exceptionally well. They have an ad-hoc party finder for finding a group for just about any quest or minor dungeon on your server, and for all off the major dungeons they offer cross-server matchmaking. And they provide cross server matchmaking for their PvP arenas as well.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx1sDi7KeUqJkSJcuhFooN1lWeO2tm-dVSkZwmaUnNr7igE91dmnyMMlcHdrdA1UpoEcIGwOmy4MoJ0wJLoQdice4thJuP1KQibhn1v8MTIFY4VapnJGwCx41N4-t3HCvG9G37kFR0kl0Z/s1600/Client_2016_01_16_00_07_12_414.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx1sDi7KeUqJkSJcuhFooN1lWeO2tm-dVSkZwmaUnNr7igE91dmnyMMlcHdrdA1UpoEcIGwOmy4MoJ0wJLoQdice4thJuP1KQibhn1v8MTIFY4VapnJGwCx41N4-t3HCvG9G37kFR0kl0Z/s400/Client_2016_01_16_00_07_12_414.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
This, combined with the soft role designation off their classes, means you rarely have to wait long to find a group for any group content. And the way their dungeons and mechanics are built, rarely does it take longer than 10 to 15 minutes to run a dungeon. I love this! And the fact that they offer daily rewards for just about every dungeon in the game, means you can easily level by just running dungeons, or PvP, or questing - depending on your playstyle preferences.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Not So Good&lt;/b&gt;&lt;br /&gt;
But everything isn&#39;t necessarily all lilies and sunflowers in the land of the East. There are definitely some aspects of the game that, as I&#39;ve gotten further into it, I find less appealing.&lt;br /&gt;
&lt;br /&gt;
I&#39;m definitely not a fan of their crafting. Despite participating in four professions - two gathering, and two crafting jobs, it feels very shallow, and even though I&#39;m level 38 now, and have been crafting since I was level 16, I&#39;ve yet to make anything that I thought was even a little bit useful. And I chose weaponforging and jewelry making as my professions! Crafting is at least starting to produce things that can bring a tiny bit of coin on the market, but overal, it&#39;s been a massive let down. Certainly no where near as good as the comprehensive jobs of Final Fantasy IV, or what Guild Wars 2 offers.&lt;br /&gt;
&lt;br /&gt;
I&#39;m also still on the fence about their itemization. The way it works, pretty much everyone&#39;s gear improves in exactly the same way. &amp;nbsp;Every class uses exactly one weapon, and everyone in my class will have the exact same weapon that I do. The only variation between one Blademaster&#39;s weapon and another is how far along the weapon improvement path they&#39;ve gotten. You can change your weapon&#39;s appearance, so at least they don&#39;t all look the same, but there&#39;s really no room for deviation from the path, or choice. The same applies to your stats gear - the soul shields. For any particular level range, there is a &quot;best&quot; soul shield for your class - usually the one dropped in the most recent epic dungeon. You equip all the pieces of that shield, and you use it until you get to the next epic dungeon. There is a little more room for specialization here, as you might take a defensive set over an offensive set, but again, it just doesn&#39;t feel good. I find I like having my stats on my gear. And even SWTOR&#39;s itemization - where all your stats live in mods that you slot into your gear, felt a little more intuitive than this system.&lt;br /&gt;
&lt;br /&gt;
Overall though, I&#39;m still quite enjoying the game. I&#39;m currently level 38, and at least currently plan on playing until I get to the current level cap, which is 45. There is new content coming out next week, as well as some very welcome class balance changes. &amp;nbsp;I don&#39;t often play PvP, but when I do, my poor Blademaster gets pretty much wrecked by everyone else.&lt;br /&gt;
&lt;br /&gt;
Until next time - enjoy your game, whatever it is!&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;OH and XCom2 next week! At least one BnS player I know says he will be dropping this game like yesterday&#39;s pajamas to play that when it hits the digital shelves. Will you?&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiusSzU_kOfaw-9J6Gc7sIJBE0YQBC_rcdjctNbqN6ADmIZKjCWfNliXmIHdQ3_tDV2R3Zq80t4w2z5tp3-_BGJEEKmjOyDRzH16LGI_-uKhYc2aoYzdRUTRSNCIInk153uox4-SFO4tgEq/s1600/Client_2016_01_17_22_40_50_514.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiusSzU_kOfaw-9J6Gc7sIJBE0YQBC_rcdjctNbqN6ADmIZKjCWfNliXmIHdQ3_tDV2R3Zq80t4w2z5tp3-_BGJEEKmjOyDRzH16LGI_-uKhYc2aoYzdRUTRSNCIInk153uox4-SFO4tgEq/s640/Client_2016_01_17_22_40_50_514.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;</description><link>http://ofcourseillplayit.blogspot.com/2016/02/blade-and-soul-ups-and-downs.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidhXD6CwvJzBALOsw_82c8wI7JMOcNbr1RxLZQcy8FuP6woVAapCP0kD91cKEKOyc7gqzA_0KQmOdq9bVcnfMsp5yhRDZ40g4WlpgbT51EGGALOn4HlVQnW1j3leJJmYtsBCFQ6ypWD2oI/s72-c/Client_2016_02_01_00_27_49_752.jpg" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-8595842514919289842</guid><pubDate>Sat, 23 Jan 2016 23:57:00 +0000</pubDate><atom:updated>2016-01-23T17:57:56.756-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">blade and soul</category><category domain="http://www.blogger.com/atom/ns#">guides</category><title>Blade and Soul Beginners Guide - an Overview</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHfQnCseK763r4KNcKgqWbL2c_n4jTxkEkTeE0uQko8JUqqp_xMqmHvr7HjEJHQnDyK7Jls8khAX3NtSPdGUhzAZFnq9snCw8UORlkqNyEoe68Ifm39tiukbAouvB840npNvlWnfiDFwJ-/s1600/Client_2016_01_19_23_00_45_510.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHfQnCseK763r4KNcKgqWbL2c_n4jTxkEkTeE0uQko8JUqqp_xMqmHvr7HjEJHQnDyK7Jls8khAX3NtSPdGUhzAZFnq9snCw8UORlkqNyEoe68Ifm39tiukbAouvB840npNvlWnfiDFwJ-/s640/Client_2016_01_19_23_00_45_510.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So I started the new year off saying I&#39;d try to deliver more video content for Of Course I&#39;ll Play It, and here it is practically the end of January, and I haven&#39;t done a thing yet. Well part of the reason for that is I&#39;ve been spending just about all of my free time playing Blade and Soul! I&#39;m having a blast of a time in the game, and I&#39;ve had more than a few people ask me what I thought and if I thought they&#39;d like it. So in answering that question, as well as talking about Blade &amp;amp; Soul&#39;s sort of base mechanics, I thought I&#39;d put together a general sort of beginner&#39;s guide. This will hopefully answer most of the questions I know I had when I first started the game, as well as help you decide if you think the game is something you would enjoy.&lt;br /&gt;
&lt;br /&gt;
So check the video below, enjoy the guide, and please let me know in the comments if I should do more videos like this, or just stick to the written word and pretty pictures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;360&quot; src=&quot;https://www.youtube.com/embed/sCY0_2KXQgs&quot; width=&quot;640&quot;&gt;&lt;/iframe&gt;

&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2016/01/blade-and-soul-beginners-guide-overview.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHfQnCseK763r4KNcKgqWbL2c_n4jTxkEkTeE0uQko8JUqqp_xMqmHvr7HjEJHQnDyK7Jls8khAX3NtSPdGUhzAZFnq9snCw8UORlkqNyEoe68Ifm39tiukbAouvB840npNvlWnfiDFwJ-/s72-c/Client_2016_01_19_23_00_45_510.jpg" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-4672078565457260760</guid><pubDate>Mon, 04 Jan 2016 03:02:00 +0000</pubDate><atom:updated>2016-01-03T21:02:04.232-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">commentary</category><title>New Year&#39;s Resolutions!</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUSrcRnSfMKe9Nr1T1JEuRxb7izN4aoAmM4wBnI5RZ4rFpblvjroOHAv8P6lhfmZVkplpV7CynRI0psfYFDpCdcjrMrgUSZEtcqG5Yv0GLDgUqNtCrZuX3mTm_Au-Qn5mX0SHHUJwCCWSt/s1600/Client_2015_12_21_10_05_02_085.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUSrcRnSfMKe9Nr1T1JEuRxb7izN4aoAmM4wBnI5RZ4rFpblvjroOHAv8P6lhfmZVkplpV7CynRI0psfYFDpCdcjrMrgUSZEtcqG5Yv0GLDgUqNtCrZuX3mTm_Au-Qn5mX0SHHUJwCCWSt/s640/Client_2015_12_21_10_05_02_085.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Hello and welcome to the first post of the new year! I thought I&#39;d kick off this year in Blog Posts in classic style - with some new year&#39;s resolutions. &amp;nbsp;Little known fact about me, I love new year&#39;s resolutions. I know, most people by now are pretty jaded and cynical when it comes to setting goals for the new year - but for me, it represents a chance to change, and a change to grow, and blah blah mostly I just like making them and seeing where I end up at the end of the year. So now, without further adieu, let&#39;s look at what we&#39;re going to try to get done in 2016 (oh man it sounds weird saying that!)&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;Personal - Exercise more, eat better!&lt;/b&gt;&lt;br /&gt;
Well duh! We all make this goal each year, and I&#39;m no different! I&#39;ve actually started getting a bit better about exercise and diet in the past few years, but I still fall off the wagon plenty! In fact, I think the last time I was exercising regularly was back in October - so it&#39;s high time I get back to it. I&#39;m using FitBit for run tracking, and MyFitnessPal for diet. If you want to join me with your fitness goals, post in the comments, and I&#39;ll add ya!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnOSmq7AzU_FYTCKRU_iW2AXyK4QoH4IU8uVG1etHkctGC2AVY6ukyueMGrJUeEy8hILWdSCGObCLAyq_vAEuGkj9DI8Hwwjjv78TL63MZeci3QujlMgfF7w0esbDcu2TWDpU7JmHFVzVe/s1600/Robot-Sandbox_2015_12_04_07_59_28_074.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnOSmq7AzU_FYTCKRU_iW2AXyK4QoH4IU8uVG1etHkctGC2AVY6ukyueMGrJUeEy8hILWdSCGObCLAyq_vAEuGkj9DI8Hwwjjv78TL63MZeci3QujlMgfF7w0esbDcu2TWDpU7JmHFVzVe/s320/Robot-Sandbox_2015_12_04_07_59_28_074.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Continue with the Unity At Home Project&lt;/b&gt;&lt;br /&gt;
I really enjoyed working on my At Home Project. I reached my initial design goals at the Christmas break, but it&#39;s no where near really an actual game. I think I&#39;d like to see it become so. Not sure what I&#39;ll do with it for real - if I&#39;ll ever actually try to market it, but continuing to build a multiplayer mech game sounds like something I&#39;d like to play and do, so what the hell! Look for more posts coming soon detailing my progess on the game.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Extend &lt;i&gt;Of Course I&#39;ll Play It &lt;/i&gt;into Video&lt;/b&gt;&lt;br /&gt;
I started doing commentary videos at the end off each Unity blog update, and I kind of liked that. I&#39;d like to continue that. Either convert my YouTube channel or create a new one that is kind of the official Of Course I&#39;ll Play It video channel. I&#39;m not promising to do any streaming, per se. Still haven&#39;t felt really compelled to get into that. But maybe some Let&#39;s Play videos featuring games I&#39;m playing, some more dev/commentary videos, and maybe even a video blog or two.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;That&#39;s Enough!&lt;/b&gt;&lt;br /&gt;
Yap, it really is. That pretty much sums up the big things I want to get accomplished for this year - at least in terms of stuff you people care about. Oh I might decide to get back into fictional writing again too - but honestly I&#39;m not yet committed enough to that goal to write it down. So there you have it. Stuff we wants to get done in 2016. I hope you folks will join me, and bring your friends, and together we&#39;ll have a bitchin&#39; good time.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cheers!&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2016/01/new-years-resolutions.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUSrcRnSfMKe9Nr1T1JEuRxb7izN4aoAmM4wBnI5RZ4rFpblvjroOHAv8P6lhfmZVkplpV7CynRI0psfYFDpCdcjrMrgUSZEtcqG5Yv0GLDgUqNtCrZuX3mTm_Au-Qn5mX0SHHUJwCCWSt/s72-c/Client_2015_12_21_10_05_02_085.jpg" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-3794434757629073942</guid><pubDate>Thu, 10 Dec 2015 13:59:00 +0000</pubDate><atom:updated>2015-12-10T07:59:32.123-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">commentary</category><category domain="http://www.blogger.com/atom/ns#">Devilian</category><category domain="http://www.blogger.com/atom/ns#">Tera</category><title>Dipping our Devilish Toes into Devilian</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaaxsyNkrn19yKUE1JcQWkTV1r7WHmMhocxXLq9wb2BOOCQyI_IXCfSAxOBWRAHFZYgoz9Uf7Zd-vSwDUlbWFCEcP__rhn8SjCSgMQqSEVKkJP14l6DHiaSYtaftbRUVqZCmD1elSQ9YZe/s1600/Devilian_2015_12_08_22_34_03_314.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaaxsyNkrn19yKUE1JcQWkTV1r7WHmMhocxXLq9wb2BOOCQyI_IXCfSAxOBWRAHFZYgoz9Uf7Zd-vSwDUlbWFCEcP__rhn8SjCSgMQqSEVKkJP14l6DHiaSYtaftbRUVqZCmD1elSQ9YZe/s640/Devilian_2015_12_08_22_34_03_314.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;That&#39;s a lot of alliteration, Al!&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
For the most part, I&#39;m actually pretty good these days at resisting Hype, with a capital H. Devilian&#39;s been bouncing around my social media circles for some time now as it rolled through one beta after a next, and I looked at it long enough to say &quot;Oh, a Diablo Knockoff&quot;, and that was pretty much it. But Monday it popped up on the radar again being just a few days from their official launch, and I gave it a bit more consideration. First, I&#39;m a huge fan of the South Korean MMO art style it uses, heavily reminiscent of games like Tera, Blade &amp;amp; Soul, and Aion. &amp;nbsp;In fact, Bluehole Ginno, the south korean developers, are also the developers of Tera. So that should tell you something about what you can expect in terms of art style. And more to the point - the level of dress, or undress, as it were, you can expect to find most of the female models. Second, it&#39;s being published here in the West by Trion Worlds, a publisher I have a fair amount of respect for. Rift is a fine MMO, and I&#39;ve spent plenty of hours in Defiance. And third, the early access founder&#39;s pack was at a very reasonable $20.00 US. So I shelled out a Jackson, patched up my Glyph launcher, and started the download. And so far, I&#39;m quite glad I did. Now, a few days later, here&#39;s what I&#39;ve learned about Devilian.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyFsfTfAg4Sud7KM8EypLM-33G4YQtfodO0WVeGnzI8MotRZWb9CeIsD3DXyazBSAARD2qqOz18Bon53ORN4C8f1CKen4Fuv0zEbdjI16EAFJixh_ez4ycbc0yJL672-UF9lsvbWZjYzOd/s1600/Devilian_2015_12_08_23_23_26_001.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyFsfTfAg4Sud7KM8EypLM-33G4YQtfodO0WVeGnzI8MotRZWb9CeIsD3DXyazBSAARD2qqOz18Bon53ORN4C8f1CKen4Fuv0zEbdjI16EAFJixh_ez4ycbc0yJL672-UF9lsvbWZjYzOd/s320/Devilian_2015_12_08_23_23_26_001.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;There&#39;s a Whole MMO Here&lt;/b&gt;&lt;br /&gt;
I think that&#39;s probably the biggest point to get across. Because of it&#39;s top down nature, if you&#39;re like me, you will go into this thinking hubs and instances, aka Diablo 3. At the most, something like Marvel Heroes, with a shared hub, and multiple instance zones. &amp;nbsp;But make no mistake - Devilian is a full blown MMO draped in Diablo 3 clothing. After the brief tutorial, you&#39;re in a shared world with other players the entire time you&#39;re playing - save for dungeons, which I&#39;ll mention below. There are quest hubs with the typical fare of MMO quests, banking storage, auction houses, a mail system, a full blown friends and guild system, the entire works. &amp;nbsp;You can party up with friends and do quests together, or you can run everything solo. There are instanced dungeons just like you would find in FFXIV or the like, with elite level trash mobs, and bosses with boss mechanics. And there&#39;s a LFG tool to help you party up for the dungeon. Seriously, it&#39;s a complete MMO package, and for me, that was the biggest surprise. And a pleasant one at that, because you know - I like MMO&#39;s.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtgbwRiusvahyx5rM-Pd8kelBRTFE0dstSqB5yskeFcq-bxT6gSpzJbS5H0DXGwBCIdp_8mczv2dMkgMKHBCBZWT2VZ9_miMV74BB2BS-lqFpBR3CwMBiT3rC0QteCxnYOcDj-z_O2TKzP/s1600/Devilian_2015_12_09_23_48_30_180.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtgbwRiusvahyx5rM-Pd8kelBRTFE0dstSqB5yskeFcq-bxT6gSpzJbS5H0DXGwBCIdp_8mczv2dMkgMKHBCBZWT2VZ9_miMV74BB2BS-lqFpBR3CwMBiT3rC0QteCxnYOcDj-z_O2TKzP/s320/Devilian_2015_12_09_23_48_30_180.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;You&#39;ll need to buy that extra inventory space Dear..&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;Very Free to Play&lt;/b&gt;&lt;br /&gt;
Also, that. For me, that&#39;s totally fine. I&#39;ve been working on a F2P game myself for over two years now. And most of the MMO&#39;s I play these days are also F2P. So I&#39;ve become quite comfortable with the various mechanics and systems that are in place to tempt you to shell out some money here or there, and feel free to ignore them or take advantage of them, without their presence getting my ire up, as it might have once. But you should know - there are lots of those systems in place. Very similar in fact, to Neverwinter Nights in that regard. Daily login rewards, a Patron program (ie., VIP priviledges and discounts), and many individual aspects of &amp;nbsp;the game monetized. &amp;nbsp;Companies got to make their money, and they know no one wants to pay a subscription these days.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjvnHDj1xiB-tOjpx0SND1ULJngGGY65RX7fupm6ZA2d1XwtqACj3H_DpsKE-SR2InGAzQH6jOt1xzhLFOVIO7ewureG6z9uyituCcZB8EM1FXvi8BIWSBbN88tCauPzVLUJqIdRmqlS_p/s1600/Devilian_2015_12_09_00_13_34_164.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjvnHDj1xiB-tOjpx0SND1ULJngGGY65RX7fupm6ZA2d1XwtqACj3H_DpsKE-SR2InGAzQH6jOt1xzhLFOVIO7ewureG6z9uyituCcZB8EM1FXvi8BIWSBbN88tCauPzVLUJqIdRmqlS_p/s320/Devilian_2015_12_09_00_13_34_164.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;You&#39;re a God! No Wait.. You&#39;re a Devil!&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
So what about the gameplay itself? So far, quite satisfying. It&#39;s a little rough around some of the edges. The cinematics sequences are rough, short, and quite cheesy. I occasionally get lag spikes, but nothing game breaking. As for the game itself - hover mouse over monsters, press buttons, watch them explode spectacularly. Similar to Diablo, the boss mechanics in the two dungeons I&#39;ve been in so far mostly amount to &quot;Get the hell out off the way of the bad&quot;. &amp;nbsp;And the entire time you&#39;re leveling, you feel plenty powerful. I may do a follow up beginner&#39;s post on actual mechanics - the Devilian form, classes, etc., but honestly there&#39;s already plenty of that kind of information available from the betas. But in short, I find the gameplay very familiar, and satisfying. Blow up monsters, collect loot, complete quests, rinse and repeat.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDHKJnWi4LLAbMmj5G3NIfClowAEcBZyBg1nRzasSYVLuP9Z2-EiNnooXjvcxKqzhQHc27p2PPSXRxx3uvacay-XNdJM9Y7EFVheP8JJzV3yuqUtr7T2lJF9w07Pl9siCR2bUg1Y_yhwPO/s1600/Devilian_2015_12_08_22_58_13_084.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDHKJnWi4LLAbMmj5G3NIfClowAEcBZyBg1nRzasSYVLuP9Z2-EiNnooXjvcxKqzhQHc27p2PPSXRxx3uvacay-XNdJM9Y7EFVheP8JJzV3yuqUtr7T2lJF9w07Pl9siCR2bUg1Y_yhwPO/s320/Devilian_2015_12_08_22_58_13_084.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Is the Grind Coming?&lt;/b&gt;&lt;br /&gt;
This is a Korean MMO. And past games serve as any indicator, that means two things. One, at some point, PvP - and quite likely, open world PvP, will become a thing to deal with. And also, the leveling curve can expected to become grindy. However, this game might just be the exception to that. I&#39;ve heard of people getting to the level cap - which is currently level 52, in literally a dozen hours or less. And though I know PvP is definitely a thing in the game, So far it appears to entirely be the instanced kind you&#39;d expect in most western MMOs. So I guess we&#39;ll see. &amp;nbsp;For myself, so far the leveling curve has felt quite brisk - especially if you augment your questing with a few dungeons.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Let&#39;s Do This!&lt;/b&gt;&lt;br /&gt;
What I mostly wanted you to know is that this isn&#39;t a heavily instanced base, hub-spoke model game. It&#39;s very much a full blown Korean MMO, with all the good and the bad that entails. So if that&#39;s your thing (and it most definitely is mine) you should check it out. Now if you&#39;ll excuse me, I have a daily login reward to collect.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ-rtGAZo8GCWRc9_7aVoWqCO9uHoCTBC1G3jNqc3VfcHmfM6Y7ZHKDoQR_LMcGNZEXNaCPZwyw9AfojDXJX9iOJak7twdq71Ms2Ymg67sTfiwQp3LgeDnzfP4a_aHLYHQykslFJd6ScZi/s1600/Devilian_2015_12_09_07_59_11_455.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ-rtGAZo8GCWRc9_7aVoWqCO9uHoCTBC1G3jNqc3VfcHmfM6Y7ZHKDoQR_LMcGNZEXNaCPZwyw9AfojDXJX9iOJak7twdq71Ms2Ymg67sTfiwQp3LgeDnzfP4a_aHLYHQykslFJd6ScZi/s640/Devilian_2015_12_09_07_59_11_455.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/12/dipping-our-devilish-toes-into-devilian.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaaxsyNkrn19yKUE1JcQWkTV1r7WHmMhocxXLq9wb2BOOCQyI_IXCfSAxOBWRAHFZYgoz9Uf7Zd-vSwDUlbWFCEcP__rhn8SjCSgMQqSEVKkJP14l6DHiaSYtaftbRUVqZCmD1elSQ9YZe/s72-c/Devilian_2015_12_08_22_34_03_314.jpg" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-7215727250103196673</guid><pubDate>Mon, 07 Dec 2015 15:09:00 +0000</pubDate><atom:updated>2015-12-07T09:09:15.764-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><title>Unity3D At Home Project Day 13 - Pushing On!</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3FtEYUR48_zgvvO5C2uMme5UQ2egJsc6mhIES0iE2fHc1Z2m6D9edsIgao8o-fDvyb26WL3JzOvYCdBqrwKriNbWiegOoabRxkyphQaSZWIRNaIvGfo715s1X7ISxJ86BBTY8JBbkQprp/s1600/MultiplayerRobots.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;345&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3FtEYUR48_zgvvO5C2uMme5UQ2egJsc6mhIES0iE2fHc1Z2m6D9edsIgao8o-fDvyb26WL3JzOvYCdBqrwKriNbWiegOoabRxkyphQaSZWIRNaIvGfo715s1X7ISxJ86BBTY8JBbkQprp/s640/MultiplayerRobots.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So just have a bit of time this morning before work, but wanted to get some thoughts down. And mostly, those thoughts are around carrying on the fight, and deciding where to go next. Let&#39;s get to it shall we?&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9Lsb8HfTlmWfXlHI2W_uZS__dBdCKoblBT7RRbN_5E6ZYV5jw_YJ0U3r97G3LgFg2blmfX9MIoCJwQtGJrEgn8TORSFC5H2P8X48J0Xn8jS1Mes2XPg4pJ4-6D71Ib_pI2gekbcwMsMmo/s1600/AppliedAvatarConfig.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9Lsb8HfTlmWfXlHI2W_uZS__dBdCKoblBT7RRbN_5E6ZYV5jw_YJ0U3r97G3LgFg2blmfX9MIoCJwQtGJrEgn8TORSFC5H2P8X48J0Xn8jS1Mes2XPg4pJ4-6D71Ib_pI2gekbcwMsMmo/s320/AppliedAvatarConfig.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Games are Hard&lt;/b&gt;&lt;br /&gt;
Game development is hard. It is a fact. I&#39;ve been doing it professionally for some 17 years now. I&#39;ve made games completely by myself, I&#39;ve made games with teams of four, and I&#39;ve made games with teams of over a hundred. And the one thing they&#39;ve all had in common is that getting it right is just plain hard. When it comes to design, there is no right answer. What is fun to you will be &quot;grind&quot; to the next person, and &quot;fluff&quot; to the person after that. When it comes to scheduling, you will never be right. You make guesses, estimates, and pour all of your knowledge, and still something will blow up that you didn&#39;t expect, or in the rare case, fall out unexpectedly easy.&lt;br /&gt;
&lt;br /&gt;
If it seems I&#39;m belaboring an obvious point, I am. And I&#39;m doing so, because it is a mantra you will need to see you through the long nights if you take the road of a game developer. Whether you are working on your first cohort project at the Guild Hall, or slugging your way through your tenth AAA title, there are dark days in your path, and you will need some guidance to see you through them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRWMqbeT1ig-TzC_5T38PpCbryJ9O34snpqOyMuykfOzefOS2UWazkqP-BVJ-xi_8dW_rB7XgAJZ0ja1_y1RzaJ2Yw1NQ9DsGRL6CN4SHO0dvkxFskqmXVkRRGTXJFUu7BKrl6Tor5kS73/s1600/chariots1_2208198b.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;199&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRWMqbeT1ig-TzC_5T38PpCbryJ9O34snpqOyMuykfOzefOS2UWazkqP-BVJ-xi_8dW_rB7XgAJZ0ja1_y1RzaJ2Yw1NQ9DsGRL6CN4SHO0dvkxFskqmXVkRRGTXJFUu7BKrl6Tor5kS73/s320/chariots1_2208198b.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Moving to the Next Milestone&lt;/b&gt;&lt;br /&gt;
So yes game development is difficult regardless of your project size or your team size. But let&#39;s talk specifically now about the case for the independent developer. The one to three person team slugging it out over laptops at Starbucks, skyping each other daily updates, and hoping for the big break on Steam Greenlight or at the App store. Like any ambitious project, you will face those days where it&#39;s easies to just - put it off. Especially after you&#39;ve reached an important milestone. You feel good about your accomplishment, you&#39;ve worked hard to get the game to a certain point, and not only are you a bit hesitant to dig in and push on, you&#39;re not even sure in what direction you should go next. Do we polish the UI experience? Add a major system like multiplayer, that anecdotal evidence suggests we can&#39;t do without (or the reverse - what about a single player experience)? And for you, there is no one to lean on but yourself. You are the only strength from which you can pull to push on to the next part of this project. Whether it be a writing project, a personal exercise plan, or your indie game - &lt;i&gt;the strength to go on must come from within.&lt;/i&gt; I don&#39;t know if it will help you. But those words have helped me on more occasions than I can recount.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiWWIedzgOmge4O2OS5IHhJuA37f6CFc9dPKndI6r7VWe_p6RvJTCE55Al-4klZ1pO9pWJ52WFZE8xlB2CM4D8E-2uzvEebJ9UiTljYAXU4jyA2rNjOJ8Zg-PY1n4Tmg7HEOd5AOAyQ8-R/s1600/TurretTwist.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiWWIedzgOmge4O2OS5IHhJuA37f6CFc9dPKndI6r7VWe_p6RvJTCE55Al-4klZ1pO9pWJ52WFZE8xlB2CM4D8E-2uzvEebJ9UiTljYAXU4jyA2rNjOJ8Zg-PY1n4Tmg7HEOd5AOAyQ8-R/s320/TurretTwist.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;So what about Giant Robots?&lt;/b&gt;&lt;br /&gt;
Which brings us to where we are on our game - the doesn&#39;t roll off the tongue &quot;At Home Project&quot;, ie., Giant Fighting Robots. In truth, I don&#39;t have a clear goal for &quot;how finished&quot; I plan to make this game - and that is actually a problem I need to face. As I mentioned in the previous blog, I have, for all intents and purposes, satisfied my original goal. Two people can drive around in giant robots, and shoot at each other. It wasn&#39;t a terrible ambitous goal, but as we&#39;ve seen, even the simplest of sounding things can take quite a bit of work. And I still don&#39;t know yet if this would be a game that I would finish all the way out to the point of it being &quot;publishable&quot; - because quite frankly that is a ton of work, much off it dull and tedious, (who really enjoys writing key-bind configuration screens - really) for something that will in all likelihood never bring me a dime. But on the other hand, I don&#39;t really feel like it&#39;s finished yet either. So the goal of &quot;finished&quot; for this game is still somewhat undefined, but I feel like it&#39;s somewhere between where it is now, and a game that you would actually pay money for. &amp;nbsp;So I&#39;ve decided I will press on further, at least a bit, to see where we&#39;ll go next.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;So What&#39;s Next?&lt;/b&gt;&lt;br /&gt;
There are a number of ways I could go next. I could start building new weapons and effects. There are at least a half dozen or more other weapons I would consider a minimum for mech game - missiles, obviously, beam weapons for sure, and maybe even a flame thrower or something fun like that. Lots of work to do there. And there are the mech themselves. I would want to have several classes of mechs, once we have more weapon variety, with light, medium, and heavy mechs available, as well as different weapon loadouts.&lt;br /&gt;
&lt;br /&gt;
There&#39;s bug fixing and performance optimization to do already. In just the two man sortie I played with my wife, I saw several bugs and some hitches in performance. If they&#39;re there for two players, you know it&#39;ll be ten times worse for four or eight. &amp;nbsp;It would probably be wise to squash those things early.&lt;br /&gt;
&lt;br /&gt;
But in truth I don&#39;t think I&#39;m going to focus on either new content, or bug fixing, just yet. Instead, I think the next crucial point is the game itself - or more to the point, the life cycle of the game. That means a proper loading screen, a lobby in which you can form the game, then launching the game, and finishing it. With a single mech and weapon working, I have enough to see a single game through from beginning to end, so I think it&#39;s time we got a first pass of that infrastructure in.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Of Course, Not Yet&lt;/b&gt;&lt;br /&gt;
Okay, our path plotted, we should get started. Well, I will. But not I think, until after the holidays are through. With family,get-togethers, and a bevy of distraction between now and the year&#39;s end, I&#39;ll pick this up after the New Year. So while I&#39;m enjoying some leisure time, playing some games, and maybe even posting a few more game blogs before the year&#39;s out, don&#39;t look for a new Game Development blog until January! &lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Until then, Merry Christmas and Happy Holidays!&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/12/unity3d-at-home-project-day-13-pushing.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3FtEYUR48_zgvvO5C2uMme5UQ2egJsc6mhIES0iE2fHc1Z2m6D9edsIgao8o-fDvyb26WL3JzOvYCdBqrwKriNbWiegOoabRxkyphQaSZWIRNaIvGfo715s1X7ISxJ86BBTY8JBbkQprp/s72-c/MultiplayerRobots.jpg" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-8182380002418513703</guid><pubDate>Fri, 04 Dec 2015 15:05:00 +0000</pubDate><atom:updated>2015-12-04T09:05:34.626-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity3D At Home Project - Day 12 - Explosions and Stuff!</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSJioYdxp-QpAPyKvDXhnwbZrGbc8SfBjEYrFzWB6d8Yg6rjrr9WoPq-D3j43YnCTZ2KhTpCfenaaR9ia4xaq2ISLtedSOA7IxBaLCJEv3Spb36caIjWba8CS1xxwQ154LVzezsKJKWJCR/s1600/MechExplosion.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;408&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSJioYdxp-QpAPyKvDXhnwbZrGbc8SfBjEYrFzWB6d8Yg6rjrr9WoPq-D3j43YnCTZ2KhTpCfenaaR9ia4xaq2ISLtedSOA7IxBaLCJEv3Spb36caIjWba8CS1xxwQ154LVzezsKJKWJCR/s640/MechExplosion.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So first apologies that this next update took a little longer. First - Thanksgiving. And second, and this is more to the point - but ran into quite a few problems working through the next pieces, and it took longer than I would have liked to get everything working the way I wanted it to. And there are still issues, but it&#39;s time to post an update! We&#39;ve got quite a bit to cover in this one, so let&#39;s get to it!&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
So when we last left off, we&#39;d just set up some of our first protodata for mechs and weapons, and we&#39;d built a nice effects package called WeaponEffect that allows us to group together a variety effects into a single entity that we can attach to just about anything. We had our weapons firing, but not doing anything. It was time to make them do damage, but once they do damage, then you have to deal with death, and once you deal with death, you have to deal with respawning, So that&#39;s what we tackled in segment.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Fun with Projectiles&lt;/b&gt;&lt;br /&gt;
I&#39;ve set up the protodata on our weapons to support two kinds of hit-detection. The first, &quot;raycast&quot;, will just do an instant raycast when the weapon is fired, to see if we hit something. We&#39;ll use this for beam weapons, and most ballistic weapons. The second, &quot;projectile&quot;, will actually spawn a projectile and send it on it&#39;s way, and we&#39;ll let that determine what we hit. That method is a bit more involved, codewise, so I decided to tackle that first. It&#39;s not too hard to find simple projectile updating code. The effects package I downloaded had a nice projectile class in it, so I used that as a starting point. But our projectile has some special considerations. It has to be a network aware object, and it has to be spawned through the networking system. It needs a collection of effects associated with it&#39;s flight, and it needs a collection of effects associated with impact. So ours works like this.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheloM2xiODCshPVbfQFHTURDZPiwPG2FgijQyE2pwLbwJdqmnXbsXCn5VvcclY8_lSN6ED7rxDbWezydReNOJGtiuE49Rm0wzlHhjre5WhHAcZGfaHGUNHLMsTykuEIiat21JneMdu90aB/s1600/Code_WeaponProjectile.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheloM2xiODCshPVbfQFHTURDZPiwPG2FgijQyE2pwLbwJdqmnXbsXCn5VvcclY8_lSN6ED7rxDbWezydReNOJGtiuE49Rm0wzlHhjre5WhHAcZGfaHGUNHLMsTykuEIiat21JneMdu90aB/s320/Code_WeaponProjectile.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Launch routine&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
When it&#39;s time to fire a projectile, the owning mech spawns a projectile, and then launches it. The launch routine establishes ownership of the projectile, so it can know who launched it, and what weapon it came from. We need this information for determining range, damage at impact, and who to attribute the damage to. On the clientside only, in OnStartClient, we initiate the projectile&#39;s flight effects. During update, on the server side only, the projectiles position is updated, and a check is done each update for collision. If a collision occurs, again on the serverside only, we inform the owning mech, and allow it to deliver the damage payload. At the same time, we initiate an rpc call to the client for the projectile, so it can play the impact effects at the point of impact. So as you can see, once again, whenever multiplayer is involved - everything gets more complicated, as we have to carefully establish the division of labor between things we want to do on the server, and things we want to do on the client.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXmp9Pas09G6B-JTUheqFuA9MpAcKGRipJ9qmqoHYgSwZsGnpcBh91ILpyhLdpbkDwAmdblX4ZRft7gw3ZFianP6Rd_M32unK_DLNFJ2a2c9weT5nBhPW6NNmP_YW4GCP1zpod6PX7L1Q0/s1600/Robot-Sandbox_2015_12_04_07_17_54_219.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXmp9Pas09G6B-JTUheqFuA9MpAcKGRipJ9qmqoHYgSwZsGnpcBh91ILpyhLdpbkDwAmdblX4ZRft7gw3ZFianP6Rd_M32unK_DLNFJ2a2c9weT5nBhPW6NNmP_YW4GCP1zpod6PX7L1Q0/s400/Robot-Sandbox_2015_12_04_07_17_54_219.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Projectiles!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Death &amp;amp; Rebirth&lt;/b&gt;&lt;br /&gt;
So once we had projectiles firing, we needed to set up delivering of damage. Instead of just subtracting health, we created a &quot;DeliverPayload&quot; function, and it can do a variety of things. In our case, it applies damage, and it applies heat. We also then check against the mech&#39;s max health and max heat to to see if we&#39;re dead or not, or if we&#39;ve overheated. I haven&#39;t even decided yet what &quot;overheated&quot; means, in terms of gameplay, but I&#39;ve got a hook for it. For death though, it was time to figure out what that meant.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;Side Note on Heat: I think heat management is a really important aspect to any giant fighting robot game. So I&#39;ve put in plenty of hooks for it. Each weapon generates a certain amount of heat when it fires - so beam weapons generate more heat, ballistics not so much. Additionally, each mech has a heat dissipation rate, which is the amount of heat it naturally loses. When a weapon fires, it applies it&#39;s heat amount to the owning mech. Of the heat rises from zero, it starts a coroutine to dissipate heat. While the mech has heat, the coroutine reduces it by the proscribed rate each update. When heat gets back to zero, the coroutine stops. I wrote all this code and set all of this up for an effect I don&#39;t even have any gameplay simulation or visualization for yet. But that&#39;s what we do.&lt;/i&gt;&lt;/blockquote&gt;
&lt;br /&gt;
So it was time to think about death, and how we handle it. For the real game, I think I like the idea of when you die, you&#39;re out. Each match is a last man standing kind of thing, and when you die, the hulk of your mech stays on the battlefield, and your camera goes to following one of the mechs around that is still alive. But for practicality and testing, I needed to have a respawn. And, for some game modes, I could see respawn being desirable. So I needed to support it, and probably in a first-class citizen kind of way. &amp;nbsp;In order to support the notion of &quot;gamemodes&quot; though, I would need a game management class, and hell, even the notion of a game itself, which I currently didn&#39;t have. I wasn&#39;t quite ready to jump down that rabbithole just yet, so I just decided respawning, for the moment, is what we do.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;Side Note on Death - Death is hard. No really - it&#39;s really really hard. Over the years, I can&#39;t tell you the quantity of bugs I&#39;ve had to deal with centered around dead units. This is because it&#39;s a weird quasi state. There&#39;s some amount of time while you&#39;re dying, and then there&#39;s while you&#39;re dead, and the unit is still in gameplay, but it can&#39;t do all the things it normally can, and can&#39;t be affected by the things it normally can be. All I&#39;m saying is - don&#39;t go into death thinking &quot;Oh health == zero destroy unit done!&quot;. &amp;nbsp;That may be what they show you in the little game demos, but in reality it is never that simple.&lt;/i&gt;&lt;/blockquote&gt;
&lt;br /&gt;
That meant it was time to set up some game states. I have to tell you there was quite a bit of gnashing of teeth here between game states (dead, alive, dying), conditions (stunned, slowed, heated), and damage (heavily damaged, slightly damaged) and that sort of thing. All of these things are heavily interlinked, and the lines between what is one thing and what is another are hard to define. Get three programmers in a room and start talking about what is a condition versus a game state, and you&#39;ll be there for hours. I decided to punt on all of it for now, and establish some firm states, at least. They are Inactive, Spawning, Alive, Dying, Dead, Despawning. &amp;nbsp;This allowed me to establish some ground rules about when the player can control the mech, and when the mech can be affected by damage and what not. &amp;nbsp;Once I had all that sorted out, and code written to support all that, it was time to set up the effects for dying itself, and get those working. And those consisted of a death animation (which is a simple fall forward, provided by the Mech Constructor kit), some explosions, some sound effects, and a new fade out effect.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE3n5F8NECoExBA6pqBctEdVbBZhgsjbPuf3ar1Vx90zDnN54I4xCcLkgUod_mz9Dz4_4Nw0TCIvCvLrF22XXFSGqXC32RWa_nm_b0H8y4oHv5rNRfGj945wJldf2kT43iKavso5JED82I/s1600/MechDying.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE3n5F8NECoExBA6pqBctEdVbBZhgsjbPuf3ar1Vx90zDnN54I4xCcLkgUod_mz9Dz4_4Nw0TCIvCvLrF22XXFSGqXC32RWa_nm_b0H8y4oHv5rNRfGj945wJldf2kT43iKavso5JED82I/s320/MechDying.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;A Dying Mech&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;Problems, Solutions, and Workarounds&lt;/b&gt;&lt;br /&gt;
So getting all that set up was only half the work. In fact, probably less than half the work. Because once it was in, I then proceeded to spend the next week and a half fixing problems with all of the above. First the death animation wouldn&#39;t play reliably on clients. And when it did play it was 2 seconds too late. And then the fade effect wouldn&#39;t work. And then projectiles were wonky on remote clients (they still are in fact). The point is, I could go on for another three pages on the various problems I faced and the solutions I found, or in some cases, didn&#39;t find, but decided to work around. But I won&#39;t. What I will do, is give some short tips on how to deal with that kind of situation.&lt;br /&gt;
&lt;br /&gt;
The most important thing is to isolate. Pick one of the many things that are going wrong, and focus just on that. Ignore everything else, and see if you can fix just that one thing. Once you have that working, then move on to the next single thing. &lt;i&gt;Identify, Isolate, Execute.&lt;/i&gt; I know, it sounds cliche, but seriously, if you don&#39;t, you will be overwhelmed by the mass of shit going wrong in your game.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Finally - Combat!&lt;/b&gt;&lt;br /&gt;
Eventually, I soldiered on through the problems, and did in fact, finally get most things working to a satisfactory degree. Mechs can fire weapons. The weapons generate projectiles, do damage, and do heat. Mechs can die. When they die, they explode, sound plays, and then fall forward, and fade out. After the mech fades out, the player is respawned in a new mech, at one of the spawn locations. The circle is complete. Finally I was able to hand my wife a game controller, which she relunctantly took, and we drove the mechs around firing indescrimintely at each other, blowing each other up, and respawning. You can see the results below.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;https://www.youtube.com/embed/Q4p3RSN3024&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Aaaaand we&#39;re done. &amp;nbsp;Or.. are we..&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
Well, technically, I&#39;m done. I have actually at this point, met the full &quot;specs&quot; of my original design - which was to get to a point where I can drive a giant robot around and shoot other players in a giant robot. And we can now do that. But as you can see, we&#39;re no where near close to a real game. We don&#39;t even have a UI. I feel pretty sure I&#39;m going to carry on for at least a bit further, but there&#39;s a huge amount of work still to be done in turning this into a real game. &amp;nbsp;So if you - yes you - actually have any thoughts on whether or not you&#39;d like to actually see and play a finished game created from these humble beginnings, I&#39;d be happy to hear them!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Useful Links&lt;/b&gt;&lt;br /&gt;
No real useful links this time. I spent all my time rummaging through the unity multiplayer docs, which I&#39;ve linked multiple times before. At this point in the game, we&#39;re mostly out of the &quot;tutorial&quot; stage, and soldering on in uncharted waters of our own.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://ofcourseillplayit.blogspot.com/p/unity.html&quot; target=&quot;_blank&quot;&gt;The Unity3D At Home Project&lt;/a&gt;&lt;br /&gt;
Here is the main page to the entire project, if you&#39;d like to catch up on previous posts and see this from the beginning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/12/unity3d-at-home-project-day-12.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSJioYdxp-QpAPyKvDXhnwbZrGbc8SfBjEYrFzWB6d8Yg6rjrr9WoPq-D3j43YnCTZ2KhTpCfenaaR9ia4xaq2ISLtedSOA7IxBaLCJEv3Spb36caIjWba8CS1xxwQ154LVzezsKJKWJCR/s72-c/MechExplosion.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-1223868590223208309</guid><pubDate>Tue, 24 Nov 2015 04:27:00 +0000</pubDate><atom:updated>2015-11-23T22:27:32.668-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity3D At Home Project - Day 11 - Weapons &amp; Effects</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyFenNA07p7mzi8v_RWuacf-EUK9Y4JNsqGfb_6y16QWTW0JBb2W95zaFj5-E-d1ZTurPf35761RVnt-4DODxZglghKvHF5eScqK5eMbZD2QUnJG32y5XfYgee6P4QPErMHujNJ4fIwDZ-/s1600/Weapon3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;424&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyFenNA07p7mzi8v_RWuacf-EUK9Y4JNsqGfb_6y16QWTW0JBb2W95zaFj5-E-d1ZTurPf35761RVnt-4DODxZglghKvHF5eScqK5eMbZD2QUnJG32y5XfYgee6P4QPErMHujNJ4fIwDZ-/s640/Weapon3.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So now&#39;s the point of the project where we roll up our sleeves and really start to dig in. I talked about all the ways in which our design space can go in last week, and about constraining your execution as much as possible. But even so, we just have a heck of a lot to go and build. I&#39;ve got a lot of ground to cover in this blog alone, and we&#39;re still only about half way through implementing a single weapon. So let&#39;s get to it!&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;Data Driving Your Design&lt;/b&gt;&lt;br /&gt;
This topic could be an entire blog in and of itself. It&#39;s a fundamental concept that every professional game of any scale has to have. And yet, surprisingly enough, there&#39;s no real built in support for it in Unity. And few game tutorials or showcases even talk about it. But I&#39;m going to drill it in here: &lt;i&gt;plan on building a database for your game.&lt;/i&gt; Think about it - in just about any game you build, there&#39;s going to be some collection of some similar units, with shared characteristics. This could be the players, mobs, weapons, spells, abilities - whatever. You&#39;ll need a way to easily manage the shared data associated with those objects, independently of modifying the objects themselves. So what you want to do is put all of the static, shared data into separate records - which you can then serialize in a table, and then create instances of those object based on their base record. There&#39;s no real agreed upon industry term for this process, but at &lt;i&gt;Ensemble&lt;/i&gt; (and now at &lt;i&gt;Robot&lt;/i&gt;) we called that separating the &lt;i&gt;protodata &lt;/i&gt;from the instanced data. &amp;nbsp;Let&#39;s walk through an example.&lt;br /&gt;
&lt;br /&gt;
In our game, we have mechs. Now we want a variety of mechs, with different characteristics. Things like health, maximum speed, turn rate, heat dissipation, etc. So we set up protodata for the mechs, where each protomech record defines those characteristics for a single class of mech:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjrLIP7eIYw3oIJeAG_xtnSvJjoj1AwDNzN8nIUBChf7e66qKfzexN6OFtuKhzh9VV0ubXRY3zYbLwa60JW6EbYzU-jr1W6UwC2ioVGDFsq0E1djattEnl8g1QuvAxUgqr8WhWx7ew1sYl/s1600/Code_Protomech.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjrLIP7eIYw3oIJeAG_xtnSvJjoj1AwDNzN8nIUBChf7e66qKfzexN6OFtuKhzh9VV0ubXRY3zYbLwa60JW6EbYzU-jr1W6UwC2ioVGDFsq0E1djattEnl8g1QuvAxUgqr8WhWx7ew1sYl/s400/Code_Protomech.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Those records can then be serialized in an XML table, for instance, or stored in a database. When we instantiate a mech, we give the mech a protoID to use. It will look up the protorecord for that ID, and use the characteristics for that record. In that way, we can share the static data among every instance of our units. And furthermore, the static data can be edited by designers, or yourself, independently of the instance prefab. I did a similar thing for weapons, so now each weapon has a protodata record assoicated with it, which defines how much damage it will do, whether or not it is a triggered or channeled weapon, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;Note - In my case, I ended up just attaching the protorecords directly to the prefab itself. That&#39;s why they&#39;re derived from monobehavior, so they can be components. I did this for two reasons. One, in this game, I&#39;m the only designer, so creating a &quot;table driven method&quot; of editing the protodata is not as important. Two, the mech prefabs themselves are actually protodata, when you think about it. The problem with this is that now a copy of the protodata lives on every instance of a mech in our game. In a game where I&#39;m unlikely to ever have more than 8 units in game at any one time, this is probably okay. If these units were say, villagers in an RTS though, or mobs in an MMO, this would not be okay. Never be afraid to modify your conventions for the realities of your situation.&lt;/i&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOoC-tI6_raFzRGAa9bJRzoa5_Fx920iSXenYQjmwqX-A-uGjlOIUc2tAeVnNSRbEvjMBBiBWONV2ceazG8tCzYun3kSWo5ZjGDTJVoYuskYw4vcOtkp9bB4dl3YEzt_2EeoseWB-m2dCR/s1600/Protomech.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;173&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOoC-tI6_raFzRGAa9bJRzoa5_Fx920iSXenYQjmwqX-A-uGjlOIUc2tAeVnNSRbEvjMBBiBWONV2ceazG8tCzYun3kSWo5ZjGDTJVoYuskYw4vcOtkp9bB4dl3YEzt_2EeoseWB-m2dCR/s320/Protomech.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The new Dagger mech, with Protodata&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;Setting up the Architecture&lt;/b&gt;&lt;br /&gt;
With the protodata firmly established, it was time to figure out exactly how a weapon works. Before I wrote a single more line of code, I actually pulled up &lt;i&gt;OneNote&lt;/i&gt;, and started typing out my architecture design in stream of consciousness notes form. This is something I do every time I&#39;m tackling a new system. I want to know exactly what all the pieces are, and how they connect. I spent several hours on Saturday doing this. Walking through the system, trying to account for everything in my design that I knew I wanted to support. I wanted to handle channeled weapons (where the weapon fires as long as you hold the trigger down, and stops when you let up - like a flamethrower) and triggered weapons. I wanted to handle AOE damage and DOT damage. I want weapons to work both as projectiles and instant raycast. And it all has to work in multiplayer. And most importantly, we want to separate the effects associated with the weapon from the simulation part of the weapon. Effects should only happen on the client, where simulation changes (damage, etc) have to happen on the server. This last point was the most key piece of the architecture.&lt;br /&gt;
&lt;br /&gt;
I&#39;m not actually going to detail the entire architecture here. This blog is going to be long enough just describing the process. I will try to get the &lt;i&gt;OneNote &lt;/i&gt;book that I&#39;m keeping notes in shared, for those of you that are sufficiently masochistic as to want to peer even further into my thoughts. For the blog though, suffice it to say that I ended up with an architecture that seemed like it would do what I wanted. It would work in multiplayer, handle all the design prerequisites, and keep the effects separate from the simulation.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Along Came Multiplayer&lt;/b&gt;&lt;br /&gt;
I was of course, completely wrong. With the architecture in place (and in writing!), I spent most of the rest of Saturday actually writing the code to support the design. I set up the various classes - Mech, ProtoMech, Weapon, ProtoWeapon, WeaponEffect - and wired them up at least enough for me to go through a simple fire process and see if the pieces worked. And, unfortunately, they did not. Not even a little bit. I immediately sat about debugging, and rummaging quite a bit through the Unity Multiplayer manuals, trying to figure out which pieces I had wrong. Unfortunately, by this time it was late Saturday, I was tired, and I went to bed unhappy with the state of things.&lt;br /&gt;
&lt;br /&gt;
Sunday, in the light of a new day, I backed out my pieces, and started re-establishing them, one by one, until I finally figured out the problems. &amp;nbsp;Out of my troubles though, comes a really technical, but really important, Unity Multiplayer Gem. Which I will share with you!&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;&lt;i&gt;Unity Multiplayer Gem -&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;i&gt;All network behaviors must live on the root object of an object that is spawned by the networking manager. They cannot live on subobjects.&lt;/i&gt;&lt;/blockquote&gt;
&lt;br /&gt;
See? Already you know more than you did coming in. Once I understood that fundamental truth, I was able to clean up my system and get it back on track. Well that&#39;s not entirely true - I did make a brief foray down a dark path where I attempted to spawn the weapons separately from the mech. This was not.. how to say it - a &lt;i&gt;good &lt;/i&gt;solution.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Effects Problem&lt;/b&gt;&lt;br /&gt;
We&#39;ve already gone on long enough for this morning&#39;s blog, but there&#39;s one more piece I spent a lot of time on, and so feel like it too deserves a mention. Again, this is a topic that could well garner an entire blog onto itself. Managing effects collections - things like sounds, lights, particle effects, animations, etc - can be a huge system. And your solution can vary from just straight up hardcoding the effects for each individual weapon, to building some general &quot;effects manager&quot; that allows you to handle a wide variety of effects in a generic fashion. And I spent quite a bit of time Sunday struggling with which end of the spectrum my solution would fall on. Every part of me wanted to build a really robust, full featured, effects manager. But I also knew that could be a really big system that would be put in place to handle what is most likely only going to end up being a half dozen or so types of weapons.&lt;br /&gt;
&lt;br /&gt;
In the end, I came up with a compromise that I feel pretty good about. I have the notion of a WeaponEffect, which is a collection of effects to be used in any given situation. So for instance, the muzzle flash of a gun might be a WeaponEffect that contains the gun&#39;s fire animation, the sound effect, the light, the particle effect, and maybe a mesh to show the muzzle flash. Each of these individual effects will live on child objects to the parent weapon effect, and will have an EffectActivator component attached to it. The EffectActivator component allows for independent delays and durations for each effect. In this way, even though the entire muzzle flash effect may be 1 second, the mesh activation flare may be only 0.05 seconds, the animation can be 0.8 seconds, the sound effect can be 0.5 seconds, and start a half second late in the effect. In this way, I should be able to build relatively complex effect systems for individual effects at any given time. Remember - we have to support explosions at some point!&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;Note - The effects themselves. One thing I really did not want to do was get in the business of actually building particle effects. Let me tell you - good particle effects are an art form in and of themselves. I went to the Asset Store and purchased a collection of Sci-Fi weapon effects for $35.00 that I think has pretty much all of the effects I need for my game. It&#39;s a really nice, robust collection - I&#39;ll link it below. However, like many of these assets, it comes with a pretty large collection of code that is their own &quot;ready to use&quot; weapon system. If you were so inclined, you could take that system and probably integrate it into your game. That was not my desire at all. So again, I imported the package unto a separate project to test and evaluate, then imported in only the particle effect prefabs and shaders into my project.&lt;/i&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;b&gt;Finally!&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
So that&#39;s about it. I spent a lot off time working on the systems this weekend, and by the end, I literally had one weapon, halfway working. That is, it plays effects - but doesn&#39;t actually shoot anything yet. But most importantly, we now have a system in place. We know how the pieces work, how they relate to each other. I still have lots of code to write to finish the system, and to build out all our weapons - but I&#39;m no longer wondering how it will all work. And that, is how games get made.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;https://www.youtube.com/embed/0fQbpaK_g0s&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
Questions? Comments? Be sure and mention them below.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Useful Links&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.assetstore.unity3d.com/en/?gclid=Cj0KEQiAj8uyBRDawI3XhYqOy4gBEiQAl8BJbbiyeu0PT8uCfmWqma_XMpkP1WOOwyOfrE419_2fus8aAlE88P8HAQ#!/content/20416&quot; target=&quot;_blank&quot;&gt;Sci-Fi Effects 1.15 by Forge3D&lt;/a&gt;&lt;br /&gt;
This is the Sci-Fi Effects package I downloaded. These guys have now provided all of my effects and sound effects for my game. Maybe I should contact them about some nice environmental pieces.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://docs.unity3d.com/Manual/UNet.html&quot; target=&quot;_blank&quot;&gt;Unity Multiplayer Manual&lt;/a&gt;&lt;br /&gt;
I&#39;ve linked it before but I spent so much time here this weekend it bears listing again.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://onedrive.live.com/edit.aspx/Public/Unity%20At%20Home%20Project?cid=4ac466c30c6a64f7&amp;amp;id=documents?&amp;amp;&quot; target=&quot;_blank&quot;&gt;At Home Project Design Notes&lt;/a&gt;&lt;br /&gt;
The OneNote notebook I&#39;m using to keep my design thoughts in as I work on the project. Not really fit for human consumption, but feel free to peruse if you wish. A Microsoft account will probably be necessary to view it.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://ofcourseillplayit.blogspot.com/p/unity.html&quot; target=&quot;_blank&quot;&gt;The Unity3D At Home Project&lt;/a&gt;&lt;br /&gt;
The main index page of the At Home Project. If you&#39;d like to catch up from the very beginning, this is where to go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/11/unity3d-at-home-project-day-11-weapons.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyFenNA07p7mzi8v_RWuacf-EUK9Y4JNsqGfb_6y16QWTW0JBb2W95zaFj5-E-d1ZTurPf35761RVnt-4DODxZglghKvHF5eScqK5eMbZD2QUnJG32y5XfYgee6P4QPErMHujNJ4fIwDZ-/s72-c/Weapon3.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-9139212827212910916</guid><pubDate>Fri, 20 Nov 2015 14:35:00 +0000</pubDate><atom:updated>2015-11-20T08:35:02.839-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity3D At Home Project - Day 10 - From Simulation to Gameplay</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcMrLSUTuD-UTe81X4XMZDu3PQQwudyeAML6OBfwbTipPGGxCs7sZOyPVxSpx5Sor8AkQtL3Th4p7FwsT3p4a28Awyi8SG-3dxwgmbxOK37R6oI1oX57JeQTa0ABcgJwPRjRR0ugYBHzM9/s1600/NetworkTransformComp.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;346&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcMrLSUTuD-UTe81X4XMZDu3PQQwudyeAML6OBfwbTipPGGxCs7sZOyPVxSpx5Sor8AkQtL3Th4p7FwsT3p4a28Awyi8SG-3dxwgmbxOK37R6oI1oX57JeQTa0ABcgJwPRjRR0ugYBHzM9/s640/NetworkTransformComp.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So this is a bit of an interim post, where I just talk about game developery things, without having done real work on the game itself. As such, it&#39;s likely to turn into a rambling diatribe that no one actually gets to the bottom of, but there&#39;s a process that happens here - it&#39;s really important - and one of the reasons I&#39;m doing this blog as I make this game is to share the things I&#39;ve learned from fifteen years of game developement. So here goes.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_xH66icdSfOSRVM40zEE_d5-Kriqp9vOfhyZBqSfpC1ZtDWih_L78_ODShne_p-ruHjoWi8CqCyRN0_a5cqQdIbuDOLosWQ7JDl-ILin8vNojHnaUEDvnXv_alY6CzVXkA82GfevPR-EK/s1600/MultiplayerConfiguration.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_xH66icdSfOSRVM40zEE_d5-Kriqp9vOfhyZBqSfpC1ZtDWih_L78_ODShne_p-ruHjoWi8CqCyRN0_a5cqQdIbuDOLosWQ7JDl-ILin8vNojHnaUEDvnXv_alY6CzVXkA82GfevPR-EK/s320/MultiplayerConfiguration.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Look how far we&#39;ve come already!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;The Story So Far&lt;/b&gt;&lt;br /&gt;
So up until now, in our game (it really is going to need a name soon), all I&#39;ve really done is worked on simulation. That is, we&#39;ve just been working on some fundamental things we knew we were going to need, without really thinking too much about actual gameplay. And we&#39;ve seen even just that is actually quite a bit of work. We&#39;ve got a mech animating, walking about with a game controller, playing sound effects, and a camera that follows in a pleasing manner, and it all works over multiplayer. But now we&#39;re ready to start actually firing weapons, and that means the mechs need to have health, and we need to do damage, and that means we actually have to start thinking about gameplay. Now, I could slap a health value on the MechController component, and I could just jump right into putting together a weapon that fired some effects and ultimately modified that health value. That is, I could, continue right on with building a weapon that does the most basic thing, and I would probably learn a lot - but if I did so without really starting to think about gameplay, then I would probably end up - pardon the expression - shooting myself in the foot. &amp;nbsp;That is, without taking a moment to actually design some of our game, we would either be building a weapon that didn&#39;t take into account all the things we want to do. Or worse, at the opposite end of the spectrum, if we build too generic of a system, we might end up doing a lot of work to support things we never really intended to build.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Exploding Design Space&lt;/b&gt;&lt;br /&gt;
So in short, before we go any further, we need to think about the actual design of the game. And when you start thinking about all the things you might want to do, well the problem space just explodes. For instance, here is just a short list of thing to think about in our game design:&lt;br /&gt;
&lt;br /&gt;
For mechs -&lt;br /&gt;
How many different types are there?&lt;br /&gt;
What are their characteristics? Health? Armor? Speed? Acceleration? Weight?&lt;br /&gt;
Do they have jump jets? Shields?&lt;br /&gt;
Do we worry about heat and heat dissipation?&lt;br /&gt;
Does terrain effect our mechs? Do they cool down standing in water? Go slow through mud?&lt;br /&gt;
Are we even going to have water and mud?&lt;br /&gt;
&lt;br /&gt;
That&#39;s just a few. What about weapons?&lt;br /&gt;
How many different kinds of weapons? Lasers? Missiles? Chain guns?&lt;br /&gt;
Do we have hard points? Can you swap out weapons on a mech in some kind of loading bay?&lt;br /&gt;
Can you pick up weapons while in game?&lt;br /&gt;
What are the effects of weapons? Do we have healing weapons? Slowing weapons?&lt;br /&gt;
What about ammo? Do weapons have ammo? Do you have to carry it with you?&lt;br /&gt;
Can you pick up ammo in game?&lt;br /&gt;
&lt;br /&gt;
And then let&#39;s think about the gameplay itself:&lt;br /&gt;
What do the levels look like? Is it terrain? Is it a city block? Both? Some kind of interior?&lt;br /&gt;
Are there powerups, in the traditional shooter sense? Repair stations? Cooling stations?&lt;br /&gt;
Are there destructible objects in the world - trees, buildings, etc?&lt;br /&gt;
&lt;br /&gt;
Okay I&#39;ll stop - you get the idea. Now, I know that you know, what I&#39;m about to say next. Yeah Dusty, we get it. You can&#39;t do all of it - pick the things that are important, and focus on those. Duh. But the thing is, (and yes, that was what I was going to say next, thank you very much) while that&#39;s very easy to say, when you&#39;ve got your sleeves rolled up and you&#39;re down in the trenches building your game, it&#39;s actually &lt;i&gt;really hard to do.&lt;/i&gt; Because, like me, you love games. And you want your game to do all those things. For every single item I&#39;ve listed up there, I can make an argument as to why we absolutely have to have them in our game. Jumpjets? Whoever heard of a mech game without jumpjets! Ludicrous! No destructible buildings? Mech games are all about smashing trees and buildings! It&#39;s not a mech game without that! No hardpoints? Deciding on your loadout and swapping weapons is key to playing one of these games! It&#39;s where some players spend the most time - how could you make a mech game without it?&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifYXUh1wO5iPCgOrGSj8qvYFXLF0cjGzpPBZ4LUYRjtRZhz0dG4EQBXG7UTC-EFIygB0syo_T59HRCVye9n8cXSQpmx1SsPLsQgh85LSqALIPPRLMrsqqYKXQazMmo6QXgusrKpoDVw_kj/s1600/WoWScrnShot_101513_235512.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifYXUh1wO5iPCgOrGSj8qvYFXLF0cjGzpPBZ4LUYRjtRZhz0dG4EQBXG7UTC-EFIygB0syo_T59HRCVye9n8cXSQpmx1SsPLsQgh85LSqALIPPRLMrsqqYKXQazMmo6QXgusrKpoDVw_kj/s320/WoWScrnShot_101513_235512.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Tradeoffs&lt;/b&gt;&lt;br /&gt;
In 2006 Rob Pardo, then with Blizzard Entertainment, opened the Austin Developer&#39;s conference with a keynote on Blizzard&#39;s design tenants, and how they shaped the success of World of Warcraft. It was, for me, a watershed moment. I was there, I listened to the keynote, and I furiously wrote down everything he said, but it turns out I didn&#39;t need to. Because those things have stuck with me, and here, ten years later, they are still my creed when it comes to game design. And one of the biggest things he talked about, in Blizzard game design, was having to make tradeoffs.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;The company also tried to remain conscious of trade-offs in game design, and the fact that &quot;every decisions costs&quot; in one way or another. &quot;All game designers are very greedy by nature,&quot; Pardo said. &quot;We want to have every cool feature, and we want to serve every market. The reality is that almost every design decision comes with a trade-off. Nothing in game design is black and white, it&#39;s all shades of grey.&quot;&lt;/i&gt;&lt;/blockquote&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
That&#39;s from a GDC article on his keynote. And it goes on to list the examples Rob gave of tradeoffs they had to make for WoW - Instanced dungeons, flight paths, stylistic art design, and so forth. And the interesting thing is, if you look at some of those decisions, you know that they have since then changed their direction on many of those things. And you can say those tradeoffs were the wrong things. They were bad decisions because they ultimately reversed them. But they weren&#39;t. They were good decisions, because they allowed them to ship the game at the time. And then, years after the game had shipped, they had time to revisit those decisions, and make a different set of tradeoffs.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you aren&#39;t familiar with Rob&#39;s GDC keynote, I highly encourage you to read the article I&#39;ve linked below. In my opinion, it&#39;s required reading for anyone making games - large or small.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioz2vnt7vO-T3JrgPYIdUZ06zRBH0OKN6jsYl0RIr0MdozNH2KEr4wb2hKlCFQw1LjSu7LcwiBL8O5SChm2-gd8rgovc2YujvxfY-VGm0z3llHgnSWGqpmv4unr61PE-k6v6ObG_rs2VQm/s1600/mechassault.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioz2vnt7vO-T3JrgPYIdUZ06zRBH0OKN6jsYl0RIr0MdozNH2KEr4wb2hKlCFQw1LjSu7LcwiBL8O5SChm2-gd8rgovc2YujvxfY-VGm0z3llHgnSWGqpmv4unr61PE-k6v6ObG_rs2VQm/s320/mechassault.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;There&#39;s a lot I can learn from&amp;nbsp;&lt;i&gt;MechAssault&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;Find a Model that Works&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
Okay so I&#39;ve rambled on about the problems around your exploding game design, and the necessity to make tradeoff decisions about what you do and don&#39;t want. So how do you go about making those decisions? Well one important thing to do is to find a game that is shipping, that is similar to what you want to do. For instance, for me, I looked at MechAssault. It&#39;s an old game, but they had to face some off the same tradeoff decisions I&#39;m thinking about right now. What did they decide? If I were making a game, say about interstellar trading, I would probably look at the greats like Trade Wars 2000. Or I&#39;d play a lot of Eve Online. The thing is, there is almost certainly &amp;nbsp;out there, somewhere, a game that already exists that does at least some of the things you want to do in your game. Find it, play it, learn from it. That doesn&#39;t mean copy it. But what were the things they decided to forego. Why? Did it work for them? That knowledge will help you in making your own decisions.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Experience&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
The other thing that helps, and unfortunately this just really only comes from the school of hard knocks, is just your own experience. The more you do this, the more you&#39;ll come to understand the ramifications these decisions have. For instance, I know that if I decide I want to have hard points and swappable weapons, I&#39;m signing up to build a complex, yet intuitive interface to allow users to change, select, and set weapon systems. And that&#39;s a lot of work! Even just saying yes to Jumpjets means hours of tweaking thrust times, landing velocities, animations, and particle effects.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Constrain Constrain Constrain&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
You have to make tradeoff decisions regardless of how many people you have working on your game. And those decisions aren&#39;t easier, just because you have more people. In fact, often they&#39;re harder, because with more people, you&#39;re tempted to tackle more systems. But when you&#39;re just one or two people trying to knock out your indy game, the mantra has to be constrain, constrain, constrain. Even myself, in my own head, when I think about the decisions I have made for this game already, I know I&#39;m probably biting off more than I should. One of the biggest problems I faced in Atomic City Adventures was that I built too large of a game, for one person. And it took too much time. So if you got this far, and you come away from today&#39;s blog with only a single thought, it is this - take everything you want to do in your game. Widdle that list down to the absolute bare minimum list of things you absolutely have to have in your game. &amp;nbsp;And then be ready to throw half of that away, and figure out what you can do in your game with what&#39;s left.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Skip to the End&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
Okay I&#39;ve rambled on about game design long enough. For the next blog, I&#39;m going to talk about the specific decisions that I have made for the At Home Project, and then about some ways to data drive your game systems. &amp;nbsp;And then I think we&#39;ll be ready to actually build some weapons.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
Questions? Thoughts? Please post them below&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Useful Links&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://www.gamasutra.com/view/news/101725/AGC_Blizzards_Pardo_On_WoWs_Success.php&quot; target=&quot;_blank&quot;&gt;AGC: Blizzard&#39;s Pardo on WoW&#39;s Success&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
This is the writeup on Rob Pardo&#39;s keynote address at the 2006 Austin Game Conference. Required reading for game design, in my opinion.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://ofcourseillplayit.blogspot.com/p/unity.html&quot; target=&quot;_blank&quot;&gt;The Unity3D At Home Project&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Interested in reading about this project from the very beginning? Find it here!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://ofcourseillplayit.blogspot.com/2015/11/unity3d-at-home-project-day-10-from.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcMrLSUTuD-UTe81X4XMZDu3PQQwudyeAML6OBfwbTipPGGxCs7sZOyPVxSpx5Sor8AkQtL3Th4p7FwsT3p4a28Awyi8SG-3dxwgmbxOK37R6oI1oX57JeQTa0ABcgJwPRjRR0ugYBHzM9/s72-c/NetworkTransformComp.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-9066464133470176129</guid><pubDate>Tue, 17 Nov 2015 14:41:00 +0000</pubDate><atom:updated>2015-11-17T08:41:41.861-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity3d At Home Project - Day 9 - Twistin&#39; by the Pool</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicat4PYr8tUbLYTAcOnhan2-Kp4SRtMz4sjUVBT4V101KPhPxvjZDHSelynOtB-IM34MDdpJJpNv78swD9qAHzhhUch8E5pRH_ZFpzuayL69VxfjhNMryA1UElAVbdwQ1nfb7mqGVmBDH6/s1600/TurretTwist.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;384&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicat4PYr8tUbLYTAcOnhan2-Kp4SRtMz4sjUVBT4V101KPhPxvjZDHSelynOtB-IM34MDdpJJpNv78swD9qAHzhhUch8E5pRH_ZFpzuayL69VxfjhNMryA1UElAVbdwQ1nfb7mqGVmBDH6/s640/TurretTwist.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So this week is a story about getting sidetracked, about building things you didn&#39;t expect to build, and that sometimes it&#39;s exactly what you need to do, and sometimes it&#39;s exactly what you want to avoid, and of course there&#39;s no easy way to tell the difference.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;Where are the Guns?&lt;/b&gt;&lt;br /&gt;
So it started off with me thinking about weapon systems. I&#39;ve got a mech that&#39;s moving about pretty good, decent sound effects, decent control, and decent camera. It working in multiplayer, and the next logical step is to start thinking about making these things shoot. That is, after all, the point!&lt;br /&gt;
&lt;br /&gt;
There is an entire blog to write (in fact, probably my next blog) about how the design space here really explodes. I won&#39;t go into a huge amount of explanation by what I mean about that here (after all, there&#39;s that blog I&#39;ve yet to write about it). But I will say this got me to thinking about (and wanting to look at) other games I&#39;ve played in the past of similar genre. And that reminded me of MechAssault. MechAssault was a game I played for the original XBox, and I mostly remembered two things about it. One - I loved it. Two, it was a very arcade style version of a mech game, with simplified weapon systems, control systems, and interface. And it used an XBox controller to drive the mech. &amp;nbsp;Perfect! I don&#39;t even have my original XBox anymore, but I was able to find some Let&#39;s Play videos on YouTube, and that gave me the information I needed to have. &amp;nbsp;Take a quick look for yourself below.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;https://www.youtube.com/embed/ZcjjJM176m4&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
Now, I went to the video looking to refresh myself on how they handled their weapons. &amp;nbsp;And I got a lot of good information that will inform my own decisions. But what made the biggest impression on me was their control scheme. And one thing you&#39;ll notice is that all the mechs have 360 degree turret spin. This so the mech&#39;s movement direction and fire direction can be completely independent of each other. The camera is slaved to the torso, while the legs spin about to move in whatever direction the player is driving the mech. The result is a mech that is very 3rd person shooter-esque, allowing you to move forwards, back, and sidestrafe, all while keeping your camera and reticle focused on your target.&lt;br /&gt;
&lt;br /&gt;
It works pretty darn well. And while I didn&#39;t necessarily feel like I had to copy their control scheme verbatim, what was certain to me now was that I really did need to give the player independent control of the mech&#39;s turret (torso), and thus their aiming reticle. And if I ever wanted to support player&#39;s having jumpjets in the game, or any target up on a ledge, they needed to be able to aim up and down as well, to at least some degree. &amp;nbsp;So turret control it was!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Unity Makes it Easy - Maybe Too Easy&lt;/b&gt;&lt;br /&gt;
So at first I thought, I have no animation for the turret spin, but I think I can easily create one, and then have the input feedback play the animation. &amp;nbsp;And then a second thought was - that&#39;s dumb. Just have the input control the rotation of the turret completely. You just need to rotate it&#39;s local orientation, and maybe place some limit&#39;s on it. &lt;br /&gt;
&lt;br /&gt;
That seemed pretty doable, so I sat down, preparing myself to do some of the dirty work of turning an input axis variance of -1 to 1 to turret rotation value. Now, Unity already gives you so much, just built right into it&#39;s math library, to assist with these kinds of operations. With functions like Quaternion.SetLookRotation and Vector3.SmoothDamp, I figured I would be able to build what I needed without much difficulty. But then Unity does one more! While rummaging through my project, I found, already provided, a script in the StandardAssets folder called SimpleMouseRotator. Guess what it does? Yup - exactly what I need! I literally slapped this monobehavior on the gameobject that represented the turret mount point, fired up the game, and bam! Turret rotating!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Don&#39;t Look a Gift Horse in the Mouth - But Know What it&#39;s Eating. Or Something..&lt;/b&gt;&lt;br /&gt;
I was actually tempted to not use this, and build my own anyway. But my own personal limitation was I would build the code we needed, or use whatever was provided in Standard Assets - and this was right in Standard Assets. It would be dumb not to take advantage of it. And while I may be stubborn and hard headed, I try to not be dumb.&lt;br /&gt;
&lt;br /&gt;
I played around a bit with the parameters, and quickly made the thing my own. In fact, I ditched the SimpleMouseRotator component altogether, but pulled the salient code into my MechController component, where it could have easy access to the camera, animator, and other things on the controller that it might want to talk to. And other things could talk to it.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8-TUkEoTKgfcgw0SGV9w4flXwLDlng0sRUGtqL2vZIhF5rRTZNun3xqY056hepPFJy5ARNNg_ySEwRkwuqHmEmvb2NcW8SYKLPUu2ommwh-PtqvmtYsfShc6IinPh8corK6bZQsge8OGM/s1600/ThrustInput.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;173&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8-TUkEoTKgfcgw0SGV9w4flXwLDlng0sRUGtqL2vZIhF5rRTZNun3xqY056hepPFJy5ARNNg_ySEwRkwuqHmEmvb2NcW8SYKLPUu2ommwh-PtqvmtYsfShc6IinPh8corK6bZQsge8OGM/s320/ThrustInput.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The &#39;thrust&#39; input axis&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;The Last 20% Takes 90% of the Time&lt;/b&gt;&lt;br /&gt;
And boy did it ever! In fact, in this case I&#39;d say it took 99% of the time. It took me literally less than 30 minutes Saturday morning to get my turret rotating. In fact, it took me longer to figure out how to map the Xbox controller&#39;s right thumbstick to an input axis. Namely because I knew nothing about Unity&#39;s base input system, and needed to spend some time learning how to set up an axis! By the way, the XBox 360 controller page on the Unity Community Wikipedia was a really useful resource for this. I&#39;ll link it below.&lt;br /&gt;
&lt;br /&gt;
But then I proceeded to spend all day Saturday, much of the day Sunday, late Sunday night, and pretty much all night Monday getting things to a point that I liked it. Yap - just about three full days of programming to get it where I liked it. &amp;nbsp;So what took so long?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Perfect Storm of Competing Systems&lt;/b&gt;&lt;br /&gt;
Mostly this was a case study in too many systems interacting with each other in too many ways, and me trying to get it right, while doing a poor job of isolating each system. &amp;nbsp;We have the mech&#39;s rotation code, with its own collection of turning rates and dampening factors. We have the turret rotating code, also with its own collection of turn rates, dampening factors, and constraints. And then we have our follow camera, which also has its own collection of turning parameters, angular velocities, and constraints. I would try to get one of those systems working just right, but then when it interacted with the other systems, things would go to hell again. And it&#39;s not always clear where the problem was. I noticed at high angular velocities, it seemed the mech was shuttering. Was the actual mech shuttering though, or just my camera? Turns out it was the camera itself.&lt;br /&gt;
&lt;br /&gt;
I won&#39;t go into every problem that I came across, tried to solve, and then re-approached over the weekend. I will say that I had a lot of fun, though it was also extremely frustrating as well. For most of the weekend, I had the camera slaved to the turret&#39;s direction - which made sense. I wanted the reticle to always stay center of the screen, so you when you rotated the turret you were also rotating the camera, and you always looked down then center off the turret, though not necessarily in the direction you were moving. But this produced a whole host of problems, both around controlling the mech, and also just being able to keep the center of the screen on any given target while driving at full speed. &amp;nbsp;At one point I built a self-centering system. While it worked really well, it produced other side effects that resulted in super fast turret rotation only when changing turret direction. I finally turned it off entirely while I sorted out other control and camera issues.&lt;br /&gt;
&lt;br /&gt;
Finally, after having driven way off into the weeds in multiple ways, I decided to back way the hell up, turn the turret rotation off altogether, put the camera back on the mech itself, and think really hard about what I liked, and didn&#39;t like, about how the mech controlled. I then began turning the systems back on, just a little at a time. And I realized that I really liked having the camera back on the mech itself, especially with the turret rotation turned on. It allowed me to see the turret rotating left and right, which gave it a very &lt;i&gt;MechWarrior &lt;/i&gt;feel. When the camera was slaved to the turret, I never saw the turret rotate, you just saw the word spin with you as you looked up and down. This proved to be really disjointing though, as the camera spun wildly about. Plus the camera&#39;s rotation speed then needed to be super fast to keep up with the turret, which introduced a lot of oscillation and variance when trying to aim. By putting the camera back on the base mech, it didn&#39;t have to be super fast, which allows it to move more smoothly, which makes driving the mech much more of a pleasure. Plus I can see the turret&#39;s rotate left and right as I drive, which is just satisfying. This would mean though, that I could no longer keep the aiming reticle in the center of the screen. It will need to move about the screen to match wherever the turret is aiming. So be it. The gains gathered more than made up for it, in my opinion. It shouldn&#39;t be hard to build an aiming system to accommodate that.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Last Big Shift&lt;/b&gt;&lt;br /&gt;
So things were now falling into place, and I was once again getting happy with the mech&#39;s control. But I still had one major problem. In driving around the mech, whenever we turned sharply, we would immediately lose speed. So far, I&#39;ve been controlling the mech in 3rd person movement style. The w,a,s,d keys, or the left thumbstick, move the mech forward, back, and rotates left and right. When controlling the mech with the gamepad, as you hauled the thumbstick far right, it moved more towards the center. This reduced forward motion. If you were very careful, you could keep the thumbstick mostly full forward and pulled right or left slightly, to make a sharp turn at-speed, but in the heat of battle you&#39;re mostly just going to want to haul left or right on the stick, and not worry about maintaining speed. That simply wasn&#39;t going to be possible with the current control scheme.&lt;br /&gt;
&lt;br /&gt;
Then I remembered back to my days of MechWarrior 4: Mercenaries - also referred to fondly as The Last Game I used a Joystick For. And I remember that game put the thrust control for the mech on a separate lever. So to get the mech moving, you rolled the thrust up, and left it. And to slow the mech, or back up, you had to pull thrust back. What if I did that? The more I thought about it, the more I liked it. It just felt right. It felt MechWarrior-ish.&lt;br /&gt;
&lt;br /&gt;
So I checked in all my changes thus far to GitHub, just to be safe. Then I created a new input axis, called &#39;thrust&#39;. I mapped it to the controller&#39;s A and B buttons (and also to keys &#39;W&#39; and &#39;S&#39;). Then I made all the other necessarily modifications to my controller, so that forward momentum came from thrust, and the left thumbstick controlled direction only. &amp;nbsp;And I loved it! It feels so much better now. The mech maintains speed, and controlling the thrust gives the mech much more of a simulator feel. Which, in my opinion, isn&#39;t a bad thing at all.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Sound Pass&lt;/b&gt;&lt;br /&gt;
Finally, to top it all off, remember last week I mentioned I wasn&#39;t super happy with the mech&#39;s footstep sounds I ended up with. And I new I wanted a sound for the turret. So I made another pass on all the mech&#39;s sounds. Much happier now with the overall sounds. The turret sound is really nice when controlled with the gamepad. It&#39;s kind of crappy when controlled with the mouse, because of the sporadic way mouselook feeds that axis. But I&#39;m going to save fixing that problem for another day.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What Did We Learn&lt;/b&gt;&lt;br /&gt;
I actually learned a lot in this upgrade. I learned how to map and modify Unity Input schemes. I refreshed myself on some fundamental trigonometry - let me tell you it&#39;s been awhile. And I was re-reminded that camera and control schemes can be really hard to get right. Small changes have incredibly huge impact. But you shouldn&#39;t quit until you really feel good with your system, because these systems are fundamental to the enjoyment of your game. Here&#39;s this week&#39;s recap video!&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;https://www.youtube.com/embed/2zLdPLTvsG4&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Useful Links&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://docs.unity3d.com/Manual/ConventionalGameInput.html&quot; target=&quot;_blank&quot;&gt;Unity Input&lt;/a&gt;&lt;br /&gt;
The manual page for Unity&#39;s base input system&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://wiki.unity3d.com/index.php?title=Xbox360Controller&quot; target=&quot;_blank&quot;&gt;XBox 360 Controller&lt;/a&gt;&lt;br /&gt;
The Unity Wikipedia page for the XBox 360 controller. Really useful if you want to use a gamepad with your game.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://ofcourseillplayit.blogspot.com/p/unity.html&quot; target=&quot;_blank&quot;&gt;The At Home Project Main Page&lt;/a&gt;&lt;br /&gt;
If you&#39;d like to read all of the blogs associated with this project, you can find them here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/11/unity3d-at-home-project-day-9-twistin.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicat4PYr8tUbLYTAcOnhan2-Kp4SRtMz4sjUVBT4V101KPhPxvjZDHSelynOtB-IM34MDdpJJpNv78swD9qAHzhhUch8E5pRH_ZFpzuayL69VxfjhNMryA1UElAVbdwQ1nfb7mqGVmBDH6/s72-c/TurretTwist.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-8389632791045677317</guid><pubDate>Tue, 10 Nov 2015 19:38:00 +0000</pubDate><atom:updated>2015-11-10T14:14:04.798-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity At Home Project - Day 8 - Sound Effects</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgztODkdN6IQrDtGojALXGGv0Vo0peJhoOf15ZeSakxqLth2siRjqQSlZD_2ecut4DWwtg1fDT3IZZy92gkPYjyLm-Gmmvhq6M1c0ntNJJoMR4ZvgwncM10g9KOb0SNm5Jt7rDvkISBJAFn/s1600/MechAudioComponent.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;338&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgztODkdN6IQrDtGojALXGGv0Vo0peJhoOf15ZeSakxqLth2siRjqQSlZD_2ecut4DWwtg1fDT3IZZy92gkPYjyLm-Gmmvhq6M1c0ntNJJoMR4ZvgwncM10g9KOb0SNm5Jt7rDvkISBJAFn/s640/MechAudioComponent.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
First, I have to start off with stupid things I do. This morning, I blew almost the entire morning trying to find a good plugin, piece of javascript, whatever, to allow me to imbed code snippets into blogger. Sadly, while my C# is strong, my javascript is weak, and though I found several alternatives, I was at every turn foiled in some way or another. Two hours later, I&#39;m no better off than I was before, but out two hours of my time. I&#39;m still fuming about it, so I just had to put a quick rant up. I&#39;m sure I&#39;ll tackle the problem again, or maybe use a GitHub gist. &lt;br /&gt;
&lt;br /&gt;
In the meantime, let&#39;s talk about this week&#39;s goal - getting some sound effects on our walking mechs. Again, my original goal was pretty simple - get an engine sound, and some walking legs sounds on the mech, and that&#39;s pretty much it. &amp;nbsp;Of course, as we&#39;ll discover, even the most simplest of goals can be fraught with peril!&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;Getting the Assets&lt;/b&gt;&lt;br /&gt;
So the first thing to do was to acquire some sound effects. Again, to the Asset Store, credit card in hand! There are a ton of sound effect libraries out there, and unfortunately sampling them is something of a pain. What I learned is that most sound effect assets put their effect out in a SoundCloud for you to sample, but they also put a music or ambient sound bed under the sound effect samples, to keep you from stealing them directly from the sound cloud. And while I appreciate the need, it also makes it darn hard to actually sample the sound effects. &amp;nbsp;I ended up going with Sci-Fi Sounds from Forge3D. Over 500 sound effects for $25.00 - there&#39;s bound to be something in there I can use, plus some GUI sounds and what not that will be useful later.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;Importing Libraries ProTip - Never import an entire asset collection into your main project on initial download. Create a new sample project, and import them into that. Use that project to get familiar with the asset collection, and then move what you need, once you understand how it works, into your main project. I don&#39;t need 500 sounds floating around in my main project right now - I need two, to be precise.&lt;/i&gt;&lt;/blockquote&gt;
Once I had the sounds though, it was time to start going through them one by one, to find something I liked. After an hour or so of rummaging through the sounds, I settled on a few that I thought would be good, and moved them into the Robot-Sandbox project.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirlRPG4DYfTQMXbaq4b43fJHOJFjGLsqNLGQ-owuvYKFH7pcO2bnjlplm6tevMPQrRVT6hF9gIUvUgHM60cAvUDAiEu27Ph_JmkzC-HUXMTOckSIyGQCxzeQRIkVQOIub_CAJHTysyjWHq/s1600/MechMixer.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;185&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirlRPG4DYfTQMXbaq4b43fJHOJFjGLsqNLGQ-owuvYKFH7pcO2bnjlplm6tevMPQrRVT6hF9gIUvUgHM60cAvUDAiEu27Ph_JmkzC-HUXMTOckSIyGQCxzeQRIkVQOIub_CAJHTysyjWHq/s320/MechMixer.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The Mech Mixer&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;Getting Started&lt;/b&gt;&lt;br /&gt;
So going into this week, I new the basics of Unity Audio - at least &quot;old school&quot; Unity audio. I knew about listeners, and sources, and that sort of thing. But I also knew that as of Unity 5, they had added quite a bit of functionality through the use of mixers of some sort, and that seemed like something I&#39;d want to take advantage of. So the first step again, was back to Unity tutorial videos, and the online manual. And it turns out, it was actually quite useful. I won&#39;t go through all of it, but I will provide a link at the bottom of the blog if you want to dig in yourself.&lt;br /&gt;
&lt;br /&gt;
Coming out of the tutorials, I knew that I wanted at least two mixers for my project. The master mixer, which would use to blend SFX and Music, and a submixer, for my mech itself. And on the sub mixer, I would set up different groups for each of the engine and footsteps sounds.&lt;br /&gt;
&lt;br /&gt;
I then added two audio sources directly to the mech controller prefab, and gave them audio clips. I then modified the MechController script to grab a handle to each of these components, so I could manipulate them.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Engine Sound&lt;/b&gt;&lt;br /&gt;
There&#39;s a really cheap and easy trick you can do with vehicle engine sounds to produce an &quot;engine-like&quot; effect, and that is to continuously update the pitch of the sound with the overall speed of the vehicle. And this is exactly what I did. I put the code in the move function, which is called every update, right after I calculate ForwardSpeed from the user input controls. This was, as I discovered, actually a big mistake.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_5Bucd-vRBmB6QhwL-Fz9UezUtSeAv1xaejNfp9PRl8G02xhBsD0_d_lgc28jZ2dYJE_LuMUqPIQbP0o09x_Ig8vUovJyAtitB3lkcyOiHnccexIvzbSsN_KRWHQW-D-VdRdPzR7_8N5a/s1600/MechFootstepEvents.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;173&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_5Bucd-vRBmB6QhwL-Fz9UezUtSeAv1xaejNfp9PRl8G02xhBsD0_d_lgc28jZ2dYJE_LuMUqPIQbP0o09x_Ig8vUovJyAtitB3lkcyOiHnccexIvzbSsN_KRWHQW-D-VdRdPzR7_8N5a/s320/MechFootstepEvents.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;OnFootstep event added at two&lt;br /&gt;
locations in the animation timeline&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;The Footstep Sounds&lt;/b&gt;&lt;br /&gt;
For the footsteps, I knew I needed to add animation tags to the animation, that would fire callback code, which would play the animation. Adding animation tags, or events, to animations used to be hard to do in Unity, but since mecanim was introduced, it&#39;s pretty easy. Just go to the events drop down in the animation editor, scrub along the timeline to the desired location, and insert an event. Whatever you name the event will be the name of the function that is called on the object that the animation controller is associated with, which in our case is our MechController.&lt;br /&gt;
&lt;br /&gt;
I was able to get all of this set up and working pretty quickly. The engine sounded nice. I ran into one problem with the foosteps sounds in that they were always playing, even when the mech was standing still. I realized that because the walk animation is blended with the idle and the run, at all times some point of the walk animation was playing, and that&#39;s enough to fire the events. It would be nice to have a way to say only fire the animation event if the weight of this animation is above a threshold, but I didn&#39;t find any such setting. So I modified the callback function to only play the footstep sound if the forward speed of the mech was above a certain threshold. The other thing that I noticed was that when the mech was only just barely moving the footstep clang had the same, really loud volume. So I attenuated the volume of the footstep sound by the forward speed of the mech.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Leg Sounds&lt;/b&gt;&lt;br /&gt;
I toyed with the idea of having a separate sound for the legs lifting. I like the idea of sort of a hydraulic servo noise coinciding with each leg lifting up, and then a loud clang as the footstep came down. Unfortunately, this turned out to be really problematic. Because the leg moving animation is blended, you never really know at what speed the leg will be going through it&#39;s cycle. In fact, you don&#39;t even know that it will complete the cycle, as it could reverse direction in midstep. This meant that the servo noise, once started, may or may not ever actually line up with a full leg raise and lower cycle. I played around with a variety of sounds and adjustments, but never could really get it to be what I wanted, so eventually abandoned separate leg lifting sounds, and just stayed with footsteps.&lt;br /&gt;
&lt;br /&gt;
So I was playing the engine noise, playing the foosteps, and the sounds were getting fed into my mechmixer, so I could add effects or adjust the volumes independently if I wanted to, and that was in turn getting fed into the main mixer, which was in turn getting fed to the listener. We&#39;re all good right? Well, not so fast.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Multiplayer Problems&lt;/b&gt;&lt;br /&gt;
And now is the time when we learn why we&#39;ve already hooked up multiplayer. Once I was satisfied with the sounds in single player, I connected a second mech to the play screen, expecting, for the most part, everything to work as expected. Instead, it pretty much blew up - soundwise that is. As soon as I connected the second mech, all I could hear was this super loud, constant noise I didn&#39;t recognize, playing on top of the sounds my own mech was making. Other than that, the other mech in the scene wasn&#39;t making any noise that I could tell - no engine noise, no footseps, nothing. What the hell was going on?&lt;br /&gt;
&lt;br /&gt;
Well it turns out, a lot of things. &amp;nbsp;And it took me the better part of a Sunday morning and afternoon to sort these things out. The first problem, the super loud constant noise - turned out to be the engine of the other mech, playing at a constant pitch - no attenuation at all. This was because I was attenuating the pitch inside the move function, which as I mentioned earlier, is called every update by the user input controller - but only on my local player! So on client mechs, this function never got called. First thing to do was to move that pitch modification to the general purpose update. And, at the same time, make the ForwardAmount variable I was using a SyncVar, which is Unity&#39;s way of replicating variables across the network.&lt;br /&gt;
&lt;br /&gt;
Well, when I did that, the other mech now was making no sound. Dammit, that should have fixed it! Some debugging logic later, I learned that the ForwardAmount variable was always zero on the client machine. More pondering and investigation, and I finally had a grip on what was happening. Setting the variable to [SyncVar], causes the server to replicate the value out to clients. But my variable was getting set by my local client. I needed to get the value from my local client up to the server someway, so that it could then get replicated to the other clients by the server. But how to do that?&lt;br /&gt;
&lt;br /&gt;
The method unity gives you for getting information from a client to the server is to create a Command function. Command functions, when called, will be executed on the client and server. But Unity also warns you against making Command Functions every single update - and this was something I pretty much needed updating as often as it could. I was pretty stumped at this point - I didn&#39;t want to flood the server with CommandFunctions, but I needed some way to get a value replicated from the client, through the server, to other clients. And that was when, it hit me. The animator!&lt;br /&gt;
&lt;br /&gt;
The animator has a NetworkAnimator component attached to it that Unity has thoughtfully provided that replicates animator properties across the network. And one of these properties was the forwardSpeed property I needed to query! So I could, thereoretically, on any client, query the property from the animator, and I would either get the value I personally set on my local client, or the replicated value on network clients - but the same code should work either way! So I tried this, and it worked, and that, in the end, was the key to solving the rest of my multiplayer sound effect problems.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;I have no idea how actual efficient this is at this point. But using the animator as a general purpose means of replicating player-controlled-variables to networked clients seems like a really useful trick. We&#39;ll see if it bites us in the ass later on, but it&#39;s something I&#39;m keeping up my sleeve for future use.&lt;/i&gt;&lt;/blockquote&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd63wAFcD8NN6ZP4TMyR8o9txMQbanJY-YvnXE-342TBQ40WFpZkTJC1JLrq7y8a69MBMgycXOPmZf0sHYOPqmWT_2qpG9DSxzoanWRddrrJPqiJSJfaIjBqHsG5wKV1vGI1d3aXPr8hfH/s1600/SpatialBlend.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd63wAFcD8NN6ZP4TMyR8o9txMQbanJY-YvnXE-342TBQ40WFpZkTJC1JLrq7y8a69MBMgycXOPmZf0sHYOPqmWT_2qpG9DSxzoanWRddrrJPqiJSJfaIjBqHsG5wKV1vGI1d3aXPr8hfH/s320/SpatialBlend.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Make sure Spatial Blend is set to 1.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;Where&#39;s the 3D Sound?&lt;/b&gt;&lt;br /&gt;
So this wasn&#39;t a problem specifically with multiplayer, but was a problem I didn&#39;t discover until I added the client to the game. When I did finally get the sounds attenuating and playing correctly, they still weren&#39;t fading over distance. Why not? These were supposed to be 3D sounds, and I could see clearly the volume falloff curve set up on the audio component. Well there is a parameter on the audio component called Spatial Blend. Turns out this parameter is really important. It determines how much of the sound is made available for spatial modifications, including distance attenuation (and reverb zones, and other goodies). If your sounds aren&#39;t modifying their volume over distance, this should be the first thing to check on your audio source. Set it all the way to 1.0, which is full 3D.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Lesson&lt;/b&gt;&lt;br /&gt;
This week turned out to be a lot harder than I thought it would be, which is often the case in game development. I ended up spending as much time if not more figuring out the multiplayer problems with my audio set up than I did in setting up the audio in the first place. I&#39;ve said this before, but this really drove the point home - if you&#39;re going to multiplayer, do it early in the project. And then for each piece you think you have working, fire it up in multiplayer, and see if it&#39;s truly working. And then be prepared for a bit more coding.&lt;br /&gt;
&lt;br /&gt;
Once I had everything working (finally) mostly to satisfaction, I put together a short video, showing off the audio. This time, I even added some commentary, which relates to the stuff I&#39;ve talked about in this blog. &amp;nbsp;Enjoy the video, and let me know if you have any questions or thoughts!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;https://www.youtube.com/embed/9rlv_HNizb0&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Useful Links&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.assetstore.unity3d.com/en/#!/content/22391&quot; target=&quot;_blank&quot;&gt;Sci-Fi Sounds&amp;nbsp;&lt;/a&gt;&lt;br /&gt;
This is the audio asset pack I ended up using from the Asset Store&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://unity3d.com/learn/tutorials/topics/audio&quot; target=&quot;_blank&quot;&gt;Unity Audio Tutorial(s)&lt;/a&gt;&lt;br /&gt;
If you&#39;re getting started with Unity Audio, this is the place to get started&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://ofcourseillplayit.blogspot.com/p/unity.html&quot; target=&quot;_blank&quot;&gt;Main Page for the At Home Project&lt;/a&gt;&lt;br /&gt;
If you&#39;d like to see all of the At Home Project posts, I&#39;ve provided an index here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/11/unity-at-home-project-day-8-sound.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgztODkdN6IQrDtGojALXGGv0Vo0peJhoOf15ZeSakxqLth2siRjqQSlZD_2ecut4DWwtg1fDT3IZZy92gkPYjyLm-Gmmvhq6M1c0ntNJJoMR4ZvgwncM10g9KOb0SNm5Jt7rDvkISBJAFn/s72-c/MechAudioComponent.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-8426988503245949055</guid><pubDate>Tue, 03 Nov 2015 14:35:00 +0000</pubDate><atom:updated>2015-11-03T08:35:39.820-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity3D At Home Project - Day 7 - Walking with Robots</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxtH32wjU69R7b4IFGxzKRm3v8OUMrJpWXvw7acvQUo05jQhrq-j3uEl1-79QgQMJKOSBHzVau3VPyly1t5ZPnvWVQXprr_GKKQxlrZJYunYS0P-BFzPCFUV0uMqmA3TswCdS3w4aZx5eO/s1600/RobotSandbox_2015_11_02_06_36_08_007.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;384&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxtH32wjU69R7b4IFGxzKRm3v8OUMrJpWXvw7acvQUo05jQhrq-j3uEl1-79QgQMJKOSBHzVau3VPyly1t5ZPnvWVQXprr_GKKQxlrZJYunYS0P-BFzPCFUV0uMqmA3TswCdS3w4aZx5eO/s640/RobotSandbox_2015_11_02_06_36_08_007.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So it&#39;s time to move into the next phase of our project. We&#39;ve done some simple experimentation, and dabbled in some of the core pieces of a 3rd person action game. We created terrain, texturing hills and mountains, and learned about how trees &amp;amp; foliage work. We got a character controller and a camera controller to allow us to drive a character around. We mapped some animations to a simple biped, and learned about the animator controller. And we established simple multiplayer support, connecting a client to a host, and letting two players run around the world together. &amp;nbsp;But none of this is giant robots fighting each other, which is our goal. So with our base pieces in place, it&#39;s time to say goodbye to Unity-Terrain project, and start working with giant robots.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM_V-ZrFlgHJzDnewiMRuZdbWBY7mbzBPxf0mKmHgjxc5SBJujgXzL2YrqJK3T-VfmVwb02F_EXI9U61GEboUJM9ybxV50ZlzV5jb-JPyjwVxazrRfmO4tu_kIgCqaU6XzbTa9xO19PsEh/s1600/NetworkTransformComp.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;173&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM_V-ZrFlgHJzDnewiMRuZdbWBY7mbzBPxf0mKmHgjxc5SBJujgXzL2YrqJK3T-VfmVwb02F_EXI9U61GEboUJM9ybxV50ZlzV5jb-JPyjwVxazrRfmO4tu_kIgCqaU6XzbTa9xO19PsEh/s320/NetworkTransformComp.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;The Mech&lt;/b&gt;&lt;br /&gt;
The first thing of course, is to acquire some robots. This means a shopping expedition at the Unity Asset store. There is absolutely no shortage of models and resources aimed towards mechs and giant robots, because well, duh - giant robots! I spent quite a bit of time shopping various models and pieces, but decided upon the Mech Constructor pack. &amp;nbsp;This pack provides the mechs as a collection of interchangeable pieces that fit together. This system is going to provide a lot of flexibility in building the mechs, and providing weapon variations, which in turn provides us with a lot of flexibility in our game design.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Here&#39;s a cold hard truth about indie game design. If you&#39;re building something traditional, and commercial, often your asset availability will dictate your design, not the other way around. &amp;nbsp;In an ideal world, we design our game without thought towards asset or code availability - we build what we think is fun, and then create the assets to support that. But in the real world, if you&#39;re a small team trying to make something big, any design you create will have to be supported by assets. And if you can&#39;t easily acquire them, you&#39;ll have to tackle making them - and you may or may not have the ability to do that, readily anyway. &amp;nbsp;So for instance, say in our giant robot fighting game, we want our robots to have shields. We&#39;ll to support that, we&#39;ll need some kind of cool shader effect to apply to the robot that has the shields, sound effects for powering up and down the shield, and probably some spawn particle effects as well. Maybe a collection of weapon impact particle effects and sounds to support hitting the shielded mech. Realizing that you don&#39;t have the time, money, or resources to easily build all of that, you may decide shielded mechs may not be a thing in our game. &amp;nbsp;Unity&#39;s greatest strength to indie developers is the availability they give to acquire assets and technology so that you have more flexibility in making those tradeoffs. But make no mistake, every design decision you&#39;ll make should be influenced by whether or not you have the resources to support it.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Okay back to our project. So I purchased the mech constructor pack, created a new project called RobotSandbox, and imported the new assets. Within a relatively short amount of time, I had pieced together my first mech. A light mech - a chicken walker (if you&#39;re familiar with mech types, and who isn&#39;t!), with a matching pair of cannons for weapons. &amp;nbsp;Good stuff - he&#39;ll do fine for our prototyping.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;New Controller &amp;amp; Camera&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
The Standard Assets pack that comes with Unity has a pretty robust controller &amp;amp; camera rig. I ditched my simple camera &amp;amp; controller from the last project, and set about using these more robust pieces. Now, I like to preserve stock code and assets intact if I can, so I made copies of these classes, called MechController &amp;amp; MechCamera, and put them in my own project&#39;s scripts directory. That way I can modify these classes to my heart&#39;s content, and not worry about messing up the originals. And modify them I will!&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So I added the new controller and created a very simple animation controller that just contained a single blend tree for the robot&#39;s motion that had two states - idle and walk. I then added the necessary parameters to the animator for the controller to be able to work with it. &amp;nbsp;Set up all the pieces, and pushed the play button. And nothing. Well, not exactly nothing, but not what we want either. The mech animated correctly (mostly), and would turn, but wouldn&#39;t walk at all. Time to dig into that controller and take control. So to speak.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Root Node Motion&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
So it didn&#39;t take too long to figure out the problem here. Unity&#39;s Standard Asset 3rd person controller is heavily dependent upon root node motion animations. So what does that mean, exactly? In a typical motion &amp;amp; animation set up, the avatar&#39;s movement is determined by external forces, and the animation state is derived from the movement. So user inputs get turned into velocities and rotations,, the velocities &amp;amp; rotations are fed to the animator, and it blends to the right animation state. Your animations are all animated in-place, which is to say the root node of the model doesn&#39;t translate in anyway through the animation.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In a root node motion animation system though, the animation drives the movement. Movement animations, such as run and walk, actually translate the root node of the model through the duration of the animation some distance. Inputs are fed into the animation, the animation blends to the correct state, the model is translated some distance through the course of the animation, and that distance is fed back to the simulation, which updates the actual position of the avatar. So in brief, typically motion drives animation, but in root-node motion system, the animations drive motion.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Which is right for you?&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
For just about as long as I&#39;ve been making games, at the beginning the project, we have this discussion. Root node animation movement, or standard movement animation? The artists always want to use root-node animation, as it provides the best linking between animation and movement. Your characters no longer slide, or rotate in place, or move about in any way without a one-to-one sync with an appropriate animation. &amp;nbsp;The programmers &amp;amp; designers though inevitably want to use a standard motion system, because there are so many things that can drive character speed, and they want complete control over that, and don&#39;t want to funnel it through the animation system. In every game that we started out attempting to use root node motion, we eventually abandoned it, and returned to the traditional method of movement driving animation. &lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;What am I using?&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
Well despite the preponderance of evidence I have from my own game development career, this is, as I&#39;ve often said, an experiment. And I&#39;m kind of interested to see if I can make root node animation work. There&#39;s only one problem. The animations that came with my mech pack don&#39;t have movement built into them. They are in-place animations. &amp;nbsp;Remember what I said earlier about your assets driving your design? Yeah that.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
But as it turns out, there is a poor-man&#39;s way of rigging a root node motion derived system onto in-place animations. You can do it through a curve. Unity allows you to add arbitrary animation curves to any existing animation. If you create a parameter in the animator with the same name as the curve, the values of that parameter will be driven by the curve values during the playback of the animation. So by creating a float parameter called WalkSpeed, I could vary this parameter through the duration of the walk cycle to more closely resemble what the mech was actually doing during that animation. Then in the callback provided by the animator, I can query that parameter, and turn it into a velocity applied to the avatar&#39;s transform. &amp;nbsp;Viola! Crude root-node animation!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3MX7mM2gEzt8wkoe65bE5ozIcjPLrKSwjL8WpB9wjgboI4gZPCbzsb0Kmz95Dj01s2MRW7PPTqKr3ZQfBb9quQ-yZia6j_m7UOop5j7ZEG8Rv2vi5C9TeCURjlHIfvYSi2j2V175Ruejv/s1600/AddingWalkSpeedCurve.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3MX7mM2gEzt8wkoe65bE5ozIcjPLrKSwjL8WpB9wjgboI4gZPCbzsb0Kmz95Dj01s2MRW7PPTqKr3ZQfBb9quQ-yZia6j_m7UOop5j7ZEG8Rv2vi5C9TeCURjlHIfvYSi2j2V175Ruejv/s400/AddingWalkSpeedCurve.jpg&quot; width=&quot;140&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;WalkSpeed Curve&lt;br /&gt;for the walk animation&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Of course, my first guess at these values was absolutely terrible. The values were nowhere near correct, plus I still needed a speed scalar to actually get the mech moving. The mech looked terrible turning in place, as there are no in-place turn animations (and the walk anim really wasn&#39;t suitable). So this is where you cue the tedious and incredibly time consuming task of tweaking values, adjusting equations, watching the results, and repeating to get what you want. I spent pretty much an entire Saturday morning doing exactly that, and in the end finally settled on an animation curve and movement speed scalar that provided the best variations for both the walk and the run cycles that produced the least sliding. But I wasn&#39;t done yet, not by a long shot.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Acceleration&lt;/b&gt;&lt;br /&gt;
So I had the mech&#39;s walk &amp;amp; run motion looking pretty good, when it was at full speed. But it still looked wonky going from rest to &amp;nbsp;moving, and then returning to rest. After thinking about it a moment, it occured to me that the sudden shift in movement value was the culprit. The input controller returns a value from -1 to 1 along the vertical axis (forward). But when you&#39;re using a keyboard, it goes immediately, in a single update, from 0 to 1. It was slightly better with the gamepad, but still you tend to just jam the stick forward when you want the player to move, so it largely produced the same results. So going from rest to full speed created all kinds of problems. The feet slide all over the place as the animator tries to blend through three animations over the course of a few updates. This is a mech - it&#39;s not meant to go from rest to full blast in a single update. We needed an acceleration factor, so that no matter how much you jammed on the forward vector, the mech would take time to get up to speed (and conversely, time to return to rest). Not only does this make the mech feel better, but it gives the animation system time to blend through all the animations in a satisfying manner.&lt;br /&gt;
&lt;br /&gt;
At first I tried applying the accleration directly to the physics equation on the animation callback, where the actual motion is set. The first version of this had the unintended but hysterical result of causing the mech to shoot off into space, sailing over the edge of the platform and plummeting to oblivion. Fun, but not really desired. I also realized that this was a bad place to modify the movement, because it would adjust the speed after the animation, which meant the animation couldn&#39;t take advantage of it. That is, I was directly undoing the work I did in setting up the root node animation to begin with! No, for this to work right, the dampening had to occur on the input side, so that it was fed into the animation, so it could adjust appropriately.&lt;br /&gt;
&lt;br /&gt;
Once I realized that, it was a pretty simple change. Instead of taking the forward motion value directly from the input value, I made the forward motion value interpolate over time to the desired input value. I then added an accleration scalar into the equation, so we could have some mechs accelerate faster than other mechs. This worked perfectly! &amp;nbsp;The last piece to handle was turning in place. And I decided that these mechs just don&#39;t turn in place. My move controller (remember, borrowed from Standard Assets) allows an &quot;at rest&quot; rotational speed, and a &quot;moving&quot; rotational speed. It calculates the current turn speed by interpolating between those two values by the current value of forward motion. By setting the at test rotational velocity to zero, the mech doesn&#39;t turn if it&#39;s at full rest, but as soon as you start moving, you can turn. I like this effect. It&#39;s a mech. If you want to turn, you need to get it moving.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6RBKGkuk71QeSHWChArqpveg8jYebLromhXalAqyG6uKjPb9CpytKYSnKVCMGL5sEH3n6w4xp_hQX-kj7KOdaUpGy8wFlPHZraiESHacfsV2_v6CfVvkS9QMf_75hyphenhyphenR77IzqEQEsLzht-/s1600/MechMotionBlendTree.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;185&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6RBKGkuk71QeSHWChArqpveg8jYebLromhXalAqyG6uKjPb9CpytKYSnKVCMGL5sEH3n6w4xp_hQX-kj7KOdaUpGy8wFlPHZraiESHacfsV2_v6CfVvkS9QMf_75hyphenhyphenR77IzqEQEsLzht-/s320/MechMotionBlendTree.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Final Blend Tree for the Mech&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;Walking Backwards&lt;/b&gt;&lt;br /&gt;
This turned out to be a tougher problem than you would think to solve. At this point, my animator only interpreted forward motion values from 0 to 1. If you haul backwards on the stick, you get values that range to -1. So I modified the range of values for the blend tree to accommodate a range of -1 to 1. But what animation to play when walking backwards? I don&#39;t have a &quot;walk backwards&quot; animation. I tried just playing the walk cycle animation, but ugh, it just looked terrible when the mech was trying to move backwards. &amp;nbsp;Plus, when moving backwards, I noticed the mech kept trying to turn sharply in one direction or another. This was a mess.&lt;br /&gt;
&lt;br /&gt;
You&#39;ve probably already figured out what I needed to do here, but I&#39;m not always terribly bright. So I thought, well maybe these mechs don&#39;t walk backwards. Maybe when you haul backwards on the stick, they move forward, but try to turn sharply about. So I tried this. I set up the animator to use the walk animation from -1 to 1. From -1 to 0, the blend would play the walk animation only though - it wouldn&#39;t blend to run. The rotational value was already trying to calculate a turn from forward to 180 behind you, but dampened by the rotational acceleration, so as soon as you started moving by hauling back on the stick, the mech would immediately try to turn around.&lt;br /&gt;
&lt;br /&gt;
So, this worked pretty well, in that it had the desired result. But there were still two problem. The first, was a design issue - in that in this mode, every time you wanted to back away from an opponent, your had to turn your guns off the opponent. You could argue this is a good thing - makes you think about turning away! But I had a feeling it would drive players crazy. I think it would drive me crazy. It also just felt unnatural. Mech battles are, for better or worse, often two mechs standing toe to filling each other up with rockets and lasers, while slowly backing away. But design considerations aside, there was another issue. When you pulled back on the stick, and the mech started to turn and move, it would accelerate. But then as you got turned around, and the camera swung about behind the mech, you would naturally shift from pulling back to pushing forward. Well this would cause the input values to vary from -1 to 1. But because of our own acceleration parameters, this would cause the mech to slow to a crawl, and then start to accelerate again. That meant as you turned 180 degrees, and then started to move forward, you couldn&#39;t maintain speed.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaPw34XV22uLynNvhFJJpg0VUX35llCdda6C5PknrHG1wxbGFCvVPt8CSErKIxKHYrFpFGnIwZX5cY8N5rmRQiKD2-N3S7xvsNYnwh3g-59TByV9b3sc2CYeK8bGhyphenhyphenAz-sn-vV65MhLg1v/s1600/ReverseAnimationPlayback.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;184&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaPw34XV22uLynNvhFJJpg0VUX35llCdda6C5PknrHG1wxbGFCvVPt8CSErKIxKHYrFpFGnIwZX5cY8N5rmRQiKD2-N3S7xvsNYnwh3g-59TByV9b3sc2CYeK8bGhyphenhyphenAz-sn-vV65MhLg1v/s320/ReverseAnimationPlayback.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Set the animation speed to -1 to play the anim backwards!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
So, this wasn&#39;t terrible. I played around with the mech like this for &amp;nbsp;a long time, and had just about decided that was how it would work. &amp;nbsp;But I really wanted it to walk backwards. So I went back to the animator one more time to see if there was something I could do. &amp;nbsp;And it was there, while scrubbing through the walk cycle, it hit me. I just needed the stupid walk cycle to play backwards. If I played the walk cycle backwards during the backwards movement phase, it did exactly what I wanted! Surely there was a way to specify to Unity that I wanted to play an animation backwards? And it turns out, there was! In the blend tree parameters, there is an animation speed value, that defaults to 1. You can adjust this to make the animation play slower or faster during that phase of the blend. And if you set it to -1, it plays the animation in reverse! Perfect!&lt;br /&gt;
&lt;br /&gt;
So by now it&#39;s time to skip to the end. That was the key to getting walking backwards working correctly. I damped backwards movement by half, so you can only move at walk speed going backwards (not running). And it took me awhile to figure out how to adjust the turnspeed amount when moving backwards so the mech didn&#39;t immediately try to turn about when you pulled back, but that was a pretty simple change as well.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPo9_gqbKS1pLfyU2OFjizzXTapdBbdtdegoyIAls-BfEvRizLhC2tn-tRHIAaQ0J4sk7jXu-NOUDLnPFKSbPLdm5JL8OSnllNIyKtjq5Zu-53dhP9Hk72Ys2gb5x2qptwaqAD3Ll6mRCZ/s1600/MultiplayerRobots.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;173&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPo9_gqbKS1pLfyU2OFjizzXTapdBbdtdegoyIAls-BfEvRizLhC2tn-tRHIAaQ0J4sk7jXu-NOUDLnPFKSbPLdm5JL8OSnllNIyKtjq5Zu-53dhP9Hk72Ys2gb5x2qptwaqAD3Ll6mRCZ/s320/MultiplayerRobots.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Multiplayer!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;Multiplayer Again&lt;/b&gt;&lt;br /&gt;
The last thing I did was to also convert this project into multiplayer, like I did for the Terrain project. It was a relatively simple process, now that I&#39;ve done it once before. I had one gotcha where nothing would move over the network because I forgot to add the NetworkTransform component to my mech avatar. Turns out that&#39;s pretty important.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Mechs in Motion&lt;/b&gt;&lt;br /&gt;
At last, I was really happy with my mech&#39;s movement. It rests comfortably in idle. Jam forward on the stick, and she moves out, matching the animations really closely. Turn left and right, and she turns with you, slowing as you turn, which is perfect. Let go of the stick, and she rumbles to a rest satisfactorily. And haul back, and she slowly moves backwards, and you can turn her left and right as she moves. I love it! Man, all I need now are guns! &lt;br /&gt;
&lt;br /&gt;
Here&#39;s a video of our finished mech in motion:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;344&quot; src=&quot;https://www.youtube.com/embed/CrYVnuslyf8&quot; width=&quot;459&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Next!&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
I&#39;m in crunch at work this week, so who knows when I&#39;ll get a chance to work on the project again. I think the very next thing I want to add are sound effects. Our mech just isn&#39;t a mech until it sounds like one. That will mean a trip back to the asset store, undoubtedly. After that, I think I&#39;m happy enough with camera and motion to start thinking about weapon systems.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Until then, if you have any questions for comments, please leave them below. &amp;nbsp;Here are some useful links:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://www.assetstore.unity3d.com/en/#!/content/39969&quot; target=&quot;_blank&quot;&gt;Mech Constructor Pack&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
This is the asset I used for the mech models and animations&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://docs.unity3d.com/Manual/ScriptingRootMotion.html&quot; target=&quot;_blank&quot;&gt;Scripting Root Motion Animation for &quot;in place&quot; Animations&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
This was the tutorial I used for figuring out how to get my poor man&#39;s root motion animation working&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://ofcourseillplayit.blogspot.com/p/unity.html&quot; target=&quot;_blank&quot;&gt;Unity3d At Home Project&lt;/a&gt;&lt;br /&gt;
The master blog page for the entire project&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://ofcourseillplayit.blogspot.com/2015/11/unity3d-at-home-project-day-7-walking.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxtH32wjU69R7b4IFGxzKRm3v8OUMrJpWXvw7acvQUo05jQhrq-j3uEl1-79QgQMJKOSBHzVau3VPyly1t5ZPnvWVQXprr_GKKQxlrZJYunYS0P-BFzPCFUV0uMqmA3TswCdS3w4aZx5eO/s72-c/RobotSandbox_2015_11_02_06_36_08_007.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-900549662289331254</guid><pubDate>Fri, 30 Oct 2015 13:34:00 +0000</pubDate><atom:updated>2015-10-30T08:34:25.997-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity3D At Home Project - Day 6 - Multiplayer</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC6l7hSkeoE29fypZ5u-NdsHVZKC9L7WbkmKTjlQjlFK79X0MxNi3IMvUQlYPidCJdA6UVc71ZoRwayjEsqoEoTcXmBUrDyJUKxhT8wpzz9SHfwwlsiPZU_6Aa8ahq6N726lEgksbfHPox/s1600/UnityTerrain_2015_10_30_07_16_10_933.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;358&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC6l7hSkeoE29fypZ5u-NdsHVZKC9L7WbkmKTjlQjlFK79X0MxNi3IMvUQlYPidCJdA6UVc71ZoRwayjEsqoEoTcXmBUrDyJUKxhT8wpzz9SHfwwlsiPZU_6Aa8ahq6N726lEgksbfHPox/s640/UnityTerrain_2015_10_30_07_16_10_933.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So as you&#39;ve probably come to realize the &quot;Day&quot; in the title really isn&#39;t significant. I could be &quot;Issue&quot;, or &quot;Section&quot;, or &quot;Chapter&quot; if you like. It&#39;s really just a way for me to designate each subgoal within the project. &amp;nbsp;And that&#39;s really important - subgoals. When you&#39;re making a game, the entirety of the game itself can be incredibly overwhelming. Menus, scores, multiplayer support, weapons, animations, the list goes on and on and on. And a lot of times you&#39;re going to be thinking - what next? How do I get it all done?&lt;br /&gt;
&lt;br /&gt;
Your ability to compartmentalize your game into sections - and more importantly - systems, is going to be one of the most valuable skills for you to develop. Pick out a specific section of the game, decide what the goals are for that section, and implement it. But all of the pieces of the game are intrinsically interconnected. And most pieces build upon some other piece. Which is why it&#39;s not only important to decide which section you&#39;re working on, but what order are you going to build the sections of your game. For instance, I wouldn&#39;t spend a huge amount of time focusing on building a level in my game until I had a better grasp on the gameplay - because those things are going to shape level design.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The next section piece of our game puzzle I wanted to implement was basic multiplayer. Now - that word, all by itself, is still a whopping tall order, so I needed to constrain it even further. Specifically, I wanted to be able to have two clients in the same game together, and be able to run around, and animated correctly. &amp;nbsp;And as you&#39;ll see, in the end, Unity made that frighteningly easy. In fact, it will probably take me longer to write this blog than it did for me to get it up and working. But first things first. Let&#39;s talk design a bit.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-6JVBjKU2POYj-UZRxP6ikRB0LAncube5Df0Smjki2viLl1RfxHO92N0IWoSM078jVx3OqUqEaYq0viz3naYAUX6OZOWV8Rkb9Qi4TTf2xSzyywFPwQiCNlYD4V3gLhP0QYsJ5SGnkZj-/s1600/MultiplayerConfiguration.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-6JVBjKU2POYj-UZRxP6ikRB0LAncube5Df0Smjki2viLl1RfxHO92N0IWoSM078jVx3OqUqEaYq0viz3naYAUX6OZOWV8Rkb9Qi4TTf2xSzyywFPwQiCNlYD4V3gLhP0QYsJ5SGnkZj-/s320/MultiplayerConfiguration.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Multiplayer Architecture&lt;/b&gt;&lt;br /&gt;
Multiplayer architectures come in a variety of flavors. One is peer-to-peer. In this model, all actions are synced across all computers connected to the network simultaneously. It&#39;s extremely important that everything be replicated in exactly the same way. The Age of Empires games were written this way - there was no dedicated server in a multiplayer game. The downside to this model is that it is extremely easy for one machine to become out of sync in its game state with the other machines, and to not realize it. I can&#39;t tell you the hours we spent at Ensemble tracking down exactly those kinds of bugs.&lt;br /&gt;
&lt;br /&gt;
These days, most everything though uses a client-server architecture. One machine is authoritative for the game state at all times. Clients make requests to the server, and are informed of other client&#39;s actions on the server, and update their game view appropriately. However, even within the client-server architecture, there&#39;s a couple of different ways to go.&lt;br /&gt;
&lt;br /&gt;
One method is to use dedicated server. This machine runs and maintains the game state for all of the connected clients, but doesn&#39;t run a client itself. The other method uses a host client. The host client serves as both server and client on the same machine. Other clients connect to the host client, and have the game state replicated back to them. This architecture, of using a host client, has some advantages and disadvantages.&lt;br /&gt;
&lt;br /&gt;
The biggest advantage is that games can be played anywhere there&#39;s a network. You don&#39;t have to have a dedicated server running 24/7 to serve games. If two people have your game, they can connect to each other, and immediately begin playing. Furthermore, anyone that knows the IP address of a host client machine can connect to that machine, and join in. It allows for the greatest flexibility and ease off play for a casual game.&lt;br /&gt;
&lt;br /&gt;
However, there are quite a few disadvantages as well, when there is not a dedicated server. First of all, as you can imagine, in a host-client multiplayer game, the player that is running the host usually has a bit of an advantage, just in sheer terms of latency and response. His machine actually is running the simulation - his client is going to get updates the quickest. In this day and time though, with bandwidths being what they are, this is not typically much of an advantage. And if your game is turn-based, or completely non-latency dependent, it&#39;s not an advantage at all. &amp;nbsp;But the biggest disadvantage is that you, the developer, don&#39;t control the server. So this means no account systems, no persistence, no way of saving game state sessions from game to game. It also makes it pretty much impossible to prevent hacks and cheats from entering the game, if you&#39;re not hosting the servers.&lt;br /&gt;
&lt;br /&gt;
For those reasons, if I were doing this game &quot;for real&quot; - that is, to make a business off of it, I would almost certainly insist on a model with dedicated servers. And pretty much most games these days that have any multiplayer component do exactly that. Hell, some games that even aren&#39;t multiplayer still require you to connect to a dedicated server, just for authentication and account purposes.&lt;br /&gt;
&lt;br /&gt;
But this game is an experiment. And is as much an exercise in exploring technology as it is about making something fun. And one of the pieces that I want to explore, besides Unity&#39;s basic multiplayer capabilities, is their matchmaking system. And at the moment, their matchmaker currently only supports host-client multiplayer architecture games. &amp;nbsp;Now let me be perfectly clear. I&#39;m not saying Unity&#39;s multiplayer architecture doesn&#39;t support a dedicated client-server model. It absolutely does. But their matchmaking service, currently, only supports client-host games. Furthermore, if you did want to build a dedicated server, though they have announced plans to eventually do so, currently they do not provide hosting for that server in their cloud services. That means you either have to run the server yourself, or find some other cloud hosting service (like Amazon EC2) to host your server for you.&lt;br /&gt;
&lt;br /&gt;
So, for all of those reasons, we&#39;ll be using a host-client architecture. Now, this decision is extremely important, because it dramatically shapes the nature of our game design. No dedicated server means no persistence beyond any particular game session. No accounts, no logins, and perhaps most importantly, no real means of monetization through in-app purchases or microtransactions, This pretty severely limits your means of monetizing this game to either doing so outright purchasing (and quite frankly who buys games anymore?) or in-game advertising. That means, if I were really intent on making this game make money, I&#39;d probably be better suited making it a mobile app. &amp;nbsp;Fortunately, I&#39;m not too worried about monetizing this game at the moment - as I&#39;ve said, it&#39;s an experiment - but these are still really important things to think about when making your game.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Unity Multiplayer&lt;/b&gt;&lt;br /&gt;
So in truth, I probably spent more time reading over Unity&#39;s multiplayer documentation than I did actually setting it up in my game. And because it is so well documented, I won&#39;t go into the API in detail here, but I will touch on a few highlights. Unity&#39;s multiplayer api is provided at two levels. The first is a low level, network transport layer that provides socket management, messaging, and serialization functions. The second layer is game-ready high level api (HLAPI) that provides a full suite of tools at your disposal to handle all of the most common multiplayer chores, including state synchronization, client commands and RPC calls, lobby services, spawning, and even, as mentioned, matchmaking services. &amp;nbsp;And it is my &amp;nbsp;intention to take full advantage of the HLAPI.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvPShN_64RnRUwv8DhjaKEM8TZHi0qYGljsW4cjdEWCILIBjmK4ZFCV6K_45jF1b-hlNLG46BAAbSWzrljdiHwr8Rg44TNh_KUCIOp_J8v2ugWBnlOgnTcSvOjU3CMhtCWt92GNysXrSVd/s1600/UnityTerrain_2015_10_30_07_17_05_784.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvPShN_64RnRUwv8DhjaKEM8TZHi0qYGljsW4cjdEWCILIBjmK4ZFCV6K_45jF1b-hlNLG46BAAbSWzrljdiHwr8Rg44TNh_KUCIOp_J8v2ugWBnlOgnTcSvOjU3CMhtCWt92GNysXrSVd/s320/UnityTerrain_2015_10_30_07_17_05_784.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Setting it up&lt;/b&gt;&lt;br /&gt;
So what did we have to do, actually, to get it working? &amp;nbsp;Well as I said, it was surprisingly simple. Unity 5.2 provides integration of their cloud services right into the editor, so the first thing I did was register my project with the multiplayer matchmaking. Now, I haven&#39;t even taken advantage of any of that part of the multiplayer system yet, but I am registered!&lt;br /&gt;
&lt;br /&gt;
Unity also provides a template for converting your single player project into a multiplayer project, which was actually pretty useful. The biggest shift that comes with converting your project to multiplayer though, is going to be your shift in thinking. &amp;nbsp;Up until now, you just thought about &quot;the game&quot;, and everything is happening in &quot;the game&quot;. &amp;nbsp;But now, you have to think in terms of the client and the server, or both. Does this action happen on the client only? On the server only? Both? And more importantly, if this code is controlling some game object, like the player, is this code running on the player that I personally am controlling, or is it running on a player object that someone else is controlling, and how does the code know the difference? &amp;nbsp;And that is where Unity&#39;s API comes in, as it provides a good deal off state information for all of those cases.&lt;br /&gt;
&lt;br /&gt;
So the first thing I did after registering was to make the collection of components that now defines our player (Kyle the Robot!) was a prefab. &amp;nbsp;I then modified his controller script by deriving it from NetworkBehavior instead of Monobehavior, and attached a NetworkIdentity component to him. That makes him Network aware. &amp;nbsp;The HLAPI provides a drop-in Network Manager class to oversee the multiplayer system as a whole, and you just drag your player prefab right onto the manager to let it know what the player is.&lt;br /&gt;
&lt;br /&gt;
Now I only want the player control code to run for the local player (my player), as his movement information will be replicated by the network api to the other clients. So I wrapped the gathering of user input and modifying his movement based on that input inside of &quot;IsLocalPlayer&quot;.&lt;br /&gt;
&lt;br /&gt;
Remember my shitty camera? Well the camera control is a client-only object, so I didn&#39;t extend it from NetworkBehavior. However, it can no longer be directly attached to the player object, as the player object will be spawned by the multiplayer system. So I wrote a little code in the Player Controller&#39;s OnLocalPlayerStart callback routine that finds the AvatarCamera in the scene, and attaches it to the local player, so it can follow it around.&lt;br /&gt;
&lt;br /&gt;
And that was pretty much it! With that little bit of code, the player was successfully getting spawned, controlled, and movement being replicated. And the camera followed it around correctly! One thing I noticed was that the animation wasn&#39;t getting replicated to clients. But lo and behold, Unity provides a NetworkAnimator component that you can attach to your player prefab, give it a reference to your animator component, and it will handle replicating the animation state for that object to the clients. And it just fricken&#39; worked! Unbelievable!&lt;br /&gt;
&lt;br /&gt;
So, success! It took me less time to get multiplayer up and running in my project than it did to set it up on GitHub - no exaggeration. Sometimes thing surprise you.&lt;br /&gt;
&lt;br /&gt;
Want to try it? Another fun thing I learned about was GitHub releases, where you can attach a set off binaries to your project for people to download and use, so issued a &quot;release&quot; of Unity Terrain. I&#39;ll provide a link to the game down below. &amp;nbsp;I mean, right now, there is literally precious little to do execpt to connect, and run around each other, but it does work. And if you have any questions or comments don&#39;t hesitate to leave them below. &amp;nbsp;Next time - we start over with a new project, and we talk asset collection!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Useful Links&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://docs.unity3d.com/Manual/UNetOverview.html&quot; target=&quot;_blank&quot;&gt;Unity Multiplayer Overview&lt;/a&gt;&lt;br /&gt;
A nice overview of Unity&#39;s multiplayer system, straight from them.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://docs.unity3d.com/Manual/UNetConverting.html&quot; target=&quot;_blank&quot;&gt;Converting your Single Player Project&lt;/a&gt;&lt;br /&gt;
A template for converting your single player project into a multiplayer one.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/Dlangar/Unity-Terrain/releases&quot; target=&quot;_blank&quot;&gt;Unity-Terrain Release&lt;/a&gt;&lt;br /&gt;
Download the binaries off of GitHub and give it a try!&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://ofcourseillplayit.blogspot.com/p/unity.html&quot; target=&quot;_blank&quot;&gt;The At-Home Project&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;The master blog page for the Unity At Home Project&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/10/unity3d-at-home-project-day-6.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC6l7hSkeoE29fypZ5u-NdsHVZKC9L7WbkmKTjlQjlFK79X0MxNi3IMvUQlYPidCJdA6UVc71ZoRwayjEsqoEoTcXmBUrDyJUKxhT8wpzz9SHfwwlsiPZU_6Aa8ahq6N726lEgksbfHPox/s72-c/UnityTerrain_2015_10_30_07_16_10_933.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-8250109308649805807</guid><pubDate>Sun, 25 Oct 2015 22:09:00 +0000</pubDate><atom:updated>2015-10-25T17:09:17.097-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">commentary</category><category domain="http://www.blogger.com/atom/ns#">guides</category><category domain="http://www.blogger.com/atom/ns#">SWTOR</category><title>Knights of the Fallen Empire - An Introduction</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMpkWCNdQZtG5ZU8xIDyzgoEdcMoR1aArxDmJkRpYCmJvrZSLX6fPYemhBd6yImRKrL1Gagp9cFkp0Oknc_HuSVpXRd2rdym7junFF0LihnM5nLnFFg9pJb_aTwgO2Q5bsCSz6mduLhQ6W/s1600/swtor_2015_10_25_16_10_18_589.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMpkWCNdQZtG5ZU8xIDyzgoEdcMoR1aArxDmJkRpYCmJvrZSLX6fPYemhBd6yImRKrL1Gagp9cFkp0Oknc_HuSVpXRd2rdym7junFF0LihnM5nLnFFg9pJb_aTwgO2Q5bsCSz6mduLhQ6W/s640/swtor_2015_10_25_16_10_18_589.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So last week the early access for &lt;i&gt;Star Wars - The Old Republic&#39;s&lt;/i&gt; new expansion - &lt;i&gt;Knights of the Fallen Empire&lt;/i&gt; kicked off. And with this expansion Bioware has delivered not only an&amp;nbsp;amazing new chapter (nine chapters, in truth) in their&amp;nbsp;portion of&amp;nbsp;the Star Wars universe, but a host of&amp;nbsp;changes to the game&#39;s core mechanics as well. So I thought, beyond the story itself, I&#39;d&amp;nbsp;take some time to introduce returning players and new players to some of the interesting changes released in the expansion.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;On Spoilers&lt;/b&gt;&lt;br /&gt;
While I&#39;ve tried very hard to not reveal any specific characters or plot points from the story, some of the screenshots and discussion of the content after the story will be, by its nature, mildly spoilerish. If you&#39;re fanatical about having a completely pristine experience your first play through of the game, feel free to return to this post after you&#39;ve finished the nine chapters of the story. If however you just want to know about the expansion and don&#39;t mind a screenshot or two that might reveal this or that character that you will encounter, please read on after the cut!&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJWRvIQUt6b1uPAK1uFzc1B4aX4VQULaoVW4oLLBHZI2UgD-gxZVoFjdGqdDqRIUdbuH1yU2v82QKEu1r6UEOkJG1ZLBhoMMBxVar50SgidUl8OTyevw2h8FLlurhRDb975FBDpxs4u6Ly/s1600/swtor_2015_10_20_17_16_14_140.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJWRvIQUt6b1uPAK1uFzc1B4aX4VQULaoVW4oLLBHZI2UgD-gxZVoFjdGqdDqRIUdbuH1yU2v82QKEu1r6UEOkJG1ZLBhoMMBxVar50SgidUl8OTyevw2h8FLlurhRDb975FBDpxs4u6Ly/s320/swtor_2015_10_20_17_16_14_140.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;i&gt;And so it begins...&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;The Story&lt;/b&gt;&lt;br /&gt;
Of course though, the first thing, and absolute most important thing that has come out with the new expansion is the incredible new story for your character. If you enjoy Bioware games at all, and you like Star Wars, I can heartily recommend the story to you. In fact, it&#39;s worth picking up the 60 day non-recurring subscription solely to play through the story, even if you&#39;re not a fan of MMO&#39;s.&amp;nbsp; When you subscribe, you receive a token for a free level 60 character. So you could get your level 60 character, go to your ship, and immediately start the quest.. Which I highly recommend, as it&#39;s easily the best content released for this MMO so far. And that, is all that I have to say about that!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyrS-_rP5fKg_A3_xAab5ou927_9dcavK_YZ3_gI_gC0nL-ufd4-vdJerL1Z-WQhaCbV1jHl0DSWQJu54xhjMSgE0YtUueUwI2HyQkuGDOr_h8pnLrOtKjEtRiXSqinA2mXe3W5J8dVpU4/s1600/swtor_2015_10_25_16_17_54_187.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyrS-_rP5fKg_A3_xAab5ou927_9dcavK_YZ3_gI_gC0nL-ufd4-vdJerL1Z-WQhaCbV1jHl0DSWQJu54xhjMSgE0YtUueUwI2HyQkuGDOr_h8pnLrOtKjEtRiXSqinA2mXe3W5J8dVpU4/s320/swtor_2015_10_25_16_17_54_187.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Contacts, Followers, and Alerts&lt;/b&gt;&lt;br /&gt;
Once you finish the story, you&#39;ll find yourself in a new hub, which provides a welcome respite from the Fleet. And more importantly, you&#39;ll be introduced to a new kind of content - Alert Missions. While you still have companions, just as you have in the original game, you will find you have a network of contacts as well. And these contacts will provide you with a variety of different missions, while you&#39;ll receive alerts for in the new contact interface.&amp;nbsp; The alert missions reward you with locked supply crates, which can be turned into contacts for both a collection of rewards, as well as influence with that contacts. And that&#39;s the main difference in the new system - not only do you earn influence with companions, which can provide buffs and improvements while accompanying you, but earning influence with contacts will provide you with new levels of missions. All of this - the alert missions, your list of companions and contacts, and the influence you&#39;ve earned with them, are tracked through a new follower interface, shown on the right. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Beaming About&lt;/b&gt;&lt;br /&gt;
One new feature that is certainly worth mentioning is that Bioware has made it exceedingly easy to get to and return from these new alert missions. You can teleport instantly to the beginning of an alert mission (no matter what planet it&#39;s on) through the contacts interface. And upon completing the mission, you can teleport back to the contact of interest, through the same interface. In fact, I&#39;m of the opinion that it&#39;s almost too easy to beam about from planet to planet now, but there&#39;s no denying the convenience. And I don&#39;t think any of us miss trudging through Spaceports.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX7DH3ypcI6_JrzLxS4NvP8g4TNMDXg0Uk2BThwc_akayGV2xDV-tVGysYkq19o3mznkNWrSvt8dSyUm1MItO8dPJ917mIfaHXyqjKVfFei7Fng0Vpxo6JPXjx4Z2MkPcxjrWJSLhsxv-i/s1600/swtor_2015_10_25_16_26_33_625.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX7DH3ypcI6_JrzLxS4NvP8g4TNMDXg0Uk2BThwc_akayGV2xDV-tVGysYkq19o3mznkNWrSvt8dSyUm1MItO8dPJ917mIfaHXyqjKVfFei7Fng0Vpxo6JPXjx4Z2MkPcxjrWJSLhsxv-i/s320/swtor_2015_10_25_16_26_33_625.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Classic Conversations&lt;/b&gt;&lt;br /&gt;
Something else that&#39;s new - most of the contacts that you interact with, use a conversation system that is reminiscent of Knights of the Old Republic. You may love it, you may hate it. But I understand the reason for it. The classic conversations, in which the NPC has voice over, but your character does not, provides a nice compromise in a quest delivery system that is more interactive than a standard quest panel, but is not quite as expensive to produce as full blown cinematics for each and every alert mission interaction.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Heroic Missions &amp;amp; Flashpoints&lt;/b&gt;&lt;br /&gt;
Once you finish the story, you&#39;ll be introduced to a new collection of Flashpoints. I won&#39;t discuss the fiction behind them, but they are offered in a solo mode, and then a follow up in Heroic+2 mode. Now you might be thinking - oh great - more Heroics. But all of the heroic&#39;s in the game now have been converted to Heroic +2&#39;s, and all have pretty much been tuned to be soloable with a decent companion. And you don&#39;t have to gear your companion - they just get better with more influence. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk4Bbxd1u9VixmdcYieZIfcayFK17Bq-MZd6GPb8f-JtuBOMhiQq99PBdPXJMkMcGu9Wb0mllK7bVGTAS7-eeQ84MdZzw89S_5Uv6NbE9rAoatd_gVWIYD_gFAcsg94KTZM47_KQ17eOAz/s1600/swtor_2015_10_25_16_35_07_883.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk4Bbxd1u9VixmdcYieZIfcayFK17Bq-MZd6GPb8f-JtuBOMhiQq99PBdPXJMkMcGu9Wb0mllK7bVGTAS7-eeQ84MdZzw89S_5Uv6NbE9rAoatd_gVWIYD_gFAcsg94KTZM47_KQ17eOAz/s320/swtor_2015_10_25_16_35_07_883.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Classic Flashpoints&lt;/b&gt;&lt;br /&gt;
So besides alert missions, and the new heroic+2 flashpoints, the group finder now has a ton of flashpoints available, which are tuned to be completed by any group of 4, which means that the queue times are almost never bad, even for DPS. Great, casual, fun group content that can be completed in about 30 minutes sessions. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Gearing Up&lt;/b&gt;&lt;br /&gt;
SWTOR&#39;s commendation system is still in force, though the commendations have been replaced with data crystals. But it&#39;s direct one to one replacement. Common crystals get you 208 rated gear, glowing crystals get you 216 gear, and radiant crystals get you 220 rated gear. The same things that earned you commendations in the original game still get you crystals in the expansion: flashpoints, dailies, and story mode operations. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;So Much to Do!&lt;/b&gt;&lt;br /&gt;
In short, it should be obvious that SWTOR&#39;s done a great job of providing you with quite a bit to do once you&#39;ve finished the story. A whole network of contacts and associated missions, flashpoints, heroic missions, all provide you with something to for just about every style of play.&amp;nbsp; All of the original flashpoints now provide a solo-able version, and you are now auto-leveled to whatever planet you are visiting. This means that even if you&#39;re bored with the new content, any of the old content you skipped over while leveling can now be returned to, and it will drop relevant gear and crystals for your level! And of course there&#39;s PvP dailies and warzones to earn new gear for as well, if that&#39;s your thing.&lt;br /&gt;
&lt;br /&gt;
As you can see, I&#39;m pretty pleased about the wealth of content for this expansion. I&#39;d reached the point in SWTOR where, outside of PvP, I really felt like was only repeating of story mode operations by way of content for me to do. And now, it&#39;s like getting an entirely new MMO to play in, and that suits me just fine. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOTL19QWwEHIh0ZOks1qQJYHlPQ3knTnmKZaba82cNu9D3U4WxXVB4mId9uMaJyo-EM505-cb5Fl0qJgK51qUJI9c65-fkFKJvi2eiYrneHD2_ZlZrZ1iUqPGB1cMxfWWWBrGrZzNZ6BCt/s1600/swtor_2015_10_22_21_48_12_161.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOTL19QWwEHIh0ZOks1qQJYHlPQ3knTnmKZaba82cNu9D3U4WxXVB4mId9uMaJyo-EM505-cb5Fl0qJgK51qUJI9c65-fkFKJvi2eiYrneHD2_ZlZrZ1iUqPGB1cMxfWWWBrGrZzNZ6BCt/s640/swtor_2015_10_22_21_48_12_161.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/10/knights-of-fallen-empire-introduction.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMpkWCNdQZtG5ZU8xIDyzgoEdcMoR1aArxDmJkRpYCmJvrZSLX6fPYemhBd6yImRKrL1Gagp9cFkp0Oknc_HuSVpXRd2rdym7junFF0LihnM5nLnFFg9pJb_aTwgO2Q5bsCSz6mduLhQ6W/s72-c/swtor_2015_10_25_16_10_18_589.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-7023565312765275826</guid><pubDate>Wed, 14 Oct 2015 13:10:00 +0000</pubDate><atom:updated>2015-10-14T08:10:51.407-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">commentary</category><category domain="http://www.blogger.com/atom/ns#">SWTOR</category><title>Unholy Alliance &amp; Wookie Mistake Gaming Guilds are all in for Extra Life - Check it out!</title><description>One of the very cool grass roots movements that&#39;s &amp;nbsp;taken hold over the past few years, and really grown, is the Extra Life movement. &amp;nbsp;If you&#39;re a gamer at all, &amp;nbsp;you already know what Extra Life is, but in the odd case that you don&#39;t, essentially on a certain day gamers from around the globe promise to play games for 24 hours to raise money and awareness for children&#39;s hospitals. It&#39;s a fantastic effort that raises thousands of dollars for children&#39;s illness and hospitals. &amp;nbsp;If you&#39;d like to learn more about Extra Life, and maybe participate yourself, please check out their website &lt;a href=&quot;http://www.extra-life.org/index.cfm?&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Sadly, my schedule is such that I rarely can afford to spend an actual 24 hours myself participating, but I try to assist in some way by sponsoring and promoting those that do, however I can. And as you may or may not have noticed, while my blog doesn&#39;t get nearly the attention it should from me, I am pretty active on teh social medias - especially twitter. &amp;nbsp;As a result, I&#39;ve had an opportunity to form friendships and relationships with incredibly cool folks and organizations that participate in a wide variety of gaming. &amp;nbsp;And especially of late, that has mostly been centered in and around Star Wars the Old Republic. &amp;nbsp;One of those folks I&#39;ve had the pleasure of becoming acquainted with is Stardust Legacy, (follow her on twitter at&amp;nbsp;&lt;a href=&quot;https://twitter.com/unholyalliances&quot; target=&quot;_blank&quot;&gt;@UnholyAlliances&lt;/a&gt;), and her SWTOR guild &amp;amp; gaming group &lt;a href=&quot;http://www.unholyalliance.org/&quot; target=&quot;_blank&quot;&gt;Unholy Alliance&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
And Unholy Alliance is going ALL IN for Extra Life Day. Multiple marathoners, tons of events, all in all it sounds like a heckuva great time, and of course, all for a great cause. So while I personally won&#39;t be able to participate in Extra Life day, I will definitely be watching (and sponsoring!) some of the fine folks over there, and I absolutely encourage you to do the same. &amp;nbsp; Here&#39;s the scoop!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-hQQ44Dz1qxUUcVkJ3jQtYRkE3O7LA7NHq76lAH9qpd7U0EgZNTNVQsqeMdqzHQFgNvIRVHeo1uLhW3ZN8plxj3amotCX0bqPaltuKS1HnKX2yTlf2RSHpoCZpjFUsgWC_1UwWKOzw4cS/s1600/Extra+Life+Blog.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-hQQ44Dz1qxUUcVkJ3jQtYRkE3O7LA7NHq76lAH9qpd7U0EgZNTNVQsqeMdqzHQFgNvIRVHeo1uLhW3ZN8plxj3amotCX0bqPaltuKS1HnKX2yTlf2RSHpoCZpjFUsgWC_1UwWKOzw4cS/s400/Extra+Life+Blog.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
You can check out the information directly at their website they&#39;ve set up for the event &lt;a href=&quot;http://www.unholyalliance.org/extralife&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;. Please give it a link, and come game with the fine folks at Unholy Alliance on Extra Life day this year!&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/10/unholy-alliance-wookie-mistake-gaming.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-hQQ44Dz1qxUUcVkJ3jQtYRkE3O7LA7NHq76lAH9qpd7U0EgZNTNVQsqeMdqzHQFgNvIRVHeo1uLhW3ZN8plxj3amotCX0bqPaltuKS1HnKX2yTlf2RSHpoCZpjFUsgWC_1UwWKOzw4cS/s72-c/Extra+Life+Blog.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-5948059524437041716</guid><pubDate>Sun, 04 Oct 2015 13:39:00 +0000</pubDate><atom:updated>2015-10-04T08:39:04.090-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity3D At Home Project - Day 5 - Unity Update &amp; Version Control</title><description>So wow, it&#39;s been a few weeks since my last update. Let&#39;s see, first I am pretty much swamped at work, and unfortunately things are only going to get more swamped. And there was a trip to Boston for three days to attend the Unity Unite conference. But that was a good thing, because coming back from Unite I feel re-invigorated about Unity development in general, and had a host of even more things that I wanted to try and do.&lt;br /&gt;
&lt;br /&gt;
So let&#39;s refresh. Currently, our At Home project is still mind numbingly simple. We have a brain dead camera controller, we have a character controller, and an animated bipedal humanoid. We&#39;ve created some terrain, set up a skybox, and laid down some grass &amp;amp; trees.&amp;nbsp; It looks like something, but it&#39;s far from being a multiplayer robot-shooter, as promised! So along those lines, the next step I think is to set up multiplayer for the project. Support for multiplayer is going to create an entirely new infrastructure layer for the entire project, and just about everything else we do will sit on top of it. So it&#39;s best to get it in and set up early, and the start building on top of that.&lt;br /&gt;
&lt;br /&gt;
But before we even go that far, I had a little prep work to do. I needed to do two things - one was upgrade to the latest version of Unity, and the other was to set up some sort of revision control.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Unity Upgrade&lt;/b&gt;&lt;br /&gt;
So why upgrade? This is actually a bit of a departure for what you would do in a commercial project, so I can&#39;t necessarily recommend it for your own work. Typically in a project, you might upgrade once or twice during the early stages of development, but pretty soon you want to lock in on a specific version, and stay with that. Why? Because each time you upgrade the engine, you introduce the possibility of new errors, new changes to the way things behave, and in general it&#39;s a level of instability that you have to deal with. So you have to weigh the cost of dealing with whatever instability the upgrade brings against the value of whatever features it provides. And as you get further into your project and get closer to shipping, the cost of any instability, no matter how slight, is usually not worth the risk. &lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKfDl82eP814bNgjTfFtEqMLmAsUgXbqeg7wsoiPDMBT8wgdha0EVVUDO_98XWH91gvl8-e8G5YYvhDTVh2hvYrAL-eqHTA1wIydTpkwXCn-O5nwvyjA6vtNW8DNkpjNAK_ulzsuwSXLwf/s1600/UnityCloudServices.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKfDl82eP814bNgjTfFtEqMLmAsUgXbqeg7wsoiPDMBT8wgdha0EVVUDO_98XWH91gvl8-e8G5YYvhDTVh2hvYrAL-eqHTA1wIydTpkwXCn-O5nwvyjA6vtNW8DNkpjNAK_ulzsuwSXLwf/s320/UnityCloudServices.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Unity&#39;s Cloud Services&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
But because this is an experimental project, and the whole point of this project is to learn about and play with some of Unity&#39;s most recent features, I&#39;ve decided that for this project, with each new major version they release, I would I turn, upgrade to it and roll it in. So as I was currently at 5.1, and they&#39;d already released 5.2, I needed to upgrade. And 5.2 brought a whole host of fun new things, most notably the integration of all of their cloud services directly into the editor. So things like Analytics, Cloud Builds, and yes, even some of the multiplayer stuff, can all be accessed directly from within the editor. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;b&gt;Remember what I said about Upgrades?&lt;/b&gt;&lt;br /&gt;
So yes, even though this was an upgrade of only a single sub-version, and my project&amp;nbsp; literally consists of only stock assets from Unity, after upgrading to 5.2, there were issues. All of the trees in my terrain suddenly had blocky leaves, and I was getting errors from SpeedTree about invalid materials. Now these are just stock assets, I&amp;nbsp; didn&#39;t set them up, and I don&#39;t know jack about how they work. So a little bit of google-fu later, I learned that all I needed to do was revisit each material in turn, and click the &quot;Regenerate Material&quot; button for each asset, and resave the scene. That did, in fact fix the problem, and shortly our project was back to normal, and now running under Unity 5.2. But just tracking that problem down and getting it fixed took the better part of an evening. So caveat emptor - do not take any engine upgrade lightly.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Version Control&lt;/b&gt;&lt;br /&gt;
I&#39;m not going to dedicate much time in this blog to describing what version control software is, or why you need it. There are a ton of guides out there, and every piece of software has it&#39;s own collection of beginner&#39;s tutorials. Linked below is a very nice overview and introduction, if you&#39;re not terribly familiar with the concept. I will though add this thought. Even if you&#39;re a one person team, working on only a single game - you need version control. It shouldn&#39;t be considered an option, or a nicety. It should be considered mandatory. And here is why.&lt;br /&gt;
&lt;br /&gt;
Even if you&#39;re a single person working on a project, version control software gives you the freedom to try dangerous and experimental things with your code. To go down an alley just to see if it pans out. And if it doesn&#39;t, you always have the previous version of the code to roll back to. And this is really important. &lt;br /&gt;
&lt;br /&gt;
So as we were about to add the multiplayer layer to our game, and this is going to significantly increase the size of the project, I decided now was the time to get some version control for our project set up. And the first, and probably most difficult decision to make, is which software to use. For me, initially it wasn&#39;t even a question. I&#39;m a Perforce guy, going back for years. Just about every project we&#39;ve built at Robot (and Ensemble before) used Perforce. And when I spent two years working on my own project at home, I had a Perforce repository set up. It works, I&#39;m familiar with it, it&#39;s free - just get it in and working. &lt;br /&gt;
&lt;br /&gt;
But Perforce through me a curve ball this time, and in so doing, it opened up an opportunity for me to branch out a bit. (See what I did there?&amp;nbsp; Jeesh.. programmer humor.. it&#39;s the best) See, the latest version of Perforce&#39;s software - Helix, puts its evaluation copy inside of a VM machine appliance. And, quite frankly, its a huge pain in the ass, and is a terrible barrier to put between their software and someone who just wants to try it out. The first thing you have to do is download and install some other piece of software - Oracle VirtualBox, or an equivalent, to host the virtual machine. Then you download their 1.2 GB appliance, and import the appliance into their virtual machine. Which means now you&#39;re running a virtual machine, a server inside the virtual machine, and that has to run continuously on your server computer&amp;nbsp;- which is probably also your development computer. But to make it worse - for me, it just flat out wouldn&#39;t work. I got everything installed and set up correctly, but try as I might, the browser and client software simply couldn&#39;t see the server. And after three full mornings of jacking with it, including rummaging through firewall settings, installing on two different machines, etc., I had lost all patience to mess with it a moment more.&lt;br /&gt;
&lt;br /&gt;
So my next thought was, well screw the evaluation VM appliance, let&#39;s just install their production server, and set it up.&amp;nbsp; But then I thought.. wait a minute.&lt;br /&gt;
&lt;br /&gt;
So as I&#39;ve said, I&#39;ve been a Perforce guy since day 1. But there are of course a ton of other solutions out there. And I&#39;ve dabbled with Git, and SVN on a few other, previous occasions, but never really given them much of a try. And I kept hearing on the wonders of distributed revision control, and more importantly, seems like everyone is hosting a project on GitHub these days, so maybe now was the opportunity to learn something more about these, and set this up in the cloud. So that is what I - somewhat begrudgingly, I have to admit - did.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Git &amp;amp; GitHub&lt;/b&gt;&lt;br /&gt;
So you can just set up plain &#39;ol Git on your host machine, and host your own local repository, and check software and code directly in and out locally, if you wish. And if you do so, I can assure you it will be no less arcane. Typing cryptic command line commands into Git Bash will have you feeling like your Neo and it&#39;s gawddamn 1995. I kept expecting the command line cursor to suddenly start typing on its own to tell me to follow the White Rabbit. &lt;br /&gt;
&lt;br /&gt;
But the GitHub site has a desktop client you can download that does a nice jot of hiding Git&#39;s squirrelly commands away from sight, and lets you set up a local repository, and keep it in sync with&amp;nbsp;the remote repository at GitHub. One detail to know about GitHub, and this is an important one - the free GitHub membership only allows public projects. So unless you want to pay, your entire project will be downloadable and viewable to the public at large. I understand that if you don&#39;t want your project to be public, BitBucket provides a suitable, online repository that is private, and supports up to 5 collaborators.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH1hkgIcBuvNDE462EaAwzYcf12Q81R6Q8dBC9P7fWTXUXtvQi9QwGxfGuJVyxH0ruJIBHR6dHtVrUslIEY6Cq-igdXYBvJrlK_VOnd8JparX8mhACE8_DU40WEMG0Pfmzqa63jB1Qe5rx/s1600/GitHubPage.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH1hkgIcBuvNDE462EaAwzYcf12Q81R6Q8dBC9P7fWTXUXtvQi9QwGxfGuJVyxH0ruJIBHR6dHtVrUslIEY6Cq-igdXYBvJrlK_VOnd8JparX8mhACE8_DU40WEMG0Pfmzqa63jB1Qe5rx/s320/GitHubPage.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
So with a relatively short amount of time (a few hours, in total), I had my repository set up, and my Unity project hosted within it. I made a few small changes and tested some commits, and everything seems to be working swimmingly.&lt;br /&gt;
&lt;br /&gt;
And that&#39;s that! Not only do I now have version control set up for my project, but I&#39;ve made it publically available for you to download and peruse, which is in keeping with my desire to make this project more open. I&#39;ll provide a link below directly to the repository. &lt;br /&gt;
&lt;br /&gt;
Next time I&#39;ll get back to work on the game itself, and hopefully the next blog you read will be about how successful or not I am with integrating multiplayer directly into the game.&lt;br /&gt;
&lt;br /&gt;
Some useful links:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/Dlangar/Unity-Terrain&quot; target=&quot;_blank&quot;&gt;The Unity3D At-Home Project on GitHub&lt;/a&gt;&lt;br /&gt;
The increasingly inaccurately named Unity-Terrain project on GitHub&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://guides.beanstalkapp.com/version-control/intro-to-version-control.html&quot; target=&quot;_blank&quot;&gt;Introduction to Version Control&lt;/a&gt;&lt;br /&gt;
A really nice overview of version control.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://git-scm.com/downloads&quot; target=&quot;_blank&quot;&gt;Basic Git&lt;/a&gt;&lt;br /&gt;
If that&#39;s your thing.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://desktop.github.com/&quot; target=&quot;_blank&quot;&gt;GitHub Windows Desktop Client&lt;/a&gt;&lt;br /&gt;
Providing a nice interface between GitHub and your project&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.youtube.com/watch?v=tWCofZtnLlM&quot; target=&quot;_blank&quot;&gt;Beginner Unity Basics #20 - GitHub and Version Control&lt;/a&gt;&lt;br /&gt;
And excellent, concise tutorial for setting up your Unity Project on GitHub from Frosty Gaming. Good stuff.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://ofcourseillplayit.blogspot.com/p/unity.html&quot; target=&quot;_blank&quot;&gt;Unity At Home Project&lt;/a&gt;&lt;br /&gt;
The Master Blog Page for the At Home Project&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/10/unity3d-at-home-project-day-5-unity.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKfDl82eP814bNgjTfFtEqMLmAsUgXbqeg7wsoiPDMBT8wgdha0EVVUDO_98XWH91gvl8-e8G5YYvhDTVh2hvYrAL-eqHTA1wIydTpkwXCn-O5nwvyjA6vtNW8DNkpjNAK_ulzsuwSXLwf/s72-c/UnityCloudServices.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-8308717119914617403</guid><pubDate>Tue, 01 Sep 2015 00:44:00 +0000</pubDate><atom:updated>2015-08-31T19:44:19.605-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity3D At Home Project - Day 4 - Basic Animation</title><description>Busy weekend, busier week, but I did manage to sneak in a little bit of time on Sunday to play around with simple animation, and to get our avatar animated.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
You may recall last week I wasn&#39;t sure if I was going to dig into the barely functional camera controller some more, or start working on animation. I decided to skip any more work on the camera controller for now namely because, as you recall, ultimately I want this to be a giant robot game, and I&#39;m thinking robots with turrets, and I&#39;d want the camera attached to the rotating upper half of the mech. Additionally, we&#39;ll be using a 3rd person shooter point of view, and until we get a crosshairs on our hud, and some weapon systems, there&#39;s not a lot of point in fine tuning the camera. So let&#39;s get Ethan animated, instead of just gliding across the terrain.&lt;br /&gt;
&lt;br /&gt;
Well the first thing to realize is - I didn&#39;t use Ethan. See, the Ethan prefab that is provided in the standard assets is a great resource. &amp;nbsp;In fact, it&#39;s a little too good, as it has a lot of stuff preconfigured already, and that was exactly the stuff I wanted to configure myself. To learn what those components are, how they&#39;re set up, and how they related to each other. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Learn&lt;/b&gt;&lt;br /&gt;
So the first thing I did, and I did this part at periodic points throughout the week, was to start getting familiar with animation basics in Unity 5. &amp;nbsp;To be precise - humanoid animation basics. And I started that by just working through &lt;a href=&quot;https://unity3d.com/learn/tutorials/topics/animation&quot; target=&quot;_blank&quot;&gt;Unity&#39;s own tutorials&lt;/a&gt;, and even reading the &lt;a href=&quot;http://docs.unity3d.com/Manual/AnimatorControllers.html&quot; target=&quot;_blank&quot;&gt;manual&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Introducing Kyle&lt;/b&gt;&lt;br /&gt;
So as I mentioned, Ethan is a bit too far along for our purposes. I really just wanted a straight up humanoid mesh. I dug around the asset store, and found &lt;a href=&quot;https://www.assetstore.unity3d.com/en/#!/content/4696&quot; target=&quot;_blank&quot;&gt;Space Robot Kyle&lt;/a&gt;. Kyle is from Unity tech itself, and has been around since, forever. Most importantly, he&#39;s a simple, skinned mesh, and a material. &amp;nbsp;In other words, he&#39;s perfect.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Creating an Animator, and an Avatar&lt;/b&gt;&lt;br /&gt;
So I got Kyle imported easily enough, but it still took a bit of work to actually get going. &amp;nbsp;I created an empty Animator controller easily enough, but I was having trouble creating an Avatar to associate with the model. I would go to the rig tab of the model view, set Avatar Generation to &quot;Create from This Model&quot;, and click &quot;Configure&quot;, and nothing would happen. &amp;nbsp;Eventually I learned a very important lesson. And that is, if you have your Unity inspector in debug mode, about half of the automated inspector tools Unity provides for you around animation either don&#39;t show up, or don&#39;t work.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwo0h9no8frA-E-ieXv57IT3In6Eq79lFE0f_x4nxdpkqeXOEQtZlIwxrCwVduAf7JTH9ybuon0cuQSky5j1DKmYjsDm3o1Yn-v84Utr9oCf0e8zEdgct9g8MaeociFoiWgReWQNGNb41b/s1600/ConfigureKyleRobot.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwo0h9no8frA-E-ieXv57IT3In6Eq79lFE0f_x4nxdpkqeXOEQtZlIwxrCwVduAf7JTH9ybuon0cuQSky5j1DKmYjsDm3o1Yn-v84Utr9oCf0e8zEdgct9g8MaeociFoiWgReWQNGNb41b/s320/ConfigureKyleRobot.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Finally, when I turned off debug mode, and clicked configure, it loaded up the Avatar Configuration scene, and allowed me to configure the bones. &amp;nbsp;Not unsurprisingly, the bone mapping and muscles were pretty much exactly correct.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY7ilizmcu3ImgL2dC4apS1ZFzEGZbO0Fq1LecFyAGWCIyJvtwBQNeIo2aDZ2pvkG1-BDsq-DQlnx1EdQwu_fqQSaNS4H8EWiG8S5VxlLH8MT3rpF2Fw8vnz8BPjGa41jBYOqZBZixoY1w/s1600/AppliedAvatarConfig.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY7ilizmcu3ImgL2dC4apS1ZFzEGZbO0Fq1LecFyAGWCIyJvtwBQNeIo2aDZ2pvkG1-BDsq-DQlnx1EdQwu_fqQSaNS4H8EWiG8S5VxlLH8MT3rpF2Fw8vnz8BPjGa41jBYOqZBZixoY1w/s320/AppliedAvatarConfig.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
One interesting side node. As soon as I generated and applied the avatar to my mesh, the existing mesh I&#39;d placed in the world view took a 90&#39; turn to the right. I suspect applying the avatar mapping will even reorient your model if need by for it to align correctly with mecanim&#39;s bone system. Fortunately, deleting the previously placed one and dropping a new one into the game had him nicely oriented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Animations&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHhwFMWZ4OkJbuiryEDgJxccqa0GpLwaxXxIg35NXg6qhcYCMR8T9dFc_-DzWCUSOo_saRrD7Uip4lmH-HPfGMHvT28Ey1Z5PvSC3hgGkOyFKerLVnMUb5FP-zqorsWguKhx5TRw1VFWpW/s1600/KylesMovementBlendTree.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHhwFMWZ4OkJbuiryEDgJxccqa0GpLwaxXxIg35NXg6qhcYCMR8T9dFc_-DzWCUSOo_saRrD7Uip4lmH-HPfGMHvT28Ey1Z5PvSC3hgGkOyFKerLVnMUb5FP-zqorsWguKhx5TRw1VFWpW/s320/KylesMovementBlendTree.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Now I had an animator controller, and an avatar associated with my model. It was time to actually hook up some animations. This part wasn&#39;t too difficult. I only wanted to do some really simple stuff: Idle, Walk, Run. Double-clicking on the Animator Controller in the project view brings up the animation sequence editor. Unity provides a pretty sophisticated system for sequencing and blending animations, and if you&#39;ve ever worked with animation sequencers before, this will be quite familiar. But Unity does a great deal to automate the process for you, including an ingenious method of setting up 1 and 2 dimensional blend trees with many animations. To the left here you can see my very simple blend tree I ultimately ended up with for Kyle.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
But what animations did I use? Well I used Ethan&#39;s. &amp;nbsp;And that, really is the key point here. &amp;nbsp;Unity&#39;s mecanim system makes it ridiculously easy to mix and reuse animations from other models. See, back in the bad &#39;ol days, all animation files moved bone positions around by explicit bone names. That meant that the skeleton of your rig had to exactly match the names of the bones that were used when the animation was created. Which is why all the legacy models you buy at the store come included with some animations. And if you wanted more animations, you had to make sure they were built specifically for the model you were using. &amp;nbsp;Mecanim though democratizes this process, and makes it stupidly easy to rig, and use animations from other sources. And yes, I know this is all over Unity&#39;s mecanim promotional literature. But there&#39;s a world of difference between reading a feature set, and actually being able to use that feature.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Final Touches&lt;/b&gt;&lt;br /&gt;
In any event, before long I had a functional, if simple, animation tree built. I added my controller script to Kyle, pointed the camera at him, and launched the game. He animated perfectly while idling.. but.. he didn&#39;t animate while moving. Oh duh. One more step - get a reference to the animator, and update the animator parameter values (in this case a whopping one - ForwardSpeed) through script. Oh hey now he works!&lt;br /&gt;
&lt;br /&gt;
One tweak I noticed right away was that he didn&#39;t animate backwards. Stupid me, when I initially set up the blend, I set the thresholds from 0 to max forward movement speed. Well this doesn&#39;t account for moving backwards. I adjusted the blend tree again to account for negative speeds, and limited his backwards moving speed to be limited to half his forward moving speeds. &amp;nbsp;Overall, pretty pleased, and not bad for what was about a single night&#39;s work. &amp;nbsp;Here are the results.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;https://www.youtube.com/embed/ncRWylBhWy8&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
This is the fourth segment in an ongoing series wherein I build a game from scratch in Unity3D. If you&#39;d like to read the entire series, click the Game Development tab above, or just click &lt;a href=&quot;http://ofcourseillplayit.blogspot.com/p/unity.html&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://ofcourseillplayit.blogspot.com/2015/08/unity3d-at-home-project-day-4-basic.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwo0h9no8frA-E-ieXv57IT3In6Eq79lFE0f_x4nxdpkqeXOEQtZlIwxrCwVduAf7JTH9ybuon0cuQSky5j1DKmYjsDm3o1Yn-v84Utr9oCf0e8zEdgct9g8MaeociFoiWgReWQNGNb41b/s72-c/ConfigureKyleRobot.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-3721763600405998030</guid><pubDate>Tue, 25 Aug 2015 13:17:00 +0000</pubDate><atom:updated>2015-08-25T08:17:13.342-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity3D At Home Project - Day 3 - Basic Camera Controller</title><description>So I finished off Renaissance Coder&#39;s character controller tutorial (you can find it &lt;a href=&quot;https://www.youtube.com/watch?v=BBS2nIKzmbw&quot;&gt;here&lt;/a&gt;) with implementing a basic camera controller. &amp;nbsp;And by basic, I mean really basic. You give it a target, and it slaves its position to the target, plus an offset that you give it. For orientation, it just interpolates from its current orientation to that of the target. Even though it was a fairly small piece of code to write, I still learned a few interesting things, and had some hiccups.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cool Things&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;u&gt;Mathf.SmoothDampAngle&lt;/u&gt;&lt;br /&gt;
This does rotational interpolation for you. You give it a source value in radians, a destination radians, and some time values that determine how fast you want the function to interpolate towards your destination. It returns an updated angle, and also modifieds a turn velocity float that you can use in successive updates. &amp;nbsp;Really handy function.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;LateUpdate&lt;/u&gt;&lt;br /&gt;
I&#39;d forgotten about LateUpdate, but this is an update function that occurs each frame after normal Update and all of the FixedUpdates. By updating the camera position and rotation in this function, we ensure it happens after the other updates.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Hiccups&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEWc5RNeztk8amzxs_0HNNVeuXXYV37LTK0Mf3rzydQB88dl7zGHHzIsyUkx1IzVG_0mmaUEkTD_caOEeFIidHI5hh8_GnmQI_yM4NfRSXf5H9vIv-vZkHf_Y98ISgSUIh_BInaMtrkNwW/s1600/CameraUnderGround.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEWc5RNeztk8amzxs_0HNNVeuXXYV37LTK0Mf3rzydQB88dl7zGHHzIsyUkx1IzVG_0mmaUEkTD_caOEeFIidHI5hh8_GnmQI_yM4NfRSXf5H9vIv-vZkHf_Y98ISgSUIh_BInaMtrkNwW/s320/CameraUnderGround.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
My initial offset for the camera position had the sign of the Y offset reversed, which placed the camera somewhat inconveniently underground. While cool and interesting, wasn&#39;t exactly the effect we were going for.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other thing I noticed immediately after my first test was that the camera was still facing straight ahead - not actually looking at the player. The tutorial had mentioned an X-tilt factor, but had failed to ever actually hook it up and use it. I converted the value to radians, applied the rotation to the target&#39;s X rotation (which is always straight ahead), and then used the editor to adjust the value until &amp;nbsp;we got to something close. What was interesting was that when I changed display resolutions, the amount of avatar in the camera field of view changed. Which goes to show you the kind of BS you actually have to deal with when building a real camera.&lt;br /&gt;
&lt;br /&gt;
You can see the functional camera below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;https://www.youtube.com/embed/zknAWgTyZC8&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
Notice my gravity quotient is way way too low, so when I go sailing off the tops of hills, I only sort of gently float back to ground over time. Also notice even the leaves of the tree have collision, lol.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What next?&lt;/b&gt;&lt;br /&gt;
Well I&#39;m not 100% sure. The camera controller is functional, but only barely. There&#39;s no orbit control, and there&#39;s no collision. But building a robust camera controller can be a pretty dark rabbit hole - correclty and intuitively handling camera collision is a non trivial task. &amp;nbsp;So I could leave the controller alone, and move on to animation. But by the same token, the current camera is by no means near adequate, so we&#39;ll have to see.&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/08/unity3d-at-home-project-day-3-basic_25.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEWc5RNeztk8amzxs_0HNNVeuXXYV37LTK0Mf3rzydQB88dl7zGHHzIsyUkx1IzVG_0mmaUEkTD_caOEeFIidHI5hh8_GnmQI_yM4NfRSXf5H9vIv-vZkHf_Y98ISgSUIh_BInaMtrkNwW/s72-c/CameraUnderGround.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-76135027124235861</guid><pubDate>Tue, 25 Aug 2015 02:40:00 +0000</pubDate><atom:updated>2015-08-24T21:40:25.595-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity3D At Home Project - Day 2 - Simple Character Controller</title><description>So the &amp;nbsp;Standard Assets pack comes with a 3D character controller right out of the bag. And it&#39;s fairly functional - does everything you want it to do. &amp;nbsp;In fact, it&#39;s actually a little more complex than I want for first pass. &amp;nbsp;Their 3rd Person character controller contains separate components for the Controller, an Input Controller, a Camera Controller, and an Animation component, and contains code to handle interactions between all of those.&lt;br /&gt;
&lt;br /&gt;
I&#39;m trying to put pieces together piece by piece, so what I really wanted, to start with, was just a very simple character controller. Renaissance Coders YouTube channel came to the rescue, with a great, nofrills character controller you can code up in literally about 20 minutes. &amp;nbsp;You can find their tutorial &lt;a href=&quot;https://www.youtube.com/watch?v=BBS2nIKzmbw&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
This allowed me to get a simple, functional character controller up in the afternoon, and I completely understand all the pieces. I also added a capsule collider to my avatar mesh (Ethan), so he would collide with the trees as I moved him around. &amp;nbsp;Once I added the capsule collider and set it&#39;s offset appropriately, I could turn on gravity on the RigidBody. &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
One other interesting thing I learned here was that you need to freeze rotation on the rigid body in all three axis. The first time I tried to move poor Ethan, he fell flat on his face, and then I could only move him up and down. We have zero tie-to-ground code here, so if the unit runs up against the tree, for instance, it only slowly moves back down to the ground, based on gravity. &lt;br /&gt;
&lt;br /&gt;
This controller is super simple, and there&#39;s a billion lines of code to write here for it to become an game-ready controller, but it fulfills our purpose of being able to move the unit around.&lt;br /&gt;
&lt;br /&gt;
Here&#39;s a video:&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;344&quot; src=&quot;https://www.youtube.com/embed/TrwxSacATfw&quot; width=&quot;459&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://ofcourseillplayit.blogspot.com/2015/08/unity3d-at-home-project-day-2-simple.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/TrwxSacATfw/default.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-3318100378323872208</guid><pubDate>Tue, 25 Aug 2015 02:25:00 +0000</pubDate><atom:updated>2015-08-24T21:25:43.887-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity3D At Home Project - Day 1 - Terrain</title><description>&lt;div style=&quot;margin: 0in;&quot;&gt;
I wanted to start with a simple terrain, using stock assets. Worked my way through a &lt;a href=&quot;https://www.youtube.com/watch?v=fuEoYM9BDDI&quot;&gt;three-part tutorial&lt;/a&gt;, creating and sampling along the way. Stock assets provides a nice small sample of terrain textures, trees, and grasses. Very limited, but enough to play with.&lt;/div&gt;
&lt;div style=&quot;margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0in;&quot;&gt;
Terrain was created, and I played around with the height tools, and foliage creation tools. &lt;i&gt;Biggest disappointment was that I see no way of doing height-limited painting. &lt;/i&gt;I&#39;m sure there are some third party tools that provide that, but it was a nice default feature in Torque. &amp;nbsp;I dropped in Ethan, the stock character, for reference.&lt;/div&gt;
&lt;div style=&quot;margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 0in;&quot;&gt;
I also created and set up a light procedural skybox. Options are available for three different kinds of skybox, but the stock assets sadly don&#39;t provide any skybox-ready textures.&lt;/div&gt;
&lt;div style=&quot;margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbgjQDP-S_fOe5Ho4PXaaPI6gJdiC7PGxCdX1Vz5MQgWKG4j4uOdg9IkpW0Boycr34QzojvHRVYNjVJBcztgzLu7f3cYdJiaYyXoRnkVm70q7JXH_Qdyq_jG1PT-6QUotlSClVIm3kwJsV/s1600/Terrain1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;356&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbgjQDP-S_fOe5Ho4PXaaPI6gJdiC7PGxCdX1Vz5MQgWKG4j4uOdg9IkpW0Boycr34QzojvHRVYNjVJBcztgzLu7f3cYdJiaYyXoRnkVm70q7JXH_Qdyq_jG1PT-6QUotlSClVIm3kwJsV/s640/Terrain1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Ethan - Lost in the Weeds!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://ofcourseillplayit.blogspot.com/2015/08/unity3d-at-home-project-day-1-terrain.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbgjQDP-S_fOe5Ho4PXaaPI6gJdiC7PGxCdX1Vz5MQgWKG4j4uOdg9IkpW0Boycr34QzojvHRVYNjVJBcztgzLu7f3cYdJiaYyXoRnkVm70q7JXH_Qdyq_jG1PT-6QUotlSClVIm3kwJsV/s72-c/Terrain1.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-7339029808994044390</guid><pubDate>Tue, 25 Aug 2015 02:11:00 +0000</pubDate><atom:updated>2015-08-24T21:11:05.841-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">game development</category><category domain="http://www.blogger.com/atom/ns#">homeproject</category><category domain="http://www.blogger.com/atom/ns#">unity</category><title>Unity3D At Home Project - Introduction</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeM6647SCWR6pePsqGsms3TvVdg9jP7VLMmVIcorID0CqiHT1Nq8BCaUj7pvVn0QI-wMsxkLCI4F6LPrD7Qrl9NcfAb0Yjvtoblz6PiRrGJiuaXpn8PioB7eAhiR2a4MDxrWHdMXm096iO/s1600/Terrain2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;356&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeM6647SCWR6pePsqGsms3TvVdg9jP7VLMmVIcorID0CqiHT1Nq8BCaUj7pvVn0QI-wMsxkLCI4F6LPrD7Qrl9NcfAb0Yjvtoblz6PiRrGJiuaXpn8PioB7eAhiR2a4MDxrWHdMXm096iO/s640/Terrain2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So, I find myself at a curious point in my professional career. By now, you probably know (or should) I&#39;m a game developer. I work at &lt;a href=&quot;http://www.robotentertainment.com/&quot;&gt;Robot Entertainment&lt;/a&gt;, where I get to work on some pretty &lt;a href=&quot;https://www.orcsmustdie.com/#!/en&quot;&gt;fantastic games&lt;/a&gt;. Right now, I am the Project Lead for the dashboard. The dashboard is the application you use to launch the actual game. It handles all your inventory, your decks, provides access to the store, etc. In short, it&#39;s a pretty darn big project in and of itself, and its written entirely in Unity. As I&#39;ve been working on it for over 15 months now, I&#39;ve become pretty proficient in Unity. But, the dashboard is an application. And while it&#39;s got some very game-like aspects to it, it is not, strictly speaking, a game in and of itself.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
So as such, I find that while I&#39;ve become pretty darn familiar with building an application in Unity, I know almost nothing about its core game systems. I know, right?&lt;br /&gt;
&lt;br /&gt;
It&#39;s been some 4 years now since I released Atomic City Adventures, and during that time, I&#39;ve not done any at home game development, save for what was needed for work. But I&#39;ve been itching more and more of late to actually sink my teeth into some honest to goodness game systems, so have finally decided I&#39;d work on something small at home. &amp;nbsp;Of course, you know me - I can never do anything small.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Goal&lt;/b&gt;&lt;br /&gt;
The goal is, in short, to get familiar with some of Unity&#39;s game systems. I know plenty about Unity - but I don&#39;t know much about making a game in unity. But Unity is a big engine these days. You could spend months in it and not become familiar with all the pieces. So I need to settle on some core ones. Here they are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Terrain - I know a lot of games these days don&#39;t even use terrain any more, but Unity has a terrain system, so I want to know how it works.&lt;/li&gt;
&lt;li&gt;Character &amp;amp; Camera - I want to drive a character of some sort around, and have a camera that follows it. Basic stuff.&lt;/li&gt;
&lt;li&gt;Animation - And by that, I mean character animation. Specifically, the Mecanim system.&lt;/li&gt;
&lt;li&gt;Networking - Unity 5 has introduced an entirely new multiplayer/networking layer. I&#39;m itching to dig into that and try it out.&lt;/li&gt;
&lt;li&gt;Gamepad - I&#39;ve taken a shine to playing games on the XBox One. For a change, I&#39;m going to actually be design towards usage with a gamepad, as opposed to mice &amp;amp; keyboard. &amp;nbsp;And no, don&#39;t even talk to me about mobile.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Stretch Goals&lt;/b&gt;&lt;br /&gt;
If we get really industrious, there are a few other pieces I might like to dig into:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Physics - I&#39;m thinking about destructible objects and models, most specifically&lt;/li&gt;
&lt;li&gt;AI &amp;amp; Pathfinding - I haven&#39;t decided if I&#39;ll mess around with AI yet or not, but it&#39;s kind of ironic that I spent most of my professional career doing pathfinding and movement, and aren&#39;t event attempting to mess with it here.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;The Game&lt;/b&gt;&lt;br /&gt;
I spent a lot of time thinking about the game&#39;s design. &amp;nbsp;Whole minutes even. &amp;nbsp;Here it is:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Drive around in a giant robot and shoot things.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
I know right? &amp;nbsp;Genius. &amp;nbsp;But that&#39;s what I want to do. &amp;nbsp;Specifically, if I can lean back in my chair, drive a giant robot around with big guns, and shoot another player that&#39;s also trying to shoot me, I&#39;m going to call the game a success. Anything more than that is gravy.&lt;br /&gt;
&lt;br /&gt;
And yes, I know I can probably download an entire kit from the Asset Store that does just about all of this for me, but the object is for us to get familiar with Unity. Not to get familiar with someone else&#39;s code that is already familiar. So in order to ensure that, I&#39;m setting the following restriction on myself for the project:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The asset store is to be used for art/content assets only.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
That is, models, animations, particle effects, explosions, textures, etc. &amp;nbsp;But all game systems, we&#39;ll build ourselves, or use what Unity 5 provides us.&lt;br /&gt;
&lt;br /&gt;
And that&#39;s about it. I&#39;ve already started, but now you know what I&#39;m doing, and why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/08/unity3d-at-home-project-introduction.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeM6647SCWR6pePsqGsms3TvVdg9jP7VLMmVIcorID0CqiHT1Nq8BCaUj7pvVn0QI-wMsxkLCI4F6LPrD7Qrl9NcfAb0Yjvtoblz6PiRrGJiuaXpn8PioB7eAhiR2a4MDxrWHdMXm096iO/s72-c/Terrain2.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-6807545764015453145</guid><pubDate>Wed, 15 Jul 2015 12:39:00 +0000</pubDate><atom:updated>2015-07-15T07:39:21.937-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">commentary</category><category domain="http://www.blogger.com/atom/ns#">SWTOR</category><category domain="http://www.blogger.com/atom/ns#">transmog</category><title>The Girl with the Golden Gun</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYNNSzPljqkARt9wfQN_fi3-d_0Zc5NdR7a5rZixDk_TEuu-fGuyyubNM7_PIhsxvlcdWXdwkIalUq_hVLJuszcbBHiuHR43hbt4OvEjirZToqde2hlN2JlBoyzs9USXpvQGUQsATSm4aA/s1600/swtor_2015_07_14_23_02_25_169.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYNNSzPljqkARt9wfQN_fi3-d_0Zc5NdR7a5rZixDk_TEuu-fGuyyubNM7_PIhsxvlcdWXdwkIalUq_hVLJuszcbBHiuHR43hbt4OvEjirZToqde2hlN2JlBoyzs9USXpvQGUQsATSm4aA/s640/swtor_2015_07_14_23_02_25_169.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
So I&#39;ve been at 60 for a bit now, and wanted to change up the look of my smuggler Kaytte. I saw someone in Fleet the other day that had built an entire outfit with pink and white, and found a speeder that matched in color scheme, and it looked really sharp. Thought I might do something similar. So that sat me down the task of surfing &lt;a href=&quot;http://tor-fashion.com/&quot; target=&quot;_blank&quot;&gt;Tor Fashion&lt;/a&gt;, and other SWTOR transmog sites, to see what was available and where I could get it.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
And that&#39;s when I learned customizing your appearance in SWTOR can actually be really challenging. Much more so I think than in WoW. For instance, most of the best vanity pieces are only available through Cartel Packs - crates you buy at the F2P store, and offer a random selection of goods. And the Cartel Packs themselves are rotated in and out, so at any given time, even if you want to roll the dice on an RNG crate, the one you need may not actually even be currently available. That&#39;s when I realized my carefully planned mog probably wasn&#39;t going to be doable at the moment.&lt;br /&gt;
&lt;br /&gt;
But I still wanted to do something, and I had some cartel coins burning a hole in my pocket, so I used &lt;a href=&quot;http://dulfy.net/2015/02/05/swtor-masters-shadow-pack-preview/&quot; target=&quot;_blank&quot;&gt;Dulfy&#39;s excellent guides&lt;/a&gt; to crate contents to pick out the kinds of crates I wanted, and bought a half dozen. No mounts or pets, sadly, but I did pick up some vanity armor pieces I did like, including this chest piece and gloves.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
I started rummaging through my rather voluminous closet of stuff I&#39;ve kept for forever (I try to keep at least one look of just about everything I come across) to find suitable pants, belts, boots, etc, to go with this top. OH - and blasters! Oh but the thing about weapons - you can&#39;t change their appearance. Most of the best weapons are moddable though, so you can still use just about whatever weapon set you want. But as I looked through my weapon collection, &amp;nbsp;I realized it would be better to build a appearance around a particular set of blasters, rather than to try to find blasters to fit a look.&lt;br /&gt;
&lt;br /&gt;
And that&#39;s when I noticed I had a lovely matching pair of double-barreled gold blasters. At the time, they were way too flashy for my current look, but if I built an entire look around them.. well, we might have something! &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglnnvWCxsfk8a-H77Jqu5LpCsAVWKOO4DhGmW6y9ipdHewCHA8I1L5nqquJRMmQCLbFBpgVjkVewYnblaQbq2Gfpoqcn8tl0SkKwvEovSKMrh1klK3m_1Xl3Es1XAsgpqoXHBpDkKoGFtT/s1600/swtor_2015_07_14_23_05_46_881.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglnnvWCxsfk8a-H77Jqu5LpCsAVWKOO4DhGmW6y9ipdHewCHA8I1L5nqquJRMmQCLbFBpgVjkVewYnblaQbq2Gfpoqcn8tl0SkKwvEovSKMrh1klK3m_1Xl3Es1XAsgpqoXHBpDkKoGFtT/s640/swtor_2015_07_14_23_05_46_881.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
With weapons selected, I set about picking out the other pieces, and then spent time on the GTN looking for a suitable white and gold dye module. Dye modules tend to be expensive, some going well over 6 digits in price, but I found a nice yellow and light grey set for about 50K. &amp;nbsp;Spent even more money on matching crystals (after all, it wouldn&#39;t do for my gold blasters to fire green bolts now would it?), and even more on a matching speeder. &amp;nbsp;And then to top it all off, I had a customization kit for my HK-51 droid that was all silvery and retro-futuristic looking, so I applied it as I thought it went well with the look.&lt;br /&gt;
&lt;br /&gt;
And thus, the Girl with the Golden Gun was born. I&#39;m actually quite pleased with the results, I find her appearance to be someone reminiscent of Emma Frost - and that ain&#39;t a bad thing.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6zSllewELjtzdFfxtcXqfdB1VpmpiZRtrtljLHkRvYoqWmw6eT4v1GFDs0U8skN8TyU8VxbTqDPFQwXjzYIXRC0B8pJw76e2WeXXTQ35rxL9bvJtDr6tHb8AM6O5ICSF8tCtv_mvut8tQ/s1600/swtor_2015_07_14_23_04_03_316.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6zSllewELjtzdFfxtcXqfdB1VpmpiZRtrtljLHkRvYoqWmw6eT4v1GFDs0U8skN8TyU8VxbTqDPFQwXjzYIXRC0B8pJw76e2WeXXTQ35rxL9bvJtDr6tHb8AM6O5ICSF8tCtv_mvut8tQ/s640/swtor_2015_07_14_23_04_03_316.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I took some tips from &lt;a href=&quot;http://ravalation.blogspot.com/&quot; target=&quot;_blank&quot;&gt;Ravalation&#39;s blog&lt;/a&gt; on taking action screenshots in SWTOR, and let me just tell you, the game doesn&#39;t make it easy. Pick on enemies too easy, and they die before you can even get set, much less rotate the camera. Pick on enemies too close to level, and you&#39;ll find yourself mauled to death while you&#39;re busily snapping photos. :) But I managed to get a few good ones, so here they are.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjjtMxgVAClWWDkLusjIlbpaoJCz-s8MtIRMGFHghnWL9kNiM3dyPH8njOczbMaj9NXli-w0pSkgpxErrPSzgZkuBrv8LGElyCjNSdlCF8A2SXhMjq2BG9Bwe4Oo7CS5os28vdW5GDIILH/s1600/swtor_2015_07_14_23_31_54_035.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjjtMxgVAClWWDkLusjIlbpaoJCz-s8MtIRMGFHghnWL9kNiM3dyPH8njOczbMaj9NXli-w0pSkgpxErrPSzgZkuBrv8LGElyCjNSdlCF8A2SXhMjq2BG9Bwe4Oo7CS5os28vdW5GDIILH/s640/swtor_2015_07_14_23_31_54_035.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Now that I&#39;ve settled (for now) on her appearance, I really should probably get around to collecting those datacrons..&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQthrrWI9VYGxlyzHPVHyB7pmArjHisiHVuMrvGOvxRCS7R-WifjDCxThEVjesaDjNupIc51qFqoJ3HO0PEEfaorazfe6_I-D3GWtNHwEUwZk9jRcvJMrfQ8f_PcPHwFj_HafHXHINyr1F/s1600/swtor_2015_07_14_23_28_55_606.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQthrrWI9VYGxlyzHPVHyB7pmArjHisiHVuMrvGOvxRCS7R-WifjDCxThEVjesaDjNupIc51qFqoJ3HO0PEEfaorazfe6_I-D3GWtNHwEUwZk9jRcvJMrfQ8f_PcPHwFj_HafHXHINyr1F/s640/swtor_2015_07_14_23_28_55_606.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/07/the-girl-with-golden-gun.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYNNSzPljqkARt9wfQN_fi3-d_0Zc5NdR7a5rZixDk_TEuu-fGuyyubNM7_PIhsxvlcdWXdwkIalUq_hVLJuszcbBHiuHR43hbt4OvEjirZToqde2hlN2JlBoyzs9USXpvQGUQsATSm4aA/s72-c/swtor_2015_07_14_23_02_25_169.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-3529856181616047309</guid><pubDate>Sat, 11 Jul 2015 13:49:00 +0000</pubDate><atom:updated>2015-07-11T08:49:51.359-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">commentary</category><category domain="http://www.blogger.com/atom/ns#">SWTOR</category><title>Operation Overhaul!</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ3l2sHRuFlyfCF7b93Wn-5_71EmRqbOz4B2MRyl7htZRY50bJk5pPQMlvhtndQ5aT2oUxaYhzYl0HjRrJhB4xgEgMxJXXiqZW4Wgu5rfLlpbJXsFZZhWgFq3pRQ3rephDSpOlZfctuskX/s1600/swtor_2015_06_14_23_08_19_907.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ3l2sHRuFlyfCF7b93Wn-5_71EmRqbOz4B2MRyl7htZRY50bJk5pPQMlvhtndQ5aT2oUxaYhzYl0HjRrJhB4xgEgMxJXXiqZW4Wgu5rfLlpbJXsFZZhWgFq3pRQ3rephDSpOlZfctuskX/s640/swtor_2015_06_14_23_08_19_907.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
See I did a little thing there in the title - did you see what I did? Oh nevermind. So this week the Bioware developers &lt;a href=&quot;http://www.swtor.com/blog/operations-and-flashpoints-fallen-empire&quot; target=&quot;_blank&quot;&gt;put out a blog&lt;/a&gt; talking about what they&#39;re doing with instanced content in the new expansion, and holy smokes it&#39;s a lot! They&#39;re essentially overhauling their entire system. And they also say that there will not be any new operations or flashpoints for said same expansion. &amp;nbsp;Ostensibly because they&#39;re, you know, &lt;i&gt;overhauling their entire system&lt;/i&gt;. &amp;nbsp;So of course if you look at the discussion thread for that blog, you&#39;ll find what at current count is a 58 page thread, mostly filled with hate and discontent, regarding the fact that the there won&#39;t be a new instance. There&#39;s kind of two interesting discussion topics here, so I&#39;m going to talk about them a little bit, separately.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
I find the SWTOR community - interesting. Maybe it&#39;s because I&#39;m on Ebon Hawk, a roleplay server, but by far and large I find the community in game to be fantastic. People are mostly helpful, there&#39;s very little racist or hate talk in general discussion, and PUGs mostly tend to be filled with people that are there to have a good time. It&#39;s part of the reason I&#39;m still playing the game.&lt;br /&gt;
&lt;br /&gt;
But then I go to the forums and read a discussion like this and it&#39;s just page after page of vitriol and hate. I&#39;m reminded again of why I visit forums so rarely these days. And, I think there&#39;s an entire blog to be written (not this blog, today) about cultural change, and how it&#39;s up to us to initiate that change. It&#39;s us to us to choose a tone of discussion that isn&#39;t so grounded in absolutes, that isn&#39;t always phrased in terms of &quot;If I don&#39;t get this I quit&quot;. I know there&#39;s a tendency to believe that &quot;well, because forums of large communities have always been filled with hate, they always will be..&quot; and there&#39;s nothing we can do about it. But I&#39;ve lived long enough to see real cultural shifts happen. &amp;nbsp;When I grew up none of us wore seatbelts, and everyone smoked in their offices. These days, just about everyone wears a seatbelt, and no one smokes in their office anymore. And if you&#39;d asked me as recently as ten years ago if gay couples would ever be allowed to marry in Texas, I would have said absolutely not. But cultural shifts can, and do occur. I don&#39;t know how to make forums less filled with hate, but I suppose I can start by not practicing that behavior myself. And asking you to do the same. &amp;nbsp;And asking you, in turn, to ask everyone you know that - when it comes to giving feedback to developers - let&#39;s all try to be a bit more.. civil.&lt;br /&gt;
&lt;br /&gt;
So let&#39;s talk about the instance changes! Personally, I love them. &amp;nbsp;To understand why, you have to know something about the kind of gamer I am. &amp;nbsp;First, I really don&#39;t consider myself a casual gamer. Now, I do enjoy a casual game style, but make no mistake - I play a lot. In fact, just about every single night I&#39;m in one or another MMO of choice. &amp;nbsp;And even though I am often playing alone, I love group content. I want to be able to do 4-man and 5-man instances, and to even participate in raids and operations. But I don&#39;t have the luxury of a permanent gaming group to play with. Partly because I move around so much, and partly because pretty much all of my gaming friends do too! So we&#39;re constantly in a state of coming and going from one MMO to the next, occasionally crossing paths, but rarely being in the same game at the same time for any length of time.&lt;br /&gt;
&lt;br /&gt;
In short, I&#39;m a hard-core casual gamer that plays alone that loves doing instanced content. &amp;nbsp;And, as it turns out, there are millions of other players just like me. Bioware realizes this, and they&#39;re laying the foundation in this expansion to allow players that play under these circumstances to get the most out of their game. Which I think, is awesome. Let&#39;s look at the changes.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMv8xcyjrB62a4Jt6HfKeQkGc9EcW8IQNJ5LV3vp6xOdHRP9hyphenhyphenbpeUkX9e3HyU24xtqy-ixcqlmj6koT5qJLXM-Vx2hWMqsBTh17yCpkM1fWMjMvyVV8bqGWJ2h88ex83vMb1xOmrLphAF/s1600/swtor_2015_06_08_21_38_52_496.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMv8xcyjrB62a4Jt6HfKeQkGc9EcW8IQNJ5LV3vp6xOdHRP9hyphenhyphenbpeUkX9e3HyU24xtqy-ixcqlmj6koT5qJLXM-Vx2hWMqsBTh17yCpkM1fWMjMvyVV8bqGWJ2h88ex83vMb1xOmrLphAF/s320/swtor_2015_06_08_21_38_52_496.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Solo Flashpoints&lt;/b&gt;&lt;br /&gt;
Fourteen different flashpoints (the classic, story-mode flashpoints) will now have a solo mode. This means, I can fight pretty much at-level, regardless of my actual level, all the story mode operations I couldn&#39;t find groups for as I was leveling. And yes, you could technically do this before, but you were so crazily overpowered that I found it boring. Boss mechanics are just swallowed up in the vaccuum of overkill, and you still have to wade through waves of trash either way. This keeps those fights interesting. And even better, now if you are progressing through your story, you can do every one of those instances *at* level, either with a group if you can find one, or without, if you prefer not to.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Tactical Flashpoints&lt;/b&gt;&lt;br /&gt;
Tactical flashpoints are fantastic. The&#39;re the equivalent of skirmashes in Neverwinter, or Guildhests in FFXIV. They are tuned to be completed by four people, and pretty much any four classes will do. This means queue times are pretty much instant. Fourteen of the previous flashpoints will now have a tactical mode. Tactical flashpoints will also bolster you to the appropriate level, so you can pretty much start doing all of them as soon as you get to level 10. Again, a ton of group content there for you to experience, pretty much regardless of your level.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Hard Mode Flashpoints&lt;/b&gt;&lt;br /&gt;
These requires a 4 man, normal group (ie tank and healer) and there will be 24 of these available to you at level 65.These are most of existing flashpoints, but with their difficulty tuned up to be challenging at level 65. But seriously - 4 man groups. You know you&#39;ll be able to find groups for these, and don&#39;t have to worry to much about not finishing them.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Operations&lt;/b&gt;&lt;br /&gt;
Their will be both 8 and 16 man operations, and they&#39;ll all be available in either story mode and hard mode. And a different storymode operation will be in the group finder each day. Story-mode operations are the equivalent to WoW&#39;s LFR instances. End-game content, tuned to be completed by a pickup group of the appropriate number of players. For a player such as myself - this is perfect. This means, in one way or another, I&#39;ll still have an avenue to see all of the content in the game.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;So.. much.. stuff&lt;/b&gt;&lt;br /&gt;
I completely understand why the progression raiders and people at the very end-game portion of this game are unhappy. But Bioware is I think, making the exact right steps to put their end-game mechanics in a position to work well over the long term. You know there will be more operations to come. But the fact that Bioware is doing this fundamental restructuring is a much more positive sign for the game&#39;s life than if they&#39;d just cranked out another operation. It says they&#39;re planning for the long haul. That they&#39;re doubling down on the game, and they see it continuing to grow and expand for years to come. &lt;br /&gt;
&lt;br /&gt;
And for me, right now, I couldn&#39;t be more thrilled. I know that when I hit the level cap after the expansion drops, there will still be a ton of stuff for me to do with my character. And if I find a group or guild to do it with, all the better. But even if I don&#39;t, I won&#39;t be shut out of the best content in the game.&lt;br /&gt;
&lt;br /&gt;
So until the expansion is released.. I&#39;ll be waiting patiently..&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgQ4EIV5Q5vCPW6mQzyyASkIfrx0xlW0fSYBC3miZvoY-LoWORyjz1-8Q13UMagFwBoXKjBhFfebbSPJwtUeoWzo-cesRISt2C-I5jIglgIJhCvsgW-HCaqhRryao2AUkJJX1-uDWBx_mg/s1600/swtor_2015_06_06_16_34_39_022.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgQ4EIV5Q5vCPW6mQzyyASkIfrx0xlW0fSYBC3miZvoY-LoWORyjz1-8Q13UMagFwBoXKjBhFfebbSPJwtUeoWzo-cesRISt2C-I5jIglgIJhCvsgW-HCaqhRryao2AUkJJX1-uDWBx_mg/s640/swtor_2015_06_06_16_34_39_022.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/07/operation-overhaul.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ3l2sHRuFlyfCF7b93Wn-5_71EmRqbOz4B2MRyl7htZRY50bJk5pPQMlvhtndQ5aT2oUxaYhzYl0HjRrJhB4xgEgMxJXXiqZW4Wgu5rfLlpbJXsFZZhWgFq3pRQ3rephDSpOlZfctuskX/s72-c/swtor_2015_06_14_23_08_19_907.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7577405488165152910.post-744329189752339370</guid><pubDate>Fri, 03 Jul 2015 15:00:00 +0000</pubDate><atom:updated>2015-07-03T10:02:17.884-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">commentary</category><category domain="http://www.blogger.com/atom/ns#">ffxivarr</category><category domain="http://www.blogger.com/atom/ns#">SWTOR</category><title>Buyer&#39;s Remorse</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ5uYOxBmN4NeAylBFiXardu7LO9s5ThAbWcrBlcDM6CtwbU9DsQqTLRaq1Uyli7y_YkdiOZxjKD1TJKspaTL_H6W4RNFtZKehxEoJNndGEmrrqLVXqKGttr5WTeQbbN81oCR0o0oVFXOk/s1600/ffxiv_2015_06_28_15_05_08_959.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ5uYOxBmN4NeAylBFiXardu7LO9s5ThAbWcrBlcDM6CtwbU9DsQqTLRaq1Uyli7y_YkdiOZxjKD1TJKspaTL_H6W4RNFtZKehxEoJNndGEmrrqLVXqKGttr5WTeQbbN81oCR0o0oVFXOk/s640/ffxiv_2015_06_28_15_05_08_959.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I don&#39;t often fall prey to the whims of my crowd, but I&#39;m beginning to suspect that&#39;s what&#39;s happened here. I&#39;ve returned to FFXIV, and picked up the new expansion. &amp;nbsp;Everything is exciting and new, and I should be happy as a clam. &amp;nbsp;Except.. it isn&#39;t, and I&#39;m not. &amp;nbsp;So.. what&#39;s going on here.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
As you know, I&#39;ve been bouncing around a bit from MMO to MMO, once the shiny wore off of Draenor, and I found was feeling hemmed in by my own garrison. &amp;nbsp;And it really wasn&#39;t so much of a &lt;i&gt;I&#39;m searching for the next best MMO&lt;/i&gt; kind of thing, but really more of a &lt;i&gt;there&#39;s a lot of cool shit going on in many MMO&#39;s right now, and I want to check that out!&lt;/i&gt; thing.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigKErKilNMsEL3UNfmie3wcbCdItHF-zQ0tjE4vdFAaRRSjOHaJ32l8ONyPPyQbcBBuHpa1ocQW-_Uxku-LMD_D5rUlmEY3RUBwMbMU4XQ5aLwPd3zlmCB1Ycus_cOUWe8iTHOE_jmSj1N/s1600/swtor_2015_06_14_16_46_22_228.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigKErKilNMsEL3UNfmie3wcbCdItHF-zQ0tjE4vdFAaRRSjOHaJ32l8ONyPPyQbcBBuHpa1ocQW-_Uxku-LMD_D5rUlmEY3RUBwMbMU4XQ5aLwPd3zlmCB1Ycus_cOUWe8iTHOE_jmSj1N/s320/swtor_2015_06_14_16_46_22_228.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
So for about the last six weeks or so I&#39;ve been playing Star Wars the Old Republic, and really enjoying it. My smuggler Kaytte has climbed her way all the way to 60, and she&#39;d completed all of the current main story - right through the Shadow of Revan, She wasn&#39;t totally geared up yet, but gearing wasn&#39;t too much of a problem right now anyway. Also she&#39;d earned a nice bank of credits, buying and selling things on the GTN. &amp;nbsp;Point being, while I wasn&#39;t neccessarily feeling &lt;i&gt;done&lt;/i&gt;, per se, I did feel like I&#39;d reached my original goals for the game at the time - which was to make it to level cap and see the story all the way through.&lt;br /&gt;
&lt;br /&gt;
And all the time I&#39;ve been playing, I&#39;ve also been eyeing FFXIV. &amp;nbsp;See, FFXIV is an excellent MMO. This much I know for fact. I played it a little at launch, then came back last summer when they had a free weekend, and stuck with it pretty much all summer, leveling a Bard all the way to 50. &amp;nbsp;So it was, just about the time I reached 60 in SWTOR and finished the main story, FFXIV officially released the Heavensward expansion. &amp;nbsp;Oh my. &lt;br /&gt;
&lt;br /&gt;
Now, if there&#39;s one thing I&#39;ve learned from experience, it is that if you&#39;re thinking of returning to an MMO, the time to do it is when they&#39;re having a major event - such as an expansion launch. &amp;nbsp;Many people will be returning, and they&#39;ll be a great uptick in population - and that uptick will likely only really substantially last a month or so. &amp;nbsp;You want to ride that wave of returning pop. Queues will be faster, group events work better - and everyone is experiencing the new content at the same time you are. It&#39;s like a partial reset of sorts, and it&#39;s best if you experience it with everyone else. &amp;nbsp;So I decided - HEY, you&#39;ve reached the level cap in SWTOR, there&#39;s a new expansion coming out for FFXIV - now&#39;s the time to check it out! So I did.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
I patched up FFXIV, and jumped in and logged into my bard, and was greeted with that familiar &quot;returning to MMO feeling&quot;, which is to say, I was staring at three hot bars full of buttons and couldn&#39;t remember much about what any of them did, or the order in which I should press them.&lt;br /&gt;
&lt;br /&gt;
Now, I was aware of the Heavensward expansion, and had watched a few of the teaser videos, but that was just about the extent of my knowledge about it. I did know you had to have a character at level cap to experience the new content, but I had that, so I wasn&#39;t too worried. Shortly after logging in and running around a bit, I went ahead and navigated the maze of Square Enix account sites to purchase the expansion, so I could patch it in, and start leveling my way to 60. &amp;nbsp;And of course, all the best in game goodies came from the collector&#39;s edition, so nothing would do but to get that edition!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpnRyqZWiv52qOuVrJHiDaz8ixWn20VXXz1_xKa5h2wgtV76JKf-yuDRhkgCZF64-GevTiTdYvP8o5e9_MBnDCXQ530Bhc2WmFQCHrIBqluH3dQJU52AQWZ4nU_97hEPavarMnGiv9qUW8/s1600/ffxiv_2015_06_25_21_09_57_148.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpnRyqZWiv52qOuVrJHiDaz8ixWn20VXXz1_xKa5h2wgtV76JKf-yuDRhkgCZF64-GevTiTdYvP8o5e9_MBnDCXQ530Bhc2WmFQCHrIBqluH3dQJU52AQWZ4nU_97hEPavarMnGiv9qUW8/s320/ffxiv_2015_06_25_21_09_57_148.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Now, being greeted with a hotbar full of icons I didn&#39;t recognize, I decided to ease my way back into the game by way of switching jobs to rogue, which wasn&#39;t in the game the last time I played, and was one of the things I wanted to check out. The nice thing about FFXIV, is you don&#39;t have to re-roll a character to start over, you can just switch jobs with the current one, and get the same effect!&lt;br /&gt;
&lt;br /&gt;
So I set about leveling rogue, and remembering how to play the game. It wasn&#39;t really grabbing me, but I know that leveling low level alternate jobs is pretty a pretty grindy affair of running fates and bland side quests, so I wrote it off to that. Also ran a few low level dungeons, had a pretty good time, and before I knew it was 20. Time to switch back to my Bard and start in on that expansion content!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdvYkKkavxTD2BJf_NEhoBxOiq-NgVVvuF9JLyCTkXx4KBmo4a5guX8wpSDC7qLSP_bNpY7I9Pp28_nbol_auEHaurTvqFNM5nDvkwOO9ndpZCsbvReZ_4sClDHEomlekxa-AmYHvsnl7z/s1600/ffxiv_2015_06_28_14_31_23_395.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdvYkKkavxTD2BJf_NEhoBxOiq-NgVVvuF9JLyCTkXx4KBmo4a5guX8wpSDC7qLSP_bNpY7I9Pp28_nbol_auEHaurTvqFNM5nDvkwOO9ndpZCsbvReZ_4sClDHEomlekxa-AmYHvsnl7z/s320/ffxiv_2015_06_28_14_31_23_395.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
So Kayette switched back to Bard (where clearly she&#39;s happiest), and I started running some fates, and did a few low level dungeons, to get back into the swing of her rotation. She was currently stuck at Garuda in her story. &amp;nbsp;Mind you, I still hadn&#39;t done anything with the new expansion yet, but at least I was earning XP towards 60. I used the Duty Finder to tackle Garuda, downed her without too much difficulty, and we were on our way again, making progress on the story. &amp;nbsp;Surely there wasn&#39;t too much left to do right?&lt;br /&gt;
&lt;br /&gt;
The thing was, the whole time I&#39;ve been playing, I still hadn&#39;t really recaptured that feel. &amp;nbsp;I couldn&#39;t explain it, but the game just wasn&#39;t grabbing me. I felt kind of a malaise at running fates, and working my way through the story missions felt - bland. More than anything, I suspect it was a matter of aesthetics over mechanics. Coming from SWTOR&#39;s excellent, fully voiced in-game story cinematics, to FFXIV&#39;s mostly unvoiced cinematics, where the full extent of your character&#39;s interactions with the NPC&#39;s is to nod in the affirmative, felt - well, a bit anticlimactic. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSLJh92E3Gyw0ERszpzb66RL5hobXH8146_RS5vqiQh9SZI-XAk1SAZo0HVadDhMcE8CnG__I3LvXgcYJpvyjVC8-rMOkzXIK2FdtYqLZfdkr1vJUkte5e9hOpKpfZ4RjB-Y4zvpRDKh0m/s1600/ffxiv_2015_06_29_21_45_03_358.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSLJh92E3Gyw0ERszpzb66RL5hobXH8146_RS5vqiQh9SZI-XAk1SAZo0HVadDhMcE8CnG__I3LvXgcYJpvyjVC8-rMOkzXIK2FdtYqLZfdkr1vJUkte5e9hOpKpfZ4RjB-Y4zvpRDKh0m/s320/ffxiv_2015_06_29_21_45_03_358.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
But I soldiered on for a bit, progressing a bit more through the story. But at this point, I began to wonder in earnest, just how far did I have to go on the main story, before I could actually start seeing some of the new content in the expansion. &amp;nbsp;And that was when I realized.. goodness.. it turns out,&lt;i&gt; quite a bit&lt;/i&gt;. &amp;nbsp;See, while I am actually only a few short instances from finishing the original vanilla story, you have to finish all of the other expansions stories as well, before you ever set foot in Ishgard. And it turns out.. that is a lot of content! Dozens upon dozens of missions and instances. And, if the was giving me the feels, I&#39;d wouldn&#39;t mind a bit. &amp;nbsp;But sadly, for whatever reason, it just isn&#39;t. As I&#39;m progressing in quests, mostly I felt like I should be checking in on m smuggler&#39;s GTN sales, and learning how to run operations with her! &lt;br /&gt;
&lt;br /&gt;
So, just out of curiosity, I logged back into SWTOR. And had more fun in 30 minutes of play there than I had in the last 2 weeks of FFXIV. &amp;nbsp;And that was when I thought - What are you doing? Like it or not, a mistake has been made here. Whether it&#39;s just the difference in presentation of the missions, or maybe it&#39;s just the thought of the weight of fully re-engaging in another MMO right now, when I just got well engaged with my previous one, was too much to bear. But right now, the thought of progressing through all of those FFXIV missions to see the quote-unquote new content (let&#39;s be honest, it will all be new to me) isn&#39;t compelling me. So I think you&#39;ll be seeing a return of the SWTOR screenshots in my morning game sharing time on twitter.&lt;br /&gt;
&lt;br /&gt;
You&#39;ll forgive me if I wax parent-ish a bit here, but it feels like there are two lessons that I knew already, but clearly needed to be re-reminded of. The first, is to remember to not throw good many after bad. I was feeling compelled to force myself to play FFXIV because dammit, I did just spend money on the expansion, and by god I need to get my money&#39;s worth! But the money&#39;s gone, and if you&#39;re not having fun, are you really getting good use out of it anyway? And the second - and far more important, is for the love of god,&lt;i&gt; research&lt;/i&gt; an expansion before you buy it knucklehead!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnbueznzX4tE0E4yIyDeP0mF50ajABRrUdtZAqLuVSAPKMBPGKuIkhlrsW1NoB8iYt-c2N4PAXh5J-caYf9C2zr6_zjmFwF4ZL89uvVovMP4kL9UPOgLl2T0JkrYm5Nx-pDrZthdelWy1j/s1600/swtor_2015_07_02_21_59_00_939.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnbueznzX4tE0E4yIyDeP0mF50ajABRrUdtZAqLuVSAPKMBPGKuIkhlrsW1NoB8iYt-c2N4PAXh5J-caYf9C2zr6_zjmFwF4ZL89uvVovMP4kL9UPOgLl2T0JkrYm5Nx-pDrZthdelWy1j/s640/swtor_2015_07_02_21_59_00_939.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</description><link>http://ofcourseillplayit.blogspot.com/2015/07/buyers-remorse.html</link><author>noreply@blogger.com (Dusty Monk)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ5uYOxBmN4NeAylBFiXardu7LO9s5ThAbWcrBlcDM6CtwbU9DsQqTLRaq1Uyli7y_YkdiOZxjKD1TJKspaTL_H6W4RNFtZKehxEoJNndGEmrrqLVXqKGttr5WTeQbbN81oCR0o0oVFXOk/s72-c/ffxiv_2015_06_28_15_05_08_959.jpg" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>