I stumbled upon a really insightful tweet chain talking about the connection between games and AI. I felt the need to react to each of the tweet because I have so much thoughts and feelings that I felt that I need to get off my chest.
Last month was going to be the last leg of me living in Japan. I thought it will be meaningful to write something about it.
I was considering posting this on social media or my own private journal but I decided to post this here which is... kind of public but not really. I thought some amount of publicity is good because it does make me think more about what I'm about to write (my private journal entries are not very introspective and tend to spiral badly, which is great for capturing raw emotions but not useful this time I reckon).
This post is my argument of preferring to open parathesis on a new line as opposed to putting in on the same line as a for or if statement.
Guess which idiot left their passport in the laundry. Yes it is I.
So some people close to me have been suggesting that I do a Masters in CS.
I was thinking about it on and off, and to be honest there's a part of me that feels pressured and stressed about it that made me want to start this post.
Hey, this is just going to be a ranty reflection I wanted to do for some time now about my programming journey. I'm writing this now because I don't think that I will have any more drastic changes in my programming journey, well at least not in the next 20 years. Programming is also becoming less and less my livelihood as I attempt to spend more time exploring other crafts. Anyway!
I want to yap about working as a lecturer in a university that prepare students for the industry like a trade school. Specifically, I want to yap about specific members of a specific industry saying stuff about my school.
Hokkaido was...interesting.
It was interestingly american.
I was looking at this very website recently and, for some strange reason, I felt a lot of feelings and thoughts about it. I don't exactly know what these feelings and thoughts are so many it's better to just articulate and put it out here as I try to process this.
I was cleaning up my tumblr the other day (mostly because I discovered that tumblr can edit HTML so I went to theme it myself) and I came across a really old post of mine from 2016 answering like 100 questions. I thought it would be fun to do it again 8 years later and compare my old and new answers!
For a while, I've been meaning to write some kind of a hash table from scratch for my own projects. Surprisingly for my game projects so far, I had totally avoided use of hashes and managed to optimise my problems to use simple dense arrays. The closest I came to using hash tables was when I wrote my profiler which identifies entries by hardcoded strings (which I could cheat by using their addresses instead but that's another story).
This is probably one of the wierdest things I had to wrap my head around Javascript recently. It's a combination of how closures work, functions being first class objects and that you can add properties into objects.
This post is just to document for my own reference the math that went behind the transformations (scale, rotate, translate) of the overlay pixel shader I wrote for Reshade here. It turns out that it was a little more tricky than I initially expected.
Recently, I have been writing quite a bit of Javascript for a couple of side-projects. I was a little inspired to attempt to write simple webapps without the use of any frameworks. One of them is avaliable here: FvF. This post is just some personal reflections going back to use vanilla Javascript/CSS in 2023.
Recently, Unity announced about it's runtime charges, which will suddenly apply to all developers using the engine. I feel I need to let out my raw thoughts about it because there is so many things to say and so many things to expect in the future.
A game I'm working on requires me to check if a point is overlapped by a triangle. Being a dumb engineer who can't come up wiith his own algorithm, google gave me 3 algorithms. Here I'm just going to share the algorithms and their performances.
This is a quick trick to 'flatten' an integer into a 1 or 0. This is probably a trick that only works in C/C++ because of how the not (!) operator works with integers. While it's usefulness is dubious in C++, it might be useful in C.
I've lived in Japan for a year before for work purposes. This time, I'm going to stay for a couple of years to accompany my wife as she does her Masters. I thought that it would be fun to list down some random things that I personally find interesting about Japan, since this place is kind of like my 3rd home at this point.
Here I'll pin down my thought process of changing my work's documentations from Markdown to Asciidoc. I have been switching endlessly back and forth between them and it's getting really annoying because I just want to do my work at some point. Hopefully after writing this, I will never look back until maybe 5 years later.
I was playing with Excel recently and for the hundredth time got stumped by how to use the INDEX/MATCH combo. For the hundredth time in the past years, I open the same damn website and the same damn explanation which took awhile because my brain actually needed to work to understand what's going on.
I have been spending an unhealthy amount of time for the past 3 weeks playing around with ChatGPT instead of doing my work. Seeing it evolve (some might argue 'devolve') day by day with 'better' filters was interesting. It's quite amazing to see the different things it was capable of.
It's time for another facelift!
Seriously though, I remembered liking the previous site design. A year later, however, I just couldn't look at it straight in the eye anymore. Perhaps it's because I developed a stronger opinion on what I want my site to be. Here I'll share some of my thoughts.
Here's how I derive the transformation matrix for getting from triangle A to triangle B to do shadows in my 2D engine.
Alright, the game is out on itch.io for free! Now that some time has passed and a handful of people have played the game, I felt that there is no better time then to jot down my experiences developing this small arcade game, lest I forget (again).
When dealing with raw memory directly, there might come the need to align your memory to the nearest of some power of 2.
Here is a collection of cool snippets of C/C++ code. Updated regularly. Used to show superiority and implode the minds of my students. Also to use in my own code, of course, whenever viable.
I was searching around internet for a full derivation for the 3D Perspective Projection Matrix to apply to my handmade software renderer and I was surprised by how little information I could find about it. That prompted me to write this post, to document the derivation of the matrix, at least in my own eyes.
Recently, I had to derive this particular collision detection algorithm for my bullet hell genre game. It's an interesting algorithm that can be expanded to deal with the 'moving circle vs static circle' and 'moving circle vs moving circle' problems.
Macro tricks are rare to find nowadays. Sometimes, I would code and know of a trick but had forgotten how to go about implementing it because they can look as arcane as Template Metaprogramming. Hopefully, I can document some of my knowledge of these tricks in this blog. Here, I will introduce what I call the 'Glue' macro trick.
Recently, while coding on my personal C/C++ game engine project, I ran into a surprising shortcoming of functions that returns an object by value. This was when I was still trying to keep things consistant in my project and went for a functional-programming style.