No such place as far away











{April 1, 2009}   That unidentifiable something

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!

inicial

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.



{January 12, 2009}   Back to the future

Hello everybody! I’m finally back from the depths of nowhere, that place with no broadband internet, no cellphone signal and, most importantly, choking full of mosquitoes which I call “my perfectly reclusive home”. The Brazilian countryside, in all of its rustic glory (and I mean that). Well, actually the place isn’t that reclusive anymore, considering it has lan houses now (a sin!). But still, I tried to be as far away as possible from all forms of technology except for my notebook, because, you know, I do need my programming dose from time to time, not to mention my TOEFL test is going to be this weekend and I needed to practice quite a lot.

Anyway. In fact I got back from holidays last week, but refrained from blogging because I had lots of catching up to do with the movie theater nearby home, and both programming Everball (the new name for Boardball, that XNA game I’ve been making on my own) and reading who-knows-how-many articles on point cloud rendering (I plan to keep on with my research project at Unicamp, albeit at a lighter pace) have kept me (too) busy. I’m happy to say that Everball’s code is making me a bit prouder each day: I feel I’m really improving my programming and software architecture skills, specially when I think back to the way I did things during the Gariman project (read: hurriedly, messily, with flags galore). As soon as possible I’ll post a small video showing what I’ve done so far (not much, indeed, except for the physics system, input logic and some gameplay rules), what my ideas for the game are and sketchy class diagrams I’m using and constantly updating as my guides.

Changing the subject a bit, today I started working at Overplay. It seems I’ll be learning a ton from now on, specially when it comes to C++’s intricacies (good thing for me to be reading that C++ bible I mentioned in my last post), and how to code while being very aware of the way the hardware you have in hands does things. By the way, I’m very glad because my project is a Nintendo DS game as I hoped it would! Of course, I can’t say anything more about it, due to NDA and such things. But I can safely say this: I’m in for lots of fun from now on! =D

A very special friend of mine has pointed out that my posts are a bit too crowded in words, with hardly ever any pictures. And I agree. So, I’ll try to include a picture with most posts now…Even if it is completely unrelated to what I wrote XD This time, starting the series “Games Forever In My Mind”, you have PSOne’s Grandia.

118275486553-grandia-wallpaper-2



{November 24, 2008}   Interesting article

I’ve been doing little more than studying like mad for final tests and programming my final project of Image Analysis, these days. But still I had the time today to read this cool article which, once more, discusses how games can be imparted meaning in different ways. The author’s (who is the sole developer of famous XBLA game Braid) most thought-provoking idea for me was when he said that, maybe, we shouldn’t look at films or books as the only point of reference when making games which transmit feelings, but also at other forms of art such as painting or sculpture. I couldn’t agree more.



{November 16, 2008}   Zeebo!

I forgot to write the other day when I posted here, but Tectoy finally released Zeebo, that “unnanounced platform” I wrote about on my curriculum. During my internship at Tectoy I coded the multiplayer versions of a soccer game and a racing game, both for Zeebo, together with my colleagues. It would have been fun if the games’ original codes weren’t so big and absolutely uncommented as they were. Due to this, work ended up being very cumbersome for me at the time, specially as the Imagine Cup 2008 deadline for the Game Development category was fast approaching.

The console’s business model in theory seems promising, but I don’t think it will succeed unless some very innovative games are made for it. It could, for example, be turned into a preferred target platform for indie developers, with a game development and submission system for amateurs made available through its 3G network. Kind of like XBLA, but open for submission under some restrictions. THAT would draw worldwide attention, I say, and would eventually produce some real, exclusive hit games for the platform. However, I doubt this is going to happen anytime soon, and if Zeebo’s game library is to be consisted of ported games in majority, *specially* cell phone games, I don’t see much future for it. People will still prefer to buy pirated PS2s, or will just start buying next-gen consoles as their prices (eventually) go down.

Anyway, I hope I’m wrong (or better yet, someone from Tectoy reads this and agrees with me). All the best to Zeebo and Brazilian game industry!



Hi there!

