Categories
Game Development Games Geek / Technical

I’m Live not-at-the-GDC!!

The big news in game development these days has been surrounding the Game Developers Conference. A number of indie developers have covered the event, including David “RM” Michael, Saralah, Xemu, and Thomas Warfield. I’ve had to read about it and see pictures of people I’ve met in person or online, missing out on the fun.

I’ve read a few of the writeups that David Michael wrote for GameDev.net, and I intend to read the rest. I’ve also been reading Game Tunnel’s IGF coverage, including interviews and day-by-day news. It’s just like being there…only not.

Congratulations go out to those who made it to IGF finals! Some amazing games have been made by indie game developers, and they serve as an inspiration to the rest of us. This time next year, I hope to attend.

Categories
General

Comment/Trackback Spam

Ever since I started this blog, I’ve gotten comment spam and trackback spam. It used to just be someone using a handle that will link to some poker site, but now they are getting insulting. “It’s people like you are the problem with this country” was the latest one. Well screw you and your online poker website!

EDIT: And it seems that Seth Godin is also posting about blog spam, but this one is of a different nature.

Categories
Personal Development

My Last Class Assignment

I am coding my last assignment of the quarter. It’s the huge project for the class, and it is due on Thursday. I didn’t know that fact until last Thursday. The class forum shows that I wasn’t the only one, which makes me feel a bit better about “forgetting” something that wasn’t very clear to begin with.

Anyway, within a few short days my last assignment will be complete, and after finals the next week, school itself is over. No, I will not have a graduate degree, but I will have more time which can be utilized in more meaningful ways. I can work on my own projects. I can work on my own skills. I can reintroduce myself to people I haven’t seen in some time. It’s weird how this time last year I never valued my time and was always stressed just trying to get by! I guess it shows how much I’ve grown, but it also shows me that I have a lot to learn as well.

In the meantime, since my internship requires me to attend school, I’ll need to find another job soon.

Categories
General

Blogging is Advanced Netizenship

The concept of “citizen publishing” is one I heard originally from Ripples. It inspires images of any person being allowed to say what he wants to say without some corporation or government telling him he needs to conform to rules and regulations or satisfy some shareholders or appeal to some mass market. Naturally some people may not have much to say compared to others, but that just gives people the incentive to blog greatly. People read blog posts by Seth Godin because he is not only an authority in his area but also writes about important and compelling things. On the other hand, if someone blogs about inane things or makes stale arguments, it is less likely to be read. But the nature of blogs is that he’s still there, and if someone wants to listen to him, he/she can.

To paraphrase a line from The American President, blogging is advanced netizenship. You can post in an IRC channel, and within minutes your comments are gone, possibly remembered in some obscure log file. You can post in a web forum, among all the other posts there. Eventually it can drown out. But your blog is the online extension of yourself. Your commentary. Your views. Your growth experiences. People may have different opinions, but you have yours.

From Playing With Fire:

When we engage in blogging, we are playing with fire. We are harnessing the power of open communication in ways which will shape our future in ways we can’t even imagine.

To drive this point home, you should realize when we blog about something, we actually change our future in respect to that area on the fly. Now, if that isn’t that a sobering thought, what is?

Sobering indeed. Each blog post has the power to change viewpoints, politics, public opinion, and trust levels, and wielding such power should give people pause. One of the things analysts will tell you is that while blogging has had the power to topple major mainstream news figures and politicians, it is also something to be wary of. Someone may post something erroneous, and the nature of blogging is that it will spread like fire.

Of course, what this fails to take into account is how fast corrections can be spread as well. Print newspapers have to wait a day to post a correction, and the correction will usually be buried in some 12th page or something. Bloggers making corrections are front and center. Still, the concept of any one person being able to cause such a massive ripple through the World Wide Web, of any one person being able to publish his/her information to the world without placating some commercial publisher, of individuals all having so much more power than before is awesome. Nothing has probably had as much inspiring discussion about it as when the idea of “government of the people, by the people, for the people” was first introduced.

Categories
Game Development

Starting Small

I found this link today in my blog reading: Just Barely Enough Design. It goes through the idea of starting small instead of trying to undertake something huge.

To this day, I am sorely tempted to undertake the whole grand dramatic turn-the-world-upside-down vision…or nothing at all. The trouble is more often than not you end up with exactly…nothing at all.

This is one of the (recurring) lessons from the dotcom days I’ve beat into my head the hard way (yup, way over-planned, over-designed, over-architected and flopped – and that’s how I finally got to be a big devotee of agile software development).

It also quotes Linus Torvalds:

