by Eugene
This is a mobile J2ME project. From a central Midlet, users can download various games in the form of scripts and resources from a central server. This midlet then interprets the scripts on the fly to execute the game content.
The project makes use of the JSR 75 File Connection API as well as tools such as LWUIT and FScriptME. I basically took all these components, and welded them together into a functional scripting system through which you can create simple animated games. This was then handed off to the UI artist/programmer who I suppose will make it pretty and add polish.
They are probably still doing that now, so no names, no pictures, all in the name of the mighty NDA.
Posted in Projects | Comments (0)
by Eugene
This program simulates dock-side cranes, and is used as a training aid for aspiring crane operators. The hardware resembles the interior of the crane cabin, with 3D graphics and physics simulating the actual dockside environment. There is also a trainer station, from which trainers can both modify environmental effects as well as observe the progress of the trainee. Multiple trainees can work within the same simulation.
There was a small team of developers working on this, and my job scope was to engineer the input system, interfacing it with the hardware, as well as providing a “virtual console” which can be used to test the product on a PC. I also provided consultation for the programmer who was in charge of implementing the physics using the PhysX engine.
The graphics implementation was farmed out to yet another company, which was pretty screwball. In the end, it was a huge project that employed a few individual disparate teams. It would probably have been much simpler to have all the development done under one roof.
I’m not sure if the company has gone live with this, so no pictures or names for now.
Posted in Projects | Comments (0)
by Eugene
This is a shopping store simulation where customers can browse store products and purchase them through a realistic 3D application. The virtual environment is an exact replica of the brick-and-mortar store itself. The purchasable products are also exact look-a-likes of the real goods. Customers can manipulate these products, rotating and zooming in on them in full 3D.
This was all done using… wait for it… the Unreal Engine 3! Say overkill? It’s amazing what can be done when you have budget. We were sent to Shanghai for a 3 day training course and consultation. After that, we rolled up our sleeves and got to work. Our artist was going balls-to-the wall with all the fancy shader effects. I’m pretty sure he was in a constant state of artgasm.
Meanwhile, I got to touch on the finer points of Unrealscript and the underlying engine. What we came up with in the end was pretty darn good looking. But from what I know, it isn’t really launched (yet?). So no pictures. *shakes fist at NDA*
Posted in Projects | Comments (0)
by Eugene
Project Alpha is the working title of a turn-based strategy game built for the iPhone for Personae Studios. It was created using the iPhone SDK and Lua back when the iPhone SDK was still in beta.
My main responsibility was as the Project Lead, managing and mentoring 3 interns to deliver the prototype within 1 month. In addition, I also coded the more complex features of the game, including a simple demonstration of a custom touch gesture.
While we did manage to deliver some interesting, if ugly (we had no artists) gameplay, the main thing seemed to be the framework which Personae used (I’m assuming) to develop a bunch of simpler titles to catch the launch of the app store.
Posted in Projects | Comments (0)
by Eugene
Gather Your Gurbles is a casual physics-based game. The objective is to slingshot your character, Gale, to knock the enemy Gurbles off the play area. It features a wildly casual art style, semi-realistic physics, and a utility through which you can design your own Gurbles for in-game play.

The main menu
The project was done for a startup casual game company called Brick Age. I was the sole programmer for this prototype, but did not have to handle project management or design. It took a total of 3 months to complete.
The game itself features three game modes. The first is the adventure mode. This is where the player plays through all the levels in succession, and is peppered by humorous comments by the enemy characters along the way. Completing each of these levels unlocks it in the second mode… the Challenge mode.

Gameplay
In the Challenge Mode, players need to beat certain objectives in each of the levels. Doing so awards the player with a plain Gurble, which he can decorate with his own textures and stitching patterns. These can then be used for the third mode of play – Multiplayer. For the prototype, however, multiplayer play was not incorporated.
The whole thing was done with Playfirst’s Playground engine which I have grown to hate. The engine is multi-layered, usually leaving an easy way to do things and hard way to do things. Always a sucker for the easy way, I often ended up doing both. So yes, you use their sprite class to attempt to do positioning and deformations, find out that it can’t quite cut it, then go back to calculating your own good old-fashioned matrices. And then you take that and try to integrate that with their lua-based framework which encompasses the main game loop. Painful!
Posted in Projects | Comments (0)
by Eugene

The intro screen
This was a quick flash-based pseudo-3D goal kicking game meant as an advertising gimmick for Gillette. Basically, it is penalty kicks with a bunch of obstacles for the ball to bounce off.
It was integrated as a mini-suite of games that included soccer, golf, tennis and cricket. It was fairly entertaining implementing 3D pseudo-physics in a 2D environment, aided by some research in art that I happened to be doing at the time. In the book “Drawing on the Right Side of the Brain” by Betty Edwards, she stresses that you draw what the eye can see, rather than the brains pre-conceived notions of what should be there.

