Thursday, April 26, 2012

This Town (ABEFTTOU) : Ludum Dare Entry

This Town (ABEFTTOU) made for Ludum Dare 23 in 48 hours.  Runs on XNA, so the download leads to an installer.  If anyone knows how to compile standalone XNA executables please tell me kthnx.

Timelapse:


Postmortem

The Good:
  1. GitHub is so beautiful! I cloned my half-finished OOP engine and worked on the engine alongside the game.  The cool thing is, the engine code remains separate from the game.  If I wanted to add, say, animated sprites to the game, I'd set it up in the engine, merge them, and have GitHub resolve the conflicts.  Ended up with not only a finished game but a patched up engine as well.
  2. Small, concise idea that could actually be finished.
  3. Having drafted the idea for the game before starting.
The Bad:
  1.  Use something you're familiar with, dangit!  Should've used Game Maker or Flash, both way easier and faster to dev in than C#/XNA.
  2. Figure out how to compile the game before submitting.  No one who didn't previously have XNA already could play the game at first because it wasn't packaged with the framework.  Stupid me.  And an addendum, people with weak graphics cards still couldn't play because I compiled it in HiDef mode unnecessarily and accidentally.  Stupid me.
  3. Leave an hour or so for balancing and bugfixes.  Pretty much crippled the game.

Tuesday, April 10, 2012

Gamedev Meetup

First time at a gamedev meetup.  Interesting experience overall and definitely going to attend the next one.

Event was hosted by a Microsoft developer named Joe Healy on developing for the Windows Phone-- marketing and all. 

Confirmed a lot of what I already knew, but some alright new things.

The easy stuff:
-The best apps are non-shitware, but a heavy side of it comes from raw marketing.
-Marketing marketing marketing marketing.  Marketing!
-Windows Phone programming is a helluvafscking lot easier and cleaner than Android programming.

The not-so-well-known stuff:
-The market is very much alive, even with only 70k apps.
-Startup fees (licensing etc) are few.
-One app a month is a decent rate of release.
-Advertisements = top money.
-XNA is 100% portable from PC to phone.  Design a game on PC and move it over to Phone, hassle-free.

Definitely a market to look at if iOS dev doesn't go down as well as I'd expected.

Now for the social aspects:

Despite being several decades younger than the majority of participants (I was the youngest there, hands-down), I didn't really feel out-of-place at all.  The people were all very interesting to talk to.  Even got a conversation going with a guy about different types of trash cans.

My big mistake here?  Not claiming a computer already set-up with the Windows Phone 8 SDK, and having to download and install it myself.  Oh, cool, can't connect to wifi.  Good thing they have an instructions sheet for it.  Oh, cool, popup bubble asking for credentials not appearing.  Good thing I spent half an hour searching to find it.  Oh, cool, the Microsoft website is down and I can't download the SDK.

Good thing I refreshed my HOSTS file, flushed my DNS, disabled/re-enabled all the wireless adapters, manually updated IP and DNS addresses, pinged microsoft.com several times, IP-tracked the DNS via Whois and Google, and finally got around the DNS block before realizing the link I had was for the patch and not the original package.

By then, the meeting had ended.

Also, for any hobbyists of any creed:

I highly recommend attending one of these.  Look online at Meetup.com for those in your area or something.  This was excellent, and the people were excellent, and I regret not finding these meetups earlier.

Monday, April 9, 2012

A Programmer's View on Justice