Nobody should start to undertake a large project. You start with a small trivial project, and you should never expect it to get large. If you do, you’ll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don’t think about some big picture and fancy design. If it doesn’t solve some fairly immediate need, it’s almost certainly over-designed.

The idea of starting small is one of the reasons why Game in a Day is so attractive. I know I won’t be making anything huge or general so I can concentrate on just doing it.

Categories
General

Agile Development Seminar

My university is hosting a series of seminars for computer science alumni. I’ve never really gone to seminars or speaking engagements. I had the privilege of hearing Robert Spector speak at a company-wide seminar on customer service, so employees were pretty much supposed to be there.

Today was the first seminar in the series titled Agile Methods for Effective Software Delivery. I originally wasn’t going to sign up for it, but then I thought, “I don’t really have many opportunities to meet developers. Why miss out?”

I’m glad I did sign up for it. The actual presentation wasn’t terribly new and informative, but then I think it was geared towards an audience of alumni from the 80s and 90s, people who may have been out of the touch with the latest development methodologies. Now, I don’t have much practice with networking, but I also understand that it is usually the most valuable part of such events. So I introduced myself, made some conversation. People exchanged business cards, and I of course didn’t have one (next time, Gadget … next time). I got some advice from a few people regarding how to become more valuable in an employer’s eyes and focus on a set of skills. I heard some anecdotes about experiences in jobs and with customers and management. Definitely informative. And right before I left someone came up to me to talk about my job situation and experience, giving me some tips.

I’m definitely going to sign up for the seminar next month, Emerging Trends in Business Information Visualization. I don’t have a direct interest in the topic, but an emerging field is always good to learn about, especially if it means getting in on the ground floor. Other topics, including Open Source Software and Personal Knowledge Management, sound good and I’ll definitely attend those. And of course meeting with other alumni would be the best part, including new people and those that I met today. Now I only need to make some business cards…

Categories
Game Development

Programming Goals: 5 Hours/Week

At the Chicago Indie Game Developer meeting on Sunday, we had the biggest turnout since I started attending. Among the new faces were some developers of the MMO game Endless Ages (the website of which seems to be down). It was interesting listening to them talk about working in the mainstream game industry and being between jobs. It seems more than a few of us are talking about getting new jobs. B-)

Anyway, my goals for the past month were to learn about game APIs and setting aside time to practice programming. As I described before, I did look into Kyra a bit, but only enough to run the demo and go through the tutorial a little bit. So that goal is somewhat met. On the other hand, I didn’t do much in the way of programming. Currently I’ve been working on homework because I have to do so. I think to myself that I will work on my own projects when the homework is completed, but the problem I have is that the homework either never gets finished or I have to immediately start on the homework for the other class I am taking. The result is that a month went by without me dedicating much time if at all to programming.

This month, besides getting more intimate with Kyra, I picked what should be an achievable goal: 5 hours per week. Each week I will dedicate 5 hours to programming in C++. It will be my homework that will get pushed off this time. It should be fine since most of my productivity comes when I get in the zone about the homework anyway, and that won’t happen until I’ve read through and understood the Java code involved. I’ve found that my homework can get completed within hours that way.

Last month I failed to program partly because I never got around to picking a hard number of hours or lines of code or anything. It was just stated as, “Need to program more” which is too vague and doesn’t inspire me to do much. If I have to program for 5 hours a week, however, I can track it. Is it Friday? I’ve only worked for an hour all week? Well today and tomorrow have to make up the other four! Also, if I program for longer than 5 hours in a week, I am not counting it towards the next week. The goal is to get practice and learn while doing it.

Before the meeting broke up, I asked the programmers there for advice. I explained that I know that I need to practice more, but I also wanted to know if they had any other suggestions on what I should be doing. Everyone basically said that I should “just do it”. There. What could be simpler?

Categories
Personal Development

Having Goals and Obstacles

While perusing my now even longer list of RSS feeds in Firefox, I found an article about Acrobatic Rabbits. It was a shareware blog, so I was curious. It basically describes how the blogger’s rabbits don’t have the will to even attempt to escape simple wire meshes. Simple obstacles are all that is needed to prevent the rabbits from going where the owner doesn’t want them to go.

The last paragraph was insightful:

Just like a technically inadequate fence keeps rabbits inside, many people are kept inside their comfort zone by all sorts of barriers that are often mostly in their heads. How many part-time shareware authors keep dreaming of quitting the day job, but never do for all sorts of reasons? Reasons that, upon closer inspection, that are merely obstacles that could be scaled without too much trouble.