I know I’ve been absolutely lazy regarding posts here, but at least I have a good reason: I traveled last Saturday to Belo Horizonte, because from Monday till Wednesday the Brazilian Symposium on Digital Games and Entertainment 2008 (or something like that – the event is better known as SBGames) took place there. The event itself was great – good papers were presented, and to my surprise the ones I liked the most were those of the Culture & Games track. As those who read my blog might have noticed, I’m quite the technical person who would rather see paper presentations about novel algorithm usages and stuff like that. But this time was different: I was quite inspired by the work of a psychologist (I got her contact, but unfortunately can’t remember her name right now) that teaches at PUC-SP, and presented a research about the somewhat complicated relation between women and games. I’d certainly have a lot to write here about what I think is really the reason why many girls steer clear from games – and why this is very much linked to they staying away from IT careers in general. But I’ll do it in a future post :-)

Apart from that, I managed to make some new contacts and see again people I hadn’t seen since the last SBGames – like the boy who works for Southlogic, and Mike Foster and Bruno Matzdorf from SCEA. These 2 guys from SCEA are very, very cool and I hope they succeed in bringing Sony’s academic initiative to Brazil, as well as incubate more companies here. I’ll try again to make someone at Unicamp interested in their very low-price offer of development kits for PS2 and PSP, so students can learn how to program using videogame consoles. However, this time I won’t try only the Institute of Computing – I know everything there goes too damn slowly – but also FEEC. Let’s see how this attempt goes then.

Finally, I had the “opportunity” to hear Bertrand Chaverot’s keynote on November the 11th. For those who don’t know, he is the responsible for bringing an Ubisoft development studio to Brazil, in order to develop games for Nintendo DS aimed at girls aged 7-14. And really, I’m grateful for his initiative. But…he made a sick joke during his keynote. It just screwed up my vision of Ubisoft São Paulo, even though I, like many people, till that moment would have very much liked to work there. For someone who was trying to make people believe the Imagine series games are not just a bunch of stereotypes for girls, but have a solid basis on market analysis and all, he really…just gave the wrong message. After saying that the games industry needs more “women who are designers and artists, so they can make better games for women”, he said something on the lines of “but not programmers, because as you know, women’s brains are not good at that”. Then he laughed, and the audience, composed in majority of post-pubescent (or otherwise apparently immature) men laughed too. Come on…something like this can’t be said, SPECIALLY NOT at a formal event in which you are representing not yourself and your 19th century opinions on women, but YOUR COMPANY. By the way, I really pitied the guys there, because as Chaverot himself had asked and the audience promptly had responded before his ridiculous commentary, most of them knew neither how to program nor how to draw games. But still they laughed, even obviously having no experience whatsoever with the very type of person they were laughing about: women who are programmers.

So…what can I say of a man who says a thing like that to his audience? Can I really believe that Ubisoft’s “games for girls” aren’t stereotyped? And finally, what does Chaverot think of one of the greatest symbols of Ubisoft nowadays, Jade Raymond? For those who don’t know, she was an excellent programmer at SCEA and is now a producer at Ubisoft Montreal, having worked as the main producer of nothing less than Assassin’s Creed. There are many, many others like her, who are completely forgotten by stupid men like those on that audience, who just can’t seem to grow up and realize men aren’t the center of this world. Truly talented and strong-willed people who have and execute ideas are.

That’s it. Jokes definitely can give people bad impressions of the joker. And the game industry as a whole only loses when its important professionals have attitudes like his and CliffyB‘s.



{October 14, 2008}   And life renews itself!

I’m so happy! Exams period is finally over (I had weekly or even bi-weekly exams, not to mention coursework to be handed out, since September 8 till yesterday). Coincidentally, both the first and the last exams were of the Computer Graphics subject. I like it very much (although it surprises no one that I do), and I guess I’ll take the graduate-level Computer Graphics course next semester. It seems to cover everything the undergrad subject does, but in a deeper way and with a practical project that consists of making an OpenGL game from scratch. Better yet, it’s going to be offered by my adviser professor, and for the first time as valid credits for undergraduate students, so it can count as one of my electives.

Regarding my performance on exams, it was more or less the expected: I did quite well on stuff I like (read: computer-related courses), making some distraction mistakes mostly caused by lack of time. However, I didn’t do nearly as well on Transport Phenomena (a mix of Thermodynamics and Fluids Mechanics – and yeah, it’s a compulsory subject and I’d rather take other courses if only I could choose) and Accounting. This one I was starting to hate with a passion until this week, when the professor told us to look up at the internet for financial reports of some companies. This was an interesting activity which I was much in need of, and renewed my interest on the whole finances thing. Of course, the economic worldwide crisis has also sparked this interest…I’ve never watched so many news! I even read parts of Freddie Mac’s financial reports this morning, the ones from last year. Not that I understood much, but it’s curious nonetheless.

