First Impressions: Terraria (or Why Terraria is better than Meinkraft!)

I was recently gifted Terraria on steam and, not really knowing what it was, I scoffed at it and set it aside.  “Terraria,” I said, wearing my smoking jacket with pipe in hand, “Why would I play a 2D version of Minecraft?  I wish you could delete steam games.  That would most satisfy my arrogant preconceptions of this game.”  But alas, it was not meant to be, as my laptop has an Intel graphics card and simply cannot handle the the workload of a next-gen game like Minecraft, and thus I installed Terraria.  I even condescendingly thought how silly this game must be with only 19Mb of data.  Reflecting now of how ignorant I was in respects to this game, I feel quite silly because, frankly, Terraria is the bomb.

It’s true that Minecraft and Terraria are two different beasts, with each having a different purpose or goal in their design.  In Minecraft, the goal is to build 3D structures out of blocks with creepers and zombies annoying your build every five minutes.  It’s analogous to playing with legos with friends, except all your friends’ little brothers are also there to smash pieces and scream in your ears the whole time.  Minecraft does allow more complexity in the structures, more architecture, and more whatever else you get out of 3D, but if Notch is trying to make minecraft anything other than the above, he’s failed miserably, and, instead of adding new features, should focus on optimization and polishing the great building game he already has, instead of expanding the fighting and exploration game he wants.

Terraria is about survival and territory expansion.  You build a home to house residents and store your loot, but you’re rarely there as the bulk of the game is fighting waves of goblins, exploring dungeons and finding floating islands in the sky.  You don’t craft items out of want, but out of necessity.  You can’t kill Skeletron with an iron sword and some gold plated armour.  Try as you may, he will kick your ass until you progress through the game, earn new items, and fight new battles.  You are consciously expanding to bring peace to the little bit of land you call home and when you get some down time in the game, you upgrade your house to show off the progress you’ve made, only to find there’s a new evil in the world to be conquered and more places to explore.

If you’re looking for a 3D building game, then Minecraft is, hands down, what you want, but if you’re looking for a building, exploration, fighting, adventure, and survival game, then Terraria is the clear winner.  I find Terraria’s developer far more ambitious in what he’s trying for in his game, but not only that, he achieves the goals he sets forth for this masterpiece.  It’s only $10, so give it a try.

One last thing.  I have only played the single-player version.  I will be conning my friends into getting the game with me over the next few weeks so hopefully multi-player will bring an even more satisfying experience all around.

Apartment Fire – Part 1

I will try to leave out names as much as possible until this is completely resolved.  Rewind to last week.  I get a call from our realty company telling me that the laundromat we live above had a fire.  I am told that it took the fire department 45 minutes to determine the location of the fire.  Apparently some insulation in the walls caught fire due to some faulty wiring.  To get water into the wall, a hole was cut in our floor, near our kitchen and water was pumped through.  Also, a fireman took an axe to our door to open it.  (Pictures to come).

I should mention that my roommate and I have not been at the apartment for about a week now due to some much needed vacation time.

Well, I promptly informed my roommate of the… interesting news.  This apartment of ours has had some issues from the start of our lease that we mentioned to the realty company, but they neglected to fix.  These were documented as part of our check-in process and are legally the responsibility of the landlord as is noted in the signed lease.

Now, at this point we have talked to the owner of the property and asked to be let out of the lease.  He refuses to drop us and we’re told that we’re being relocated while the damage is being repaired.  They have a month to fix the damages and when it is repaired, we’ll be relocated back to the insect-infested, pipe leaking, smoke smelling apartment.  We did not have renters insurance, which is admittedly our fault, which means that the cost of moving, and anything not directly related to the fire is up to us to cover.

With the whole fire incident, my roommate and I are pretty much fed up.  We will have to go through the moving process to a new apartment and back again and then deal with the problems that the landlord will continue to neglect.  So thus begins our journey into real-estate law and breaking free from our landlord in the most painless way possible.

Now, our realtor has actually been quite understanding of the issue, but tells us that the owner of the property decides when to break the lease and they can’t do anything about it. I am hoping I will be able to make them understand that the people they do business with, namely the owner of the property, reflects on them as to what type of business they are, and that if they’re going to continue to do business with this man, then they are as responsible in our eyes as he is.   More to come as more develops.

Bloody Island

Link

wiki: Bloody Island (Mississippi River)

Special Aside From Jim:

best way to use this sit[sic] is to just start clicking on things under “projects”
http://www.radicalcartography.net/index.html?chicagodots

P.S. “tried loking up the guy who makes this, bill rankin.  the only person close is william rankin, as far as wiki is concered”
wiki: William Rankin

The DX and FX Formats for DSLRs

Something that seemed confuse me while shopping for lenses were the lens formats, but I believe I have a grasp on them now.  There are 2 formats in use today for camera bodies, FX and DX.  Each format has to deal with the size of the camera sensor which the image you’re taking is being projected on.  Simply put, the FX camera sensor is larger than the DX camera sensor.  Because the sensors are different sizes, 2 different types of lenses have to be made to project an image appropriate for each sensor type.  A DX lens’ image will project an image to a camera sensor such that it fills the DX camera sensor completely.  An FX lens, likewise, projects a slightly larger image (About 1.5X larger) to the sensor, expecting a FX sensor.

