|Project Duration: 8 Months
While working on Texas Poker for Prizes I had the opportunity to learn many new things such as: objective C, working with Unity3D, programming for IOS devices and working for a game development studio.
I participated in just about every part of making this game, from doing UI programming and gameplay logic down to low level tasks such as direct texture loading. Below is a list of tasks I performed that I would like to highlight in particular:
- We were having issues with our memory usage in Unity 3.4 (this seemed to be an iphone specific bug in Unity) due to the fact that because we were not using asset bundles and we had a static object that had references
to the textures and as such we could not unload them manually. Using asset bundles was not an option for us as we needed to support low end devices such as the ipad 1 and iphone 3GS and loading our assets into asset bundles would come with an added memory cost.
In order to resolve this issue I created a texture management system in objective C. What this did is it allowed us to create 1x1 texture objects in Unity (which take up very small amounts of memory) these texture objects
will stay in memory and I manually loaded textures into memory using Objective C and OpenGLES. Once the textures were in memory I would make the Unity texture object reference the texture that I have just loaded into memory.
When the game was done with the texture I would unload it from memory manually, which allowed us to run on the lower end devices without crashing due to running out of memory.
- When I started on Texas Poker for Prizes they had a game server, which allowed them to play multiplayer games. Unfortunately this game server did not work very well and would crash constantly or get stuck in logic loops as it was waiting for the client to tell it what to do.
I took the server that was there and re-wrote the entire game play logic and flow, such that the server was now telling the client what to do and the client was waiting for the packets from the server before continuing with game play.
This stopped the server from crashing and allowed for a smooth multiplayer experience.
- I implemented all of the social features that were present in the game. I made sure we loaded all the friends lists from the different social networks we supported, that we rewarded people for liking us,
that we loaded the proper avatars and most importantly that you were able to invite and play games with your friends.
|Project Duration: 17 Months
Much like when I worked on Texas Poker for Prizes, I have worked on just about every part of Uno and Friends at one point or another. I implemented the majority of the social features, the login flow,
saving and loading the user's profile data, how the game performs in-app purchases and much more. Below is a list of tasks I performed that I would like to highlight in particular:
- I was put in charge of making sure the game server for Uno and Friends functioned and to implement any server side functionality that was required for the game. From the original release to the most current
update that I have worked on, the game server has evolved so much. I have added a new game mode for tournaments, which required me to create a new game server binary that could support 16 players and could play 4 simultaneous games of UNO.
On top of this I have now also made it so that the server takes important tasks such as posting to the leaderboard away from the client so that it is much harder to cheat and fake your leaderboard score.
This means that unlike the game server used for Texas Poker for Prizes this game server communicates with other Gameloft servers on behalf of the client as well as communicating with the client.
- If you have looked at my resume then you may have noticed I have a few tasks listed that do not necessarily apply to a regular programmer. This is because I have taken on the task of managing the
quality of service of the released Uno and Friends game. This means that I am on-call to deal with any issues that impact our user's ability to properly play the game or their ability to buy items from our store.
For instance let's say the server that takes care of our matchmaking is having issues and as such when users play games they always get matched with AI's instead of real players. I would get a text message alerting me of the issue
and I would either need to fix it myself if possible or get in contact with whoever can fix the issue and make sure it is resolved as quickly as possible.
- On top of being on-call I need to be able to work remotely so that I can fix issues that may occur in the released game as well as fixing issues with the current version that is in QA. This means for instance if we are about
to go into Apple submission and we notice a huge bug and I am not at work I will get a call and be asked to look into it as soon as possible so we can send another build to QA.