Gaming: Simplicity, Good Graphics and Open Source Gaming

Graphics: Opium for the Eyes
Graphics. Our society places heavy emphasis on what we see. Not surprisingly, we also judge games by their graphics.

Judging games by their graphics, has become a staple of gaming reviews. Hard-core gamers, game developers and critics can tell the general age of a game by its graphics. Even the untrained eye can differentiate between an old style game from the 90’s with more recent games.

3D Realm’s Duke Nukem (January 1996)

Valve’s Half-Life 2 (November 2004)


But are graphics everything? Not if you ask older gamers, those who like me saw everything from Nintendo’s original 8-bit Zelda to the newest HDR lightened, high-polygon, physics engine Half-Life 2 Episode 1 game.

Most people that I know, actual play games because they find games fun. Many a pretty looking game turned out boring. And many “old-school” low budget graphics games enticed me to play for hours. Some gamers swear that the most important element in a game is gameplay or simply put fun. Some firms such as UK based indie game developer Introversion lives by focusing on gameplay.

Simplicity in Graphics
Unlike many in the younger crowd of gamers, I believe that one does not need the newest, greatest and latest in graphics to make enticing graphics. Often times, a simple image can fit nicely in place of a complex one. Introversion proved that a market exists for both the latest in eye-candy and simpler graphics with their second game, Darwinia.

Darwinia

The game follows the story of flat, sprite-like AI creatures called Darwinians, and their struggle to survive in a hostile, virus laden world. The graphics of the game inspired by early vector games, also follows the idea of simplicity. While Darwinia graphics set to full, still makes my nVidia GeForce 6800 work for its living, the overall style is simplistic. Maybe even overtly simplistic. But given the story, and type of game, the graphics fit perfectly. Can open source gaming follow the simple, attractive graphics route?

Neverball: Simple Attractive Graphics in Open Source Games
Complex, eye-candy Half-Life 2 style graphics requires tons of time and work to make. Developing a graphics/game engine can handle such graphics is also costly. Buying an engine, like id’s Doom or Valve’s Source can cost too much for indie game companies. Indie game developers do not have the money to afford such eye-candy in their games. Open source game developers have even less resources at their disposal. And so competing on the high-end graphics does not make sense for open source game developers.

However, open source games can still look good, even in 3d. Take the Neverball project for example. The graphics don’t not scream “TIME TO UPGRADE!”, but fit well into the context of the game. True, the icculus group is very experience, has worked on a number of 3d games, and helped companies like Epic bring their games into Linux. Still Neverball‘s graphics, with their colour, bright, simple textures and shinniness look impressive for this type of game. I do not see how any more realistic lighting or textures or models could make the game’s look and feel significantly better.

Neverball

Screenshots never do justice to a game. Go to the Neverball website and try it out. I think the developers of Neverball showed that a game can be fun, look good and still be open source.

Edit: Sorry about the links, uploaded the screenshot images instead.

Task Logs – Managing Fragmented Time

As promised last week, an update to my self-experiment. After a week of battle testing, consulting with Lina (my university counsellor) and observing myself, I can report success in with my self-experiment. But first, lets backtrack to the “theory” behind my idea.

Last Friday, I came up with an idea to deal with creating continuous spans of work time in an environment that distracts and fragments time into sections. Fragmented time caused by distractions, creates a feeling of disorganization, confusion and frustration between switching. The greatest problem I found with switching between small tasks and my main (course) work, was the inability of getting back to the work. After some problem, I realized that I encountered this problem and a solution in another place, operating systems design.

Modern operating systems seem capable of multi-tasking. Yet the majority of computers have only one or two processors (hyperthreading and multi-core acting as two processors each in some degree). So how can a single processor run two servers, a media player, a web browser, and office suite at once? It doesn’t! The operating system switches between individual tasks rapidly creating the illusion of multi-tasking.

The CPU can switch between tasks without loosing its place by logging. Before the processor switches tasks, the operating system notes what the processor worked on, how far it got and other relevant information. I applied this same idea to enable fast personal context switching.

