Introduction One day, building security called my office because the cameras were not streaming properly. Naturally, this was my fault. I was not touching the cameras. I was not touching the network switches. I was not even doing anything that sounded security-camera-adjacent. I was, in my mind, doing very responsible …
Introduction This is yet another reboot of the attempt to dish out more fast-paced, short-form content in order to keep the ball rolling. Previous attempts have not been successful, so my hopes are not high, but I’m going to give it another shot anyway. That’s it for the …
Introduction I find the saying “There’s more than one way to skin a cat”, just as much as the next guy, quite morbid and gruesome. And yet, I like to use it and tell myself that people aren’t really skinning cats for sport or professionally, it’s just …
Introduction Who isn’t talking about AI these days? This topic has made its way into every conversation, in every field, in every way imaginable (and unimaginable). The obvious areas where AI is mentioned could be automation, robotics, and perhaps the hardware accelerator manufacturers. These areas are basically intertwined with …
Introduction Second blog post since forever, and I have no idea what this one should be about. The main problem is I”m writing this a I finish my workout, so I don’t have much going on in terms of setup, but that’s fine. After the rant in …
Introduction Boy, has it been ages since I last wrote a post. I can hardly recall my style, even, however that’s not really an issue as we’ll see. Out With the Old As you may (or may not) have noticed, the blog is finally migrated to a sensible …
Introduction Over the past couple of posts, I explored basic parallelism in Python with the help of Ray. Since then, I’ve adopted the library in my work and built some pretty cool things with it, all of which I would like to cover in detail someday: Actor Pools : I …
Introduction In the previous post, I wrote about parallelism, and towards the end, mentioned Ray, the ultimate python package for parallelism. I played around with it today, and wanted to give my take as well as describe the new challenge that I am currently stuck on. Prelude Ray is just …
Introduction Why am I writing after such a long absence? Wrong question. Why haven’t I been writing for so long?! I could just sit here and give all kinds of excuses and reasons as to why that is, but the truth is … I slipped. I think. Programming was pretty …
Introduction As software engineers, our job is to make sure computers behave in very specific ways when the software we have built is being executed. Now, this sounds extremely trivial, but this is what it really boils down to… Unfortunately, the tools we are provided to make this happen are …
Introduction I was waken up at 3:30 am by the sound of the fire alarm … I tried to ignore it, but that deemed a fruitless effort. So, I moved to the living room, tried my luck there. No dice. So? Screw it. Go to the nearest Costa, have some …
Introduction I wanted to quickly write a python script that would solve a relatively simple problem. The problem is, I needed to generate a plist file based on data defined in a Swift file. This will involve file access, regular expressions, and file templates. Sounded a bit daunting at first …
Introduction Ehm, for this one, I am really disappointed at my network of pythonistas. I was looking for such critical tool that would change my life forever when it comes to developing Python applications, yet no one could point to the ultimate solution I ended up finding by chance. The …
Dancing with the Snake I’ve been engrossed in Python development lately, since we have requirements to build a unified platform for UI testing tasks, such as publishing results, browsing screenshots, … etc. Being a “seasoned” Python developer, I didn’t think twice about going with Flask, so everything was build …
Introduction I have been ignoring errors coming in from my backend for a while now .. There is only one serious and frequent error, actually, and I’ve no idea how it’s happening, so decided to ignore it .. That was a grave mistake. Today, a user reached out and complained …
Introduction I’ve been into mining Crypto-currencies recently (I’m not sure what’s the proper way to type that, so will refer to them as cryptos from now on .. with the added bonus of triggering cryptography nerds :troll:). So, what’s the big deal? I’m actually quite late …
Just Type I literally just want to breathe some life into the blog again .. I am not sure what I want to write about, but I do want to address the fact that I haven’t written anything for so long, and I really miss this part of my life …
Introduction To be honset, I thought I lost it. This flow of inspiration to write. Share an experience, learning or otherwise quite meaningless life story. Somehow, I feel it’s back now. After all this time. What changed? Hmm .. This could be a separate blog post in of itself! Let …
It has been a while since I have posted anything, and to be honest, I shouldn’t be posting anything, since I’ve got loads of other things to worry about..! But oh well, I have searched the Internets high and wide for tids and bits about packaging ReactNative as …
OMG, I STILL CAN’T GET OVER THE FACT THAT I’VE SHIPPED MY GAME! Yeah, it’s that crazy .. When you’ve obsessed over a project for 5+ years, and it finally crosses the finish line .. I mean .. It’s probably like losing your leg for 5 years, then …
Introduction After a previous post outlining the importance of using SSL, especially when dealing with websockets, I needed now to implement auto-renewing certificates as a cron job or whatever. Previously, I had used the “standalone” approach to get my certs, which worked great.. However, it’s not ideal when you …
Introduction As I wait for my laptop battery to drain so I can do complete power cycle for the battery, might as well write a post! I recently started digging through the Unity Asset Store, and found some gems of assets! Let’s take a look. Moderation Before I go …
Introduction On a fine Friday evening, after I went over my git repos making sure everything is synced with upstream, I delightfully pack up reminiscing the past week. It was a fine, productive week! Lots of trello cards moved over to the done column. As my phone’s slack was …
Introduction This blog has been side stepped for quite a while .. For some reason, this pattern happens every time.. During the beginning of the year, I’m like “I’ma blog all year!!”. However, I slow down during the middle, and near the end realize, “Oh crap, let me play …
Unity ads is a great opportunity for games to make some serious revenue from the free players segment. These players would never pay a single dime, so making them watch a video ad results in revenue for your game. The Unity platform is insanely good with video ads. Basically, you …
Well, I did need to write about the current authentication design, not that I think it’s amazing or anything like that, but in fact, I need to write it out in order to properly think about it. So, what’s the deal with the authentication flow? So, I decided …
Holy crap, I completely forgot about this devlog >__< .. definitely should not have… I don’t remember what the last post was about, but since then, just too many things were worthy of at least dumping here .. Learning new optimization tricks in python thanks to the interview process preparations, Swift …
That was painful … Dealing with Ecto changesets. The thing is, I’ve been trying to implement a way to use changesets in order to protect certain properties of the model from being modified by an external source. For example, users of the app can change their username, but not their …
Introduction Throughout my game development journey with Unity + C#, I have found the C# language extremely flexible and versatile. By utilizing the right techniques, one could eliminate lots of boiler plate and achieve remarkable expressiveness. I talk about expressive code a lot in my posts, but if you need a …
Not a very friendly title, but I really need to throw out there what’s happening these days. It’s too valuable to be lost in translation or in a long term memory archives… For starters, I finally realized that toon shaders don’t cut it no more.. They are …
Even though I set the title as “Anonymous Socket”, I decided not to go that route after all… Here is a quick brief of what’s going on inside my head: I need anonymous clients to connect to the backend and generate a temporary guest account to use in case …
Even more errors, and more edge cases to solve … If you are developing a game, really there is never a dull moment around here .. Every single detail is a challenge that requires careful thought and planning. The idea is that once you start executing, everything should just fall into place …
Forgot that on a similar note to the previous post, I was wondering how I should deal with error message localization. I can deal with the localization on the frontend or the backend. If I choose either, there are also multiple ways to approach either one… Then, there is the …
Hmm.. here I am again just typing stuff instead of working on my game .. This is the penalty of inexperience and lack of another brain to bounce ideas off of.. Well, the issue I am facing now is dealing with backend errors on the client side. The backend gracefully handle …
Just needed a quick way to track some tasks, so here it goes… Found a bunch of crap surrounding the dialog implementation. Most of it was easy to cleanup, however, the animation code I just can’t find it… Looking at how the dialog isn’t deactivated nor cleaned up …
So, after spending all that time perfecting the relationship between the game logic, graphics, and view, the game started coming together. Implementing new crap is much simpler, since everything is where it belongs, and it doesn’t take time to think about where to implement it. With that, my trello …
I derailed, and I derailed hard… I was simply focused on trying to implement animation ended hooks, so whenever an animation ends, the main game loop is informed, and the next task is processed… Somehow, during that implementation, I found a nasty part in the project, but it was working …
After much struggling, procrastinating, and LoLing, I have finally set my mind to it. Previously, I have explained how I should be moving the game state within the game logic, but once I started looking at the code some more, something stood out. The graphics part was tightly coupled with …
I am struggling to find the zen between three entities in my game: State Logic Graphics the game state is an immutable object that simply represents the state of the game. If you want to change the game state, a new copy is created. This makes game state super simple …
Damn, that’s why I was stuck on this all along!! Remember the GameResult problem where I was thinking of how to represent who won? Well, the reason it was a bit more complicated than it seems is because I have “smart game results”. I don’t generate a single …
Wow, I really should have started doing this since forever … But you you what they always say: Better late than never I mean, really, so many problems could have been preserved .. I’ve written a lot of them on white boards, idea paint walls, notebooks, notepads, and even voice notes …
In Dama, a game ends under the following conditions: A player disconnects A player surrenders The players agree on a draw The game reaches a draw state The game reaches an ended state So many different ways to end the game, and thankfully it was super simple to streamline all …
to further lower the barrier of writing to my blog, I decided to start this devlog thingie. I can just do brain dumps here without even worrying about the structure, title, content, or anything like that… Well, I actually started this because I am too lazy to create a live …
Introduction Finally, I’m back in the game (literally?), and working on the Elixir side of things for a change. So, my Elixir backend is heavily tested using unit and integration test. For now, a total of 83 unit tests assert their way through my code, all way from checking …
Less programming these days, and more animation design. I’ve been using Unity’s animation system to bring the game to life, and it’s a pretty solid system, I have to say. As with all things Unity, it has gotchas, so this post will cover some of them. Triggers …
Introduction The final post that concludes the series about game development is gonna be around the backend (server). It’s pretty big topic, but I figured I’d summarize it in one (probably) long post, so here it goes. The GUI system The game engine The game services The backend …
Introduction As highlighted by the nifty list below, this is part III of the four part series about game development! The GUI system The game engine The game services The backend system I apologize for the ambiguous, possibly inaccurate, name “game services”. I just didn’t know what to call …
Introduction In the second article in this game development series overway, I would like to shed some light on the aspects that make up the game engine. Overview: The GUI system The game engine The game services The backend system The term “Game Engine” is arguably not well defined. For …
Introduction There is always something to post about when it comes to game development it’s so vast!! So, this is a post just to talk about how vast it can be! (think meta). Look, before you get all intimidated on me, game development can be as simple as drag …
This will be a quick one, since I didn’t really upgrade to Phoenix v1.2.0, unfortunately… Why, why not?! The main reason I was eager to upgrade was the new Presence feature. It will really streamline my code, and allow me to easily implement the monitoring stuff I …