Uphill Climb

To improve is to change; to be perfect is to change often.
– Winston Churchill

This year has been exceptionally tough and I suppose I did hit rock-bottom due to the fact that I cannot come to terms with change. It’s as if life yanked me off of orbit. But that’s not the worst thing though. Because in the process of healing myself, I abandoned a lot of my ideals. And in doing so, I left behind a wake of poor decision after another wishing I should’ve done things differently.

But then again, we can never truly appreciate things if we only get to see sunshine. Besides, these past few months really put things in perspective – giving me a renewed sense of purpose. I came to the realization that to effectively live Life, one must face it head-on instead of evading and diverting one’s attention with transitory distractions.

With these things in mind, there is no better pursuit than that of unending self-overcoming; translating our multi-fractured self into a multi-functional being. And even if we dismiss the Ubermensch as an unattainable concept, we can still glean from its ideas that undergoing a certain share of pain, struggle and disillusionment is a prelude to a more liberated state – a freedom of the mind if you will.

Hell is other people …

It’s the voice in our heads that makes us suffer more. Because for whatever reason, because it still eludes me, it’s that inner monologue that’s keeping the weight down creating our own personal version of Hell. There maybe no torturer, no flames to burn your soul eternally, no fire or brimstone, pain and suffering is there all the same. And no matter what you do, you can never escape that perpetual ontological struggle of putting oneself as an object from the view of another consciousness even when there is no one around. There is no need for red hot pokers, as Sartre once said, because Hell is other people. Or even the realization of their existence would suffice.

And the rain doesn’t help at all.

42

All life is ultimately meaningless, nothing more than an anomaly; life will eventually end, all light will eventually burn out. None of this is important. Nothing is, nothing will be. Nothing ever truly matter, nothing can ever outrun the darkness of entropy. Everything dies.

Putting it this way: do you have memories before you were born? So do I. We have no recollection that far back. And not only do I not remember anything, I also do not exist. I am NOTHING. This is the state to which we will eventually return – the proverbial dust. This non-existence is the final destination on this trip called life. After a brief spark of consciousness, we will return to it permanently.

It doesn’t matter if I die now, or at 30, 60 or even a thousand years from now. all things must die or at least yield to decay. The only thing that I look forward to is that there is no pain after my death. I can finally find peace and that, I think is one of the most beautiful things I hope to have.

In Search of the Holy Grail

When a programmer is good,
He is very, very good,
But when he is bad,
He is horrid.

– Sackman, Erickson and Grant (1968)

Although the search for the holy grail of software development workflow is far from becoming a reality, that doesn’t mean we should give up and just accept today’s world of overblown budgets, missed deadlines and subquality products as inevitable; And although there is no single technological break through that promises to exercise all our software demons, there are a dozen good work going on right now that we can leverage to show promise of steady, if not magical, progress.

The key comparisons between world-class software organizations and the run-of-the-mill software organizations will be these:

  • Staff cost: Salary and benefits
  • Staff productivity
  • Quality of the systems developed

And to the unaware, problems regarding low levels of software productivity are easily dismissed as the end result of programmer shortage. Rarely are programming environments, trainings, tools and workflows blamed.

I work for a software development company, and with other companies on the same industry before that, as a hands-on developer and I know first hand how it is to battle in the trenches day after day; I have heard my fill of horror stories as well as tiny miracles that are often taken for granted, seen enough obsolete work processes that are still in place because “if it ain’t broke why should we fix it?” and experienced technology fads like a girl changes clothing.

As a software development company, it is imperative that the day to day operations of the company should rely, if not heavily, on software intensive computer systems compared to doing them manually. This doesn’t only decrease the latency in conveying information but also reduce the number of errors committed. Gone are the days where a manager needs to roam the office and micromanage everyone in person. Measuring the productivity aspects of an organization is better accomplished with the aid of computers (using the proper metrics of course).

The major issues in our work are not so much as technical but sociological in nature and although most managers agree and are willing to concede the idea that they’ve got more people worries than technical worries, they rarely address and manage the issue as such.

