This is a negotiation.

Who knows, maybe the diplomatic skills (?) of Captain Kirk were the key factor that helped William Shatner secure the role as Negotiator in the Priceline commercials. Or could the athletic prowess (?) of T. J. Hooker have been the catalyst that made this physically intense interpretation possible? Yet, perhaps his most recent works did, in fact, help the actor in his choice of what to do on the side to more easily get to the end of the month in the black. The world will never know; but what we’re seeing here, is one hell of a negotiator.

  • English
  • Italian
Share This

Nothing’s certain in this world but death and taxes

There are actually three certainties in this world; the third is the chance of getting your fingers glued together each time you’re using Superglue.

  • English
  • Italian
Share This

Fresh web look for the new year

Nicola Cocchiaro’s homepage snapshotI gave my personal website a fresh new look for the new year. I’ve also reorganized the content and in my opinion it all flows much more smoothly now. Let me know what you think.

  • English
  • Italian
Share This

Enter the Neutron Engine

Neutron in an atom, Brooklyn CollegeOver the past few months I’ve been working on a simple game that I had written while in college, Alpha Shooter, and that I’ve already mentioned in previous posts ("Alpha Shooter 0.0.2"). It was a 3D FPS with a sci-fi setting, written in C with OpenGL and GLUT, and had been useful to me to learn how to get started with 3D graphics and API such as OpenGL. After its third release, however, it was clear that its architecture was not tidy enough and too C-like for it to be easily expandable into a real game, like I would have liked to do. I started entertaining the thought of rewriting it in a more flexible and design-oriented language, like C++, but it was obvious that simply changing the language wouldn’t have given it much benefit without a complete design makeover and a rethinking of its general structure.

Something else sounded interesting at the time: the separation of common interfaces and code from game logic and assets. In other words, I wanted to learn how it could be possible to separate the game engine from the game logic (or game “rules”, if you wish), and make the engine reusable for other games that could later be built on it. Many free or commercial engines exist today, and using one of them would probably have been faster for the development of a new Alpha Shooter, but then where would the learning experience be? That’s when I decided to attempt to write my own game engine, making Alpha Shooter a proof-of-concept game.

At this point other questions needed answering. A modern game engine coordinates a number of components, or subsystems, each responsible for a specific task, such as graphics rendering, audio processing, physics simulation and so on, depending on its features. Even when writing a game engine anew, one could still choose to write each subsystem from scratch, specifically for the engine, or use an existing implementation, maybe in the form of a library; again, in this case, many suitable choices are ready to be utilized. Therefore, why limit an engine to only one such implementation (ease of development and performance are two good reasons, but read on)? It would be a more challenging and rewarding experience to try and build a modular engine that could accept and connect the user’s choice of subsystem implementations: let’s hypothetically say, for one game or user, a combination of OIS for input management, Ogre3D for graphics rendering, CEGUI for GUI rendering and OpenAL for audio rather than, for a different game or user, SDL for both input and graphics, an internally developed GUI renderer, and FMOD for audio.

And that is the idea that led me to start working on the Neutron engine. Neutron aims to be a modular engine that is not statically dependent on a particular combination of subsystems but allows for the usage of whatever the engine user wants to use (as long as the choice is supported by the engine, of course). It will grow to support many possibilities and allow for a more flexible, and hopefully more portable, 3D game engine architecture. Performances in this case are a critical factor, and the generalist interface could pose overhead concerns; I don’t know yet what the result will be in the end, but since I started working on it I’ve been gaining skills and knowledge that are priceless. Russell Norvig (and others) put it this way: “The best kind of learning is learning by doing”. I will post more information about the engine architecture later, for now its (open source but definitely in alpha state) code is available with that of Alpha Shooter, easy to find if one follows the instructions on the Alpha Shooter website.

  • English
  • Italian
Share This

Making it harder for Canada

Sycamore Maple, by Willow, Creative Commons Share-Alike 2.5 licenseWhile shopping online I was once asked by a business tracking website to complete a survey about my experience with the online store I had just visited, with the chance to win monetary prizes if I accepted to participate. This is nothing new, but in the terms and conditions to accept for taking the survey (which one should always read) I found something peculiar, which I quote:

1. Who can enter: Open only to legal residents of the United States (excluding Puerto Rico) and legal residents of Canada (excluding Quebec) who are 18 years of age or older.

[...]

4. Timing: To be eligible to win, entries must be received by 5:00 p.m. PT January 18, 2008.

Sponsor reserves the right to verify eligibility qualifications of any winner. If a Canadian resident wins a prize, that person must also answer correctly within a 5 minute time period a mathematical skill-testing question without the benefit of any human, mechanical or electronic calculating devices before the prize will be awarded.

[...]

I assume Canada must have a law that requires citizens to actually earn the prizes they win, and not just have them donated by Lady Luck; but by the way these rules are worded, it almost sounds like somebody enjoys giving the poor Canadians a hard time.

(By the way I didn’t participate in the end, for other reasons.)

  • English
  • Italian
Share This
Close
E-mail It