Another good thing is that Gariman was selected to be shown at SBGames 2008, the Brazilian Symposia for Digital Games and Entertainment (or something like that), along with 3 more games made using XNA, and lots of other games for PC and mobile devices. A 2D game more recently made by some guys from Gamux, including half of Gariman’s team (but not including me) was also selected. It’s a pity that I couldn’t send Boardball on time, but it’s OK =P Next year the game will be surely ready to compete! The fact that irritated me, however, was that another game I sent, BandHero (a Guitar Hero-like game featuring classical music and several instruments, made using one of the first versions of Google’s Android SDK) wasn’t selected for the mobile category. And not because it wasn’t good enough…but because the person responsible for testing couldn’t run the game! And couldn’t because she/he had a newer version of Android, and to my utter surprise these versions aren’t backward-compatible. Total shame on Google. A nice guy from the event contacted me to say that if I sent my version of Android, he could try to make the game work and so on. I sent him the thing, and the game apparently worked; however it was already too late, it seems, as the game had already been voted out of the Game Festival. Now I’m negotiating for the game to be entered and exhibited even if not competing, since Google will be there and the game’s idea may be of their interest (who knows, right).

Well, that’s it. I should have written here about the scientific project I’m working on, but the post is too big already, so I’ll leave it for later XD



{September 28, 2008}   Gamefest comments + Tectoy

Wow, finally had some time to stop by and write about last Saturday’s Brazilian Gamefest here.

The cold and rainy weather surely broke the mood a bit, but the XNA-focused convention was quite good. I arrived just in time to see Ubisoft’sBertrand Chaverot ‘s keynote. Even though he didn’t say anything I didn’t already know, the touched topics were certainly important, as he explained to the audience (mainly composed of High School students interested in a career in games, College students with varied game development experience and Microsoft Student Partners like myself) what are the problems with current Brazilian game market (namely, extremely high taxes imposed on imported gaming products, all with the intention of protecting non-existent national consoles; and the subsequent high level of piracy, since no one on their right minds will acquire original products that cost 10x more than their U.S counterparts).

He also talked about Ubisoft’s plans regarding the opening of its development studio in Brazil, instead of a distribution center as it did before (games under Ubi’s seal are currently being distributed by Tectoy, if I’m not wrong). The intention is to start with around 20 developers and produce casual games for the Nintendo DS, with the target market being young girls aged 7-14. The Imagine series, which I’m certainly not a big fan of because of its marketing strategy that basically excludes boys from even trying the games (with their bright pink packages), comes to mind as a likely vein of products that will be developed here. If everything goes all right, in 2 to 3 years’ time Ubisoft will employ around 200 people and make games to the Wii, PS3 and XBOX 360. Let’s wait and see (or, as I plan to, try to participate and see; after I finish college I plan to land a job there).

The rest of Gamefest was pretty good too; I had the pleasure to watch some more speakings, and the one I liked the most was about shader programming, by my fellow Microsoft Student Partner (and now working at Tectoy) Bruno Evangelista.

Last but not least, and with no relation to Gamefest whatsoever, I was searching around and found out that many relevant press vehicles have announced Mega Drive 3 and the games I ported with co-workers (Fifa 2008, The Sims 2, Need For Speed Pro Street and SimCity) during my internship at Tectoy last semester. It made me so happy!

http://kotaku.com/tag/ea/?refId=70

http://www.insertcredit.com/archives/002514.html

http://www.insertcredit.com/archives/002404.html

The last link is about Tectoy’s new platform, which I worked on during the last 2 months of my internship and that is probably to be released soon. No more comments allowed on that, of course ;-)



{September 19, 2008}   Gamefest tomorrow!

After a night doing a long and tedious list of exercises for one of my compulsory courses this semester, namely Accounting, I had a wonderful Tae Kwon Do training session (my kicks are finally improving!) and got the bus to my parent’s house, which I hadn’t been to for weeks. I’m pretty happy because tomorrow I’m going to the Brazilian version of XNA Gamefest 2008. It’s an ideal occasion to network and exchange figures about game development, at least as far as XNA is concerned. I still don’t know if I’m taking Gariman there, though; this would imply carrying my heavyweight notebook around, and my back is going to complain a lot. Well..we’ll see.



Hi all!

