Games

A short history

I've always been a passionate games since I was a kid. Of course this shortly led me to learning how to write my own games. I was 4 when I started copying the games found on paper magazines on my father's Commodore VIC 20.
I can still remember the time it took to save and load those games from the tape recorder. And all of the problems when the tape twirled and got stuck in the recorder! 

During school time I spent a lot of time developing my own games, tools and engines writing plenty of code in x86 Assembly, Pascal, C/C++.

Later on I managed to work remotely for a few US based companies until I later started my own company.

Personal projects

Here's a list of the personal projects I worked on. It's not necessarily in chronological order, but it gives an idea of the kind of stuff that I'm interested in when talking about making videogames. Some of those projects have never seen the light of the day as I've never released them, though. I'm not even sure I still have the code lying around.

I was still in high school when I made my first 3D engine in mixed Pascal/x86 ASM. That was the time I got into the demo scene and I came up with matrix transformations, texture mapping, chroma-key transparencies of 3D convex solids, all in good old 320x200, 256 colors VGA.

At that same time I wrote a 2D tile scrolling engine and used that to make a multiplayer competitive game. It featured infinite sized 2D levels, UDP networking with up to 8 players, client/server architecture with auto-election of one of the clients as server.

The next incarnation of my 3D engine came a few years later. This time I went for a C/ASM combo. I started from scratch learning from my previous engine. It featured 3D convex solids in High Color mode (16bit) at every supported resolution (we're talking SVGA there). It featured texture mapping, perspective correction, multi-point lighting, colored lights, Gouraud and Lambert shading, z-buffering, movable cameras. It supported models made with 3DStudio and exported in 3DStudio ASCII format. I even managed to make a tool to convert 3DStudio files to my own high performance binary format (TNS). Later on I ported this same engine to Windows 95 using DirectDraw. That was still when there were no 3D video cards around.

Shortly after the first 3D cards were out the door I started working on different DirectX prototypes to learn the new Microsoft SDK . They were mostly small games and AI experiments.

At some point I wanted to take Bitmap Bros' Xenon 2 Megablast and make a 3D version of it. I called that CSenon 3 and actually created a 3D space shooter using Auran's Jet SDK. It also featured local and internet based co-op multiplayer.

Thanks to Real Arcade who were promoting independent developers (that was way before the rise of the indies!) at some point I got access to LithTech SDK. That was a revelation as it was the first real middleware that covered pretty much all you needed to make an AAA game. I made a little RPG with multiplayer support and a fully scriptable system for quests and events.

In the meanwhile I was also fascinated by the MUD community and I had that idea of a graphical MUD. Of course I was not alone. Others were trying to achieve something like that. I managed to join the development team of Illusia and write some of the AI code for NPCs.

Not long after that Ultima Online came out. I wanted to make my own UO server so I joined the UOX3 server emulator project. Someone had already reverse engineered the network code and developed the basic stuff for the server. I rewrote most of that code and improved the performance a fixed a hell of a lot of bugs. I also managed to write new scripts and features.

When Neverwinter Nights got released I found a new way to make my own online server to play with friends. What was missing was a way to persist data between game sessions. That's when I wrote a wrapper for MySQL and the necessary libraries for Neverwinter Nights. That way I could persist the world to a SQL database. That project reached 500 subscribers as soon as I launched the alpha test.

In between I managed to write mods for Unreal Tournament, Call of Duty, Half-Life 2, and many other FPS.

That was also the time when I learned UnrealScript, the Source SDK, Unreal Engine 3 and later on Unity and Unreal Engine 4.

Some of those tools are now part of my everyday game making arsenal.

Even though I value Unity as a very good engine when you need to cut the time and costs of development, I also had to switch to using engines like MonoGame and even write my own C++ high-performance 2D cross-platform OpenGL ES 2 engine. Recently I released a new Open Source game engine called Binocle. It’s available on GitHub and it features 2D and 3D OpenGL rendering, multi track audio, collision detection, sprite batching and much more.

I’m also working on a prototype cross platform engine written in Rust. It started as a mini game prototype and it evolved to a stage where it runs on desktops, mobiles and soon in browsers

Beta testing

I've been beta testing a lot of games, especially multiplayer ones. To name a few: Ultima Online, Anarchy Online, DarkSpace Mimesis Online, Disney's ToonTown, Dark Age of Camelot, Dragon Empires, Shadowbane, Project IGI 2, Prigioni.

I also beta tested a lot of different SDKs: Crystal Space, Nebula Device (the one used by Radon Labs' Nomads), Auran's Jet, NeL (Nevrax Library, the one made for the MMO Ryzom), WildTangent WebDriver, LithTech SDK.

More games

I've been an active member of the MUD-Dev community, a community of developers and designers of online games constantly exchanging opinions and ideas with people working at places like Sony, Mythic Entertainment, Skotos, and the like.

I've also been a Role Playing Games addict, both on computer and with pen and paper. I've been playing D&D, AD&D, Cyberpunk, Call of the Cthulu, and more RPGs for years, both as Dungeon Master and as player.

I also enjoy playing tabletop and card games every once in a while.