I have goals. Some aren’t nearly as fleshed out as I would like them to be, but they exist. But why is it that, for example, last month I was able to determine that I don’t practice programming nearly enough in order to gain experience and skill, and today I find that it is still the case? I could blame it on the fact that I haven’t been able to do so since I have work and school, both full-time, but that would just be placing blame somewhere else. If I want to do it, then I should just do it. I should be able to schedule time to exclusively work on coding, and then keep the commitment. I think the main obstacle isn’t necessarily some outside force so much as my own perception of how much of a force it is.

Thinking about the programming issue, I know that it is definitely possible to schedule time for it outside of class, homework, and work. I just haven’t done it because I let other things slip into my schedule without consciously saying that I am giving up something else. In Getting Things Done, David Allen talks about how we need to be able to not only say what we are doing, but also be ok with what we aren’t doing. Other time management and productivity authors have talked about the importance of saying no to opportunities that may not necessarily be opportunities.

This weekend, I wanted to try to do a Game in a Day. Unfortunately I spent Friday night playing a video game for way too long and didn’t get to sleep at a decent time. So I woke up later, which caused my entire day to start later. I was hoping to get the Game in a Day out of the way within 5 hours, giving myself the rest of the day to work on game reviews for Game Tunnel and my homework for class.

It is now early Sunday morning. I ended up sleeping in the afternoon so my sleep schedule is off. And so far I only got one game review done. No code written for the Game in a Day. No code written for my homework. It isn’t like the review was too ambitious, and it didn’t really take me all that long to write. I unfortunately spent a minute here and a minute there doing Other Things, like checking my email or talking to people online.

On that note, I am glad that I have this blog. It helps me realize that even though I never lied about what I’ve done, I wasn’t being honest with myself. Until I wrote all that down, I was feeling overworked and was subconsciously blaming it on all the things I needed to do or other people or time committments. Writing it down helps me by placing it in front of me to consciously analyze it so I can see what it is I can actually DO about it.

As Lao Tse says, “Your actions are your only assets.”

Categories
General

Quote From Professor, Programming

One of my professors said this in class this past week regarding writing robust software:

You can make programs fool-proof. You can make programs idiot-proof. Unfortunately, fools and idiots rarely will use your software.

He then went on to say that usually software users are instead afraid or have no clue. He was talking about writing your code defensively, as if at any point a cat may walk across the keyboard and your software should be able to handle it.

Even though it was a low-level technical argument, I think it goes hand-in-hand with what Steve Pavlina said in If No Independent Developers Are 100 Times Smarter Than You, Then Why Do Some Get 100 Times the Results?:

If you hold a core belief that your customers are idiots, then this will be reflected in your product design, marketing, web site, etc. You will then attract idiots as customers because that’s the type of person you had in mind throughout your design process. If, however, you start from a core belief that your customers are brilliant, friendly, honest people who want you to succeed, you will make different decisions in product design, marketing, etc, and you will attract those types of customers.

So on the one hand you want to make sure your code is robust to handle the random and uncontrollable. On the other hand, you don’t want to do so while also making the customer feel like you hate him/her. I think user interface design plays a big role in that, at least for the software. I don’t have much experience creating UIs, so I may need to purchase a book or two.

Then again, I should probably just read the books I have now. I need to walk before I can run, and my object-oriented programming is weak. To help, I bought the huge tome Object-Oriented Programming in C++. The first couple of chapters are basic overviews of C++ and OOP, which I was tempted to skim, but then I thought I might as well keep reading through it. I learned one new thing that I didn’t know before, and that made all the difference.

Categories
General

Game in a Day

Recently I discovered Game in a Day, an event where individuals and teams try to make a game within 24 hours. Naturally you aren’t expected to make a full professional Quake clone, but it is possible to come up with something that is playable, no matter how crude. What’s really cool is that after your development frenzy, you have something you could clean up and polish over the next few weeks or months.

I’m definitely interested in doing a Game in a Day for myself. Right now in order to work on a project, I need to know what I am doing so I can set aside time for it between work and class. I know beforehand that nothing will get finished in a session because I can’t possibly do anything for longer than a few hours. It’s hard to build up experience when I don’t know when the next session will be. If, on the other hand, I know that my constraint is that I need to have something playable at the end of a session or two, that it isn’t meant to be anything more than a fun project, then I can work without worrying about the progression of the project so much. A nice bonus is having a somewhat completed project by the end.

Previous participants of the Game in a Day have posted .plans about their progress. You could see how they went from scratch to a game within 24 hours. Some people managed to make incredibly fun games in even less time! I am hoping to join their ranks.