<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Elfric&apos;s Log o&apos; geekery</title>
<link>http://www.devnullsoftware.com/</link>
<description>Offloading information to make room for more pointers in my head</description>
<copyright>Copyright 2007</copyright>
<lastBuildDate>Wed, 15 Aug 2007 17:24:43 -0800</lastBuildDate>
<generator>http://www.movabletype.org/?v=3.16</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs> 

<item>
<title>A Day of Change</title>
<description><![CDATA[<p>Today I gave my notice at EA.  It was an incredibly difficult decision and I've been agonizing over it for a while now.  EA, despite its evil reputation, has been incredibly good to me.  The people here are some of the most talented I've ever had the pleasure of working with, the Sims games are incredibly well-received and give happiness to a lot of people.  I feel proud to have been a part of the creative process here and will sorely miss it.  In addition, the pay is great, the bonuses are awesome, and I've always felt there was plenty of room for opportunity and growth here.</p>

<p>No, I'm not leaving because of the long hours.  The long hours are my own fault and I freely admit to that.  I get way too focused on what I'm doing and just really lose track of time.   EA has never once asked me for anything unreasonable in terms of hours or tasks.</p>

<p>So with all that, why <I>AM</I> I leaving?  Quite simply, it's time for a change.  I managed to find a place where I really believe that I'll fit in better and will be more in tune with the kinds of projects I'll enjoy working on.  I've decided to move a bit north to <A HREF="http://www.stormfront.com/">Stormfront Studios</A> in San Rafael, CA.</p>

<p>I looked at a LOT of different game companies when I finally made the decision to look around at all.   Many (most?) game companies just didn't interest me much as I didn't really feel a connection with the types of games they do.  A number of companies were working on great stuff that really excited me, but were located in places I just didn't want to live.  So, when it came right down to it, the list of companies that I narrowed my choices down to was relatively small.  In the end, though, things just really clicked on both sides for me and Stormfront and so that's where I'm headed next.</p>

<p>I'll really miss EA and all the people here that I've come to know and trust.  Life is full of change, though, and who knows what the future holds.  One thing I do have a strong feeling about, though, is that I'm going to be very happy at Stormfront.</p>]]></description>
<link>http://www.devnullsoftware.com/archives/2007/08/a_day_of_change.html</link>
<guid>http://www.devnullsoftware.com/archives/2007/08/a_day_of_change.html</guid>
<category>life</category>
<pubDate>Wed, 15 Aug 2007 17:24:43 -0800</pubDate>
</item>
<item>
<title>It&apos;s been an Interesting Trip</title>
<description><![CDATA[<p>I was re-reading old journal entries tonight and I noticed a couple things:</p>

<p>1) I don't update much any more.<br />
2) My life has changed a LOT in the last couple of years.</p>

<p>I don't update much any more not because I don't have anything to talk about. I have more geekery in my head than ever before it seems. But all my geekery these days is for work and I work for a large company. Large companies like secrecy and they have lawyers.</p>

<p>I think that's really my only real regret about coming here. I miss being able to talk about programming freely. It's my passion and I feel so isolated when I do elegant code (or stupid code for that matter) and can't talk about it. I can't post code samples. I can't post screenshots. Well, not of the stuff from work anyway (my own stuff, sure, but I don't seem to be making a lot of time these days to work on my own projects). </p>

<p>I wrote up a post-mortem about the last project. In it I talked about some of the history of my part of the project, some funny stories from the project, and some general ramblings about work. I also had screenshots from the dev cycle (basically a series of snapshots that showed the metamorphosis from comically/tragically funny to production-quality.</p>

<p>Being the cautious person I am, I decided to get it cleared through my boss first since many companies have a nasty tendency to fire people over seemingly innocuous journal entries that lawyers think reveal some secret or other. Well, of course, it got sent on to legal and all of a sudden I was being asked to fill out about 10 pages of forms.</p>

<p>So not worth it. And thus ended that journal entry, stillborn.</p>

<p>But I guess that's the price I pay for working in a game company. If that's the worst thing I have to deal with, I'll be content. But alas, it does make it hard to think of worthwhile journal entries. Talking about the rest of my life (what little there is of it) bores everyone to tears, I suspect (including me).</p>

<p>As for the second thing I noticed - the changes in my life over the last couple of years - I was amazed at the transformation.</p>

<p>For years, most of my adult life in fact, I wanted to program games. I'd say that, and I'd whine about how no one would hire me. But I wouldn't actually do what I needed to in order to get hired. I wouldn't take the time to learn the code, nor do enough projects to get practice at it. I'd just feel terribly frustrated and wonder why no one handed me my heart's desire just because I asked for it.</p>

<p>And then, out of the blue, I get an interview with Turbine in October 2003. I felt real hope for the first time in years that I might actually be able to follow my dreams. The interviews went well for a long while and they eventually flew me to Boston for a full set of in-person interviews. Even better, it was for working on Middle Earth Online. I can't imagine many other games I'd rather work on, honestly, given my passion for Tolkien and fantasy gaming, MMOs, RPGs, etc. It felt too good to be true.</p>

<p>Well, of course, it was. They ended up not hiring me. The funny thing was, I don't think it was because I lacked in technical ability. I did well on the tech parts of the interview - which still amazes me because I look back on how little I really knew about game coding back then and I... well, I laugh.</p>

<p>Not getting hired was the catalyst for a midlife crisis, I think. I had had a real taste of hope. For a brief time, I'd felt more alive than I ever had when I thought I might actually be able to work on a game like that. Somehow, unlike previous disappointments, I was able to channel the massive depression from that rejection into something useful.</p>

<p>I spent the next year or so tinkering around with game code. I absorbed massive amounts of knowledge from books, code libraries, forums, anything I could lay my hands on. I dove into driving problems - terrain generation, permutations, 3D math, etc. I tore apart and wrote rendering engines. I gave up games and much of my social life. I had never felt such determination or had such discipline before.</p>

<p>At any rate, in the summer of 2004, my wife saw a blurb in the University of Washington about a game certificate program - a year long course in game programming. By that point, I was starting to feel like I was spinning my wheels a bit. I knew enough to know I didn't know much and that I needed mentoring and people to bounce questions off of. So, I figured out how to pay for the course (thanks Dad!) and enrolled.</p>

<p>October 2004 was the beginning of a year of real transformation - because of that class. I became obsessed with the class, learning everything I could. I not only did the assignments, but wrote a complex game engine from the ground up. I literally ate, drank, and slept game code for the next six months. I would spend every waking moment either working on my day job or working on my game code. And I was in heaven doing it.</p>

<p>Of course, there was a price to pay, though. I realized how much I was disliking my day job and I just found it harder and harder to muster the discipline to work at it. They noticed, wanted to help me and tried their damndest to compromise. But I just couldn't put my heart and soul into it anymore. Or much of my brain. All I wanted to do was program games. What remained of my social life went by the wayside. I started seeing my family less and less.</p>

<p>Six months into the class, I realized I couldn't continue like that. I was wearing myself out, and not seeing my family was not good for any of us. So I decided to back off somewhat - concentrate more on work, see my family more, and only do the minimum for the assignments for a while.</p>

<p>Literally days after I'd made that decision, EA emails me and within a month, I had a job offer to work on the Sims as a programmer and enough money so that I didn't have to automatically turn it down because I couldn't afford to take the job.</p>

<p>But the job was in California and for various reasons, would require me to move there by myself for up to a year. I wanted to finish the game programming course, I wanted to fulfill agreements with my current job and stay to help finish a project I was relatively critical for, and I definitely didn't want to move out on my own.</p>

<p>But this was the opportunity I'd been waiting for and had worked so hard for years to get. There was no guarantee I'd get other offers in the Seattle area, though it was seeming likely. The game, while not my favorite genre, had interesting technology and would be a great project to work on. Most importantly, it would get my foot in the door, be that big break that I needed to get in the industry and prove (to myself more than anything!) that I could indeed do this.</p>

<p>So I accepted the offer, moved to California, got a little studio apartment and dove into the project with a will and a passion that surprised even me. Living on my own, I had no reason to go home at night and no real desire to, so I spent pretty much all my waking hours here. Not exactly healthy, especially since I'd been already doing a similar schedule for the six months previous.</p>

<p>Interestingly, I felt closer to my family in some ways. I flew home every other weekend and the time I spent at home was real quality time. I wasn't constantly thinking about what I should be doing to fill my spare time with code so I could get a gaming job. I was able to really relax during my weekends off - the first time really in years I'd been able to do that I think.</p>

<p>And when I wasn't in Seattle, I was at work, pouring my heart and soul into a game, absorbing code, learning the engine architecture, learning to program on consoles instead of PCs, and generally having the time of my life.</p>

<p>And then, one day, the project ended. We had a release candidate and no more code changes were being accepted. And then it passed internal testing, then external testing, and finally went gold.</p>

<p>It was hard to come down off that mental mind-set - buried in crunch mode. I felt lost for a while again. But then I was basically told "take some time off". So I did and I flew home for a couple weeks.</p>

<p>I immediately got sick for a week, of course, hacking up a lung, etc. A year of stress (even good stress) will do that to you. My body rebelled and I let it, finally. But I also completely relaxed. I played games again. I worked on a project of my own, just because it was fun. I spent time with my family and had real conversations with my son. I visited friends.</p>

<p>And now, I'm back at work, starting pre-production for our next project. After an initial day or so of confusion where I got to know and grok my new bosses (and vice versa) and figure out what I'd like to be doing on the project, I'm now figuring out tasks and diving into them with gusto. Despite initial confusion, it's clear that I do indeed have some say in my destiny here, which is extremely important to me. It makes a huge difference being asked to do something instead of being told.</p>

<p>So, life is back to a new "normal" for me, I think. After two years of pretty intense change, I think I can finally relax a bit, settle into my own skin, start enjoying my life with less stress again, and really enjoy my new career, because it's what I've wanted for most of my life.</p>

<p>Oh, and go home in the evenings. =)</p>

<p>And impatiently wait for next May, when my family can move down with me.<br />
</p>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/10/its_been_an_int.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/10/its_been_an_int.html</guid>
<category>life</category>
<pubDate>Wed, 19 Oct 2005 02:40:14 -0800</pubDate>
</item>
<item>
<title>From Under My Rock</title>
<description><![CDATA[<p>Yes, I'm still alive.</p>

<p>Really.</p>

<p>The last few months have been some of the most intense (and enjoyable!) of my life. I've dived into a new (to me) codebase. I've finished my first shipping game product. I've made a good impression. I've made some new friends. I've lived completely on my own for the first time since I was 18. I've done my own laundry at least once!</p>

<p>All that and more, in fact.</p>

<p>I've learned that most of my preconceived notions about working in the game industry were..dead on accurate. Some were not, but for the most part, there was very little that I didn't expect. It was a lot of work, but I enjoyed (almost) all of it. The code was nothing magical, it was just code. There was nothing I couldn't understand, given a little study. The people I worked with were very intelligent, but I didn't feel intellectually dwarfed (most of the time =) ). I was thrown into a fire, but my firefighting skills were up to the task.</p>

<p>In short, I've found my niche in life and I'm happy to be here.</p>

<p>I'm also glad that I have some time off to recover and relax. =)</p>

<p>I'm coming to Seattle this weekend, then going to some classes the week after that, then coming to Seattle again for another week (possibly 2) after that. The rest of October and November will be relatively peaceful, no crunch time at all. I'll take some more classes, do some prototyping, write some post-mortems, and figure out how to accomplish some new tasks on our next game. Oh, and maybe write a few more journal entries, since they've been so nonexistent for a while.</p>

<p>In a few hours I'll get to see my family again after a very-long month of working, and I'm really looking forward to that. So, for now, I'm off. Hope everyone is doing well. </p>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/09/from_under_my_r.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/09/from_under_my_r.html</guid>
<category>geek</category>
<pubDate>Fri, 16 Sep 2005 17:17:48 -0800</pubDate>
</item>
<item>
<title>Sleep?</title>
<description><![CDATA[<p>*blink blink*</p>

<p>I think I'll sleep...now...</p>

<p>*thump*</p>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/07/sleep.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/07/sleep.html</guid>
<category>silly</category>
<pubDate>Wed, 27 Jul 2005 17:37:51 -0800</pubDate>
</item>
<item>
<title>Almost There...</title>
<description><![CDATA[<p><A HREF="http://www.moviewavs.com/cgi-bin/moviewavs.cgi?Star_Wars_Episode_IV_A_New_Hope=almostthere.wav">Almost there...</A></p>

<p>So close!</p>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/07/almost_there.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/07/almost_there.html</guid>
<category>silly</category>
<pubDate>Tue, 26 Jul 2005 19:09:42 -0800</pubDate>
</item>
<item>
<title>Hot Coffee and GTA</title>
<description><![CDATA[<p><A HREF="http://sfgate.com/columnists/morford/">I think this pretty much sums up my opinion on the GTA thing</A></p>

<p>*shakes head and wanders away*</p>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/07/hot_coffee_and.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/07/hot_coffee_and.html</guid>
<category>gaming</category>
<pubDate>Fri, 22 Jul 2005 14:29:55 -0800</pubDate>
</item>
<item>
<title>Some previews and screenshots!</title>
<description><![CDATA[<p>So, EA invited some press folks recently to show off some games.  The game I'm working on, Sims 2 Console, has been getting really good reviews (with good reason, honestly - it's going to be a very good game, imo!).  Now that some screenshots and reviews are public I can point to some public URLs.</p>

<p><A HREF="http://www.1up.com/do/previewPage?cId=3142013">Sims 2 Console Preview from 1up</A><br />
<A HREF="http://www.gamespot.com/ps2/strategy/thesims2/preview_6129169.html">Gamespot preview</A><br />
<A HREF="http://www.gamespot.com/ps2/strategy/thesims2/screenindex.html">Screenshots</A> (All of the latest ones show what I've been working on in some ways - rendering the Sims themselves!)<br />
<A HREF="http://www.gamespot.com/ps2/strategy/thesims2/screens.html?page=14">Sims in the hot tub</A> (One of my many tasks was the costume-changing code =) )</p>

<p>Obviously, I'm not the only person who's had a hand in rendering the Sims - all the artists, modelers, animators, etc have done a fantastic job and the sheer amount and quality of content is amazing.  In addition, I'm only part of a small team of programmers responsible for Create-a-Sim, Sim rendering, etc.  I just happen to have spent a lot of my time here doing the texture compositing, costume-changes, and general rendering of the Sims.</p>

<p>Anyway, just thought I should share since we're getting lots of good reviews so far and that makes me all glowy-happy.</p>

<p>In other news, I spent over $500 this week getting my brakes fixed on my car.  Ug.  I got locked out of my house when I left the car (and my keys) in the shop overnight, so work sprung for a hotel so I could get some sleep.  Awful nice of them, actually.  Karen and Nicky are arriving tomorrow for the weekend, so I'm taking the weekend off (mostly) and will be relaxing and enjoying the time off.  Maybe I'll actually do some laundry and get the furniture we bought last time Karen visited (a month ago) unpacked from the boxes and put together so I have more than a bed in my apartment.   Maybe =)</p>

<p>Hope everyone is doing well - I've been in crunch mode for a while now and haven't been paying close attention to outside life.   That should end very soon, though, and I'm looking forward to slowing the pace a bit.</p>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/07/some_previews_a.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/07/some_previews_a.html</guid>
<category></category>
<pubDate>Fri, 15 Jul 2005 22:45:33 -0800</pubDate>
</item>
<item>
<title>Late Night Coding Haiku</title>
<description><![CDATA[<p>Assert fells tree in<br />
forest of code.  But no one<br />
Around.  Heisenbug?</p>

<p>Eyelids heavy and<br />
no more Dew.  How can I work?<br />
Need more power-ups!<br />
</p>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/07/late_night_codi.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/07/late_night_codi.html</guid>
<category>silly</category>
<pubDate>Tue, 12 Jul 2005 03:39:20 -0800</pubDate>
</item>
<item>
<title>I Love Perl...and I Hate Perl</title>
<description><![CDATA[<P>I've worked with Perl for over 10 years now, off and on.  At various times, I've made a living at it.  In fact, if I had to rank my skills in various languages, it would probably go somethine like this:</P>

<TABLE BORDER=0>
<TR><TD>Guru:</TD><TD>C++, Perl</TD></TR>
<TR><TD>Expert:</TD><TD>Java, SQL, HTML, Javascript</TD></TR>
<TR><TD>Good:</TD><TD>DOS, C-Shell, Bourne-Shell</TD></TR>
<TR><TD>Novice:</TD><TD>Lua, Python, Visual Basic, PHP</TD></TR>
</TABLE>

<P>I can do some pretty amazing things with Perl - it's a wonderful language that is almost without peer in parsing and batch processing.  (Lots of people say that Python is better, and from what I can tell, it can do pretty much all that Perl can, but I just have a hard time liking it. it's an aesthetics thing for me - I can't stand the enforced indentation).</P>

<P>Like any other language, though, Perl has it's good and bad points.  On the plus side, Perl allows some very rapid development of certain types of applications - text processing, batching, etc.  It has a lot of built-in data structures and it's way of handling data is very powerful.</P>

<P>On the down side, there are almost always a number of different ways of writing the same code and if you're not careful, you can write some almost completely unreadable code.  Perl is well known for obfuscated code and seems ideal for doing "clever" tricks that are optimized, but take years of practice before being able to understand them or use them wisely. Basically, what I've found is that every Perl programmer seems to have their own unique style, not just in formatting, but in what parts of the language they use to accomplish the same tasks.</P>

<P>As a small example, take the methods for passing parameters to a method. To pass an integer, a string, and 2 arrays to a method, there's a number of different ways that I know of off the top of my head:</P>

<PRE>
&foo( $n, $s, \@a1, \@a2 );
sub foo
{
  my ( $n, $s, $aref1, $aref2 ) = @_;
  my @a1 = $$aref1;
  my @a2 = $$aref2;
}

&foo( $n, $s, \@a1, \@a2 );
sub foo
{
    my( $n, $s ) = ( @_[0], @_[1] );
    my @a1 = @{ @_[2] };
    my @a2 = @{ @_[3] };
}

foo $n, $s, \@a1, \@a2;
sub foo( $$@@ )
{
  my $n = shift;
  my $s = shift;
  my @a1 = @{ @_[0] };
  my @a2 = @{ @_[1] };
}

foo $n, $s, @a1, @a2;
sub foo2( $$\@\@ )
{
    my $n = shift;
    my $s = shift;
    my @a1 = @{ @_[0] };
    my @a2 = @{ @_[1] };
}

foo( $n, $m, \@a1, \@a2 );
sub foo ($$**)
{
    local( $n, $s, *a1, *a2 ) = @_;
}
</PRE>

<P>And there's even more ways to do this as well, but I'm not including them all for brevity - I just wanted to illustrate my point.</P>

<P>Ultimately, this flexibility in syntax is both a good and a bad thing - it makes the language very powerful and flexible, but it also makes it virtually unreadable at times and means that everyone is going to get used to doing things in different ways - making other people's Perl code much harder to "translate".</P>

<P>Anyway, there really isn't a lot of point to this entry except to say that I love Perl...and I hate it.  This came up, of course, because I've been doing a few "simple" scripts in Perl lately for work.  As always happens, the "simple" job turns into a massive behemoth of a job and the scripts to handle it get convoluted, loaded with special-case handlers, etc.  Perl allowed me to do some very elegant solutions, but everyone else who's looked at the code has just boggled because it's...well, Perl, and they didn't know
Perl could do many of the things I did with it.</P>

<P>The gist:  code reviews of Perl are a bitch =)</P>
]]></description>
<link>http://www.devnullsoftware.com/archives/2005/07/i_love_perland.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/07/i_love_perland.html</guid>
<category>geek</category>
<pubDate>Fri, 08 Jul 2005 15:23:06 -0800</pubDate>
</item>
<item>
<title>Tired but Happy</title>
<description><![CDATA[<P>Wow, I can't believe how busy I am lately!  We're getting ready for an
internal deadline and the whole team is working furiously, including me.
It's really exciting being part of a team like this - like a well-oiled
machine running at top performance.  I haven't been a part of something like
this since the beginning of RealArcade.   It's a wonderful feeling!</P>

<P>Of course, I've been working pretty hard lately.  It's a damn good thing I
enjoy this job, or I'd be hating life right now.  I can honestly say,
though, that I'm doing it because I'm a perfectionist.  I'm putting a lot of
pride into my work and I want to put out the best damn product I'm capable
of.  When this game comes out, these Sims are going to look incredible!
(Hell, they already DO!)</P>

<P>It's funny, actually.  I can understand some of the bad reports I read about
EA before I came here.  I can understand why people would feel overworked,
underappreciated, etc.  If I wasn't absolutely having the time of my life
and pouring my heart and soul into this work, I might feel overworked too.
All I can say is that it's all about where you are in life.  The way I look
at it is that it's a tough industry - you either love the work and WANT to
devote your heart and soul to it, or it's probably not the right industry
for you.</P>

<P>I realize I'll probably incite a few arguments with that last statement, so
let me clarify a bit.  I do believe that it's possible to still maintain a
balance in life while devoting your heart and soul to a project.  "Crunch"
time is NOT all the time.  We have crunch time for very logical reasons
caused by external deadlines that cannot be changed ("Oh, hey, we're a
little behind in our code this year, would you mind postponing Christmas for
a few days please?").  But when we don't have crunch time, we SHOULD take
time off for the rest of life - see our families, go jet-skiing, play some
games, get our oil changed, etc.  Life doesn't have to be balanced ALL the
time, but it does need to be balanced in the long run.  A sacrifice of a few
weeks here and there to put out a good product is very worthwhile, in my
opinion.</P>

<P>I will also put forth my opinion that crunch time is not caused just by bad
scheduling.  Crunch time is caused as much by engineers like me who want to
tweak every detail to perfection as designers and managers who want every
little feature possible to get into the game.  Ultimately, we all want the
same thing - to put out the best game we possibly can. Personally, I'm going
to get a huge thrill seeing this game go on the store shelves and knowing
that part of it is an example of my best work. That will make every extra
hour I've put in here worth it for me.  No regrets.</P>

<P>But I also guarantee that when all is said and done, I'm going to be just as
fanatical about spending quality time with my family.  I firmly believe that
it's possible to have sporadic crunch times and still have a high quality of
life outside work - you just have to be vigilant about knowing when to stop
tweaking and go home.  Sometimes that's pretty hard for us
obsessive/compulsive software engineer types.  That whole "just one more
turn and then I'll go to sleep!" (or in Everquest terms, "just one more
bubble of xp, then I'll go to bed!") is a phenomenon that happens to many
gamers.  In our hearts, game developers are gamers too and just as
susceptible to the problems.  Be vigilant.</P>

<P>What I do know for sure is that I'm being paid good money to do something
that I've wanted to do all my life and would do on my own anyway.  How could
I not be grateful for that kind of opportunity or not want to give it my
all?  After many years of waking up in the morning and half the time
dreading going in to work, I now wake up every morning cheerful.  Having
literally dreamed a solution to something, I can't wait to get in to work
and code it.  Every time I walk in to the lobby at work, I can't help
grinning.  That kind of satisfaction in life is so hard to achieve - I'm
amazed that I've found it, and I have no problems working hard to make sure
I continue to have it.</P>

<P>OK, I'll get off my soapbox now.  Hopefully I won't be tarred and feathered
too badly for having an opinion that probably doesn't match that of many
others.  Realize that it's just that - my opinion.</P>

<P>In other news, I had a really wonderful weekend when Karen came down and
visited.  We ended up shopping a lot and buying a bunch of stuff to get my
new place all set up.  It was good to get away from work for the weekend - I
needed the break.  This coming weekend, I'm flying home for a long weekend.
I'm looking forward to seeing my son and my friends and taking another
break.  Besides, my bosses are giving me the evil eye and telling me to get
the hell out of here for a few days, so I guess I can't argue with that =)</P>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/06/tired_but_happy.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/06/tired_but_happy.html</guid>
<category>geek</category>
<pubDate>Mon, 27 Jun 2005 15:32:07 -0800</pubDate>
</item>
<item>
<title>Climbing out of my hole for a bit</title>
<description><![CDATA[<p>Well, it's been a while since I did a real entry.  I've been...busy.</p>

<p>Work is going reasonably well still.  There were a few days last week when I was despairing that I would be able to do what was needed to finish the project - I didn't think the problems were solvable or at least implementable in time.  But one of the major ones turned out to be a stupid bug on my part (though a very subtle one).  Once that was solved, things got back on track and I'm now confident that the new Sim model and rendering system works as designed.  Now I just have to work out the last few kinks and optimize the hell out of it.  And after that, there's still a few projects on my task list as well.</p>

<p>It's going to be a busy month ahead still.</p>

<p>Despite being dead on my feet some days, I'm still having a great time.  The work is very satisfying when I can wrangle the code into submission.  Seeing a beautiful Sim on my screen for the first time was a moment I'll never forget =)  Especially given how many "not so beautiful" Sims I'd seen before that =)</p>

<p>My new place is interesting.  It's a small studio apartment in downtown San Carlos - about 3 miles from work.  The walls, it seems, are pretty damn thin, and my upstairs neighbors like to move furniture around at 2 am.  And loud conversations.  And have noisy sex.  They walk like a herd of elephants.  The cars going by in the morning wake me up as well.  So I've not been doing so good on sleep this week.  I'm getting more used to the ambient car noise and the stomping upstairs I can deal with.  But still, I need to somehow figure out how to soundproof the place a bit.  I'm not there much, but when I am, I really need sleep.</p>

<p>Karen is coming down to visit this weekend and she's promised to drag me away from work to go shopping for the ten million little things I need.  Things like soap, toilet paper, clock, nightstand, couch, microwave, toaster, dishes, silverware, cookware, etc.  Somewhere in all that I'm looking forward to just seeing her and taking a couple days off.</p>

<p>Sometime soon, I need to find a gaming group around here.  I miss gaming and need something to do when I'm not at work..so I'll have a reason to not be at work sometimes =)  Some balance in life is a good thing =)</p>

<p>That's all for now.  At some point I'll have time to write up more of the technical details of what I'm doing because it's some pretty neat stuff.  Probably a post-mortem thing though, at this point.  Ah well.<br />
</p>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/06/climbing_out_of.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/06/climbing_out_of.html</guid>
<category>geek</category>
<pubDate>Thu, 16 Jun 2005 13:00:15 -0800</pubDate>
</item>
<item>
<title>Sims 2 Console - Best Simulation Game Nominee at E3</title>
<description><![CDATA[<p>It's good to have positive feedback from the industry.  The game I'm working on (Sims 2 Console) has gotten a nomination at E3 this year for best Simulation game from the Game Critics Awards: Best of E3 2005.  This is great news and means that I'm working on a project with pretty high visibility.</p>

<p>The full nominations are <A HREF="http://www.gamecriticsawards.com/nom.html">here</A>, but the list in our category is:<UL><br />
<LI>Nintendogs (Nintendo for Nintendo DS)<br />
<LI><B>Sims 2 (Electronic Arts for All Consoles)</B><br />
<LI>Spore (Maxis/Electronic Arts for PC)<br />
<LI>The Movies (Lionhead Studios/Activision for PC)<br />
<LI>Trauma Center: Under the Knife (Atlus Co. for Nintendo DS)<br />
</UL></p>

<p>Neat!<br />
</p>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/05/sims_2_console.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/05/sims_2_console.html</guid>
<category>gaming</category>
<pubDate>Tue, 31 May 2005 11:18:09 -0800</pubDate>
</item>
<item>
<title>Having a Great Time, Wish You Were Here!</title>
<description><![CDATA[<p>Today is the beginning of my third week at EA and I figure this is a good time to post a status update.  I'm having the time of my life here.  I still find it hard to believe they're paying me to do something this fun!</p>

<p>My first week was mostly spent digging deep into the code base.  It's large and complex and it takes a lot of digging to really understand it.  In addition, because of it's age, it's been through a lot of hands, each with their own ideas of design and architecture, so the code is typical for that kind of history.  Lots of little gotchas and false paths, lots of dead-end code paths, etc.  Nonetheless, I'm finding that despite its warts, I'm really liking having a code base that allows me to really do some complex stuff without having to write all the infrastructure from the ground up.  Most of the pieces I need are already there - it's just a matter of finding them =)</p>

<p>Early last week I think I got past the initial "huh?" stage of dealing with a new codebase and started to contribute and really think about how to do the tasks I've been given.  As is typical in many game projects, the initial design is relatively fluid and not only am I dealing with a set of tasks, but those tasks can change quite frequently.  Luckily, I'm somewhat used to that, and once I realized that the project design was fluid, I adjusted my mindset and working habits to accomodate that.</p>

<p>So much of last week was spent not really writing a lot of code (and what I did write, I ended up throwing out), but instead hammering out the design, and figuring out how to rearrange tasks given some new design changes.  Turns out that my initial task of rendering, designing the data structures, and handling NPCs didn't make a lot of sense given some of the design priorities that weren't understood initially.  Originally, the plan was to make the NPCs a certain way for optimization of data and rendering speed.  But, for various reasons, that way wasn't flexible enough, and so the plan was scrapped and NPCs will now be done a different way.  This actually made things a lot easier for the engineering, art, and design departments, but, of course, there's always tradeoffs, and we'll have to work hard to optimize them in different ways now.</p>

<p>Also as part of my initial foray into the codebase to figure out how to render NPCs in the new way, I learned a lot about how this rendering system currently works.  There were more tasks to use a new system to render PCs with various shaders, texture pre-compositing, etc that were assigned to another engineer originally.  But since I now understood that section of code pretty intimately and he hadn't gotten to that task yet, we moved the task to my plate.  So I'm currently working on texture-compositing, blending, and rendering of all Sims (NPCs and PCs), both in-game and in the Create-a-Sim portion of the game.  This is pretty exciting stuff for me and I'm digging in with a vengeance.  As of this morning, I have a first stab at doing all of that in-game, but haven't been able to test it yet.  I fully expect it to blow up and require more work, but at least the major initial portion and design work is done.  After this, I have lots more on my plate, but so far this task is taking far less time than I originally thought it would, so unless I've made some major mistakes in the logic of what I'm doing, I'm ahead of schedule right now.</p>

<p>So far, this has been exactly the challenge that I needed in my life.  I realized last year when I was buried deep in the coding for the game programming class that I had found my niche.  Nothing I had ever done before in programming challenged me like that code, or held my interest so much.  I was hoping that moving to a new codebase wouldn't take away that challenge and ability to do complex, interesting code.  My worries were unfounded though, as I'm definitely feeling challenged here.  I'm not feeling overwhelmed, though (most of the time anyway), so I'm achieving that fine balance between being challenged and being overwhelmed.  I can certainly say that I could never have done something like this without writing my own engine and game code first, though.  Everything I learned doing that I'm putting to good use here.</p>

<p>In many ways, the shiny new-ness of the job is wearing off.  It's feeling more like any other coding job in some ways, and that's a good thing.  I'm not doing unfamiliar things or totally revamping my working habits or thought processes.  Things are familiar enough that I understand enough to fit in and be quickly productive.  But in the important ways, the subtle things that were making me so damn unhappy in my previous jobs are different.  I'm working on something that I can really, truly enjoy.  Instead of making things that are just useful, I'm making things that people will truly enjoy.  That's important to me, and one of the major reasons I've wanted to change to a career in game development.</p>

<p>The only thing that makes it not-so-good is that I miss my family.  It's a catch-22 though.  I want them here, but I also know that if they were, I wouldn't be doing so well in my job right now.  If they were here, I'd feel guilty about not seeing them and that would just make us all unhappy.  As it is, I can dedicate all the hours I want to doing well at my new career.  Right now, that's critical, both to make a good impression (so far, so good!) and to really learning and becoming valuable.</p>

<p>So far, I've been dedicating a lot of hours to this.  I took this last Saturday off, and the Saturday before that, I didn't come in to work until 5pm or so.  Other than that, though, I've been here pretty much everyday from 9-10am or so until around 1-2 am (that's approx. 176 hours since May 16th, including today).  And before people start crying foul, EA is not at all asking me to do that.  Certainly no one else on the team is pulling anywhere near those kinds of hours that I know of, and that's a wonderful thing.  I would be extremely worried about my future here if others were doing these kinds of hours.  We're not in crunch mode by any means yet, and I suspect we won't be for a couple more weeks yet.  Even then, it's a relatively short expected crunch-time (a week or two?) and then an estimated week or two of normal work hours and then a couple more weeks of crunch.  I'm actually impressed with how well this project is being managed and scheduled.  They're really prioritizing scheduling to make sure that crunch-time is minimized.</p>

<p>So much for the horror stories of EA, huh.  Like the horror stories I always used to hear about Microsoft, everything depends greatly on what department you work in, and what projects you're working on.  Things can go badly sometimes and when that happens, it gets stressful.  Honestly, that's no different than the rest of the computer industry, though.  Crunch time happens - again, just like the rest of the industry.  But so far, I haven't seen any signs of the horrors that I heard (and read) about before coming here.  Not having been through a full game development cycle here yet, I can't say with certainty how things are, but from everything I can gather so far, there's nothing to worry about here with respect to constant crunch time, etc.  At least on this project, anyway.  I can't speak for other teams - but I do know that when I go home at night, my car is one of the few left in the garage =) </p>

<p>I'm flying up to Seattle next weekend and I'm really looking forward to it.  My son is testing for his next belt in martial arts, we're having dinner with a couple friends, and I'll get a chance to see my family again.  I know, for me, I do very well indeed on a schedule where I can intensely focus for a week or three, then have a few days of down-time completely away from code.  Not working on any side projects right now helps a lot with that, too.  I'm starting to feel a little run-down, and I can tell I'm going to be really ready to see them.</p>

<p>Somehow during this, I also managed to find a place to live here.  Currently I'm staying at a Residence Inn for a month (part of the relocation package).  I've been looking at getting a room in a shared-living situation as well as getting my own place.  The tradeoffs being that if I get a roommate, I can live cheaper and have a nicer place..but less privacy and I'd have to deal with roommates.  Getting my own place is a little more expensive (mainly because of utilities and the fact I'll have to buy things like towels, plates, silverware, a bed, etc), but not terribly so.  I would have all the privacy I wanted and could live on my own terms, clean up as I wanted to (or not), and not have to answer to anyone.  In the end, I went with option 2 and found a nice little 1 bedroom apartment for $750/mo.  The landlord is really great and it's less than a mile from work.  It's a little far for a daily walk, but easily bikeable and it's a quiet location right near downtown San Carlos.  I move in on June 15th.  So, that's a load off my mind at least.</p>

<p>On the social side of life, well...ok, I don't have one right now.  I've joined a mailing list and LJ community for some of my shared interests, and I suspect I'll eventually meet people.  So far, though, I haven't had a lot of urge to get out and socialize - I'm enjoying my work too much =)  I thought about going to Baycon this weekend, but on Saturday I just ended up doing errands and playing a game I checked out from the library here.  I really just needed the downtime and going to Baycon would have been fun, but not relaxing.</p>

<p>I'm really enjoying Warhammer 40K: Dawn of War so far.   While the gameplay is relatively standard for an RTS, there's a few new elements that add a fair bit of depth and the graphics are truly amazing.  It's really, really FUN to just watch the Space Marines and Orks blow the crap out of each other.  I suspect I'll get bored with it soon, like I usually do with RTS's after a short amount of time, but for now, I'm enjoying the game.  I also bought Armies of Exigo from the company store (with some of my employee purchase points), but haven't played it yet.  I remember reading about it, though, and I'm looking forward to playing it.  In my copious spare time =)</p>

<p>I think that's about it to report about my life right now.  Summary: enjoying the hell out of the job, spending all my time doing said job (on my own volition) because I'm enjoying it so much.  Found a place to live.  Missing my family and friends, but doing ok for now, especially since I wouldn't have time to see anyone even if they were here =)  Feeling very, very fulfilled in life right now.<br />
</p>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/05/having_a_great.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/05/having_a_great.html</guid>
<category>geek</category>
<pubDate>Mon, 30 May 2005 14:36:27 -0800</pubDate>
</item>
<item>
<title>Funniest Movie Ever</title>
<description><![CDATA[<p><A HREF="http://www.ifilm.com/ifilmdetail/2663936?htv=12&htv=12">Star Wars Episode III : A Lost Hope</A></p>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/05/funniest_movie.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/05/funniest_movie.html</guid>
<category>silly</category>
<pubDate>Sat, 21 May 2005 19:58:39 -0800</pubDate>
</item>
<item>
<title>Star Wars: Revenge of the Sith</title>
<description><![CDATA[<p>Revenge of the Sith rocked.  It wasn't quite up to Empire Strikes Back (my favorite), but I have to say I think this is my second favorite of the series.</p>

<p>George, you're redeemed.<br />
May The Force Be With You.  Always.</p>]]></description>
<link>http://www.devnullsoftware.com/archives/2005/05/star_wars_reven.html</link>
<guid>http://www.devnullsoftware.com/archives/2005/05/star_wars_reven.html</guid>
<category>geek</category>
<pubDate>Fri, 20 May 2005 16:36:48 -0800</pubDate>
</item>


</channel>
</rss>