Monday, April 30, 2012

Guild Wars 2

Unlike most of my friends, I watched Guild Wars 2 from afar. Every once in a while I'd drop by the website and read a bit, but most of the development I wanted to keep a surprise. I knew almost nothing about playing the game, with the exception of some minor details like the dye system (which, astonishingly, does not easily lead to fashion disasters; you have to really work for those). I had read a bit about the sidekick system, events, the aggressive removal of the Tank-Healer-Damage party structure, and seen some combat skill overviews; but deliberately avoided thinking about them until I could play the game. I rather enjoyed the result, though it meant that many implications only set in with about 3 hours left in the beta event.

Wednesday, June 08, 2011

I Paid For It

I knew I liked this game the moment the menu music loaded up.

It's fairly simple, once you grasp the mechanics: there are two meters, reminiscent of the hit point and special meters in fighting games. The first meter is Patience, and the stage ends when this runs out. Your normal attacks--as well as bonuses--are cast out of this bar, though it will also drain fairly rapidly just doing nothing. The second meter is Stress, and normal attacks add points to it. When you have enough points, you can cast a Special attack.

The damage you inflict is added to your score (besting a previous score earns a money bonus), and each hit has a chance to grant you money, which is used for upgrades. You can upgrade the maximums of both meters to 1000 Patience and 100 Stress, as well as critical and money chance to 50%, as well as buy bigger attacks, specials, and temporary bonuses.

The real draw, however, are the ability animations. Much care was put into the animation of all abilities, as they are very smooth and visually appealing. My favorites are the Lightsaber and Chain attacks, as well as Fire 2, Water 3.

Thursday, May 19, 2011

The End of the World

So, apparently, the Bible says no man can know when the world ends. It's kinda funny, I mean, now people are saying the world can't end on Saturday at 6pm local time, because some random Joe thinks it will.

Think about that for a second. It's highly exploitable.

So here's the plan:
1) A computer assigns (future) dates and times to every person on Earth, and to new arrivals as they appear.
2) These people are told that this is the date, hour, minute, and second that the world ends and tell no one else the date they were given.
3) As people die, their dates are placed back into the computer and doled out again if they are still in the future.

There are approximately 6.77 billion people on Earth, which comes out to about 214 years during which the world cannot end without a single one person knowing the date or hour (or minute or second; the last thing we need is God slipping the end of the world in between two hours). Unfortunately, we can't go to milliseconds; that only gets us one fifth of a year.

It is absolutely critical that each person knows only the date and time they were assigned: the moment a person knows two, there is an uncertainty with his own, and the world ends.

It may be necessary for the people operating the computer to not participate in this project.

For safety, some people should be held in reserve, in case it becomes necessary to quickly have someone know when the world ends (i.e.: someone died and the world ends tomorrow). That may not be strictly necessary, since this knowledge should apply from the afterlife as well, but we should not take any chances.

Friday, April 08, 2011

Python switch statement

Having a bit of fun at 3 in the morning.

The Python version of the C-style switch statement is either a bunch of if/else's or a dictionary. Going the dictionary route can be ugly looking (not to mention confusing, pulling a value out of a mapping and calling it). This just encapsulates the whole thing and adds some support for a pseudo-default case.

The structure is a bit weird, nowhere near as nice as regular syntax, but if you absolutely have to do this, it makes it easier to read.

Wednesday, April 06, 2011

And now I can't remember what got me on this line of thought...

So here I am, hacking away in Python for oh, a few years now, and I just remembered what got me into Python in the first place.

See, I was using Python's implicit line wrapping with a tuple, and remembered back to when I read an article explaining that Python did that. Before that, all my longer lists weren't wrapped, or wrapped with '\'.

That made me recall the impetus that had me looking for such information in the first place: a Wiimote driver for Linux called CWiid.

Which, coincidently, was the first time I had seriously taken a look at Python.

I was using it to add motion control to Descent 3, which I had just purchased from, which was... September 23rd, 2008.

I got something rudimentary going, noted that it would take a lot of hacking to make it better, and I needed to be better at the extension language it used to do it myself. So I waded into that language, which turned out to be Python.

Huh. I never did get back to motion control in Descent 3...