(By "justice," I mean the Hammurabian "eye-for-an-eye" justice.  Thought I'd clarify.)

The common line of moral doctrine seems to be "treat unto others as thoust wish to be treated," maybe without so much of the Old English.  Seems fair enough, right?

I think that in a lot of cases it's complete bull, and here's why.

Let's redefine morality, for a second.  Morality, or how "good" a person is, we'll define as "how much they contribute to the world after subtracting how much they take from the world."  A simple profit-minus-expenses situation.  Makes sense, right?  After all, a "good" person would optimally have given more than they've taken.  The world would be better off having had a "good" person and worse off having had a "bad" person.

Now, for the sake of argument, let's quantify the world's resources.  Imagine the world is a room, and inside the room there are corn crops and humans.  These are the sole resources of the "world," and therefore the most "good" person will try to maximize the world's resources by growing crops.  Our world is therefore split up into environmental resources (food) and human resources (human labor, to grow the food).

A Scenario
We'll say we start out with 5 "food" and 5 "human."

Food: 5
Human: 5
Total: 10
We will assume that all humans grow food at the same rate and consume food at the same rate, and that they grow food faster than they consume it (so that they are always a positive resource).  Our total "world resources" is then 10 (combining food and human resources).  Of course, this number is arbitrary, and doesn't account for priority weights of "food" and "human" (a human might be five times as useful as a food, for example), but the number is going to be used relatively and therefore the technicalities don't matter.

So one day, Abert is a total jerk and burns Bartholomew's crop (-1 food).

Food: 4
Human: 5
Total: 9

Notice that our total "world resources" is now a little less.

So, what's the "fair" thing to do?

Wednesday, April 4, 2012

Stanford Summer Program Get!

 Accepted into Stanford's 2012 summer class on Artificial Intelligence.  Good news and bad news.

The good news: Stanford!  And artificial intelligence!  And hopefully, for once, some interesting people who do things!

The bad news: Going to have to dedicate my time to a job now.  There is simply no way I'll be able to pay for this without some freelance work.  Which means...

I'm sorry, I'm not sure how much time I can spend on the Brighton RTS, or the One Second Roguelike, or the secret four-letter project, or the C++ 3D physics engine.  Gamedev might have to slow down for a while.  Hopefully still going to learn some cool stuff from freelancing though, but that's how it goes I guess.

Not that I regret getting accepted at all, this is fantastic.

Thanks a ton, Stanford, and sorry for pestering you so much with fax problems.

Tuesday, April 3, 2012

Minor update for minor people.

  •  4 Hour Jam is this Saturday, remember this.
  •  Werewolf is coming to a close.  Good show!
  • molyjam was amazing and I regret not being able to finish anything really on time.
  • C++ physics engine in the works!  In excruciatingly depth-stretching 3D.
  • Super secret gamedev project among super secret friends.  That's all you're getting.  (It's also four letters).
  • South Florida iOS Meetup postponed for the first time in 6 years.  Has to be postponed the first day I go, of course.
  • The Game of Life engine I made a while back has been updated to run over 8x faster.  Might turn it into a screensaver, maybe.
  • Noticed this blog stretches horizontally on smaller screens.  Y NO 1 TELL ME?!
  • And lastly, some web design.
Don't worry, do your best! Jujuju-jujuju jujuju-jujuju jujujuju....

Friday, March 30, 2012

No, Anonymous is Not Shutting Down the Internet

'Report: Anonymous Promises to Shut Down the Internet March 31'

So, someone posted this on PasteBin the other day, outlining a hack-attack on major DNS servers that will "shut down the Internet."  They claim to be the hacking group, Anonymous.  They're not.

Here's an outline of their attack.

The principle is simple; a flaw that uses forged UDP packets is to be
used to trigger a rush of DNS queries all redirected and reflected to
those 13 IPs. The flaw is as follow; since the UDP protocol allows it,
we can change the source IP of the sender to our target, thus spoofing 
the source of the DNS query. 

The DNS server will then respond to that query by sending the answer to 
the spoofed IP. Since the answer is always bigger than the query, the 
DNS answers will then flood the target ip. It is called an amplified
because we can use small packets to generate large traffic. It is called
reflective because we will not send the queries to the root name servers,
instead, we will use a list of known vulnerable DNS servers which will
attack the root servers for us.

Congratulations!  You've re-invented the DDoS.

Think about why there's no possible way this can work.  In order to prevent HTTP requests from reaching the DNS, they'd need to flood the DNS's with enough packets to form a constant stream of daemon-y packet messages.  They'd need more bots in their botnet than legitimate, Internet-using computers in the world.

Hence, to shut down the Internet, they'd pretty much have to own it.

Anonymous posted this message on Twitter the other day:

For the billionth time: #Anonymous will not shut down the Internet on 31 March. #OpGlobalBlackout is just another #OpFacebook failop. #yawn

That is all.  Enjoy your Internet on March 31.

Wednesday, March 28, 2012

A Programmer's View of Morals

Here's an age-old question.  Are humans inherently moral?  That is, are they born with a sense of compassion and respect for others?

Conventional theories are as follows:

Yes, humans are inherently moral.  Emotions are not learned.  When a baby is born, it can instantly recognize its mother.  It is encoded in the human psyche that treating someone poorly will result in being treated poorly in return.

No, on the other side of the spectrum, humans are not inherently moral.  This is why early parenting is so crucial in making a child fit for society.  This is why children with unhealthy home environments tend to develop social disorders.  Morals, and consequently, the ability to assimilate into society, are learned.

Here's the problem with both theories:

Genetic makeup is not hard-coded.  As far as science tells us, genes tend to be much more abstract than just "the gene that makes you respect people" or "the gene that makes you love people."  If that were the case, and things like respect and love could be hard-coded into the psyche, then morals can be, too.

And sure, there's a trend between good parenting and social assimilation.  But this doesn't tell the whole story.  Once again, inherent morals would have to be directly integrated into human biology.

My purely theoretical take on this:

My theory depends on the human brain working as a neural network where people are born with a randomized genetic makeup and filtered out via natural selection.

Quick overview.  Neural networks are made up of neurons that receive inputs and fire outputs.  If all of the inputs and their weights surpass a certain threshold value, then the neuron fires all of its outputs into other neurons.  Otherwise, it stays silent.  Think computer chips.