tag:blogger.com,1999:blog-31450788937071161882024-02-21T01:03:30.249-08:00Floydian TheoryDo you like things? Me too. I also like to think about things and have ideas. Come join me and see what I come up with.Ben Floydhttp://www.blogger.com/profile/08682545060384364188noreply@blogger.comBlogger39125tag:blogger.com,1999:blog-3145078893707116188.post-515489689839296352016-07-09T20:34:00.000-07:002016-07-09T20:34:04.813-07:00Lady Arzach<div dir="ltr" style="text-align: left;" trbidi="on">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaCWWgSLqJOTNAX68UreyOTJgvj8nQpKAclzCj-7oNDuSkza3ZX47rCagr7LkNB52OjQ-vDMW8FxWtKTRr9S1YLiVgGmCyNUWs6S0S3eQd42cc7D2W1axd-7r6LTOthoxR2sYdmX6fqe0d/s1600/LadyAzrach.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaCWWgSLqJOTNAX68UreyOTJgvj8nQpKAclzCj-7oNDuSkza3ZX47rCagr7LkNB52OjQ-vDMW8FxWtKTRr9S1YLiVgGmCyNUWs6S0S3eQd42cc7D2W1axd-7r6LTOthoxR2sYdmX6fqe0d/s400/LadyAzrach.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">gender swapped Arzach</td></tr>
</tbody></table>
<br />
Moebius was probably my favorite artist. I love looking at his stuff which is super unreal. Anyway, I sketched this a long time ago, where I don't even remember doing it, but I finished it up today after finding it on accident. I might color it later and add a background in, but for now this is it.</div>
Ben Floydhttp://www.blogger.com/profile/08682545060384364188noreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-52436369948071615722016-07-06T09:10:00.000-07:002016-07-06T09:14:21.845-07:00Basics of Programming Part 4: Loops<div dir="ltr" style="text-align: left;" trbidi="on">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeHlz0t1qqlTOLO0yp2nxxbmxAcJDaa7V_Jz_PKtXKb2Q40kFrQ3fnLJKZr8lxzawdpkve1q6retV7b6D-gSJ6ULNnIlH-1mGNd_fGGdwiny-26rOA93gqQVgN3CZNqpK0FJImhyphenhyphencwFZy3/s1600/forLoops.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeHlz0t1qqlTOLO0yp2nxxbmxAcJDaa7V_Jz_PKtXKb2Q40kFrQ3fnLJKZr8lxzawdpkve1q6retV7b6D-gSJ6ULNnIlH-1mGNd_fGGdwiny-26rOA93gqQVgN3CZNqpK0FJImhyphenhyphencwFZy3/s640/forLoops.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">the best use of a for loop. ever.</td></tr>
</tbody></table>
<div>
<div style="text-align: left;">
<a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-blog-intro.html">Part 1: Variables</a><span style="font-family: "calibri" , sans-serif; font-size: 14.6667px;"> | </span><a href="https://floydiantheory.blogspot.in/2016/06/basics-of-programming-part-2-functions.html" style="font-family: calibri, sans-serif; font-size: 14.6667px;">Part 2: Functions</a><span style="font-family: calibri, sans-serif; font-size: 14.6667px;"> | </span><a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-part-3-operators.html" style="font-family: calibri, sans-serif; font-size: 14.6667px;">Part 3: Operators</a></div>
</div>
<div class="MsoNormalCxSpFirst">
<br />
Loops. I like them. They
make things much easier by allowing me to do less work. Loop work by doing an
action multiple times without you having to write it again and again. The above
cartoon from Bill Amend's FoxTrot does a great job of explaining how and why a
FOR LOOP can be used. Here’s the code from the strip:<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">int main(void)<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">{<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";"> int
count;<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";"> for(count
= 1; count <= 500; count++)<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";"> printf(“I
will not throw paper airplanes in class.”);<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";"> return
0;<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">}<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<br /></div>
<div class="MsoNormalCxSpMiddle">
You
should be able to recognize the first line from our talk on functions. <span style="font-family: "courier new";">int</span> means this will be what’s returned by the function, <span style="font-family: "courier new";">main</span> is the name of the function, <span style="font-family: "courier new";">(void) </span>is
basically saying that <span style="font-family: "courier new";">main</span> cannot have any parameters, which
we might not have covered. I don’t remember.<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle">
The
next line declares an integer variable of <span style="font-family: "courier new";">count</span>, which will be used in the for
loop.<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle">
The
next line is the FOR LOOP and it might be a bit confusing. Let’s break it down
into simpler thought first. Here’s the bits:<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">for()</span> is the function name<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">count = 1</span> sets our variable to 1<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">count <= 500</span> check to make sure that <span style="font-family: "courier new";">count</span> is less than or equal to 500<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">count++</span> is adding one (1) to our <span style="font-family: "courier new";">count</span> variable<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">printf()</span> is the action we preform after we do this <span style="font-family: "courier new";">count</span> check<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<br /></div>
<div class="MsoNormalCxSpMiddle">
Make
note that the <span style="font-family: "courier new";">prinf()</span> is not enclosed in brackets. Even
though functions have brackets, this is allowable because there is only one
line of code inside that function. If we were to put anything else in there,
say another <span style="font-family: "courier new";">printf()</span> then we would have to use the
brackets. I tend to use brackets regardless of the line count, simply because I
never know when I’ll need to add more lines into a function. I believe general
philosophy of programmers is to not do this as it makes the code pretty long
and ugly, but they’re wrong. :P<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle">
Moving
on. Let’s get into the nitty-gritty of what a for loop is really doing. We
first set a variable <span style="font-family: "courier new";">count</span> to 1. We then check to see if <span style="font-family: "courier new";">count</span> is less than/equal to 500. If it is then we add 1 to count (++
means add one, -- means subtract one). Then we would print out <span style="font-family: "courier new";">“I will not throw paper airplanes in class.” </span>Then the loop starts again. It will
continue to print out this phrase until it has reached 500. On the 501<sup>st</sup>
loop it will stop printing and then move on to the next step in the function:<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">return 0</span> just returns a false value to our <span style="font-family: "courier new";">main</span> function<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle">
And
that’s a for loop. If you understood what I was explaining, then you’ll now
understand the FoxTrot comic. Jason, the boy in the strip, was told to write <span style="font-family: "courier new";">“I will not throw paper airplanes in class.” </span>500 times. Instead of writing that
line 500 times he automated it so the “computer” would simply print out the
line 500 times. <o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle">
With
just two lines of code you can save a whole bunch of copy/paste and more
importantly your time so instead of this:<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">printf(“I will not throw paper airplanes in
class.”);<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">printf(“I will not throw paper airplanes in
class.”);<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">printf(“I will not throw paper airplanes in
class.”);<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">printf(“I will not throw paper airplanes in
class.”);<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">printf(“I will not throw paper airplanes in
class.”);<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">printf(“I will not throw paper airplanes in
class.”);<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">printf(“I will not throw paper airplanes in
class.”);<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">printf(“I will not throw paper airplanes in
class.”);<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">printf(“I will not throw paper airplanes in
class.”);<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">printf(“I will not throw paper airplanes in
class.”);<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<br /></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">x 50<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle">
You
simply write this:<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">for(count = 1; count <= 500; count++)<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";"> printf(“I
will not throw paper airplanes in class.”);<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle">
Hopefully
you understand what a for loop is and what you can do with it. But before we go
let’s take a look at a different type of loop, called the WHILE LOOP. Instead
of using numbers like we did in the for loop this will check a condition.
Here’s a small while loop:<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">while(!gamePaused)<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">{<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto; text-indent: .5in;">
<span style="font-family: "courier new";">hero.controls();<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";"> hero.move();<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";"> monster.move();<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";"> game.controls();<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">}<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<br /></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<span style="font-family: "courier new";">haveParty();<o:p></o:p></span></div>
<div class="MsoNormalCxSpMiddle" style="margin-left: .5in; mso-add-space: auto;">
<br /></div>
<div class="MsoNormalCxSpMiddle">
Now
this isn’t real code as we haven’t actually defined our functions but here’s
the breakdown. The first line is looking to make sure that the game is not
paused. If it is running then it will allow controller input for our hero, both
the hero and monsters to move, as well as checking to see if the controller is
being used for game systems, like pausing the game for instance. Then if the
game is still not paused it will run through everything that’s in the <span style="font-family: "courier new";">while</span> loop again. It will continue to do this until something changes
the variable <span style="font-family: "courier new";">gamePaused</span> from <span style="font-family: "courier new";">false</span> to
<span style="font-family: "courier new";">true</span>. Then the function will be
completed and the next line of code will run, meaning the computer will have a
party! Yay!<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormalCxSpMiddle">
This
might not be as cut and dry as the for loop, but while loops pretty much run
everything, whether it’s behind the code or a part of it. Games are built
around constantly updating and a while loop does just that. So long as the
condition is met, it will continue to run.<o:p></o:p></div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<br />
<div class="MsoNormalCxSpMiddle">
Well,
that’s it for this one. I’m hoping to have something else to write about early
next week, but I have to decide what else to cover in a basics course. Until
next time, God bless and code everyday!<o:p></o:p><br />
<br />
<a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-blog-intro.html">Part 1: Variables</a><span style="font-family: "calibri" , sans-serif; font-size: 14.6667px;"> | </span><a href="https://floydiantheory.blogspot.in/2016/06/basics-of-programming-part-2-functions.html" style="font-family: calibri, sans-serif; font-size: 14.6667px;">Part 2: Functions</a><span style="font-family: calibri, sans-serif; font-size: 14.6667px;"> | </span><a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-part-3-operators.html" style="font-family: calibri, sans-serif; font-size: 14.6667px;">Part 3: Operators</a></div>
</div>
Ben Floydhttp://www.blogger.com/profile/08682545060384364188noreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-72432860905976783392016-06-22T14:03:00.001-07:002016-07-06T09:17:04.224-07:00Basics of Programming Part 3: Operators<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVwrLHx177Wg2dIYJ5EVY-GtDN39n0u3vC_zR50oBrmR2Wh0DAS4O2xE8BJFOBgBQ983RUI9inju3ZkXcEqZOJjqn04oCGNz8mawVgjZsRMq9M0iKOf4_qgzZshy6srWqbG6U9VbElHD8A/s1600/youtubeComments.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVwrLHx177Wg2dIYJ5EVY-GtDN39n0u3vC_zR50oBrmR2Wh0DAS4O2xE8BJFOBgBQ983RUI9inju3ZkXcEqZOJjqn04oCGNz8mawVgjZsRMq9M0iKOf4_qgzZshy6srWqbG6U9VbElHD8A/s400/youtubeComments.jpg" width="360" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">not related, just funny, and something I wish was real</td></tr>
</tbody></table>
<div style="text-align: center;">
<br /></div>
<br />
<a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-blog-intro.html">Part 1: Variables</a> | <a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-blog-intro.html">Part 2: Functions</a> | <a href="http://floydiantheory.blogspot.in/2016/07/basics-of-programming-part-4-loops.html">Part 4: Loops</a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
An OPERATOR is a character or symbol that performs a predefined
function. To continue our long tradition of jars and honey, an operator could
be taking out some of the honey or adding more in (arithmetic). Another
operator could be looking at two jars and see if they are both honey (conditionals).
Here is a list of all the operators I can think of at this moment:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "courier new";">+</span>
(addition)<br />
<span style="font-family: "courier new";">-</span> (subtraction)<br />
<span style="font-family: "courier new";">*</span> (multiplication)<br />
<span style="font-family: "courier new";">/</span> (division)<br />
<span style="font-family: "courier new";">%</span> (remainder)<br />
<span style="font-family: "courier new";">=</span> (assign value)<br />
<span style="font-family: "courier new";">==</span> (true comparison)<br />
<span style="font-family: "courier new";">!</span> (relational false)<br />
<span style="font-family: "courier new";">&& </span>(conditional and)<br />
<span style="font-family: "courier new";">||</span> (conditional or)<br />
<span style="font-family: "courier new";">></span> (greater than)<br />
<span style="font-family: "courier new";">>=</span> (greater than/equal to)<br />
<span style="font-family: "courier new";"><</span> (less than)<br />
<span style="font-family: "courier new";"><=</span> (less than/equal to)<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: .5in;">
<br /></div>
<div class="MsoNormal">
These are not all the operators, but they are very common.
The arithmetic operators work how you’d expect. We’ve already covered the
difference between = and ==, but for clarification remember that a single =
means we’re assigning a value, while == means we’re checking if the relation
between two variables is true.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
! is a new one, and not one covered in most basic Maths
classes (I think; it’s been a long time). This is called a NOT operator. It’s a
comparison as well, so != means we’re checking to see if the relation between
two variables IS NOT TRUE (false). This can be confusing, or at least it was
for me when I first started. So let’s look at a word problem.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I have a bunch of jars of honey, some of which are expired
(I don’t know if honey expires, but for this example it does). If I want to get
rid of all of the expired jars I need a way to check each jar. So I write a
condition to get rid of all of the unfresh (real word :P) jars.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "courier new";">if(jar != fresh)<br />
{<br />
trashJar();//remember
functions are actions<br />
}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This says that if the jar IS NOT fresh (literally fresh is
false) then we get rid of it. You could do a different check, something like
this:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "courier new";">if(jar == fresh)<br />
{<br />
saveJar();<br />
}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This will accomplish the same task and for something so
simple this would work. But let’s say you have a few different jars that are
full of honey, others tomatoes, and others moonshine. If you wanted to toss out
both tomatoes (because they’re gross) and moonshine (I don’t know why you
would), you could write something like this:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "courier new";">if(jar
== tomatoes || jar == moonshine)<br />
{<br />
trashJar();<br />
}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This is still not a lot of writing, but imagine you not only
had tomatoes and moonshine, but carrots, pickles, pig’s feet, zombie viruses,
etc. Instead of writing all of this…<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: .5in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "courier new";">if(jar
== tomatoes || jar == moonshine || jar == carrots || jar == pickles || jar ==
pigsFeet || jar == zombieViruses)<br />
{<br />
trashJar();<br />
}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
…you could simply write:<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: .5in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "courier new";">if(jar
!= honey)//if jar IS NOT honey…<br />
{<br />
trashJar();…then
we get rid of it<br />
}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I think that’s a lot easier. Don’t you? Instead of listing
everything not honey you can simply say if it isn’t honey, trash it.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Anyway, in the above example we used the operator <span style="font-family: "courier new";">||</span> which means OR. Some languages
accept both <span style="font-family: "courier new";">||</span> or <span style="font-family: "courier new";">or</span> as valid, but we’ll stick with <span style="font-family: "courier new";">||</span>. Likewise the operator <span style="font-family: "courier new";">&&</span> means AND. Using all of
these operators we can create some very powerful functions, and we can combine
them all together if we really wanted to. For instance, if we wanted to throw
out jars of honey that were almost empty or expired we could do the following:<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: .5in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "courier new";">if(jar
== honey && (honeyAmount <= 1 || !fresh))<br />
{<br />
trashJar();<br />
}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This
conditional states that if the jar is a honey jar AND either the honey is less
than 1 OR is not fresh, then we toss it. Parentheses work like they did in
grade school. You first evaluate what’s inside, then you can do the rest of the
problem. In this case, even if honeyAmount is greater than 1 but it’s expired,
then we’ll toss it out (parentheses), as long as it’s a honey jar (first part).<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Operators
can get tricky, but this first pass should be enough to get you intrigued. Join
us next time when we discuss loops. Sounds sexy, right?<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-blog-intro.html">Part 1: Variables</a> | <a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-blog-intro.html">Part 2: Functions</a> | <a href="http://floydiantheory.blogspot.in/2016/07/basics-of-programming-part-4-loops.html">Part 4: Loops</a></div>
</div>
Ben Floydhttp://www.blogger.com/profile/08682545060384364188noreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-68656680352211669112016-06-17T15:05:00.001-07:002016-07-06T09:16:34.905-07:00Basics of Programming Part 2: Functions()<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<div style="text-align: center;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img src="https://s-media-cache-ak0.pinimg.com/736x/45/3b/55/453b5562cf1fd8c20653228438076095.jpg" style="margin-left: auto; margin-right: auto;" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">how I feel all the time</td></tr>
</tbody></table>
</div>
<a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-blog-intro.html">Part 1: Variables</a><span style="font-family: "calibri" , sans-serif; font-size: 14.6667px;"> | </span><a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-part-3-operators.html" style="font-family: calibri, sans-serif; font-size: 14.6667px;">Part 3: Operators</a> | <a href="http://floydiantheory.blogspot.in/2016/07/basics-of-programming-part-4-loops.html">Part 4: Loops</a><br />
<br />
Functions are super awesome as they are what make everything
happen. The simplest way to describe it is that a function is an action. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Continuing on with the jar and honey analogy from Part 1,
let’s say you have your jar. It’s filled with honey, so that’s good. But having
the jar and the information that it’s full of honey doesn’t really accomplish
much. In order to interact with that jar, and indeed for the jar to be useful, you
must perform actions, or functions. Here’s a function:<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: .5in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<b><span style="font-family: "courier new";">function</span></b><span style="font-family: "courier new";"> openJar()<br />
{<br />
//code
that lets us open the jar<br />
}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
*sidebar: The two forward
slashes make what follows a comment, meaning that it will not be read by the
compiler; it is purely for the developer to see. Comments are fantastic and you
need to use them to describe your code, because when you come back to your code
after a month you will have no idea what you wrote or why you wrote it. So
comment often!*<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
So this function doesn’t actually do anything because no
code is written inside of it. In order for a function to…function, we need to
have information that it can use. Here’s a semi-working function:<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: 31.5pt;">
<br /></div>
<div class="MsoNormal" style="margin-left: 31.5pt;">
<b><span style="font-family: "courier new";">bool</span></b><span style="font-family: "courier new";"> closed = true;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 31.5pt;">
<br /></div>
<div class="MsoNormal" style="margin-left: 31.5pt;">
<b><span style="font-family: "courier new";">void </span></b><span style="font-family: "courier new";">openJar() <br />
{<br />
if(closed
== true)<br />
{<br />
//we open
the jar by switching the value to false<br />
closed
= false;<br />
}<br />
else<br />
{<br />
//jar
is already open; no need to open it again<br />
}<br />
}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Okay, let’s walk this through bit by bit:<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: .5in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<b><span style="font-family: "courier new";">bool</span></b><span style="font-family: "courier new";"> closed = true;<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This should
look familiar from Part 1, but with a different DATA TYPE. Remember that <b><span style="font-family: "courier new";">bool</span></b> or <b><span style="font-family: "courier new";">boolean</span></b> is a true or false value, which
numerically is 1 or 0. <span style="font-family: "courier new";">closed</span> is the name of the boolean
variable. <span style="font-family: "courier new";">true</span> is the value of our <span style="font-family: "courier new";">closed</span> boolean variable.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Okay that
was simple. Let’s see what we can make of the next bit:<o:p></o:p></div>
<div class="MsoNormal" style="margin-left: .5in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<b><span style="font-family: "courier new";">void </span></b><span style="font-family: "courier new";">openJar()<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Funnily
enough, this has the same basic structure as we discussed with variables. <b><span style="font-family: "courier new";">void</span></b> is the return value of the data
type. A return value is a value that, when the function is run, is returned to
the program. You can actually call a function and put that return value into a
variable, though that might not make sense yet. We haven’t talked about <b><span style="font-family: "courier new";">void</span></b> before, but basically it means that
when this function is called it doesn’t return any sort of value, it just runs
through the function and that’s it.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "courier new";">openJar</span> is the name of the function, just
like <span style="font-family: "courier new";">closed</span> is the name of our variable. It’s
just a way to easily identify the function. Simple.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "courier new";">()</span> is a new sign for us. <span style="font-family: "courier new";">()</span> in this context is known as a CALL NOTATION. I don’t really
know what this does in the background, but it’s what lets the compiler know a
function is being called. Sorry I can’t go into more detail. I don’t know
enough about the inner workings, only how to use it. Just like I can watch TV
but I couldn’t explain exactly how it works.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Next up is <span style="font-family: "courier new";">{}</span>. These brackets are the beginning and end of a function or
statement. All brackets need to be in pairs. This can get confusing when there
are nested statements (meaning sets of brackets within sets of brackets within
sets of brackets, etc), so always create a set of brackets, never just one.
Anyhoo, everything within these first brackets are the <span style="font-family: "courier new";">openJar</span> function.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Next up is,
again, something new:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "courier new";">if(closed
== true)<br />
{<br />
closed
= false;<br />
}<br />
else<br />
{<br />
<br />
}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This is
called an “if-else statement”. Basically, it asks a question about the value of
a variable. Then, based upon the answer, it will output one of a number of
actions. While there are <span style="font-family: "courier new";">()</span> in this line, they do not have the
same purpose as the call notation. Here they are grouping together the two
sides of the question being asked. In this case we’re asking <span style="font-family: "courier new";">if (closed</span> equals <span style="font-family: "courier new";">true)</span>, then do whatever is in the following
brackets. <span style="font-family: "courier new";">if (closed</span> does not equal <span style="font-family: "courier new";">true)</span> (this is the <span style="font-family: "courier new";">else</span> part) then do whatever is in the next
set of brackets. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The two
equal signs (<span style="font-family: "courier new";">==</span>) act as a comparison, or a
conditional, asking whether or not two things are the same. In variables one
equal sign (<span style="font-family: "courier new";">=</span>) means we are assigning a value, saying
that <span style="font-family: "courier new";">closed</span> is <span style="font-family: "courier new";">true</span>. So
the <span style="font-family: "courier new";">if</span> statement is looking to see if <span style="font-family: "courier new";">closed</span> equals the same value as <span style="font-family: "courier new";">true</span>. It checks the value of the boolean
variable <span style="font-family: "courier new";">closed</span>, which we declared and assigned in
the beginning, with the value <span style="font-family: "courier new";">true</span>. Because the value of <span style="font-family: "courier new";">closed</span> is <span style="font-family: "courier new";">true</span>, the program runs through and sets <span style="font-family: "courier new";">closed</span> to <span style="font-family: "courier new";">false</span>, which means that our jar is now
open. The second half, the <span style="font-family: "courier new";">else</span> part of the statement, will not be
looked through, because the condition in the <span style="font-family: "courier new";">if</span> part
of the statement was found to be <span style="font-family: "courier new";">true</span>.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
However, if
we were to run the function a second time in a row it would jump to the <span style="font-family: "courier new";">else</span> part of the statement. Can you think of why this is? <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Did you
think about it, or are just skipping ahead to find the answer?<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The answer
is because we’ve changed the value of <span style="font-family: "courier new";">closed</span>, meaning the <span style="font-family: "courier new";">if</span> part of the statement will not be <span style="font-family: "courier new";">true</span>, so it moves on to the next part (<span style="font-family: "courier new";">else</span>).<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This is a
very basic function, but it’s a lot to process, so we’ll leave it there for
now. If you think of functions like a word problem, you should have an easier
time. I tend to write out on paper in English what I want my functions to do,
then I put that into the syntax of the program. Sometimes it works how I
envisioned, but sometimes I have to rework it. That’s half the fun!<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
I’m not
sure what we’ll cover next time, but I hope you stay tuned for the next
installment of Basics of Programming. <o:p></o:p><br />
<br />
<a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-blog-intro.html">Part 1: Variables</a><span style="font-family: "calibri" , sans-serif; font-size: 14.6667px;"> | </span><a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-part-3-operators.html" style="font-family: calibri, sans-serif; font-size: 14.6667px;">Part 3: Operators</a> | <a href="http://floydiantheory.blogspot.in/2016/07/basics-of-programming-part-4-loops.html">Part 4: Loops</a></div>
</div>
Ben Floydhttp://www.blogger.com/profile/08682545060384364188noreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-84507307861176398382016-06-15T18:26:00.001-07:002016-07-06T09:16:52.621-07:00Basics of Programming: Blog Intro && Variables<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="paragraph" style="margin-bottom: .0001pt; margin: 0in; vertical-align: baseline;">
<div class="paragraph" style="margin-bottom: .0001pt; margin: 0in; vertical-align: baseline;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO_-6cQvUWwLxV8mF_zzQ20K94bkdUOjdrXPCOYAhCgYZv_Um7LuNHrhWcDCP1BNr5uuK4dT5pObyhDnk4oY95Cvb8MnhAP9K62Ak3idmL-UzqUjbEKJlNLbBfPA-AgK85irSbvyJitqyw/s1600/programmingBugs.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="205" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO_-6cQvUWwLxV8mF_zzQ20K94bkdUOjdrXPCOYAhCgYZv_Um7LuNHrhWcDCP1BNr5uuK4dT5pObyhDnk4oY95Cvb8MnhAP9K62Ak3idmL-UzqUjbEKJlNLbBfPA-AgK85irSbvyJitqyw/s400/programmingBugs.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">this is programming, get used to it</td></tr>
</tbody></table>
<span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><a href="https://floydiantheory.blogspot.in/2016/06/basics-of-programming-part-2-functions.html" style="font-size: 14.6667px;">Part 2: Functions</a> | <a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-part-3-operators.html">Part 3: Operators</a> </span></span>| <a href="http://floydiantheory.blogspot.in/2016/07/basics-of-programming-part-4-loops.html">Part 4: Loops</a><br />
<span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><br /></span></span>
<span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Programming is super scary for a beginner. It's gibberish to those
who don't really know what to expect. This is why there are tons of game
engines on the market that boast about not needing to know how to code. I felt
the same way, and when I see new code now I still get scared.</span></span><span style="font-size: 13.5pt;"><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">But it's a mental thing, because programming is actually quite
simple. Not easy, necessarily, but simple. There are basic rules to follow that
are, more or less, across the board.</span></span></span><span style="font-size: 13.5pt;"><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><br />
<!--[if !supportLineBreakNewLine]--><br />
<!--[endif]--></span><span style="font-size: 13.5pt;"></span><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Now, let me get this out in the open: I am not a master programmer.
I am a hobbyist programmer for games, meaning I do it for fun, not for skill or work. I
am entirely self-taught. I don't know a lot of terms, and I will undoubtedly
misuse them. As well, there are probably more efficient ways to do what I will
show you, but I'm always learning and willing to learn, so if you come across
something I did wrong or inefficient, let me know.</span></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">For now I'm going to cover the basics of what things are in
programming. There might not be a lot of code this time around as I just want
to cover the basics of code construction. I will also try to keep my code
writing consistent, but I've bounced around a lot of different languages so it
might differ from time to time. Sorry about that.</span></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">The most basic thing to understand in programming is a VARIABLE. A
variable is simply a jar. This jar can be labeled or not. It can be full or
empty. It can be stacked in crates or it could be a single jar. Whatever is in
the jar is information. This information can be a number, a letter, word, a
sentence, and can even be another variable.</span></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">To use or make a variable you have to DECLARE it. I had to look
this up to make sure I was using the right word. Here is a basic declaration of
a variable:</span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; text-indent: 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><b><span style="font-family: "courier new"; font-size: 11pt;">var</span></b></span><span class="apple-converted-space"><span style="font-family: "courier new"; font-size: 11pt;"> </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">jar;</span></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">That's it. This is a declared variable. As of now it is an empty
jar. It has no label or information filling it yet but it has been declared.
Declaration means it can now be used. So let's use it:</span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; text-indent: 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span class="textrun"><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span style="font-family: "courier new"; font-size: 11pt;">jar</span></span></span><span class="apple-converted-space"><span style="font-family: "courier new"; font-size: 11pt;"> </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">= "honey";</span></span><span class="eop"><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><b><span style="font-family: "courier new"; font-size: 11pt;"> </span></b></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Now our variable </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">jar</span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> is full of the information </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">"honey"</span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">. The information </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">"honey"</span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> is text, which is called a STRING. </span></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">You'll notice I didn't put </span></span><span class="textrun"><b><span style="font-family: "courier new"; font-size: 11pt;">var</span></b></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> before
</span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">jar</span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> this
time around. The reason for this is simple: </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">jar</span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> has already been declared. A variable only needs to be declared
once for it to be used, so we don't want to declare it again. </span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">In
fact, most compilers <span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US">will catch
this but it's good to know in case you get the error.</span></span></span></span><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">You might be wondering why we don't just say </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">"honey"</span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">. There
are a few reasons, but one important reason is that, generally speaking, we
want to be able to change the value of a variable at any time. Another would be
the contents of a variable might be really long and messy and hard to type a
thousand times, where jar is three letters. </span></span>And probably the
most important reason is because that’s how it’s done technically.</span><span style="font-size: 13.5pt;"><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Let's say we wanted to change the contents of our </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">jar</span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">. We could do something like
this:</span></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; text-indent: 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span class="textrun"><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span style="font-family: "courier new"; font-size: 11pt;">jar</span></span></span><span class="apple-converted-space"><span style="font-family: "courier new"; font-size: 11pt;"> </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">= "tomato";<b> </b></span></span><span class="eop"><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span style="font-family: "courier new"; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">So far we've changed jar to mean </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">"honey"</span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> and </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">"tomato"</span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">. But
we could also change it to a number if we wanted:</span></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; text-indent: 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span class="textrun"><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span style="font-family: "courier new"; font-size: 11pt;">jar</span></span></span><span class="apple-converted-space"><span style="font-family: "courier new"; font-size: 11pt;"> </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">= 42;</span></span><span class="eop"><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span style="font-family: "courier new"; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">We can do this because we're using a WEAK TYPED language. Some
programming languages don't allow this conversion. These intolerant and
exclusive languages rely on STRONG TYPED programming. Here is an example of a
strong typed variable:</span></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; text-indent: 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span class="textrun"><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><b><span style="font-family: "courier new"; font-size: 11pt;">string</span></b></span></span><span class="apple-converted-space"><span style="font-family: "courier new"; font-size: 11pt;"> </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">jar = "pooh";</span></span><span class="eop"><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span style="font-family: "courier new"; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Notice I wrote </span></span><span class="textrun"><b><span style="font-family: "courier new"; font-size: 11pt;">string</span></b></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">
instead of </span></span><span class="textrun"><b><span style="font-family: "courier new"; font-size: 11pt;">var</span></b></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">. I don't have to say </span></span><span class="textrun"><b><span style="font-family: "courier new"; font-size: 11pt;">var</span></b></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> as a </span></span><span class="textrun"><b><span style="font-family: "courier new"; font-size: 11pt;">string</span></b></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> is a type of variable </span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">already. <span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US">This means that our variable </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">jar</span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> has to be a </span></span><span class="textrun"><b><span style="font-family: "courier new"; font-size: 11pt;">string</span></b></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">. I could not do the
following:</span></span></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; text-indent: 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span class="textrun"><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><b><span style="font-family: "courier new"; font-size: 11pt;">string</span></b></span></span><span class="apple-converted-space"><span style="font-family: "courier new"; font-size: 11pt;"> </span></span><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">jar = 42;</span></span><span style="font-size: 13.5pt;"><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "courier new"; font-size: 11pt;">42</span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> is not a </span></span><span class="textrun"><b><span style="font-family: "courier new"; font-size: 11pt;">string</span></b></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">, but an </span></span><span class="textrun"><b><span style="font-family: "courier new"; font-size: 11pt;">integer</span></b></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">. A strong typed variable cannot be anything other than what its
type says it is. If someone asks you for your age, you cannot say “nachos” (no
matter how delicious) because “nachos” is not a number. The only answer that
fits the question is a number, so no other type will be accepted.<o:p></o:p></span></span></span></div>
<div class="paragraph" style="margin-bottom: .0001pt; margin: 0in; vertical-align: baseline;">
<br /></div>
<div class="paragraph" style="margin-bottom: .0001pt; margin: 0in; vertical-align: baseline;">
<span class="normaltextrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Strong typed programming is what I'm used to using, and I </span></span><span class="normaltextrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">think
it's the better way to go, because my philosophy of programming is that
everything should be intentional (which is probably why I'm not a big fan of <span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;">procedurally</span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"> generated
games like</span></span></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="normaltextrun"><i><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">FTL,
The Pit,</span></i></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="normaltextrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">or</span></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="normaltextrun"><i><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Binding
of <span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;">Isaac</span></span></i><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"></span><span class="normaltextrun"></span><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">; topic for another time</span></span><span class="normaltextrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">).</span></span><span class="normaltextrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> Strong typed programming is not a must and is not the best way to
do things, just the way I prefer to do it.</span><u1:p></u1:p> As well, weak
typed variables have their place too, but that’s a little more advanced topic.</span><span style="font-size: 13.5pt;"><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Here are the main types of variables (Data Types):</span></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="normaltextrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Boolean – true or false, 1 or 0. Depending on the language it can
either be called a</span></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="normaltextrun"><b><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">boolean</span></b></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="normaltextrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">or simply <span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; background-position-x: 0%; background-position-y: 100%; border-bottom-color: transparent;"></span></span><span class="spellingerror"></span><b><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">bool</span></b></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="normaltextrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Integer<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"> –
just like in Maths class, an integer is a whole number, negatives, 0, and
positives. I've only ever seen it as</span></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="normaltextrun"><b><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">int</span></b></span></span></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><b><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></b></span></span><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Floating Point Number – all numbers, whether an integer or a
decimal. There are many different variations, most of which I don't even know
the point of. It could be</span></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="textrun"><b><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">number</span></b></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">,</span></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="textrun"><b><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">float</span></b></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">,</span></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="textrun"><b><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">double</span></b></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">, and
some others, though</span></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="textrun"><b><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">number</span></b></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">and</span></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="textrun"><b><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">float</span></b></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">are the main ones I've used and seen</span></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">String – like we talked about and used, this is text. I've only
ever seen it as</span></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="textrun"><b><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">string</span></b></span><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">. Strings also use either double-quotes (“”) or single-quotes
(‘’</span></span><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">). It doesn’t matter which as long as they
are grouped together. You cannot use do this “love’.</span></span><span style="font-size: 13.5pt;"><o:p></o:p></span></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt 0.5in; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Character – similar to a string, but it's just one character
(shocker!). I've only seen it as</span></span><span class="apple-converted-space"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span><span class="textrun"><b><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">char</span></b></span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><span style="font-size: 13.5pt;"><u1:p></u1:p><o:p></o:p></span></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<br /></div>
<div class="paragraph" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; margin: 0in 0in 0.0001pt; vertical-align: baseline; word-wrap: break-word;" xml:lang="EN-US">
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;" xml:lang="EN-US"><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="normaltextrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">Variables
are the basic building blocks of programming (probably not an <span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;">accurate</span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"> statement;
don't listen to me). Variables are used everywhere and if you understand that
variables are just a jar that can be filled and moved from shelf to shelf, then
you'll get the rest of programming. Eventually.</span></span></span><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><u1:p></u1:p><o:p></o:p></span></span></span></div>
<div class="paragraph" style="margin: 0in 0in 0.0001pt; vertical-align: baseline;">
<br /></div>
<div class="paragraph" style="margin: 0in 0in 0.0001pt; vertical-align: baseline;">
<span class="textrun"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">I hope you enjoyed this brief intro to programming variables. Up
next I'm going to just jump right into functions. I think most people would go
to operators first, but I'm a rebel and I'll never be any good.</span></span><span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"> </span></span></span><br />
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><br /></span></span></span>
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;">To be continued...</span></span></span><br />
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><br /></span></span></span>
<span style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text;"><span class="eop"><span style="font-family: "calibri" , sans-serif; font-size: 11pt;"><a href="https://floydiantheory.blogspot.in/2016/06/basics-of-programming-part-2-functions.html">Part 2: Functions</a></span></span></span><span style="font-family: "calibri" , sans-serif; font-size: 14.6667px;"> | </span><a href="http://floydiantheory.blogspot.in/2016/06/basics-of-programming-part-3-operators.html" style="font-family: calibri, sans-serif; font-size: 14.6667px;">Part 3: Operators</a> | <a href="http://floydiantheory.blogspot.in/2016/07/basics-of-programming-part-4-loops.html">Part 4: Loops</a></div>
</div>
</div>
Ben Floydhttp://www.blogger.com/profile/08682545060384364188noreply@blogger.com2tag:blogger.com,1999:blog-3145078893707116188.post-60310149785467678642016-05-02T18:33:00.001-07:002016-05-02T18:33:51.382-07:00The Witcher 3 - Hover Horse<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/-qu662kEgvw" width="480"></iframe></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
Decided to post a video about one of the greatest games and greatest gaming glitches ever made in the Witcher 3 Wild Hunt.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Also, I'm back!</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
For now.</div>
</div>
Ben Floydhttp://www.blogger.com/profile/08682545060384364188noreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-47279208542940358542015-01-22T18:19:00.002-08:002015-02-25T19:15:40.844-08:00Main.as or Document Class (AS3) Part 2As promised we're going to go over keyboard inputs now.<br />
<br />
The point behind the Document Class (DC) is to basically control everything that goes on in your game/program/whatever. Unless you have a mouse-only game you will always need the keyboard. As the keyboard is static in the sense that it's always the same you can go ahead and use the same setup for every program. The work is long and boring initially, but you only have to do it once, so it's worth it.<br />
<br />
1. Set up your variables.<br />
<br />
<pre class="brush: as3">public var kLeft:Boolean;//37
public var kRight:Boolean;//39
public var kUp:Boolean;//38
public var kDown:Boolean;//40
</pre>
<br />
I'm only doing these for as an example. You can add all the keys if you wish. We set these Booleans up because we only care if a key is pressed down or not. We don't care what the functionality is. That can be handled in the other Classes, not our Main.as.<br />
<br />
2. Call the keyboardEvent listeners.<br />
<br />
<pre class="brush: as3"> stage.addEventListener(KeyboardEvent.KEY_DOWN, keysDown, false, 0, true);
stage.addEventListener(KeyboardEvent.KEY_UP, keysUp, false, 0, true);
</pre>
<br />
This calls to see if a key is pressed down or is released up. Make sure you add that "stage." beforehand as it won't work otherwise.<br />
<br />
3. Handle key presses.<br />
<br />
<pre class="brush: as3"> public function keysDown(ke:KeyboardEvent) : void
{
if(ke.keyCode == 37)
{
kLeft = true;
}
if(ke.keyCode == 39)
{
kRight = true;
}
if(ke.keyCode == 38)
{
kUp = true;
}
if(ke.keyCode == 40)
{
kDown = true;
}
}
public function keysUp(ke:KeyboardEvent) : void
{
if(ke.keyCode == 37)
{
kLeft = false;
}
if(ke.keyCode == 39)
{
kRight = false;
}
if(ke.keyCode == 38)
{
kUp = false;
}
if(ke.keyCode == 40)
{
kDown = false;
}
}
</pre>
<br />
What is this sorcery?! Well it's quite simple, actually. From the previous step we call constantly to see if a key is pressed or released. When it's pressed we check the keyboard input (ke) and check it against whichever key want want to process (keycode == "n"). Don't know the keycode number? No problem. You can check the Interwebs with a Google search or just go here: http://www.dakmm.com/?p=272. Don't worry, I'm not affiliated with them. I just have that bookmarked. You can also do the arduous task of finding the keycodes yourself by simply tracing out the keycode in the keysDown to look something like this:<br />
<br />
<pre class="as3"> public function keysDown(ke:KeyboardEvent) : void
{
trace(ke.keyCode);
}
</pre>
<br />
Now, when you run the program you can just press a key and it should trace out what keycode it corresponds to.<br />
<br />
So in the keysDown function we set the corresponding Boolean to true, so if we press the down arrow then kDown is true. And in the keysUp function we do the reverse, so if we release the down arrow, kDown is false.<br />
<br />
Now because we already setup the whole Main.instance thingy from the last part we can access the key presses from anywhere.<br />
<br />
3. As an example, let's say we created a Hero.as Class which of course allows us to use a Hero. We could create an update function that constantly checks to see which keys are being pressed. Here's the whole sheband:<br />
<br />
<pre class="as3">package
{
/*
An Amazing Coding Product of Benjamin Floyd
If you got this, even by trickery, feel free to use it.
A tip-o-the-hat would be nice though.
*/
import flash.events.Event;
import flash.display.MovieClip;
public class Hero extends MovieClip
{
public function Hero()
{
addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
public function init(e:Event = null) : void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
addEventListener(Event.ENTER_FRAME, update, false, 0, true);
}
public function update(e:Event = null) : void
{
if(Main.instance.kLeft)
{
x -= 1;
}
else if(Main.instance.kRight)
{
x += 1;
}
if(Main.instance.kUp)
{
y -= 1;
}
else if(Main.instance.kDown)
{
y += 1;
}
}
}
}</pre>
<br />
If you run it as is, then you can move your little Hero all along the place. <br />
<br />
And that's it. All you had to do was see if a key was pressed and you could add any functionality you wanted to go along with it.<br />
<br />
4. Of course writing out Main.instance every single time you want to access the DC is stupid and annoying so you can simply add a variable to replace all that typing like so:<br />
<br />
<pre class="as3"> public var ROOT:Object;
</pre>
<br />
Now, we need to make sure the ROOT is initialized so in our init function place the following:
<br />
<pre class="as3">
ROOT = Main.instance;
</pre>
<br />
Now anywhere you have "Main.instance." just replace it with "ROOT." and you can easily access your DC.<br />
<br />
That's pretty awesome, right?<br />
<br />
Well, thanks for reading. I hope you learned something from it. Join me next time when I talk about some other stuff in regards to programming in ActionScript 3.0!<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGIgrtImJSaL0DUPNYg-mDCdg14vwOtN6x2Gu2uyGyhJhhnQZY6SpawrVLhEKwfHIKMtLjjpc7GBKHbHmVNMbYTFpvhqciU9Jv7nFlSSIjg2WHBNGrmJWw-8ylXjnP8N9La-yGKljNLdhyphenhyphen/s1600/windowsUpdateUpdate.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGIgrtImJSaL0DUPNYg-mDCdg14vwOtN6x2Gu2uyGyhJhhnQZY6SpawrVLhEKwfHIKMtLjjpc7GBKHbHmVNMbYTFpvhqciU9Jv7nFlSSIjg2WHBNGrmJWw-8ylXjnP8N9La-yGKljNLdhyphenhyphen/s1600/windowsUpdateUpdate.png" height="240" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">You have to update before you update. Thanks, Windows.</td></tr>
</tbody></table>
Here's a screenshot I took last night. Steam has been crashing my computer when it tries to load so I looked up why. It said to make sure Windows is up to date. So I went to update and realized I hadn't updated since the last time I was using this blog, about 1.5 years ago (in case you're wondering I don't update because my computer will almost always crash after an update; I have real good luck that way). Anyway, I thought this was funny and wanted to share.Ben Floydhttp://www.blogger.com/profile/08682545060384364188noreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-46699518712844999082015-01-21T12:16:00.003-08:002015-01-21T12:21:03.518-08:00Main.as or Document Class (AS3) Part 1Something that I've found to be vitally important in writing ActionScript 3 is accessing the Document Class from other classes and packages. And the beauty is that once you make your Main.as you will need only a bit of time to adapt it for your other projects.<br />
<br />
Keep in mind that my Main.as is constantly changing, mostly because I keep thinking of stuff to add that I know I'll always need.<br />
<br />
Here's a bit of code to start us off:<br />
<br />
<pre class="brush: as3">public class Main extends Sprite
{
public static var instance:Object;
public function Main()
{
addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
public function init(e:Event = null) : void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
instance = this;
}
}
</pre>
<br />
So what does this mean and do?<br />
<br />
My understanding is that this is called a Simpleton (after re-reading I realized it's Singleton, but I left that in because it's funny). But whether or not that's correct, what this does is allows us access to the Main.as at all times from anywhere in the program. Of course with what we have written so far, this doesn't mean much, so let's add some important info that would need to be accessed in most, if not all, Classes:<br />
<br />
<br />
<pre class="brush:as3"> public const SW:int = 512;
public const SH:int = 288;
public const SWH:int = SW / 2;
public const SHH:int = SH / 2;
public var TS:int = 16;
public var TSH:Number = TS / 2;
</pre>
<br />
<br />
In this section we have the stage width (SW) stage height (SH) and half of both of those (SWH/SHH). These are the dimensions of the screen and it makes it a lot easier to access than typing in:<br />
<br />
<pre class="brush: as3"> stage.stageWidth</pre>
<br />
We also have in there the tile size (TS) and half of the tile size (TSH). Because TS is set to 16 and our stage dimensions are 512 x 288 we have a 16:9 screen ratio to work in.<br />
<br />
Do you understand yet why this Main.as is important? Here's an example:<br />
<br />
I have a plumber who has to check collisions with the environment. In order to do so I need to find out if he's going to collide with a Block or if he's just falling through air. In order to find out if he's hitting said Block I need to know where the nearest Block is. Since the map has already been laid out (in this example it has, we'll get to that for real later) we know that all tiles are lined up by the TS that we have established in our Main.as. So from the plumber's Class we can access Main.instance.TS to find out if the plumber bashes his head on a Block or just goes through air.<br />
<br />
If this makes sense to you, you might be wondering why you don't just put in "16" instead of calling out to Main.as. If it's a simple program, you're right, there's probably not much reason to do this. But let's say you wanted one level where everything was giant except the plumber. You could then easily change Main.TS to 64. You wouldn't have to go back in to the plumber Class or the enemy Class or whatever other class needs to know the tile size to change it all. You have to type in one number on one Class to change the way the plumber will interact with the level. That's pretty cool, right?<br />
<br />
Well, that's it for now. I hope you enjoyed this little insight into what I'm learning and doing. Next time I'll talk some more about the Document Class and how setting up the keyboard controls in Main.as makes life much easier down the road.<br />
<br />
Here's a picture to go along with all these boring words:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUXZwD4tXH3HIFcvJpI_Jh2n15VcrtlASSzUzK5Qht5yC2z2wQvEs26336Wke_0e5alIRR3wRJtBRDrYQYa1pPQa1T7JHYFgUnUMp6EGP-D1Q6RgxC_GD9dVfrRUlD2itf4lIP8MdGewJE/s1600/programmingLaziness.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUXZwD4tXH3HIFcvJpI_Jh2n15VcrtlASSzUzK5Qht5yC2z2wQvEs26336Wke_0e5alIRR3wRJtBRDrYQYa1pPQa1T7JHYFgUnUMp6EGP-D1Q6RgxC_GD9dVfrRUlD2itf4lIP8MdGewJE/s1600/programmingLaziness.jpg" height="208" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">http://www.gigs4gags.com/funny-programming/</td></tr>
</tbody></table>
<br />Ben Floydhttp://www.blogger.com/profile/08682545060384364188noreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-28259354414984209422015-01-20T18:03:00.001-08:002015-01-20T18:04:51.790-08:00Necro BlogHmm. It's been a long time friend of mine. If we were to go by the numbers according to years it's been 2 years since I last did anything website/blog related. In actual time it's been 1 year and 4 months. It's not too late to revive this blog. As long as I'm alive, it's never too late.<br />
<br />
Lately, I've been creating a Tile-Based 2D Engine in Flash, or more accurately with ActionScript 3.0. I've created multiple variations because I just don't know what to do. I'm getting better, my code is getting smaller, and I'm learning the value of Object Oriented Programming (OOP).<br />
<br />
I started writing a tutorial and only wrote it as I programmed it, because I know most tutorials have so many errors that it never compiles. But I got too carried away and stopped writing the tutorial and only wrote code.<br />
<br />
I started to implement the engine into an actual game, but my focus kept shifting. Did I want to do a Mario-like platformer or a Zelda-like top-ish down game? Both, I found. And the code is similar up to a certain point. When it got to that certain point I realized that if I knew how to make things OOP then I wouldn't have to write all this code again. So I went back and refactored the crap out of everything.<br />
<br />
So I'm at a crossroads of sorts. I got my engine up and running for a Zelda-like to the point that I have tile-based collisions with the map and some other Maths based collisions with everything else. It's incredibly awesome. I feel incredibly awesome for having written it without the need for a tutorial to look up (I've written it so many damn times I should know it by heart). But where do I go from here?<br />
<br />
I thought about writing a full tutorial of what I've done. But my goal is not necessarily to be a teacher, but to make games. So, while writing this blog, I've decided to finish a game. I don't know when it'll be done. I don't know if it will be good. But I know that I will finish it. It's not a New Year's Resolution or some such as I don't know anyone who has ever kept one. This is a promise to myself and a promise to my wife who has been very tolerant of my lax attitude about pursing my dream. This game will be finished by the end of April if not sooner. I have a plan for it.<br />
<br />
The first step is to basically turn this into a devblog. I'll be sharing what I think is awesome as well as just providing some insights that I've gleaned in my foray into programming.<br />
<br />
Peace out and here's hoping to a productive gaming year!<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4RkMeoL6JfHMSPqKs81-0ciaRXIEp-DGnUhb9Gagwu8jBRVTu6y42wvZ8U7mDx6fWyV3VEhoJrQAyya6fMxFDP6wJnBxBUZNqzdq-Rga9TPkVcavhZedere7Md_nr3aqVPDRZ685mQnOI/s1600/bd9dd67a3301ca34fc6eabf6e3552fa6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4RkMeoL6JfHMSPqKs81-0ciaRXIEp-DGnUhb9Gagwu8jBRVTu6y42wvZ8U7mDx6fWyV3VEhoJrQAyya6fMxFDP6wJnBxBUZNqzdq-Rga9TPkVcavhZedere7Md_nr3aqVPDRZ685mQnOI/s1600/bd9dd67a3301ca34fc6eabf6e3552fa6.jpg" height="400" width="310" /></a></div>
<br />
Just because pictures are awesome and I mentioned Mario earlier on, here's a really
cool picture. I don't know the source (and I saved it so long ago I
don't remember where I got it) so if anyone knows the creator send me a
line so I can give proper credit.Ben Floydhttp://www.blogger.com/profile/08682545060384364188noreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-78898835065410853442013-09-27T21:25:00.001-07:002013-09-27T21:26:10.199-07:00New New Website!<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQrxz-8j-9j9H9zU30kOBRDa-xVKsBMxfMVYZD-NYnTZlM5odkbQyLh80FNR1GNTCNFdIfsWjTftn7boCZkuhJILh5PCVxYk8cTlyn80qDaufIYcUGe7MSIQQaeb3G7R5Cd5V4RhCJ6XU/s1600/StarsBG_1332.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQrxz-8j-9j9H9zU30kOBRDa-xVKsBMxfMVYZD-NYnTZlM5odkbQyLh80FNR1GNTCNFdIfsWjTftn7boCZkuhJILh5PCVxYk8cTlyn80qDaufIYcUGe7MSIQQaeb3G7R5Cd5V4RhCJ6XU/s400/StarsBG_1332.png" width="400" /></a></div>
<br />
Two posts in one day after a five month dry spell? Hold me back!<br />
<br />
Yes I have just completed my newest new rendition of my website. It's much more friendly in that it is not a Flash website (except the Flash games, because they're Flash games).<br />
<br />
Hop on over and check it out. And thanks for playing. www.<a href="http://www.floydiantheory.com/">FLOYDIAN THEORY</a>.comUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-17394093023560225662013-09-27T14:49:00.001-07:002013-09-27T14:51:24.369-07:00Welcome Back, Me!<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0rqn1HljGI6ivtW5MQePVoNZrCRptwBwVULQ8hLnIHllZRHWNh70esizQ0ZhyrniIqLFdx_0vIH34WWxYECBf5lrqa73t7avvykFsjztDbcgrx_FI3dOvf3HHIIHmi8mkCF_brJa_iao/s1600/DSC_3429+-+Version+2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0rqn1HljGI6ivtW5MQePVoNZrCRptwBwVULQ8hLnIHllZRHWNh70esizQ0ZhyrniIqLFdx_0vIH34WWxYECBf5lrqa73t7avvykFsjztDbcgrx_FI3dOvf3HHIIHmi8mkCF_brJa_iao/s320/DSC_3429+-+Version+2.jpg" /></a></div>
<br />
Wow, it's been a long time since I've posted. But I'm a married man now and will probably have even less time to post than normal. But real quick I'm going to talk a little bit about a game I haven't played in a long time. It's called Commander Keen and it is amazing.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVPoGmrnWJkSLNVLeww8pcij81YzbOdBOnn1tbXaI9Ac6i0k-Sc-ZLz3jjA_YCqbL7V19VXbnKAOb07jspRJe1mGesLXTP8tlnd2boaNZ0d6Lvq3G4a9J86N41SoWHlJZhLphyphenhyphenMIGUtV8/s1600/Commander_Keen_in_Goodbye_Galaxy_title_screen.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVPoGmrnWJkSLNVLeww8pcij81YzbOdBOnn1tbXaI9Ac6i0k-Sc-ZLz3jjA_YCqbL7V19VXbnKAOb07jspRJe1mGesLXTP8tlnd2boaNZ0d6Lvq3G4a9J86N41SoWHlJZhLphyphenhyphenMIGUtV8/s1600/Commander_Keen_in_Goodbye_Galaxy_title_screen.png" /></a></div>
<br />
I used to play these games all the time when I was back in middle school, maybe even when I was in grade school. It's hard to remember anything nowadays.<br />
<br />
Command Keen is a tile based platformer which luckily allows you to save your progress (remember, I'm married now, so I have very little free time, thus saves make gaming easy). I'm not sure if I love this game because I'm in a nostalgic high or if this is actually just a fun game. I think it's fun. I mean, in how many other games does the hero travel around on a pogo stick?<br />
<br />
None.<br />
<br />
Well, I'm sure there are more, but that's not the point. Pogo sticks are cool!<br />
<br />
So I just finished beating the first episode. While playing it I started to remember the game bit by bit. The wolf creature was always frightening when I was younger because it jumped at seemingly random heights. So even if you were on a high ledge it could still jump and get you. This time around, umpteen years older, I saw the beast and immediately ran away, as memories flooded back into my mind. Then I remembered that young Billy (Commander Keen) has a raygun. I turned and zapped. Four times. Wolf monster no more!<br />
<br />
The first episode is short, providing a good couple hours if you try and get everything and are slow on the uptake like yours truly. It's a great bit of platforming history as well as a solid game in general which holds up in play if not in looks after all these years. I wouldn't say it's as hard as Super Mario Bros. on the NES but that might just be because there are saves in Commander Keen which makes life a lot easier.<br />
<br />
If you like solid platforming then pick it up on Steam. It's five bucks for the lot and if it goes on sale there's no reason not to pick it up.<br />
<br />
Also, this game was made by ID Software. You know, the guys who made DOOM and Rage and everything. Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-13284664780013103462013-05-13T21:15:00.001-07:002013-05-13T21:15:15.692-07:00Fire Particles - An ActionScript 3 Tutorial<div style="text-align: left;">
Well, hello there neighbor!<br />
<br />
Below, you'll see something quite amazing that I happened to stumble across while trying to figure out how to make a starfield for my upcoming SHMUP.<br />
<br />
Okay, it's amazing to me. I'm not even a year old in the programming field, and much less than that in the ActionScript 3 language, so I must say I'm quite impressed with myself for coming up with something like this.<br />
<br />
So below is the final product. I'll be talking you through this, but not in a hand holding way, so if you don't know the basics of AS3 or how to use the FLASH IDE then this is not the proper starting point for you. </div>
<br />
<embed align="middle" allowscriptaccess="always" height="480" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="http://www.floydiantheory.com/swfs/FireParticles.swf" type="application/x-shockwave-flash" width="480"></embed>
<br />
<div style="text-align: left;">
<br />
Pretty sweet, right? Let's start off with something simple: the graphics.<br />
DISCLAIMER: I'm using CS5 so if you're using anything else I can't guarantee this will work the same.<br />
<br />
I set my stage up to run at 30 FPS and set both the width and height to 480. <br />
<br />
Create a 50 pixel yellow ball with a size 10 orange stroke, so it looks something like this.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFrAxBBVvC9_aU52XUdObLL50GY_P2OY_UKJ4GaOwNgBxu-h0I6-QTG3GoBbFDa8UPFEiK1DNe15haqHmrWzLDxNfCHLGTK06ZtBn2krnX0NnpbflrCkTBr2gS_FupfkEfaxGYYPcQjAU/s1600/Fire.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFrAxBBVvC9_aU52XUdObLL50GY_P2OY_UKJ4GaOwNgBxu-h0I6-QTG3GoBbFDa8UPFEiK1DNe15haqHmrWzLDxNfCHLGTK06ZtBn2krnX0NnpbflrCkTBr2gS_FupfkEfaxGYYPcQjAU/s1600/Fire.png" /></a></div>
Turn this into a symbol with F8. "Fire" would be a good symbol name. Give it an instance name of "fire".<br />
<br />
Next create a 10 pixel orange square. Symbolize it calling it "FireParticle" and export it for ActionScript.<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7jbJydDO0gDgsJ_3ZoQzAhzjDKAPcrev9UDZ5yY9Z-bd6ehCTyZmROPReVnujFfeKuuGKokypCb7__gZfkWVRyKYCP0SPxGgRwp4GImGQ603dcQs9xS8ee0sfAaxaYfb-DEcOt-4LC6c/s1600/FireParticle.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7jbJydDO0gDgsJ_3ZoQzAhzjDKAPcrev9UDZ5yY9Z-bd6ehCTyZmROPReVnujFfeKuuGKokypCb7__gZfkWVRyKYCP0SPxGgRwp4GImGQ603dcQs9xS8ee0sfAaxaYfb-DEcOt-4LC6c/s1600/FireParticle.png" /></a> </div>
All of these will be created dynamically so delete this symbol from the stage, making sure it's still in the Library.<br />
<br />
The last graphic is the Bounce button. Create a 116 px by 38 px orange box. Symbolize it calling it "ButtonBounce" and give it an instance name of "btnBounce". Get inside the ButtonBounce symbol and create a Dynamic Text field, giving it an instance name of "txtBounce". I used the "_sans" font so I don't have to embed it, and sized it to 24 pt.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPz2RvoFSQNwZVQrqJSDF7Sfk9GxJiiPMC6uEIw3uLtbM8PqhCcwzVxIR3Vrj07zeyVCdKaTwg9fcfUGTFW5mZ7QETRYNbTpmfSOv4_nqLoiGu_8TL8Hd-AcxJl9RpymB2eF3YTiIpkYI/s1600/Bounce.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPz2RvoFSQNwZVQrqJSDF7Sfk9GxJiiPMC6uEIw3uLtbM8PqhCcwzVxIR3Vrj07zeyVCdKaTwg9fcfUGTFW5mZ7QETRYNbTpmfSOv4_nqLoiGu_8TL8Hd-AcxJl9RpymB2eF3YTiIpkYI/s1600/Bounce.png" /></a></div>
<br />
Cool beans. Now, let's get into the code. First, set the Document Class to Main and pop that beautiful baby open. Save it as "Main.as". It should already extend MovieClip, but if not go ahead and make it so.</div>
<pre class="brush: as3">//Main.as
package
{
import flash.display.MovieClip;
public class Main extends MovieClip
{
public function Main()
{
}
}
}
</pre>
<br />
<div style="text-align: left;">
Alrighty. The first thing I like to do is establish the size of my stage for easy reference with a couple of constants.<br />
</div>
<pre class="brush: as3">//Main.as
internal const SWIDTH:Number = 480;
internal const SHEIGHT:Number = 480;
</pre>
<div style="text-align: left;">
The most important thing is getting the Fire Particles to show up on screen. Right away in our "Main.as" in our Main() function we'll instantiate 80 of them but we want all of them to be above our fire object. </div>
<pre class="brush: as3">//Main.as
//this will instantiate 80 fire particles and that's it.
//We'll use the "FireParticle.as" (which we haven't created yet)
//to get them to reinitialize themselves.
for (var i:int = 0; i < 80; i++)
{
//creates a new FireParticle at the index above our fire so it's always on top.
addChildAt(new FireParticle(), getChildIndex(fire) + 1);
}
</pre>
<div style="text-align: left;">
That's it. If you test now it won't do much because we need to set everything inside the "FireParticle.as".<br />
<br />
Go ahead and create that now. Let's add a listener so we know it's been added to the stage. We'll also give it some members (properties), one a reference to our root and the other a variable which will control our particle's speed.
</div>
<pre class="brush: as3">//FireParticle.as
package
{
import flash.display.MovieClip;
public class FireParticle extends MovieClip
{
//MEMBERS
private var ROOT:Object;//our "Main.as" is our root so we need to access it somehow
private var ySpeed:Number;//our particles have to move. What better way than giving them some speed?
//METHODS
public function FireParticle()
{
addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
private function init(e:Event = null) : void//we set this to "null" so we can use reinitialize it later
{
}
}
}
</pre>
<div style="text-align: left;">
Now, for prettiness, we know we don't want all of our particles to look exactly alike. That's just boring. So we'll want each individual particle to have a different alpha. This is simple, but it adds a lot of depth to our fire. Let's add a x and a y value so we can see the particles on stage. We'll also go ahead and set a ySpeed and a call to our ENTER_FRAME listener.
</div>
<pre class="brush: as3">
//FireParticle.as
ROOT = root;//get our root MovieClip
alpha = Math.random();
x = ROOT.fire.x;//sets the x in the center of our fire
y = ROOT.fire.y;//sets the y in the center or our fire
ySpeed = 4;//will be used in our ENTER_FRAME listener
addEventListener(Event.ENTER_FRAME, update, false, 0, true);
</pre>
<div style="text-align: left;">
Let's go ahead and add our ENTER_FRAME listener, so our particles will move up. As well, if the particle reaches an alpha of "0" we want to reinitialize it, creating an endless cycle without instantiating a new particle.
</div>
<pre class="brush: as3">
//FireParticle.as
private function update(e:Event) : void
{
y -= ySpeed;//moves this particle toward the top of the screen
alpha -= 0.01;//lowers this particle's alpha every frame
if (alpha <= 0)//if this particle becomes invisile...
{
init();//...we want to reset it
//this is why we set our "init()" function to a default of "null"
}
}
</pre>
<div style="text-align: left;">
Oops, there's a problem now. Our particles show up but it's all very boring and in a straight line. To change that we'll create a new function, one that is very useful in many areas of gaming. Let's do that now.
</div>
<pre class="brush: as3">
//FireParticle.as
private function randomRange(minNum:Number, maxNum:Number) : Number
{
return Math.floor((Math.random() * (maxNum - minNum + 1)) + minNum);
}
</pre>
<div style="text-align: left;">
Confusing much? I'll try and break it down. What it does over all is take two input numbers (minNum and maxNum) and returns a number within that range. The floor function rounds the number down to a whole number so if we come up with say 5.43 we'd be able to get 5. Let's plug some numbers in for a more practical example, using "3" and "5" for our minNum and maxNum, respectively.
</div>
<pre class="brush: as3">
//EXAMPLE
private function randomRange(minNum:Number, maxNum:Number) : Number
{
return Math.floor((0.2 * (5 - 3 + 1)) + 3);
}
</pre>
<div style="text-align: left;">
If the Math.random() returned "0.2" (Math.random() returns a number from 0 - 1 only) we would then multiply it by "6" which comes out to "1.2". The Math.floor() function makes our return "1". Make sense? No? Check <a href="http://active.tutsplus.com/tutorials/actionscript/quick-tip-get-a-random-number-within-a-specified-range-using-as3/" target="_blank">this link</a> out. That's where I learned it.<br />
Now we can use this function to make our fire that much cooler...well, you know what I mean. We'll change our starting x and y values as well as our ySpeed.
</div>
<pre class="brush: as3">
//FireParticle.as
ROOT = root;//get our root MovieClip
alpha = Math.random();
x = randomRange(ROOT.fire.x - ROOT.fire.width / 2, ROOT.fire.x + ROOT.fire.width / 2);//this makes our particle's x initialize somewhere within the width of our fire object on the stage
y = randomRange(ROOT.fire.y - ROOT.fire.height / 2, ROOT.fire.y);//this makes our particle's y initialize somewhere in the top half of our fire object on the stage
ySpeed = randomRange(3, 5);//setting a random speed makes it look that much more believable, much as the random alpha value
addEventListener(Event.ENTER_FRAME, update, false, 0, true);
</pre>
<embed align="middle" allowscriptaccess="always" height="480" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="http://www.floydiantheory.com/swfs/FireParticlesMidTut.swf" type="application/x-shockwave-flash" width="480"></embed>
<div style="text-align: left;">
So that's it if you just want to know how to make the particles dance like magic. If you want to make the ball bounce continue on, brave soldier.<br />
<br />
We'll head back into our "Main.as" file for the duration. First up we'll add some new members to the family.
</div>
<pre class="brush: as3">
//FireParticle.as
private var bounce:Boolean = false;//start it off false if you want it to be stationary from the get go, true if you want it to start off bouncing
private var xSpeed:Number = 15;//this will be our fire's speed in the x direction
private var ySpeed:Number = 15;//this will be our fire's speed in the y direction
</pre>
<div style="text-align: left;">
Pretty basic stuff.<br />
<br />
Now we need to put some listeners in our Main() function.
</div>
<pre class="brush: as3">
//Main.as
btnBounce.addEventListener(MouseEvent.CLICK, toggleBounce, false, 0, true);//when we click on the button it will either start or stop the bounce
addEventListener(Event.ENTER_FRAME, update, false, 0, true);
</pre>
<div style="text-align: left;">
We'll do this in one go, because I'm tired. The comments should cover everything.
</div>
<pre class="brush: as3">
//Main.as
private function update(e:Event) : void
{
if (bounce)//if bounce is true...
{
//...we'll make the fire move in both x and y directions
fire.x += xSpeed;
fire.y += ySpeed;
if (fire.x - fire.width / 2 < 0)//if it hits the left side we push it back to the right
{
fire.x = fire.width / 2;//repositions it so it doesn't get stuck. Same for all the other ones
xSpeed *= -1;//this makes the speed the opposite, ie "15" becomes "-15". Same for all the other ones
}
if (fire.x + fire.width / 2 > SWIDTH)//if it hits the right side we push it back to the left
{
fire.x = SWIDTH - fire.width / 2;
xSpeed *= -1;
}
if (fire.y - fire.height / 2 < 0)//if it hits the top we push it back to the bottom
{
fire.y = fire.height / 2;
ySpeed *= -1;
}
if (fire.y + fire.height / 2 > SHEIGHT)//if it hits the bottom we push it back to the top
{
fire.y = SHEIGHT - fire.height / 2;
ySpeed *= -1;
}
}
else//if it's not bouncing then it sits at it's home
{
fire.x = SWIDTH / 2;
fire.y = SHEIGHT * 0.85;
}
}
private function toggleBounce(me:MouseEvent) : void//when clicked...
{
if (!bounce)//..if it's not bouncing yet then we will make it bounce...
{
btnBounce.txtBounce.text = "STOP";//changes the dynamic text box
bounce = true;
}
else//...otherwise we stop it
{
btnBounce.txtBounce.text = "BOUNCE";//changes the dynamic text box
bounce = false;
}
}
</pre>
Okay, all. I'm tired. Writing tutorials are much more time consuming than I thought. I really hope this helps you out. If it does, hit me up and let me know how you've used the concept or if you have any questions. Peace out!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-71510739678292283442013-05-03T19:07:00.002-07:002013-05-03T19:07:46.511-07:00Miracle and Late to the Party: Finished Review of BioShock<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUBN_0cJRbSxJJ7qpqlQMoRp6K12CREWioufEjkzRuVvJ3XIkCM06eAYNnE_XnwxWkdW_8OluC_YtcosV0N83qo9KJQfY3Ss3NS-bwDtqd2HAzSR98KKfgT5e-pMV6Z55IsifJ5sigH1k/s1600/welcome-to-rapture.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUBN_0cJRbSxJJ7qpqlQMoRp6K12CREWioufEjkzRuVvJ3XIkCM06eAYNnE_XnwxWkdW_8OluC_YtcosV0N83qo9KJQfY3Ss3NS-bwDtqd2HAzSR98KKfgT5e-pMV6Z55IsifJ5sigH1k/s400/welcome-to-rapture.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Would you kindly not be so frakkin amazing?!</td></tr>
</tbody></table>
<span id="goog_220451043"></span><span id="goog_220451044"></span><br />
<span id="goog_220451043">::SPOILERS:: </span><br />
<span id="goog_220451043">Come on, this came is six years old, you should have finished it by now. If not, then don't read. </span><br />
<br />
<span id="goog_220451043">Yes, this game came out in 2007. Yes, it's 2013. But I've finally finished it! This is two games I've finished <a href="http://floydiantheory.blogspot.com/2013/05/mirale-finished-game-review-spec-ops.html" target="_blank">in as many days</a>.</span> It's been a long, drawn, tiresome way of finishing video games and I'll admit that some of the grandeur of this game was lost because of that. But it's totally worth it. I originally started the game back in 2010 (still very, very late to the party). I played it on the hardest difficulty. I died a lot. I got frustrated. I quit. In 2011 I fired up Steam and clicked to play it, only my saved data had all been destroyed. I had sunk four hours into it, yet all for not. So I didn't play it.<br />
Until I accidentally had it spoiled for me while browsing the interwebs, would you kindly. So I said I <i>have</i> to play this game now, because that's just awesome.<br />
So I did.<br />
On Easy difficulty.<br />
Man this game is a breeze! I found an utter love for playing on Easy. I said it would let me play and beat more games and I was right. I will always play on Easy or Normal difficulty from now on. I think I only died once the whole playthrough, and that was because I blew myself up.<br />
I played the good guy route, saving the Little Sisters, because I'm such a sweet dude. The ending was totally worth it when the Little Sisters stabbed Fontaine to death with their harvesters. Such sweet innocence. And the ending scene was short, but it was to the point. Perfect in fact. And then I didn't have to sit through the credits. Pretty awesome.<br />
I should probably talk about the game. You get a bunch of weapons. You shoot stuff (although killing big daddies with a wrench is super satisfying). You get superpowers like telekinesis, pyrokinesis, cryokinesis, magicbeeskinesis and you kill stuff with those too. You can sneak. You can use the environment to help you murder everyone in sight. It's a great way to spend ten hours.<br />
Plus, the story is amazing and very well written with a few a few surprises thrown in. I think everyone compared it to System Shock 2 (I'm not fact checking), but I never got into that game so I won't. I would compare it, storytelling-wise, to the Portal series, probably 2 more than 1.<br />
Also, the atmosphere of this game is phenomenal. Even though I was hardly in danger on Easy difficulty, I felt scared at points. The sound engineers did a great job. Bravo. I think you guys don't get as much recognition as you should.<br />
The point is, get this game and play it if you haven't already. It's amazing and on Steam sales you can usually get it for five bucks.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-1145752225603961072013-05-02T20:28:00.000-07:002014-02-22T23:41:38.345-08:00Miracle: A Finished Game Review - Spec Ops: The Line<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrzu7V8gwzIpf83pn6iCvpmeQGQT-wqlL2LKJg5Mrk0xiYT62e2UMEUunzZLIuV-MOPq3zK5jCVF8hb-h2v1U5-N2L_B_UpMEeZezfBZUJ1_agIIagUCdevIWFZYou92xB5zv2zCwwnw8/s1600/2013-01-10_00002.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrzu7V8gwzIpf83pn6iCvpmeQGQT-wqlL2LKJg5Mrk0xiYT62e2UMEUunzZLIuV-MOPq3zK5jCVF8hb-h2v1U5-N2L_B_UpMEeZezfBZUJ1_agIIagUCdevIWFZYou92xB5zv2zCwwnw8/s400/2013-01-10_00002.jpg" height="225" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">War. War never changes.</td></tr>
</tbody></table>
<br />
So, <a href="http://floydiantheory.blogspot.com/2013/01/unfinished-review-spec-ops-line.html" target="_blank">I don't finish games</a>. Even short ones.<br />
But I was feelings sick and my natural...chosen pick me up in the past has always been play video games. So I fired up <i>Spec Ops: The Line</i> again, deciding to see what was what. Yeah I was pretty close to the end of the game.<br />
At the end it tells you how much time you spent playing the game. 4 hrs 32. Yeah that's about four hours less than I actually played it, because I die alot. I almost switched to playing an easier difficulty (and the game asked me to many, many, many times) but I held strong and ended the way I started it.<br />
I went back and played two missions because I had left some of the intel laying around. I played them on FUBAR mode and didn't die once. Crazy that I'm only bad when I'm trying to get through the game.<br />
Anyhoo. Man, this game rocks my socks off. There are four endings to this game and I went through everyone of them, because they make it easy to do. All four point to the utter horror that is war and this game shows just how ugly it is. I talked a bit about that in my unfinished review. I won't ruin it for anyone who hasn't beat it, but this game is very psychological. As Captain Walker you get Post-Traumatic Stress and it doesn't go away, even by the happy ending.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_dFsnYMdMMRM6TlKfKfpUtveF2b8f80mrHwFuteUS9ZY7rJu1jCkI1TJLKXQ7mFQ-6kAYoE3IaEr9Fkr39DKmOyKJ_Ma1P5-goldiQwewlOkOnmeTF2bIRErqsfp9v98xNA_GpP8aQlk/s1600/2013-04-30_00001.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_dFsnYMdMMRM6TlKfKfpUtveF2b8f80mrHwFuteUS9ZY7rJu1jCkI1TJLKXQ7mFQ-6kAYoE3IaEr9Fkr39DKmOyKJ_Ma1P5-goldiQwewlOkOnmeTF2bIRErqsfp9v98xNA_GpP8aQlk/s400/2013-04-30_00001.jpg" height="225" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">So beautiful...Let's blow it up!</td></tr>
</tbody></table>
Which leads me to the main thing I want to talk about. This game is more of a role-playing-game than any I have ever played. It truly puts you in the role of Captain Walker and it doesn't let you go. You HAVE to go through what he's going through. Unless you just skip the cutscenes. Then it's just a fun third person shooter. But I was fully engaged even with all the start/stop I did along the way, and it's because Walker was so well written, and the story was laid out so well, that I couldn't help but remember all that had happened previously. Much like <i>Amnesia: The Dark Descent</i> (which I also haven't finished, although that's more due to me being too scared to finish it) this non-role-playing-game is one of the best role-playing-games ever. While I loved Mass Effect (only the first one) I still felt like Shepard was just a puppet whose strings I was pulling, much like any of the Bioware/Obsidian/Black Isle games. In <i>Spec Ops: The Line</i> I truly felt I WAS Walker. And that's hard to do, especially when I'm generally taken out of the immersive storytelling when I'm constantly being killed.<br />
<br />
So bottom line, if this game is good enough for me to finish it, then it's good enough for you to go out and get it.<br />
<br />
Actually that's not saying anything. I hated Mass Effects 2 & 3 but I still beat them.<br />
<br />
Regardless, play and beat this game. <a href="http://www.yager.de/" target="_blank">Yager</a> deserves your money.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-76213521910680268232013-03-08T22:05:00.000-08:002013-03-08T22:06:06.169-08:00RPG Maker VX Ace Plus My First Game<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6DdE91IDOYXfJUSub-UiACuT0C-Wa5IXysKsf1NFhF6MF9DpdSkERljZE04OoYxzhoiAQMe0GINsHWUEPl_EiLXbNfWJAYh8SUSx_xI1gDN8Ez4sXStV-nAmgh0BZ6rbCQscuG9IzvDo/s1600/RPG+Maker+VX+Ace.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6DdE91IDOYXfJUSub-UiACuT0C-Wa5IXysKsf1NFhF6MF9DpdSkERljZE04OoYxzhoiAQMe0GINsHWUEPl_EiLXbNfWJAYh8SUSx_xI1gDN8Ez4sXStV-nAmgh0BZ6rbCQscuG9IzvDo/s320/RPG+Maker+VX+Ace.jpg" width="320" /></a></div>
<br />
Many, many years ago I messed around with RPG Maker 95. It was a way to create your own RPGs similar to old school Final Fantasy or Dragon Warrior (Dragon Quest). Except it was in Japanese. It was lovingly translated to English by a fan (I think), but it was just a terrible system to work with. Especially since I didn't really have the drive to make games back then that I possess now. Needless to say I quit using it, having only made a couple of buggy small and pointless games for my own personal enjoyment.<br />
<br />
But a couple of days ago I saw the new version RPG Maker VX Ace on sale for 50% off on the Steam Store. I figured for 35 bucks it wouldn't hurt and maybe since I understand programming a bit and have an actual drive to make video games so I'd give it a shot. Plus it's translated properly!<br />
<br />
Well, it's certainly less buggy than the 95 version was, but it's certainly not "Simple Enough For A Child", as the Steam store states. Unless that child is really awesome. It's hard. Or I am really bad. I don't know. But in two days i finished this quick little game...or visual novel. I'm not really sure. It's more just me messing around trying to figure things out, but I spent alot of time (more than I should have probably) playtesting it, trying to make it a super tight (if short) experience.<br />
<br />
Anyhoo, enjoy my latest creation: <i><a href="http://dl.dropbox.com/u/99068239/The%20Sword.exe">The Sword</a></i>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb_Ur6gMv_iYwX88y7Kt60xBaiBdI-74UuhKdAfLCTd0B9RRJywGrd63PkFOcqL5KtoJ0rhN5lMJvFjKtq3jipgSX5ygJG3HavNQUN1zq26yDzbO8UO4p8OobHbJgVOs-8Z31faxICtJ0/s1600/The+Sword.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb_Ur6gMv_iYwX88y7Kt60xBaiBdI-74UuhKdAfLCTd0B9RRJywGrd63PkFOcqL5KtoJ0rhN5lMJvFjKtq3jipgSX5ygJG3HavNQUN1zq26yDzbO8UO4p8OobHbJgVOs-8Z31faxICtJ0/s320/The+Sword.png" width="320" /></a></div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-61488201469260067712013-02-07T18:49:00.000-08:002013-05-02T15:01:10.816-07:00Late to the Party: The Witcher<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUrss9YvFM1vza-OYGpEo4yaYSnwT8QFfv_DuEfEOcXmhCiBl3y0EQgxzCMC8AuIIMt7p-1YOvyznqjM-dVWdxTJHKndvQgd2SLLQs0XQcBW9_mytwssWwMkSSAMV4o29S1rKvs_TL8eo/s1600/theWitcher.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUrss9YvFM1vza-OYGpEo4yaYSnwT8QFfv_DuEfEOcXmhCiBl3y0EQgxzCMC8AuIIMt7p-1YOvyznqjM-dVWdxTJHKndvQgd2SLLQs0XQcBW9_mytwssWwMkSSAMV4o29S1rKvs_TL8eo/s320/theWitcher.jpg" width="319" /></a></div>
<br />
Okay, I wasn't actually late to the party in playing <i>The Witcher</i>. I got it because I needed something to fill my time while I waited for <i>Dragon Age: Origins</i> to come out. I played it and I remember liking it but once <i>DA:O</i> hit, <i>The Witcher </i>was forgotten.<br />
<br />
Forgotten at least until the recent Steam sale for <i>The Witcher 2: Assassin of Kings</i>. Now I didn't pick it up because I haven't beaten the first game. I'm a little more responsible with my money nowadays. But I decided to play the first one and get to the sequel and see why everyone was saying what an amazing game it is.<br />
<br />
So I restarted <i>The Witcher</i> and the first thing I noticed was how clunky it is. The cutscenes into gameplay are jarring and the scenario always starts before the fade in is even complete. Animations are pretty poor, but that's to be expected, especially on the Aurora engine. Also, animations shouldn't dictate the quality of a game. But starting a fight should be as simple as pressing the attack button. Instead Geralt waits for a few seconds and then as he's being attacked he'll lazily pull out his sword. Then he'll get into a fighting stance. Then, finally, he's ready to go. This has caused me many deaths that could easily be avoided. This is a big gameplay issue. However, it's more a frustration than anything else.<br />
<br />
The big thing with <i>The Witcher</i> is the atmosphere of the story. I have no idea what's going on, and since Geralt has amnesia I guess this is intentional on the storytellers' parts (I hope it is). But it's engrossing and I just want to know more about the world that I'm in. I know it's based on a book series but since I haven't read those (yet) I am truly lost. I can't wait to play this game and everytime I have to stop (for work, eating, bathroom breaks) it breaks my heart.<br />
<br />
But one thing about this game is really bizarre. If a female NPC has a name you can sleep with her. At least so far. I'm up to the beginning of Chapter II and the only woman that hasn't thrown herself at me is Shani, but if I remember right from the first time I played this game, that's pretty close to happening. If I remember right, even a dryad wants what only Geralt can give her. That's really weird and perhaps a little misogynistic. So, if you're immature, this game is fantastic for that alone. If you are very young, please stay away from this game until the site of boobies doesn't make you giggle or feel uncomfortable. Or if you just know how to say "no."Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-35900597201904562862013-01-14T22:01:00.000-08:002013-01-14T22:33:02.436-08:00My First Flash GamesHey there, folks! When I first got it in my head that I wanted to make video games, I started learning C++, as that's a very base language and I'd heard that if you can learn that you can learn any other language too.<br />
<br />
So C++ is good, but output is really slow for those that are impatient. So I looked into Actionscript 3.0 (Flash). I created my first game, a Pong clone, in three days. It's simple and there's absolutely no depth to it at all. I decided to graduate myself (a little prematurely) to a brick breaker game. That's taken much more time to finish, although most of that was simply due to finding all the little bugs. But it's done now, and up on my website, hopefully bug free.<br />
<br />
Except that they're laggy as could be. I don't know why. But for now it's finished and I'll move on to something else.<br />
<br />
Head on over to <i><a href="http://www.floydiantheory.com/">Floydian Theory</a></i> to check them out.<br />
<br />
UPDATE: I've put some download links for the games so if you want to try them out they should be lag free. Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-69361328234768709912013-01-08T22:36:00.001-08:002013-01-08T22:40:01.448-08:00Unfinished Review: Spec Ops: The Line<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgslw15zCM0T_Gj-Oa2db07Rb17YI783x01rkTJjjqZp8iIz9R8TwCqtzjwSqgQxkBZVszgpANpw22gDfnzgW7AMqds2A0tDAGZAIdbWn-zbUQzI_PUmGFOyCUgII3qpJZNEey1QGzQKPI/s1600/Spec-Ops-The-Line.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgslw15zCM0T_Gj-Oa2db07Rb17YI783x01rkTJjjqZp8iIz9R8TwCqtzjwSqgQxkBZVszgpANpw22gDfnzgW7AMqds2A0tDAGZAIdbWn-zbUQzI_PUmGFOyCUgII3qpJZNEey1QGzQKPI/s400/Spec-Ops-The-Line.png" width="400" /></a></div>
<br />
So I haven't heard a lot about <i>Spec Ops: The Line</i> but what I have heard was very good. I got it on sale for just a couple of bucks because I was curious and $2.49 is perfectly within my price range for a game I'm not going to finish.<br />
<br />
That's right, fellow gamers, it's time for another installment of Unfinished Re--<br />
<br />
<i>Spec Ops: The Line</i> is one very beautiful game. I don't normally worry about graphics in video games as I believe gameplay should always trump anything else. But sometimes the graphics are done so well that you can't help but notice it and in return comment on it, similar to my feelings on the movie <a href="http://floydiantheory.blogspot.com/2012/07/my-weekend-plus-short-review-of-drive.html"><i>Drive</i></a>.<i> </i>What I've played of the game, everything takes place in the desert, so you'd think brown would be the overall feel of the game. But it's actually not. The lighting is so awesome that the game has a vibrancy about it that is lacking in a lot of your typical action games such as Call of Duty or Gears of War. It reminds me of <i>Bulletstorm</i>, actually (which I also haven't finished).<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBwPchyphenhyphenxTY8PuupMQq5y8Nk8YGPpI032npJfwazrtqbWbOB4oy3uR95FuiKqvFgjGy-VrtCnSNMYvV3aRPn9K-bBjkSt-ZEy_DiLHHUWX2H8U1f6ra0ODn9SkvnUfmMHf9a5yBVYwWKr4/s1600/2013-01-08_00003.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBwPchyphenhyphenxTY8PuupMQq5y8Nk8YGPpI032npJfwazrtqbWbOB4oy3uR95FuiKqvFgjGy-VrtCnSNMYvV3aRPn9K-bBjkSt-ZEy_DiLHHUWX2H8U1f6ra0ODn9SkvnUfmMHf9a5yBVYwWKr4/s400/2013-01-08_00003.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">purple is the new brown</td></tr>
</tbody></table>
<br />
Which is actually quite funny because this is one dark game. Not in lighting but in tone. The opening sequence you shoot down a million helicopters with an endless supply of bullets and no cooldown, something that has been missing in action games for a long time now. Fun, right? Absolutely. But then you get to the killing of people, up close and personal. In this game there's something that makes the enemy feel very real and I genuinely feel bad every time I decapitate someone with a shotgun blast to the face. But as the main character says if they shoot at you first, then you better shoot back (paraphrase).<br />
<br />
So the story seems pretty cool if a little <i>Apocalypse Now</i>-ish, where a Colonel and his battalion, the Damned 33rd, have gone rogue. But there seems to be more to it than that as a CIA agent comes into the mix and is helping insurgents kill me and more importantly the Damned 33rd. Also, this game is really exciting and I can't wait to play more, where <i>Apocalypse Now</i> bored me to tears.<br />
<br />
The play mechanics are pretty sweet. It's a third person shooter, so cover is involved, but the cover doesn't make me angry like it does in the second and third Mass Effect games or Gears of War. Cover is essential, because you will die without using it, but you can actually move from place to place pretty readily without immediately getting your head blown off. Also, directing your squadmates seems to work better than in most games, although sometimes they shoot like Imperial Stormtroopers which can cause headaches and unnecessary deaths.<br />
<br />
Despite the opening scene of unlimited ammo, the rest of the game is kind of sparse. I found myself giving up my guns quite a bit in favor of less awesome guns, which had more rounds, which makes the battles more intense as I'm constantly pushing forward on the battlefield just to get to a weapon an enemy has dropped.<br />
<br />
One mechanic that is just as annoying now as it always has been is the checkpoint system. I understand certain ideas behind not having quick save and unlimited saves but I find that the older I get the less time I have to spend to repeat stuff. I think I might start playing on easy modes from now on. We'll see. I'd probably finish more games that way. But I have to say that the checkpoints are at least pretty close together.<br />
<br />
Anyhoo, I highly recommend <i>Spec Ops: The Line</i> as it seems very fresh. Then again I don't play too many straight on shooters, so I'm not really sure if it's fresh or not. But for me it is and that's what counts.<br />
<br />
UPDATE: Wow, I can't believe I forgot about this, but there are more intro movies on this game than I think I've ever seen. It's truly insane. Here's a list of all of them which I found while trying to remove them:<br />
<pre> </pre>
2KDemo_Warn.bik<br />
2KLogo.bik<br />
blackscreen_3sek.bik<br />
Legal.bik
LegalScreen.bik<br />
legal_DEU.bik<br />
legal_ESN.bik<br />
legal_FRA.bik<br />
legal_ITA.bik<br />
legal_logo_screen.bik<br />
UnrealLogo.bik<br />
YagerLogo.bikUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-20633556561562095702012-11-19T20:41:00.002-08:002013-01-10T14:50:48.448-08:00Hero U: Rogue to Redemption Kickstarter Ending Soon<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.kickstarter.com/projects/1878147873/hero-u-rogue-to-redemption"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm5B8nMAV38GiyUrKMkVoBOgkJFsj_rTYbcKTcde0AHSphdybL1Hrqh5q_ybuohQ5fVEu8uobcifI83QqmlIm-8Tmlq7NbfXZ43S6h9SsSwunkauisI5qXWQ3byTrqnKKgI3o02_7YUUM/s400/heroU.jpg" width="265" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
Hey all! The creators of the underrated and generally unheard of <a href="http://www.gog.com/gamecard/quest_for_glory"><i>Quest for Glory</i> series</a> and also the edu-puzzler<i> <a href="http://en.wikipedia.org/wiki/Castle_of_Dr._Brain">Castle of Dr. Brain</a></i> started a <a href="http://www.kickstarter.com/">Kickstarter</a> to make another game called <i>Hero U: Rogue to Redemption</i>. It's ending soon (16 hours to go) and needs another $21,000 to be made. If you have any love for those old games, even if you only love them out of nostalgia, give your money to them.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
If you don't know what Kickstarter is, it's quite simple and I think the way the majority of good video games will be made in the future. It's crowd-funding, where a person or group presents an idea or even a prototype. Then you the funder choose from different money tiers and get the corresponding reward. Now, this isn't a guarantee that what you funded will come to pass, and they could simply make off with your money without producing anything. However, from tried and true specialists like Lori and Corey Cole, you know they're going to keep their word and produce yet another fun and funny adventure game.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Just in case the picture link above doesn't work you can check out the Kickstarter page <a href="http://www.kickstarter.com/projects/1878147873/hero-u-rogue-to-redemption">here</a>.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-51938274265303183412012-11-13T22:21:00.001-08:002013-01-10T14:49:37.997-08:00Unfinished Review: Superbrothers: Sword & Sworcery EP<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5IJuwZ9g0b_8zXgM1Lymhy2VPyOss8FDD6vbP0sTWPv1vqclXWQbHMgP3DwuaELwiE6fgM9Htk6sUltDCLwHRW4FMI_7-TiGxSz-l-mpbZlTGXSePx6E-W9JWSiQjv65FrE00RNe4zUE/s1600/sb_s&sEP.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5IJuwZ9g0b_8zXgM1Lymhy2VPyOss8FDD6vbP0sTWPv1vqclXWQbHMgP3DwuaELwiE6fgM9Htk6sUltDCLwHRW4FMI_7-TiGxSz-l-mpbZlTGXSePx6E-W9JWSiQjv65FrE00RNe4zUE/s400/sb_s&sEP.png" width="400" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
I picked this little gem up in the Steam Canadian Indie Bundle along with some other sweet games which I don't remember. I don't remember them because <i>SB:S&SEP</i> is the only game I played from the list. Well I played <i>Shank</i> for about a minute before I realized it's meant for a gamepad and uninstalled it.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Considering I have a deaf roommate I will have two separate verdicts which I'll give to you right now. If you're deaf I wouldn't suggest this game. It might be cool with it's psuedo-Zelda-y/LucasArts-adventure-game-y gameplay, but the 'EP' on the end of the title kind of says it all. The music by Jim Guthrie is amazing and I can and I have listened to the soundtrack for hours on end (which came with the game at no extra cost!). It also has a really quirky art style which is enjoyable and quite unique.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
I'm not really sure how to express how awesome this game is, because it truly is a sum of all parts. The tiny things in it like clicking on the water to make splashes or the subtle musical changes or the expressiveness of a single pixel come together in just a fantastic mix of game.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Plus, it's full of video game mythos, which is always a plus.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
From a technical standpoint, I have a few issues but it certainly doesn't detract from the experience of the game. After each chapter has been finished it tells you to take a break and then sends you back to the main menu. I'm alright with this if it only gave you the option of continuing on. However, from a purely work ethic point of view this is quite good as once I'm back to the main menu I just quit and get back to doing what I should be doing.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Clicking isn't as intuitive as it should be for moving your character across the screen, but really it's a minor problem. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
A gameplay issue I have is that there is quite a bit of backtracking like in all adventure games, but really the visuals and the music make it seem like less of a chore, and more of the adventure.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
One cool user interface thingy is the spinning record at the title screen. If you click and drag the record, you can control the music that's playing. Quite fun, but it would have been nice if going counter-clockwise played the music backward, and depending on the speed at which you spun the record would change the tempo of the song. But any sort of interactivity on menus is always a plus.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
So again, if you're deaf, this might not be such a fun game, but if you can hear music then check out this game. It's short, only five hours or so (and I still haven't beaten it, being only at 54% clocking in around three hours), but I find that the shorter a game is the better the quality is, and that certainly holds true for <i>SB:S&SEP</i>.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-28716065369079039312012-11-12T21:22:00.005-08:002013-01-10T14:48:25.208-08:00Unfinished Review: Dark Souls (PC)<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCjqpCcR6JaMpx0mpNvS44yqyx7J6WkGqqUaM4iYeNhldPKkXq4KCvdx1VkO9z2peXyReAlfPOB6HyZpBwdoBXToW24DBdT60cw0sMNl4lb7_dGloKWh7kDIlmqOXTN0kfH5FvuxF5J3I/s1600/darkSouls.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCjqpCcR6JaMpx0mpNvS44yqyx7J6WkGqqUaM4iYeNhldPKkXq4KCvdx1VkO9z2peXyReAlfPOB6HyZpBwdoBXToW24DBdT60cw0sMNl4lb7_dGloKWh7kDIlmqOXTN0kfH5FvuxF5J3I/s640/darkSouls.jpg" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
So I rarely finish games nowadays. But I love writing game reviews. So my dilemma was solved by just writing a first impressions review. I'll get a lot more reviews out this way!</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
So for my first one I decided to write about the incredibly long <i>Dark Souls: Prepare to Die Edition</i>.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
I wasn't going to buy this game as I heard bad things about the keyboard/mouse set up, which is the main reason I play PC games over console. But then it was on sale for $20 bucks and my roommate had a wired 360 controller so I took the bait. And I'm glad I did.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
From a purely technical standpoint <i>Dark Souls</i> on the PC gets a D+ (I put F- at first but that goes to the game <i>Stolen</i> which has an even worse set up for PC than <i>Dark Souls; hmm, maybe I'll go back and try it with a controller...if I didn't throw the disc in the trash</i>). Almost everything is terrible, from the controls, to the resolution, to how many unskippable intro logos there are (which also appear if you quit your current game and head back to the menu; big user interface faux paus). However, these things are easily fixed with a roommate's controller and a nice mod from <a href="http://darksouls.nexusmods.com/mods/19#content">Durante on the Nexus</a>.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
While the controls aren't as solid as they could be, it's very workable, and the gameplay simply makes up for that. For those who don't know, the main concept is this: you kill things and they kill you. Alot. I mean alot, alot, alot. You will die more in this game than all others combined, even <a href="http://thelettervsixtim.es/">VVVVVV</a>. It's aggravating, it's frustrating, but unlike most other games, it's exciting and you can't wait to die again.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
I think the biggest fun factor of countless deaths is this: once you kill an enemy you get a certain amount of souls. Souls are how you level up and buy things in this game. They're pretty important. But you can only level up at the checkpoints which are in-game bonfires, which also heal you completely. Oh yeah, also once you rest at a bonfire, all the enemies respawn (except bosses). That's right. ALL. RESPAWN. ENEMIES. ICE CREAM. But if you die before you make it to the bonfire to level up you lose all your souls! That sucks! But if you make your way back to where you died you can retrieve your lost souls. But if you die along the way, those old souls that you lost are gone. Forever. So far the biggest haul of souls I've lost is 10,000. But I didn't get mad. I didn't throw the controller. I just thought of a different way of going about kill more bad guys. This is genius. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
But let's diverge to the leveling system a bit. I hate MMOs because they're nothing but grinding and it's unsatisfying because leveling up to 15 should give you more than just the ability to sprint. Leveling up in <i>Dark Souls</i> honestly doesn't feel very important. If you're not skilled at pressing buttons, or your finger slips, or something else grabs your attention for just a second, the simplest enemy can kill you. Leveling will help you dish out more damage, making killing lesser enemies quicker, but dying is as easy at level 20 as it is at level 1. So here's the thing. In <i>Dark Souls</i>, there is nothing but grind. But you're not grinding to gain more power. You're grinding to best yourself at how quickly and efficiently you can kill the same enemies over and over again. It truly is a skill based game, where the slightest mistake can cost you everything.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Let's talk about story, as usually the story is my favorite part. I'm not sure if <i>Dark Souls</i> has a story. You're an undead person. You start off in a dungeon, or undead asylum. Then you kill stuff. And there's a dragon. And you have to ring two bells? I don't know.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
So, <i>Dark Souls</i> doesn't have a story. But it doesn't need one. I think it actually would have been nice if they didn't have those intro cutscenes or talking or anything. The game just opens with you breaking out of the asylum and hacking things up, because that's what this game's is all about and that's the only thing it needs to be about.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
I'm close to 20 hours into it. My cool deaf roommate who loaned me his controller is about 100 hours into it. He says he's only about one fourth of the way through though. I will not finish this game if it's that long. Just like I didn't finish <i>Skyrim</i> (funny thing, both <i>Skyrim</i> and <i>Dark Souls</i> run on the Havok Engine, and they came out one week apart). But<i> Dark Souls</i> has been the most exciting game I've played in a very long time. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
So Final Verdict - GET THE GAME!!!!</div>
<div style="text-align: left;">
If you have an Xbox 360, you should get this game. If you're a PC gamer, get a hold of your roommate's Xbox 360 controller and plug that bad boy in and get <i>Dark Souls</i>. You won't regret it. Unless you don't like good games.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
DISCLAIMER: THIS GAME IS REALLY FRAKKIN HARD!</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-25249809696214258762012-09-20T22:53:00.004-07:002012-09-20T22:53:36.681-07:00Floydian Theory Website is Up and Running!<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUERzL44gB7RK2Lbyoi95XW1HWaejEZDV7D-Es7Y3kiYWjLYgnW18fWob4qjzkFZGBOjNw9tbhto5yz71XxUzf6ITjr_SmrqzfOmLMeKukebITAjZyTPTwkEzi7PKR_Rk-Nj8f2NgU3Ho/s1600/Leia+and+Han.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUERzL44gB7RK2Lbyoi95XW1HWaejEZDV7D-Es7Y3kiYWjLYgnW18fWob4qjzkFZGBOjNw9tbhto5yz71XxUzf6ITjr_SmrqzfOmLMeKukebITAjZyTPTwkEzi7PKR_Rk-Nj8f2NgU3Ho/s320/Leia+and+Han.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
My website is awesome, mostly because I did it all by myself. I'm a big boy now!!!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Seriously, check it out. I have lots of different stuff, such as pictures I drew, game design ideas, a couple of windows console games I wrote in C++, and other things too!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
My crowning achievement right now is an adventure/interactive fiction game I wrote called <i><a href="http://www.floydiantheory.com/images/Coding%20Projects/Assassin's%20Quest%20-%20So%20You%20Want%20to%20Kill%20a%20King.exe">Assassin's Quest: So You Want to Kill a King</a></i>. It took a long time and I'm glad it's done. However, I already have plans to improve it and once I learn more coding I plan to move it to a platform where I can have pictures instead of just text. Gasp! So modern! What will they think of next?!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Click -> <a href="http://www.floydiantheory.com/">FLOYDIAN THEORY.COM</a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeGew136pi_cWcPK4nrxNP9cXG8F0irWa-9xqOuhB-ahuiyHxXhnRC8U-SKj9oGhM9CjHxH-E_6ldeZHflbsQ8805bbBOYd4YkLXV095Rf2OGGPCPGi0_45fQIYnNtCQOOwJl8Pr1OGDw/s1600/chellLovesCompanionCube.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeGew136pi_cWcPK4nrxNP9cXG8F0irWa-9xqOuhB-ahuiyHxXhnRC8U-SKj9oGhM9CjHxH-E_6ldeZHflbsQ8805bbBOYd4YkLXV095Rf2OGGPCPGi0_45fQIYnNtCQOOwJl8Pr1OGDw/s320/chellLovesCompanionCube.jpg" width="238" /></a></div>
<div style="text-align: center;">
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-67755356122508869942012-08-23T20:25:00.001-07:002012-08-23T20:25:59.765-07:00Dishonored - A Game After My Own Heart<div style="text-align: center;">
<object class="ign-videoplayer" data="http://oystatic.ignimgs.com/src/core/swf/IGNPlayer.swf" height="293" id="vid_84c7f7d3741e051f01023bd9082f926f" type="application/x-shockwave-flash" width="468"><param name="movie" value="http://oystatic.ignimgs.com/src/core/swf/IGNPlayer.swf" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="bgcolor" value="#000000" /><param name="flashvars" value="url=http://www.ign.com/videos/2012/08/23/dishonored-the-study-of-stealth-gameplay-trailer"/></object></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
<i>Dishonored</i> is a game coming out in the next couple of months that resonates with me. I love stealth games. I love being able to sneak through the entire game, which usually adds many hours on the normal playtime. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
In fact it took me ten years to beat <i>Thief </i>and it'll take me another ten to beat <i>Thief II</i>, if at all. It took me over a year to beat <i>Deus Ex: Human Revolution</i>. This is because I'm very methodical in how I play these games. If a mission doesn't go right (ie, I accidentally kill someone, or I'm discovered sneaking around) I reload the game. Is that cheating? Sure. Does this type of cheating reduce my enjoyment of the game? Not at all.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
There is nothing more satisfying than pulling off a job, be it a theft or an assassination, without being seen. One of my favorite missions on any game was in the first <i>Hitman</i> for PC, called 'Kowloon Triads in Gang War'. In it you have to assassinate one of the Triad's negotiators while leaving the other one alive. So I pulled out my briefcase sniper rifle took an elevator up to the roof of a building, shot the dude from a long way off, dropped the rifle, took the elevator back down, and slowly walked back the way I came. I didn't have to walk, but in my mind I was really doing the job so of course I'm going to act natural. It was the perfect kill. It still makes me smile after all these years.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<i>Dishonored</i> might be the next game like that. I've tried to keep away from knowing too much about it as I don't want to hype it up to be the next <i>Thief/Hitman </i>and be let down horribly. But this stealthy trailer was too exciting to pass up and I had to watch it. I'm glad I did. It gives me hope.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-69417402190130200992012-08-02T19:17:00.001-07:002012-08-23T18:50:11.387-07:00Ip Man - Sort of a review?<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6AZ5I7x1uvE9HAUsnBjBApfBBJxnTP_Ne0mANJ33aEqVwQVKR40TqJeb8ZFwfJ1kebj5dkZiBRxz7K3hYZIqBkRfvY6eT8RABYNF0FCsv7u1moAaLkVCCZTjMsyrsa-usFAPp_PVxXkc/s1600/ip_man_ver3_xlg.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6AZ5I7x1uvE9HAUsnBjBApfBBJxnTP_Ne0mANJ33aEqVwQVKR40TqJeb8ZFwfJ1kebj5dkZiBRxz7K3hYZIqBkRfvY6eT8RABYNF0FCsv7u1moAaLkVCCZTjMsyrsa-usFAPp_PVxXkc/s400/ip_man_ver3_xlg.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Do you like Kung Fu? If not you're probably a communist...wait a minute.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Anyway, kung fu movies are usually kind of crap, especially after <i><a href="http://www.imdb.com/title/tt0190332/">Crouching Tiger Hidden Dragon</a></i> released and everybody started using wires and crappy fighting choreography. And the first little bit of <i>Ip Man</i> had me believing that it fell into the crap category. But it's actually incredibly good.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
It's the story of the mentor of Bruce Lee, a happy go lucky dude named Ip (played by <a href="http://www.imdb.com/name/nm0947447/">the Iron Monkey's sidekick</a>) who takes a stand against the Japanese takeover the only way he knows how: kicking ass with a smile on his face. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Okay that description might be misleading, but he does kick ass in this movie. Below is one of the coolest fight scenes ever. If you watch in context of the movie it's better, so I would suggest you watch the movie first then go back and watch the fight scene again, because you'll want to.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/L-I0P8p4ums?feature=player_embedded' frameborder='0'></iframe></div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3145078893707116188.post-62512344089849136052012-08-01T19:40:00.000-07:002012-08-01T19:40:06.678-07:00Zac Gorman and Magical Game Time<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrJUXH6tBEAIPfI8an6qE_Yp0skj7XQ15kDJJIxxk_KlPGmpIrxI7K3eIchnWraFTHg-iDa-PQ3CKii9_RjC9WodlDOBQjq_igBDxEZ_SFqcchCLj6haydyVaBg71SZEpxqHalgoOSou4/s1600/tumblr_m68gsrri7x1qizbpto1_500.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrJUXH6tBEAIPfI8an6qE_Yp0skj7XQ15kDJJIxxk_KlPGmpIrxI7K3eIchnWraFTHg-iDa-PQ3CKii9_RjC9WodlDOBQjq_igBDxEZ_SFqcchCLj6haydyVaBg71SZEpxqHalgoOSou4/s640/tumblr_m68gsrri7x1qizbpto1_500.png" width="492" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
I think I discovered Zac Gorman on dork website <a href="http://www.dorkly.com/">Dorkly</a>. I love his style, which is reminiscent of <a href="http://en.wikipedia.org/wiki/Jean_Giraud">Moebius</a>, but a lot more cartoony. Zac does little web comics on video games in a blog called <a href="http://magicalgametime.com/">Magical Game Time</a> and does more personal stuff on <a href="http://zacgorman.com/">his own website</a>.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
If you love good art and/or video games check him out.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Also, here's an awesome picture of the best Final Fantasy ever made: III...or VI. III if you're old school like me.</div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPOdJu66qa2SWWgHuR-1krp7MqnvzreuM2auqrefS4UuLuPnBx3MFFWBdQbTm1289Xeaarwa_O9hfsgC9vuJWH-A_XGw8vwfmsIAs7x9QNAqd48enHhTCie8_YA5aTMbanpyylFHyebtA/s1600/FFVI_WEBSmall.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPOdJu66qa2SWWgHuR-1krp7MqnvzreuM2auqrefS4UuLuPnBx3MFFWBdQbTm1289Xeaarwa_O9hfsgC9vuJWH-A_XGw8vwfmsIAs7x9QNAqd48enHhTCie8_YA5aTMbanpyylFHyebtA/s1600/FFVI_WEBSmall.jpg" /></a></div>
<div style="text-align: center;">
<br /></div>Unknownnoreply@blogger.com0