So, what snake oil will I be selling today?

Improvement on peopleware. They are not those that are bitten by people – or are they werepeople? Anyway, people efforts should be directed to solve several related issues. And an old cliche says – You cannot solve anything until you admit (and accept) that you have a problem.

Hiring the best people.

Hiring the best people is pretty straighforward but that is often easier said than done. What is best anyway? Scientific evidence shows that the actual performance of programmers have no significant correlation with years of programming experience. So, scores on standard aptitude programming tests then? True, they may dominate early training and initial on-the-job experience, but that such skill is progressively transformed and displaced by more specialized skills with increasing experience.

Engaging in the ongoing training and education of existing staff.

Like in nature, programmers should constantly adapt to an ever changing technological front. No matter how good you are 10 years ago writing in this and that language, if you dont adapt you’ll be left behind with nothing more than glorified stories of your past to protect (or salvage) of what’s left with your bloated ego. Think of it and scale that across all developers in the company if no appropriate training and education is provided.

Motivating people for higher levels of performance.

Money isn’t always everything. Motivating people requires getting in touch with them. If you treat people as if they’re nothing more than replaceable code-converting machines that you keep from paycheck to paycheck then sooner, rather than later, they will vote with their feet and shop for the next coding gig they find. Giving proper credit is also a key. Gving a simple tap on the back for a job well done will really get you far. So stop giving undue credit on upper level managements just because they are the ones you like and are closer to you and look past those scruffy faces you see only at Christmas parties and other ceremonial company gatherings.

Developing performance management ideas to align personal goals with corporate goals

Tell your staff that a 2 month project iteration should be completed in 4 weeks and your staff will come up with the conclusion that (a) you are lying, (b) you are willing to let them abandon their personal lives including nights and weekends or (c) you are willing to compromise on quality just to meet the ridiculous deadline. Of course having a can-do attitude is essential especially when dealing with clients but knowing when to say no and set boundaries is as important.

Offering adequate working environment, with particular emphasis on adequate office facilities rather than pigsties in which most software engineers find themselves squating for 10 or so hours everyday.

Burdening engineers and programmers with subquality equipment and tools and expect them to produce top-notch products? You know how it is.

Placing more emphasis on creating and maintaining effective teams of people who can work together to create high quality software products.

One of the worst things you can do to decrease performance is to commit teamicide. You can’t force a team to group together just because you say so. You cant just say you, you and you are now part of a team to work on project X. Be teamlike! Sure developers can be herded together to work on a common project but effective teams are not created by edict.

But will management listen? Perhaps, perhaps not.

from PLATO to MUDs to MMORPGs and beyond

There is a common misconception that online gaming started during the commercialization of the Internet where it attracted a wide market of users but in reality, it predated that era by several decades. In early days of online gaming, players had accessed to technologies that are not readily accessible to the public. In fact, the earliest games were simulations found only in military installations and as a result they were developed and have evolved away from the public eye. Only after the world wide web came to consumer use that they gained attention and popularity.

PLATO

Online gaming all started with PLATO (Programmed Logic for Automatic Teaching Operations), introduced in 1961 at the University of Illinois. This system was intended for research in the area of computerized education but Rick Blomme turned it into a multiplayer game network platform. Out of PLATO came a two player version of Steve Russel’s Spacewar catalyzing a new phenomenon in gaming. After that came a 32-player Star Trek inspired game, a flight simulator called Airfight and may others, but arguably the most important contribution was the Talk-O-Matic which foreshadowed the importance of social interactions in online games.

Talk-O-Matic pioneered online forums and message boards, emails, chat rooms, instant messaging, remote screen sharing, and multiplayer games, leading to an emergence of what can be considered as the world’s first online community.

It was also PLATO that ushered the beginning of online role-playing games (orpg), which are now played at a massive scale (mmorpgs), with thousands of simultaneous players.

MUDs

