Hello!
It’s been 2 weeks or so since I last wrote here, mostly because I didn’t have anything THAT interesting to write about, and was into a programming marathon to complete assignments from both my practical Compiler Construction and Distributed Systems programming courses.
And I say marathon, because I really prefer steady-paced, mild races to get to something instead of short-lived, unbearably tiresome sprints (you know, the kind that makes anyone’s stress levels skyrocket). So…I really tried not to hurry so much about these 2 assignments, but started them out as soon as they were given to me and my team-mate.
The compiler-related work was building a semantic analyzer as I’ve explained on a previous post. The little devil was a bit hard to do, but at least it helped that the whole compiler architecture was planned to be as decoupled as possible, so in the end there wasn’t so much code to look for (although I did develop a lexer and a parser as previous project phases, this was around a year ago at the theoretical part of the Compiler construction course, and the professor decided it was better to give standard versions of both to everybody). The hardest challenges, in my opinion, were:
1. Actually using a Visitor design pattern to traverse the syntax tree without forgetting to traverse any proper node (there are so many node types it gets confusing).
2. Coding the call stack’s type-checking procedure, that recursively checks if methods calling one another are returning valid things, not only in relation to their signatures, but to their callers’ signatures as well.
3. Accounting for details in the language the compiler is being made for, Minijava. This is a completely object-oriented language, but has some limitances, so my team-mate and me had to be careful about that.
The Distributed Systems project, on the other hand, has been OK up until now, mostly because all I have to hand out (today, by the way) is a 30-page specification document. What I liked the most about it were the interface prototypes my team-mate created, having as a starting point some sketchy initial prototypes I drew on- guess what – good n’ ol’ Paintbrush. She’s very good at making interfaces!

Last but definetly not least (in fact, what follows was supposed to be the main and only topic of this post. I have no idea why I’m throwing this talk about projects and whatnot at you guys o.O), yesterday was the first day I played the game I’m making at Overplay since the beginning. Up until now, I had developed things and then tested them on modular fashion, that is, only seeing parts of the game relative to whatever I was coding. Our code is decoupled like that, so we can do it; but at the same time, this caused me not to realize before yesterday just how damn cool our game is turning out! You guys probably remember how I was a bit sad that professional development is quite different from indie development, in that programmers (specially interns like me) don’t have much say concerning the design of the game they are working so hard to finish. And that I had always known things were like this, specially when you have very little experience, but was quite disappointed anyway.
Well, then! For the first time since my work with this game started I can say I’m as proud of it as I would be of any indie game I made with friends, or even more, because nobody is having to pull all-nighters as I so frequently had to during my own indie games’ development. I’m learning to plan properly regarding when and how I’ll do my programming tasks, and trying to predict what can go wrong instead of always being optimistic about schedules. Because I am WAY TOO optimistic, although I hadn’t realized that until recently. And what’s best of all, since our team’s producer sits next me, I try to observe how he works and does things when I’m not too busy; this has been quite useful to me. So yeah; maybe I was being far too immature about the whole working as professional thing. It does have much more advantages than disadvantages, no doubt anymore about that. Ironically enough, being now a senior student in university and on top of my almighty 21 years of life, I thought that I could come to quick conclusions like “professional game programming is just systems programming with nothing more to it!”. Guess not. Games do have that unidentifiable something after all.