It’s been a while since I last wrote here, but it’s expected. As I told you guys last post, I was racing against time to study for a Computer Graphics exam and have a game I’m making with a friend of mine, from Gamux, ready for the SBGames Game Festival. I didn’t say it then, but I also had to draw a storyboard of a Maya animation for my Computer Animation class, along with other more usual college work.

Well…I did manage to do well on all this stuff, except for getting the game ready =( The small physics engine I’m coding as part of the programming process was (and in fact, still is) suffering from some precision bugs, and I didn’t want to hack some correction code in and send it to the festival as if I were OK with it. But I COULD have managed to fix the bugs till the end of last week, if only my Image Processing professor hadn’t sent off the false alarm that we were to have an exam. It turns out that he did, however, so I abandoned any plans of programming and dived into pattern recognition books. Well…the exam was to take place today. However, he ended up delaying it for almost 2 weeks! Can you believe it? I was very pissed off with that, although I know I have more chances to do well on the exam now. Even so…I feel it’s quite unfair.

No use complaining too much though. At least, since now I’m not being hard pressed by any game championship dates, I’m going to take my time with the game and do the best I can for it to be the best it can. Right? =D

That aside, during this and the next weeks I’ll focus more on my other project (yeah, that one which was shamefully seconded by my game development race). Today I discussed important issues with my adviser professor and the PhD. lad who is responsible for the project, concerning the algorithm I must implement and what I’ve been studying about volume rendering and GPUs in general.

Which takes me to the last topic on this post: the last book from the set I bought from Amazon arrived already, and it’s excellent! The name is Real-time Volume Graphics and I absolutely recommend it to anyone interested in learning the basics of GPU programming as linked to volume rendering. Shader programming, here I go! \o/



This week was excellent, albeit quite busy. I started training Tae Kwon Do after getting really excited with Tae Kwon Do fights in the Olympic Games, and must say it’s a LOT more enjoyable than Kendo. This came as sort of a shock to me, since I was always a fan of Kendo, and, after practicing it for around 2 years (at a Buddhist temple during High School) I thought no other martial art or sport could make me feel better. But as it turns out, I was completely wrong, and using one’s fists and legs to punch and kick is really so much funnier than using wooden swords.

Besides that, the game project I’m doing with a couple of friends from Gamux advanced a lot since last Sunday, when I finally managed to finish the implementation of a scene graph. This scene graph, which takes the form of an octree, is being used as the controller of all game objects, by rendering, updating and testing them for collisions. I’m currently coding the game physics, which is a bit new to me, since the small ball needs to realistically react to different terrain types and contacts with other movable or unmovable objects. This is something Gariman didn’t have: all its physics effects were beautifully faked by me and the other programmers in the team, by hacking in invented formulas and many tweaked values. Coding like that was acceptable for me at the time, since Imagine Cup’s deadlines were fast approaching and I was under too much pressure, with college exams and recurrent crunch periods at Tectoy making me all stressed out. But now I finally have more time to code the way I want, even more so because I’m the only programmer taking care of the game. And I’m somewhat glad for that, even though having to discuss every single development decision with other people does have its appeal.

Huh…did I explain what the game is about? It’s a simple puzzle game in which the player uses the analog stick (in case he or she has a fancy XBox controller) or the mouse to move a board and make a small ball slid around till it falls on a hole, having a limited time to do that. Nothing new, right? The difference here is the puzzles the player has to solve in order to make the ball finally reach the hole. Guess what? They are (or rather, meant to be, since we are still developing them) intelligent! So it’s a game that perfectly merges fine-control gameplay and food-for-thought gameplay. The artist working on the game has done some concept modeling on it already, and as can be seen, the visuals are cute (they are, in fact, cuter; on this picture the “ink border” effect, used in games like Okami, has been turned off).

I’m running against time right now to have a demo version of the game ready for UPA 2008, a huge yearly event that happens on campus and has thousands of High School students visiting our University. I plan to use them as testers for the game, in order to collect new ideas and general opinions on its gameplay and graphics. But it’s going to be tough…my Computer Graphics class has been demanding of my time lately, and the exam is a bit more than a week from now. Run, Carol, run! =D

By the way, above is a picture of around 100 (I guess) cubes I used to test spacial distribution using the scene graph. It’s rather cool, mainly because I made the cubes all fly to different directions as if they were a particle cloud.



et cetera
Follow

Get every new post delivered to your Inbox.