MUDs or Multi-User Dungeons first appeared in 1978 and was first implemented by Roy Trubshaw and Richard Bartle at Essex University. As the Essex network later became part of ARPAnet – an academic institution which was the basis of what is now known as the Internet, students and researchers connected to the network started creating their own MUDs with the freely available code. This ability to design their own environment, helped build social interaction and player design into the online gaming tradition.

Islands of Kesmai

The first ISP, CompuServe readily recognized the monetary implications of letting subscribers play games over a public network. Teaming up with developers John Taylor and Kelton Flinn of Kesmai Corporation, they released ASCII-text role playing games such as Islands of Kesmai and Megawars I, charging customers to upto $12/hour to play these games, and launched the first ever commercial online gaming.

Quantum Link and Ultima

In response to CompuServe’s online gaming services, Quantum Link (the predecessor of AoL) released the first graphics-based online game, the Habitat, developed by Randy Farmer and Chip Morningstar at LucasFilms, advancing even more the online gaming experience. Then in 1991 Richard Garriot of Origin Systems approached Quantum Link to develop Ultima Online – an online version of the successful Ultima series.

GEnie

The GE Network for Information Exchange was an online service provider and a direct competitor of CompuServe and Quantum Link. Kelton Flinn of Kesmai Games developed Air Warrior, a World War II flight simulator, for GEnie. Air Warrior became a ground breaking success featuring the first graphically based massively multiplayer online game. GEnie established itself as the premier online service provider for multiplayer games licensing tiles like AUSI’s Galaxy II and Simutronic’s Orb Wars.

NCSA Mosaic

The development of NCSA Mosaic, the first graphical web browser by Mark Andreessen in 1993, accelerated the development of online multiplayer segment by opening the global network to the commercial world and the general public. On the same year, id Software released Doom which allows up to four players to connect via LAN and play against each other in a death match.

The company’s next title, Quake, featured even more sophisticated improvements like built-in internet capabilities allowing geographically dispersed players to play with each other. Other computer games followed adding modem and LAN functionality to allow simultaneous players and ultimately making it a requirement instead of an optional game feature.

MMOs

The rise of massively multiplayer online games popularity came when Origin Systems launched Ultima Online reaching up to 50,000 simultaneous subscribers within the first three months. Turbine Entertainment made Asheron’s Call and Verant Interactive (which was later acquired by Sony) created EverQuest which later became the largest massively multiplayer online role playing game claiming to have over 500,000 simultaneous players.

As the information revolution, fueled by the availability of the World Wide Web, infused with the mainstream American Culture, computer games became even more interactive allowing players to immerse themselves in a persistent, fantasy world with the ability to customize their own character, forming collaborative teams and guilds to perform a common goal and engage in adventurous quests which ultimately brings us to this time.

New Frontiers

Augmented reality developments like Oculus Rift’s virtual reality headgear and University of Southern California’s Project Holodeck allows us to venture even more to uncharted lands in video game experience. Surely we have come a long way from text-based rpgs and nongraphical MUDs but with these new technological advances one can see that there is still wide a horizon of possibilites that are yet to be achieved.

on fantasy worlds filled with unbelievable magic, fierce monsters and laser guns

I’ve been surfing the web to find the next game title I can waste my summer with only to find that most games currently in the market, if you scrape them with their fancy graphical exterior,  are no more than clones of each other. So much for the “brooding, buzz cut (or hooded), anti-hero protagonist”, indecently dressed women, parkour antics, and “surprise! you’re the villain” themes. Although they are very successful in capturing the lucrative, emotionally ridden, angst-driven, male teen market, we haven’t really had the time to ask: have we really reached a plateau that we can no longer add something better (aside from very high-poly graphics that could eat all the processing power of your 6GB gpu) to the previous titles to come up with a newer, better game?

If you happen to say yes, then let me walk you through. The gaming industry is the fastest growing segment of the entertainment market generating revenues of more than $30 billion per year (which is roughly 400 games being sold every minute) surpassing film box office and music concert revenues in the US alone. According to an industry impact study conducted by the International Game Developers Association (IGDA), in several countries, exports from games sales represent one of the highest exports and due to a substantial decrease in game development time and the opening of new avenues of sharing digital artifacts, game production is estimated to be well over 4 billion titles per year, including consoles and coin-op programs.

