The Books: a phrase indicating membership in the Family. If there is a possibility for promotion, then the books are open. If not, the books are closed.
The Sopranos: Mobspeak
Projects related to Game Development are showcased here. This is my chosen profession. Truly, this is the one of the hardest routes to pursue and it would be shame not to show some stuff I’ve handled while journeying through this path. Pardon me if these are not as fantastic as most of you expect them to be.
Coming from Assassin’s Creed IV: Black Flag (AC4), I was assigned to join the team creating Assassin’s Creed Rogue (ACRogue). The ACRogue team is a very small team compared to its predecessor. This project is done in collaboration with Ubisoft Sofia as the lead studio.
In this project, I was assigned to handle the Boarding System from AC4 and keep it intact. This feature was originally from Montreal and is basically a huge high-level system leveraging on a web of existing gameplay sub-systems. Aside from keeping the old boarding system intact, a new game feature called Reverse Boarding needs to be implemented. This feature is the reverse scenario of the traditional boarding, wherein your ship is incapacitated and being boarded by the enemy. This will need you to protect your ship and crew from the boarding enemies. To win, you must survive the boarding and achieve some of the objectives shown on screen. You will be rewarded similarly to what the traditional boarding offers. If you lose, you die and restart from the last checkpoint.
The initial challenge of having this new feature is to find the way to implement this feature without drastic changes to the existing system. The initial system has full of simplified assumptions set on traditional boarding, and the AI’s context in performing their duties are fixated in performing the traditional boarding rules. I was able to solve this challenge preparing more pointers and references and setting them upon activation of the boarding system. These pointers are organized and assigned to considering the more accurate contexts of “player or enemy”, and “attacker or defender”. This small change had enabled me to prove to everyone that the existing system will work without making big changes to all subsystems. The new references and pointers act as contextual aliases in code to make it more sensible and switchable for traditional and reverse boarding. Of course, some small exceptions of abnormality existed after this change but it is all very specific to certain subsystems. These abnormalities then turned to our next challenge to making the reverse boarding system happen.
As mentioned, some minor abnormalities happen after the references are switched. Most of these abnormalities are caused by the code’s direct-link to the player and enemy and treating them as attacker and defender consecutively. As you may now have realized, this is not the scenario for reverse boarding. These hard-coded references should adopt the new references I’ve introduced so a re-write of some small parts of the subsystems are essential to make this adjustment. It might sound simple to do but actually, it required a great deal of analysis and some trial and error on some game scenarios to achieve satisfactory state.
The last challenge was the most difficult. The “realism” of the reverse boarding feature is not satisfactory. The issues of realism were primarily how to convince the player that he is going to be reverse-boarded and how to initiate it, and we need to prevent the player from waiting too long to wait for all the reverse-boarding sequence to happen. This challenge required multiple disciplines and involved our game designers, animators, and FX artist. Contrary to the word “realism”, we actually tricked the system to skip some of the boring and slow sequences, modified physics, entity teleportation, and some other “magic” to keep the pace of the game enjoyable for the player.
As you see, we added special conditions on the activation of reverse-boarding from a specific ship’s ram, which introduced a stagger animation for the Shay and the player camera. Some FX-based ship smokes were added and invisible explosive and smoke grenades for the crew. Finally, some AI are strategically teleported to keep the player busy for the slower boarding of the AI.
I am happy to see this game feature was well-received by the players. This was a fairly-challenging task for me and gave me a good sense of worthy, new and refreshing contribution to this big game franchise. Unfortunately, this will be my last contribution in Ubisoft. I have to give big credit to my fellow team-mates especially the rank-and-file ones, because we know how much you worked for the game and the sacrifices you have to make.
Working for a big production house such as Ubisoft and working on AAA project is definitely an eye-opener for me. It is definitely an experience worth having personally. Next time, I already know what to expect on big, medium, or small-scale development teams and projects.
Assassin’s Creed is a game series that need no introduction here. I was blessed with an opportunity to work at an amazing company such as Ubisoft and I was part of the Assassin’s Creed IV team. This game is a collaboration with Montreal, Sofia, and Singapore studios. My task in the team was to be the point man when it comes to UI. The company didn’t have any UI team before so I was the one to gather the knowledge from Montreal and work on supporting UI needs in Singapore.
Most of the UI work I’ve participated in can be seen on the Harpooning, Naval Forts, Naval Contracts, and a few in Underwater parts of the game. I’ve been also tasked to handle some other systems like the Naval Contracts. Work in Ubisoft has been very focused per individual based on their roles and most of which are building content and setting data properly using their huge and sophisticated engine and pipeline.
I’m proud to say that this experience was valuable and was an eye-opener. However, I felt that I could’ve contributed more than usual. I’m also proud to be part of the team of this awesome series that I love to play and the fact that it is a next-gen game console title make it more noteworthy.
If you have no idea what this game is, please watch these videos:
The game is available in XBox 360, PS3, PC, XBox One, and PS4 and sold at your favorite retailers!
Monster Blade is 3D Action game built using Unity. In this project, I lead the prototyping phase up to the pre-Beta stage. I programmed the core and foundational modules of the game that will tie them up together. Later on, I left the project for personal reasons. I find that this game felt more like a real game compared to the other previous projects in Nubee.
One might notice the similarity to Monster Hunter and Infinity Blade. There’s no denying that the base game mechanics and theme are based from those two games, but in this game our Game Designer integrated unique mechanics to make it stand out. The challenges in the game are of no joke — this isn’t not just for your usual casual player.
Upon the release of this game, it was progressively recognized by the audience positively. There were several reviews and news that came out that highlighted Monster Blade:
I consider this project, DaVinci’s Quest, to be my biggest programming contribution in my company. This game made use of the custom cross-platform framework that I designed and implemented. My key design goals for this framework was efficient performance, easy to adopt API, and generic structure for flexibility in creating apps or games of any kind. All of these goals were reached. To be honest, I hope I had the framework on my own for my own personal use if possible.
This smartphone title for the iOS and Android is my first professional project for the mobile market. Upon joining Nubee Pte Ltd, I was assigned to join the team making this game. The game is actually a rehash of the previous games of the company. I did some gameplay-related programming, debugging and refactoring. I implemented the Sound Manager, Tutorial System, Achievement System, and a quick implementation of the VFX.