top of page

About Me

  • Yo, I'm Mack, but online I go by iMackshun. I'm a 22 year-old Computer Science major with a concentration in Video Game Design and Development at the University of Louisiana at Lafayette. I will be graduating in May, although I have already completed all of my classes to graduate. I live and breathe programming, just ask my family members. My main hobbies are programming, watching anime, playing video games, listening to music, and hanging with friends. A few of my favorite anime are Soul Eater, Demon Slayer, Noragami, Food Wars, Beastars, and Attack on Titan. When it comes to video games, I love fighting games, such as Under Night In-Birth, Super Smash Bros. Ultimate, Persona 4: Arena Ultimax, UMVC3, and much more. I also love JRPGS, such as the Tales Series, Final Fantasy, and Persona. Then there's music rhythm, where I could to on and on. Parappa the Rapper, osu!, Gitaroo Man, Ouendan, etc. In terms of music, I'm all over the place. I'm a big fan of Gorillaz, but I'm also a big fan of JRock, Rock, Metal, Rap, Funk, and Pop. I also love various OSTs of video games, such as Persona's soundtrack.

My Programming Experience

  • The earliest memory of programming I have dates back to when I was about 10. I was always browsing the internet and looking up random tech videos when I came across a guide showing how to softmod a Nintendo Wii. After I went through with it, there was a varied assortment of homebrew that completely opened my eyes to the limitless possibilities they offered. I remember downloading a 3D remake of Balloon Boy, that I believe had cel-shaded graphics. In my eyes, I thought it looked like Wind Waker, and thought it would be really cool if I could make a Zelda game like Wind Waker. Of course, I didn't understand how games worked at that point, but after following so many guides on the internet, I had became comfortable with browsing through file structures and directories. I poked around Balloon Boy 3D's files, and saw a ton of files that didn't make sense to me at the time. That brought me to a program called DS Game Maker. After using that for a while and making a few games with it, I began to feel like I wanted more control over how the application executes. I tried using Game Maker for a bit, but I still believed that I still wasn't getting anywhere.

  • From there, I came across a Java tutorial by Kilobolt. (http://www.kilobolt.com/) This happened when I was in 9th grade, so I was around 14 at the time. This site provided exactly what I wanted. From there, I learned the basics of object-oriented programming and basic programming concepts. The tutorial then transitions to using LibGDX, a cross-platform game development framework. I was immediately hooked because I could deploy my games to both PC and Android without having to make any modifications to the code. There is something very magical about developing a game for a mobile device, and passing for a friend to hear their thoughts. To me, desktop applications just don't feel the same. All of the LibGDX projects here are the exact ones I worked on while learning Java.

  • Shortly after I got into college, I still felt like I wasn't really advancing as a game developer. I had a pretty good understanding of LibGDX and played around with Unity every now and then, but I wanted to program at a lower-level. A friend of mine lent me the OpenGL SuperBible, as I thought this was an excellent opportunity to learn about computer graphics while also learning C and C++. After I was able to draw a triangle, I was ecstatic. I then proceeded to draw sprites, and learned how to get input from the keyboard. At this point, I had my eyes set on recreating the original Super Mario Bros. (NES) in OpenGL. After I made progress with SuperMarioGL, I thought that it would be great if I could reuse the code to make more games. BOOM. I could make a game engine. After I began to work on more projects, more and more features were added to the engine, such as 3D rendering, basic collision tests, better controller support, and much more. I then took a detour and looked at some homebrew samples on the Wii. While I was looking at the graphical code, I instantly saw similarities with the code that I used with OpenGL. To my surprise, I was able to get my OBJ Model Loader application to work on the Wii via devKitPro. At this point, I decided to look at other homebrew samples, such as those on the Vita and the Nintendo 3DS. These were also fairly easy to understand, so I immediately thought that it would be amazing if I could port my engine to various platforms so that the games that I developed using the engine could run on multiple devices, much like LibGDX. I had some success porting the engine to the 3DS, but the Vita, not so much. For now.

  • All this time, I didn't consider the obvious platform to port the engine to. Android. After translating all of my C++ code to Java, I noticed that performance just wasn't the same. There are also quite a few data types in C that just aren't available in Java. This was very frustrating, and not to mention updating my engine would require me to translate the code to Java. There has to be another way right? It would be great if I could just run C++ code on Android. To my surprise, there was. Android's Native Development Kit allows you to compile your C and C++ code into a library file that an activity can execute natively. By using a NativeActivity, you can have an application that runs native code entirely. I used this to effortlessly port my engine with very little modifications. I continued to develop games that work on both PC and Android, and that brings me to where I am today.

Contact Info

bottom of page