The million-dollar question now is: If this is the case, then why can’t we see more and newer game ideas concepts instead?

To understand this, let’s have a quick history recap. The first time mmo standards bar was set was in March 1999 by Verant’s (SoE) Everquest which brought fantasy mmorpgs in western mainstream. Launched with modest expectations, it quickly surpassed Ultima Online in subscriptions and was even named the best mmo. It features an extensive graphics that dominated any other game of its time and was the first to offer 3D first person gameplay. It was designed to for solo, group or raid style play.

Then came Blizard Entertainment’s World of Warcraft in 2006 which redefines mmo possibilities. They are currently in their fourth expansion (Mists of Pandaria), which is by far the most extensive expansion. Two opposing factions – Horde and Alliance, creates a sense of role-playing and advocates the game’s back story. PvP, unlike other games,  is as strong focus as PvE as well as a heavy support on cross realm battleground, dungeon and zone contents.

Then in 2012, TERA introduces a true action combat to remove the boredom brought by auto-attack of targeted combat to be called the first ever “Realtime Battle System”. The ability to dodge enemy attacks and aim your attacks allows skill to be a major factor over gear/level.

As game designers we must be able to look at these games to see what they have done wrong and what they have done right and building on them to create better game systems instead of blindly cloning existing titles. One of the most common mistakes a game developer will do is staying too close to the original design and not being able to weed out what is good and build upon them. Nearly every successful game is followed up by a dozen lesser knock offs or stretched through so many sequels that whatever unique appeal it once held inevitably becomes tiresome.

Quick-time events, damsels in distress, brooding power-armoured space marines, overly simple puzzles (that are more of hassle than a challenge), morality meters, sandbox environments, zombies (including but not limited to – zombie-robots, zombie neighborhoods, zombie zoomorphs, even zombie-zombies) , vampires, really bad comic relief characters which falls flat as roadkills, bullet time, collectibles and fetch quests are some of the things that, in my opinion not just as a game developer but also as a gamer, have become so overused that they bore the hell out of you.

But don’t be confused though. Now while completely new and original ideas are certainly preferred and should be celebrated when attempted (they won’t always be good after all) there’s no reason that a game taking inspiration from or expanding on the idea of another can’t be great in their own right. Often originality comes simply from finding a new angle on an already well established concept.

Nanananananaaa Batmaaaaan

2 posts in a day? Whoah! You might think that I’m on a roll here. 😀 I just dont really have much to do with my time and I just found out that Jeremy is not a real person but actually a sock puppet. Plus, he’s not really as cool as I previously think he is. What sane person would think that loop quantum gravity kicks string theory in the nuts? Seriously?

Moving on, I have tried doing animations again. It used to be a shared dream between me and my ex. Yeah I know it sucks. Always about the girl. So after we broke up, I kinda hated everything that reminds me of her. I never really realized what I’m missing up until now. I even think it’s what I wanted all along. But on second thought, maybe no as there is a very large chance that it might also be one of my fleeting fancies. Anyway, here it is:

nananabatman

 

It’s not really much as I have to reacquaint myself over the new UI. Yes, It’s that long since. 😀

Jeremy

I haven’t really talked to anybody for a while and I thought it was driving me crazy. Then good luck, it finally struck like lightning from the blue as the pop song goes. Haha. I met Jeremy. He has a masters degree in applied mathematics and is currently pursuing another degree in vector applications in computer generated graphics. And I really think he’s  very cool.

He has published three papers. I’m even reading one of them right now: Redefinition of the Newtonian constraints on dynamic simulation to enforce a deeper sense of physical realism making spacetime constraints framework more flexible and potentially more powerful.

He also got love for both hardware and software. He even built his own computer when he was 12. How cool is that? 😀 We are even collaborating for a joint project now to build a miniaturized file server.
Here he is:

DSC_0572