Before I switched from a major task to another one, I logged what I worked on. The log details the task, what I needed to do next and any ideas I wanted to remember. In its basic form (one form I use along with an activity log) I note the name of the task, what I was to do next in the task, and a bullet form list of notes. Additionally you can jot down the importance, due date, urgency and personal emotion (look at my modified activity log sheets) on the task log.

When I discussed this with Lina, she was quite impressed. She pointed out that this method, deals with the three issues in time management: organization, motivation and prioritization.
The task logs firstmost are organizational tools. They behave sort of like more advanced todo lists, and help you organize your thoughts about a task. Task logs also help motivate you. They show your progress, set your mindset toward the task and motivate you to finish off the task quickly. Finally task logs help with prioritization. Sitting with number of task logs in front, can help you decide which needs the most attention in a given time. In the short I have used them, task logs helped me switch between activities efficiently.

I like task logs, in that by helping me switch from and to a task, I can work on different tasks without a long “warm-up” period. Anyone who deals with lots of writing knows how difficult it can be to put pen to paper. And if something interrupts you, when you come back to writing you need to get back into the mindset of the task. The task log shortens the warm-up time, effectively “stitching” my shorter fragments of time into a single time span. With a task log, I don’t have to sit and think “What do I need to work on again? And what did I want to do?”. Instead I can look, and say “I did this, I need to do that… so… lets work on that task now.”

But even a super-fast CPU finds switching between tasks expensive. Taking task logs takes more time than doing without them, if you never needed to switch between tasks. In an ideal world, we could work on one thing at a time. Unfortunately, the ideal does not exist and so we need to deal with issues like fragmented time. And I believe task logs can help with fitting long term projects into shards of times and making me more productive.

Check out this page on mindtools.com on activity logs.
I will post a sample of “emotional” activity log and and a sample of my task log, sometime tomorrow.

Adjusting to Easy Schedule

I am not good at adjustments. The switch from a super-busy, near-hyper-kinetic schedule to a “normal” lighter schedule keeps on throwing me off. Hence the lack of updates since Friday.

Yesterday was the great chill day. Today was the great after-chill day. Meaning, I did not get too much done when it comes to assignments or studying. Anyone who follows the justCheckers project got lucky with the new daily updates (at least on the wiki). Everyone else… kind of lucked out. (At least you lucky denizen of the blogosphere get a neat treat today – 3 make-up posts. Why? Because I love you and enjoy having a regular audience.)

Still, I rejoice at the thought of the “evil” over-busy semester finishing. With the exception of three moderately difficult exams, a wack of writing for my writing portfolio and two assignment-papers, my goal of finishing a B. Sc. in Computer Science from the University of Toronto, just got a semester to completion. The very thought of finishing in April-May 2007, makes me euphoric. Now assuming that I pass every course this semester, only 4 more courses await me next semester.

I only worry about what I do after-university. People assure me, there is a life after university. I am not too sure. I guess I will need a job, to pay off my meagre debt. But kind of a job? Where can I work? Sure I do plan to work for myself one day, only I need money to bootstrap any sort of business. I would prefer to entire self-employment on my own terms, rather than “starving” myself into it.

So where should I work? Most jobs want some sort of work experience, something I lack in the professional sense. Take gaming firms like Valve, Apogee, id or EA: everyone wants an artist with a portfolio (but can I build one in less than 6 months?), a project developer (do you know that I never worked in let alone managed developing a commercial game?) or a programmer (does Java AWT count as graphics experience? No I don’t do OpenGL, at least not yet). How about NASA’s JPL? Would love to code rovers to race around on Mars, yet neither engineer nor US citizen I am not.

Realistically, I should contemplate working for IBM or Canonical (makers of Ubuntu). Man too little dreamy options (Valve), and too many risky (Canonical) or dirrery options (IBM, Microsoft *shivers*). So long as all effort does not land me a low paying sys admin or code monkey job.