Gameplay
Taking that in mind, my “physics” comprised of making the ball smaller or bigger, altering the direction and speed based purely on what you would see if the ball were bouncing in 3D. This is opposed to the “math” approach where you take proper 3D physics and transform it to a 2D environment. It turned out to be more efficient too. Yay for innovation!
You can play this game at Gillete’s website.
Posted in Projects | Comments (0)
by Eugene
This was the first freelance project I had for a group of individuals rather than an established company. These people were business opportunists as opposed to game industry veterans, making it all the more harder. All in all, it was an interesting is somewhat painful learning experience.
What we did manage to develop was an online Hong Kong style Mahjong game, with AI opponents as well as multiplayer action. It was meant to be an offshore-hosted online gambling deal. After going through the design and showing them the storyboards, it was decided that it would be done in 2D. Thus I employed Haaf’s Game Engine and integrated that with CEGUI.
Unfortunately, the clients weren’t too happy with the 2D look and feel when they saw it, and we eventually ended up tweaking it by making it pseudo 3D with fake perspective transforms. This too, caused artifacts, and it was evident that they needed a 3D implementation. Something that they weren’t prepared to budget for.
In the end, I let this project go, feeling so bad that I refunded them half of their initial paid-up fee. What I picked up from this is that you can never do too much storyboarding, especially with clients who are inexperienced with the gaming industry.
Posted in Projects | Comments (0)
by Eugene

Title Screen
Named after one of my favourite Transformer sets when I was a kid, Constructicons is a simple physics game where you link together boosters and balls to form some sort of craft and attempt to keep afloat.
All these parts drop from the top of the screen. The balls stick to your base object, each other, boosters, and pretty much everything. They are the glue that holds everything together. Boosters provide propulsion which helps you navigate your ship. There are two different colored ones, each type of which can be fired off by either mouse button. All these of course, have mass, which is weighing you down. Once you drop off the screen, your game is over.

Some Gameplay
This was done as part of a coding competition. Code-a-thon is what they called it. Sponsored by EDB, and held just before AGDS. 30 hours was given for each group to develop a game from scratch based around the theme “Growth”. My team only consisted of my lonely self. But I still managed to complete it, and clinch the “Best Game Design” and “Best Technical Design” awards. The other one, “Best Art” went to a Katamari-like game made by the 7cans team.
There are still a couple of bugs. The occassional crash, caused by Audiere (or rather my hasty abuse of it), and sometimes, if the forces are just right, the whole structure spins horribly out of control. I left those in, just to show what can be done in 30 hours.

More Gameplay
You can download the whole game in zip format from here. Feel free to cannibalize any of the assets, though why anybody would want to pinch my ugly programmer art is beyond me.
Posted in Projects | Comments (0)
by Eugene

- The main screen
Deep Quest is a casual RTS game set in an undersea environment. The humble Abyssians wage war against the evil Gorlons in a fight for survival. It features tonnes of unique units, beautiful underwater maps, and an engaging storyline.
There are 10 different missions in which you aid the Abyssians in overcoming the challenges that face them. Each time, you get promoted in rank, and get access to more powerful units and structures.
The project began with only an artist (a very talented one, I might add), the designer and myself as the programmer. This lasted for about 6 months as we brought the project to its alpha stage (i.e. full base engine with runnable, scriptable missions and in-game cinematics). Following this, the code was handed over to Nexgen’s able in-house development team for a further 6 months of polishing and tweaking. During this time, I only had to go back for one week towards the end to help iron out the few remaining bugs.
The game itself was built in C++, using the opensource Ogre3D engine. Missions and unit AI were scripted using Lua, and audio was done via OpenAL. Overall, pretty simple tools.
This game is available on Yahoo. You can get a free trial here.

Some RTS gameplay
Posted in Projects | Comments (0)
by Eugene
Yes, so I tried to build an MMORPG. Don’t laugh. It wasn’t my money! It’s more a case of “If you don’t try, you don’t know”, and since I was getting paid pretty well, why not?
The beginning was rough. Why? Because there were only two relatively experienced game programmers on the team. Robin Tan from Envisage Reality, and myself. The others were either traditional application developers or interns. Also, we were using a beta version of the Truevision engine, and that certainly did not help keep things running smoothly.
The concept behind the game was simple. We were making a Maple Story clone, except with a bit more of a serious theme and a more complex skill system. Also, rather than being completely 2D, we’d be having 3D characters running about in a 2D world. Doesn’t sound so bad, does it?
When I was first hired, it was just to do the networking. Swell! Well, after that was more or less in place, everybody else was still struggling, so I picked up the physics to do. And then I did the animation system. Which culminated in the scripting system. Then having tinkered enough on the server side, I refactored the client’s graphics system.
So after nine months of hard labour, we had the semblance of a base engine up and running, after which the boss created a sample level. It wasn’t fun. Sure, we had crappy placeholder graphics, but the game design itself just didn’t take off. We persisted for a bit, trying to make something out of nothing, but it was not forthcoming.
Eventually the project was put on permanent hiatus, and that was it. But hey, at least I got to work on an MMO!
Posted in Projects | Comments (0)