Black Mesa is the award-winning (86 on Metacritic 93% on steam reviews) fan-made re-imagining of Gordon Freeman’s landmark journey through the Black Mesa Research Facility. Relive Half-Life, Valve Software’s revolutionary debut, and experience the game that raised the bar for the entire game industry all over again!
<This page is WIP>
Link : BlackMesa on Steam BlackMesa.com
Platforms : Windows (We have a Linux port but I rarely work on that)
Languages : C, C++, HLSL, Valve’s custom scripting languages
Game Engine : Upgraded Source Engine (We call it Blackmesa Xen Engine)
Team Size : 20+
This is my hobby game engine where all the fun stuff happens. I started coding my own game engine since college when the first version was based on Allegro, then moved on to Fixed function Driectx9 and so on.
The latest version of the engine (started last year) the v4.0 is being developed from scratch in Direct3D 11. Initially, focus will be graphics and once it reaches a certain level of quality I will start adding other stuff. I will be using some open source libraries this time to help me with things like importing models, textures, physics SDK etc.
Currently engine supports –
You can check out latest developments on my development blog.
However, the last major revision v3.0 based on DirectX9 shader based pipeline was much more feature complete.All the features were implemented by myself and no other 3rd party SDK was used other than DirectX9 and D3DX for loading assets n stuff. Full list features can be checked out over here and you can also check out some video demos over here.
]]>
Minigolf is a 3D adventure game for young kids to teach them skills like counting, measuring heights, scales etc. It has both single and multiplayer modes. In multiplayer mode, 2 players can connect over the internet and play specifically designed game levels which also help them learn how to collaborate with others. Communication was restricted to in-game gestures and signals. Player characters were fully customizable, they could choose boy or girl, their clothes etc. Game even had few sandbox areas where kids can just roam around and explore. There were also couple of areas to build random stuff out of lego (kind of) pieces provided in the game and take it screenshot, just to free them of any mission based restriction and to encourage them to be creative & build stuff.
This game was a client project from American PBS Kids organisation and I worked on it when I was working full time in ExcelSoft. I was the lead on the project and responsibilities included client-side interaction and development both.
Link : PBS KIDS Website
Platforms : Web browsers (using unity webplayer)
Languages : C#,
Game Engine : Unity 3D
Team Size : 5 (3 programmer + 1 Artist + 1 Manager)
A 3D formula one racing game made for web browser. It was a single player game with 6 tracks. There is only 1 game mode in which you have to race against AI cars and you will get points based on your position. The formula one car was made realistic controls including DRS & KERS, also had a lot of dynamic features like sparks on high-speed braking, simulation of speed reduction and bumpiness on off-road surfaces. The game was made for unity web player with size constraint of 25-30 MB. I used my own custom GUI solution for the UI including custom sprite animation scripts (done with the help of some custom shaders) for some GUI elements. I made this sort of start pack or some utility code (for both 2d/3d games) which I use in almost all of my personal and commercial projects. This GUI and sprite animations were part of that sdk.
This project originally came from FOG.com but came to me through 3rd-party Indian company who forwarded me only programming part. I worked closely with their artist and even had to train him since it was his first game project. The game turned out to be pretty good with 40+ fps even on low-end laptops we used to test the game.
Demo Build with 1 test level is available on request.
Link : FOG
Platforms : Web browsers (using unity webplayer)
Languages : C#, HLSL
Game Engine : Unity 3D
Team Size : 2 (1 programmer 1 Artist)
An action adventure game made for mobile ( both IOS / Android ). It was a 2d game with 10 levels each having unique gameplay sequences. We can take it as a collection of 10 mini games. Gameplay elements inspired from many other games like fruit ninja, car chasing, 2d mario style platforming, etc. Technically game was based on sprite animations Since it was a mobile game to be made in very short time span of a month I opted to use 2DToolKit for solving many issues like resolution independent, making sprite sheets or texture atlases( as the artist who was providing didn’t knew how to make sprite sheets ) , etc.
Implemented the feature to take a photograph from device camera and combine it with some premade templates to make custom wallpapers.
Also integrated Facebook using Social Networking plug-in from prime31 (there was no official facebook unity plugin back then) .
Link : GooglePlayStore
Platforms : Web browsers (using unity webplayer)
Languages : C#,
Game Engine : Unity 3D
Team Size : 1
Tales of Heroes 3 was suppose to be an FPS+RTS game inspired from Battlezone2. The CEO at ThinkingMonkeys is a big fan of that game and wanted something similar but set in modern military setting.
It was supposed to be a decent quality 3D multiplayer game so we needed a new game engine since old engine used for TOH1 and 2 was 8bit sprite based 2d engine. So I tested/evaluated different game engines including UniEngine, C4, SourceEngine, CryEngine, Unity3D, etc.
I was personally biased towards SourceEngine, CryEngine and Unity3D. I tried each of these engines for few days by implementing some small things like a new custom weapon, moving an NPC from script or code, making custom properties for the editor, etc. Also tested tools, art pipeline, built-in features, PC configuration requirements, learning curve, documentation, licenses, etc.
In the end, it was clear to me that Unity3D is the only practical choice both in terms of business and development reasons even though I really wanted to work on some high-end stuff on SourceEngine or CryEngine, but licensing terms were not that transparent (or affordable according to info we gathered from secret sources). Also in case of CryEngine min PC requirements were a lot higher than our target market and there was no way to run the engine in sort of exclude fancy stuff & run as fast as it can on low-end configs. Unity3D was affordable, requirements were low, easy to learn with a lot of documentation & tutorial videos available online, It was minimalistic of 3 but quite easy and fast to build upon. For example, I easily imported some of the AI code for movement behaviors and pathfinding from game engine – JustAnotherGameEngine in one day.
So I continued on with Unity3D to start building some stuff for 3rd game. I worked on this for approx 1 month before leaving the company. In that time, I made a working multiplayer FPS game, some scripts for RTS part, Even thought I implemented multiplayer FPS part first, the architecture was designed considering the fact that it will be FPS+RTS eventually and RTS elements can be easily added for example, Weapon functionality wasn’t hard coded or tied to player class or single player instead I implemented some I call WeaponManager which could be drag n dropped on anything ranging from player, NPC or buildings. This class managed everything from initializing weapons, toggling weapon on or off, firing, ammo etc. Scripts were coded for different bullet types also whether it’s a physics-based bullet or spray based ray casting, etc. Also, the player controller logic was kind of separate from input controller so we can plug in FPS or 3rd person or NPC controller or even airplanes.
The project should work on low-end systems and multiplayer was only limited to LAN, so I implemented a sort of peer to peer topology so that each client is responsible for ever object generated on that client and send the updates to others. I was hoping to distribute the workload this way so no single system gets overloaded even though I could see it will be little more complicated than Server-Client architecture.
Also coded some custom shaders for specular maps, normal maps, etc. as requested by the artist. Also made a lot of reusable utility scripts/templates for GUI, editor scripts for placing GUI, for server tasks, connections, etc. I almost implemented all the ways possible to connect over the network, like Direct Connect using IP, Master Server (lobby functionality provided by unity) and UDP. Weapon templates for ray casting weapons, projectiles based weapons, recoils, etc.
Ignoring the scoreboard system, the game code was good enough to convert it into quake3 without touching any code (but optimized for LAN only), with a lot of ready use scripts for RTS parts too.
Platforms : Windows
Languages : C#, HLSL,
Game Engine : Unity 3D
Team Size : 2 ( 1 programmers, 1 Artist )
Tales of Heroes 1 or TOH is a multiplayer RTS game. It’s a 2D game made in a custom framework developed using C# over SDL. It’s like age of empires 2 game set in world war 2 timeline. So there are various type of soldiers, tanks, vehicles, ships, boats, chopper, aircrafts, missiles launchers, guns, etc.
When I joined, the project was already in development. They took basic setup from some 3rd party developer a while back and started building their game on top of it. I was responsible for implementing new gameplay features in terms of new input controls, new units, some new behaviors, etc. Apart from that I fixed a lot of bugs and did many optimizations, e.g. game was lagging a lot on low-end systems in the office because of Path-Finding & Shroud rendering system. FPS was so low that game wasn’t even playable. I did all optimization alone and made the game smooth and enjoyable.
After finishing the first game, I also worked on the 2nd game in the series called TOH2 or Tales of Heroes 2. It was almost same as TOH 1 but it had new graphics and couple of new units and behaviors e.g. Artillery, etc. Implement all the new units myself. Also in rendering I implemented support for more than 1 animation (texture sprite) to be played at some time for some units, it was limitation of the framework which they originally bought that it could only play 1 animation per object at any time.
Platforms : Windows
Languages : C#, YAML
Game Engine : Custom Framework built over SDL in C#
Team Size : 4 ( 2 programmers, 1 Artist, 1 Producer )
Tales of Heroes 1 or TOH is a multiplayer RTS game. It’s a 2D game made in a custom framework developed using C# over SDL. It’s like age of empires 2 game set in world war 2 timeline. So there are various type of soldiers, tanks, vehicles, ships, boats, chopper, aircrafts, missiles launchers, guns, etc.
I had to build a simulator for TOH 1 which is to be used by players to test their strategies and plan their moves before playing the actual game. With the help of simulator they can do it much quickly and easily. Simulator has tools developed to help player do all this stuff like –
So basically if you have 1 or 2 (or more) different strategies in mind then instead of guessing and doing math just open up the simulator and build stuff instantly for 1 or more strategies and then you can easily compare how much time, resources, etc, it will take in real game to execute that strategy.
Platforms : Windows
Languages : C#, YAML
Game Engine : Custom Framework built over SDL in C#
Team Size : 3 ( 1 programmers, 1 Artist, 1 Producer )
Asphalt6 is arcade racing game for ios and android. It includes both single-player and multi-player modes. I worked on this game for 6 months and was responsible for porting the game on various android phones and tablet. The process involved – Adding / Removing features, implementing different android market APIs, implementing utility features for helping us debug and do performance testing, shader code, optimization shadows, implementing loading/resume screens,
The process involved – Adding / Removing features, implementing different android market APIs, implementing utility features for helping us debug and do performance testing, shader code, optimization shadows, implementing loading/resume screens, optimizing for achieving best possible quality within our performance goals (worst case being nook color where FPS was improved from 11-12 fps to 25) , fixing all sorts of bugs whether in game code or shaders, fixing multiplayer bugs ( weirdest one being sometimes when 2 or more people start a game from lobby and select track A but when game is loaded some users load track B & C and they all race in different tracks) , fixing even flash bugs in SWF files by coding special paths in game code (happened couple of times when flash guys weren’t able to fix bugs even on last delivery dates and I collaborated with them to understand the issues and fixing them inside c++ by coding in special code paths, well not really pretty but no one every reported those issue or any related problem again so good save I guess ) , fixed a lot of crashes, fixed even touch driver bugs inside game code & I am taking about released devices (that’s why I never bought a Samsung’s phone) ,changing SDKs, art, compression stuff , etc.
Link : Gameloft Website Amazon
Platforms : Android
Languages : C, C++, Java, Python, HLSL/CG
Game Engine : Gameloft’s Inhouse Engine
Team Size : 10 to 100
Avatar 3D was an action adventure game based on the movie Avatar. The 3D in the name stand for stereoscopic 3D. I worked on porting it for LG Optimus 3D phone. It was my first project in Gameloft. The tasks involved fixing various kinds of bugs in GUI, gameplay code, texture mapping bugs in some levels, quest system bugs, logos, art etc. I worked on it for a very short duration of around 2 weeks during which I fixed around 50 bugs. Also implemented a stereoscopic camera (left eye and the right eye).
Platforms : Android
Languages : C, C++, Java,
Game Engine : Gameloft’s Inhouse Engine
Team Size : 5 (2 programmer, 2 artist & 1 sound enginner)
]]>