Design patterns are from hell!

The “Design Patterns” book is one of the worst programming books ever. Yes, really. I’m 100% dead serious when I say that I think it has set (and will continue to set) the progress of software development back by decades. Why?! Let me offer up a parable; I will call it “The Plank.” Read the rest of this entry »

Comments (39)

A brief graphics blog summary

With the signal-to-noise ratio of the internet at an all-time low, here are some fairly recent graphics-related blog posts from across the world that I think contributed positively to the SNR. Just in case you missed them the first time around. Read the rest of this entry »

Comments (9)

Learning patterns and the game of Flip

A foolproof way of separating the men from the boys, the women from the girls, or perhaps just an old programmer from a not quite so old programmer, is to mention the books Basic Computer Games and More Basic Computer Games and see if it results in frowning never-heard-of-them faces or strange dreamy looks of people recollecting an era long gone by. As their titles imply, these books were collections of games listings, all written in BASIC. (And originally published in the equally famous Creative Computing magazine, now defunct, R.I.P.) Read the rest of this entry »

Comments (2)

Programmers wanted!

If you’re reading this blog, other than clearly being a person of integrity and impeccable taste, odds are you’re a programmer. As such, I thought I’d take the opportunity to mention that we have a few really nifty programmer openings on the God of War III (PS3) team that could just be the perfect thing for a nifty person like yourself.

The positions we’re hiring for are graphics programmer, tools programmer, and online gameplay programmer, and the key qualifications are that you have your head screwed on the right way (i.e. counterclockwise, and very tightly) and have the appropriate experience and skills in one of these areas (other qualifications listed in the job descriptions). While these are all senior positions, we might just make exceptions for young or inexperienced people if they’re sharper than a tack.

We’re a pretty cool bunch of people (at least, our 100% retention rate on programmers suggests we are) who work on some pretty cool high-profile games and, honestly, you could do much worse than decide to work with us.

We also have a position open for a build engineer. At the most basic level this position involves being responsible for making, testing, and deploying builds to the team on a regular basis. What we’d love to see is an talented and enterprising individual who would completely take charge of our build and test machines and their scripts, and help take the process and its automation to the next level. And more! It’s all up to you! This is a great entry position for someone fresh out of college with a CS degree (or similar) to break into the industry (or, if you’re already in it, to switch gears into a new career).

If you’re at all interested in any of these positions, send me an email or a resume. Discretion guaranteed, of course. Finding my email address is your first (not very hard) interview test!

Information about other jobs (artist, animator, designer, producer) available at our Sony Santa Monica studio can be found listed in the SCEA jobs database.

Comments

Crunching your abs

That min() and max() are highly related to each other probably doesn’t come as a surprise to many people. After all, we have some pretty obvious identities such as:

min(a,b) = -max(-a,-b)
max(a,b) = -min(-a,-b)

What may not be as immediately apparent is Read the rest of this entry »

Comments

Robustly computing the centroid for a point set

We ran into an interesting problem at work the other day, where we had some geometry partitioning code that gave vastly different results on the same tessellated plane, depending on the scale factor that was applied to the plane. That would be fine, of course, if the code was taking size into consideration when partitioning, but this code wasn’t! Read the rest of this entry »

Comments (5)

Are you redundant? You should back it up!

So, the reason I haven’t blogged in quite a while is that I had my external HD crash on me; said HD containing, amongst other things, my scribbles on things to blog about that might hopefully be of value or interest to people. While it turns out I didn’t lose any data, thanks to some luck and the friendly IT guys at work, it still made me reluctant to plug the HD back in until I had sorted out a reasonably reliable backup solution. You see, I had been bad and, ehrm, well, didn’t have any backups for my PC hard disks! And I bet you too probably don’t have a backup solution for your machine, dear reader! Tsk, not good. Don’t tell me I didn’t warn you when your HD crashes. And it will crash, it’s just a matter of time! Read the rest of this entry »

Comments (3)

Chunky triangle soup

There are many possible collision geometry representations. One representation is the triangle soup: an unordered collection of triangles. The triangle soup is great in the sense it is easy for artists and designers to create, edit, and apply collsion materials to the triangles. A not-so-great property is that the triangle soup does not define a volume, so there is no way to dinstinguish between being inside or outside of the objects it represents — we can only detect collisions with the boundary. It therefore becomes very important to detect tunneling to avoid objects falling through the world. Read the rest of this entry »

Comments

Hacker’s Delight #8: Matrix Flip

Hacker’s Delight (in homage to the excellent book of the same name) is a pretty cool, sporadically-run coding challenge organized by Jim Hejl (previously of EA Tiburon, now Director of Rendering Technology out of EA in Vancouver). Each new HD challenge provides an interesting optimization problem to solve, where you have to consider both choice of algorithm, cache effects, and operation counts. Oh yeah, if it wasn’t clear: fastest implementation wins! Read the rest of this entry »

Comments

Coplanarity is teH eVil!!!11!1!!

I sort of implied this in passing in my triangle-triangle tests post, but let’s state it officially: coplanarity (or collinearity) in your inputs will almost always screw you over in one way or another! Here’s another example of what can go wrong: this time performing continuous collision detection between a moving point and a moving triangle. (In case this looks familiar it’s probably because you’ve seen me mention it before in other forums, but hey, self-plagiarization is OK as long as you’re not trying to publish!) Read the rest of this entry »

Comments (8)

« Previous entries