The DX Camera Body

So if you have a DX camera body, you can use either lens type, but, if you use an FX format lens on this body, the image will be cropped a bit.  This is because a large image is being projected on a smaller sensor, so anything outside of that sensor is just neglected. What ends up happening is the image is about 1.5x zoomed in compared to a DX style lens of the same focal length.  The effect is getting an image similar to if you had taken it at a higher focal length  (explained at the bottom).

The FX Camera Body

If you  have an FX camera body, the image from an FX lens on the body will appear the same (except for image quality) as an image from a DX lens on a DX body.  If you mount a DX lens though, I’m told you’ll end up getting an effect similar to vignetting; this is because the image being projected onto the sensor simply does not fill it completely.  If you have an FX camera body, unless you know the effect you’re going for and have a moral opposition against post-processing, you absolutely want to buy an FX lens.

FX lenses on DX bodies continued…

If you’ve ever taken two shots with two different focal lengths such that they were framed the same, you’ll notice that the shallower focal length image looks weirder.  The effect is more easily explained when you watch any movie that has done the vertigo camera effect.  This is when you zoom in while moving the camera backward such that you maintain the same image framing the whole time. Now back to what I said in paragraph 2.  If you take a shot with a 50mm FX lens on a DX body, it’s the same as taking a 75mm shot with a DX lens, framing wise.  In all other aspects though, depth-of-field and perspective distortion, you get the same image as you would with the 50mm lens.  There is something else interesting when using an FX lens on a DX body.  Because the image quality of lenses tends to decrease as you go to the sides and corners of the image (due mainly to spherical aberration), the image quality from an FX lens on DX body should be much higher because the edges and corners of the image are not the edges of the image being projected on the sensor as the projected image is so much larger.

What To Buy?

For me the decision was really easy.  For my d5100, the autofocus only works if you get a lens with a silent wave motor(SWM) and the lenses with the DX format are the only that have the SWM.  If you don’t know what you’re doing and don’t have cash to burn, I’d suggest just getting the format that matches your camera body, and it will probably end up being the best decision.  You’ll get the proper framing for your focal length and you can do some stuff in post if you want the cropping the FX would give you.

This was all from a little bit of research which may be flawed, so if I got something wrong, please let me know.

Getting Redirects Working Properly

This doesn’t seem quite right, but it’s the only way I could get the redirects working the way I wanted them.  .htaccess seems to be the easiest (or at least most widely used way) of server redirects so here’s mine.

My .htaccess:

1
2
3
4
5
6
7
8
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^jim.jacobvgardner.com$ [NC]
RewriteRule ^(.*)$ http://triggitytry.blogspot.com/$1 [R=301,L]
 
RewriteCond %{REQUEST_URI} ^/(blog|dreamjournal)/(.*)$ [NC]
RewriteRule ^(.*)$ http://blog.jacobvgardner.com/$1 [R=301,L]

If you access jim.jacobvgardner.com it should take you to Jim‘s blogspot.  If you do jacobvgardner.com/(blog|dreamjournal) it should take you to blog.jacobvgardner.com/$1.  If you think of a better way, let me know.  Django doesn’t seem to like external urls for redirection apparently.  I’m not a web developer so I may be approaching this wrong.

Ludum Dare Jam 22 Is Over :(

In response to:
how’d the Dare go?

Awful. Not enough developers (Me and Max) and we just weren’t prepared. Next time, though, we’re winning.
So for next time my plan will be as follows:

  • Build the engine for the game before hand. Hopefully, generic enough to build any game type, but fully featured.
  • Not build my own physics engine (pybox2d)
  • Build a couple of test games before the event so we have experience.
  • Get more people who do art (we had 1 guy and there was just too much stuff)
  • Music people need to decide on their tools before hand and how they’re getting it into the game. (To be fair, Jim didn’t know he was a music person until the dare started.)
  • Schedule programming shifts and tasks
  • Not occur at the end of finals week.
  • Food plan. Not just wing it.
  • Single location for the full 72 hours.
  • No remote developers maybe. It was just too hard to communicate with them remotely
  • Make sure everyone is there during the first 5 hours or so for planning and during the last 5 for final testing and packaging
  • dedicate time to building tools for non-programmers (we had a lot of time where non-programmers were waiting on us)
  • Make donut runs mandatory!
  • Make sure everyone developing has all the required tools beforehand. Will probably package everything in a zip file next time.

Team:

  • 2 or 3 people for music
  • 2 or 3 people for sound effects
  • At least 3 for art
  • At least 2 programmers
  • At least 1 buffer person for additional help (level design/story/etc)

WordPress Code tests:

#include <iostream>
using namespace std;
// I don't recommend 
/* 
 * Compiling
 * this
 */
extern long double int char volatile unsigned typedef variable = 3;
 
int main( int argc, char* argv[] )
{
  cout << "Hello, World!" << endl;
  return sqrt( -1 );
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import this # Zen of Python or something.  I don't remember
import httplib
 
if __name__ == '__main__':
  print 'Hello, World!'
  print 'line number test'
  # I don't know if any of the following 
  '''
  is 
  right
  '''
  conn = httplib.httplibOrSomething( 'jacobvgardner.com' )
  r = conn.request( 'GET', '/' )
  print r.getrequestdata().read()