Good News, And...

Posted by Reverse on 10-28-17

So, I have some exciting news! I've managed to snag my very first, full-time, salaried employment! I've had to sign some non-disclosure agreements, and there are a lot of things I can't say, but it's surely okay for me to share my job title. I'll be a full-stack software engineer. Spicy! I won't say anything more about that, because... Well, the NDA was a pretty thick packet, and it's better to be safe than sorry. But there is one another thing I wanted to share.

It's no secret that I'm super-intro retro games, and that retro development has always interested me. I finally took the plunge and wrote some meaningful code for an oldschool console; just as a learning experience, and for fun.

There's not a whole lot going on here, but I wanted to make sure that player input, background tiles, sprites, and animation were all part of the demo. And there's working collision checks, so that's something. I uploaded a video demo to YouTube.

I definitely want to keep playing with this. I don't know how much I want to do with it, but I'm having a lot of fun so far.

Grind for Levels!

Posted by Reverse on 08-24-17

I recently completed my very first game jam! The aptly-titled Weekly Game Jam gives all participants one week to create a game from scratch. To spice it up, the game's are to fall in line with a particular theme, which participants do not learn until the challenge begins. Last week, that theme was "Obey."

I learned a lot while doing this, and I had a ton of fun. One of the most important lessons I learned, was what's possible in a week's worth of time. Or, to be more honest, I learned what wasn't possible in a week's time. See, I decided to create a turn-based strategy game. To my credit, I did complete the challenge! However, as the days went by, the scope of my project became leaner and meaner. I had such grand plans! And... in the end, my game had a total of three 5x5 maps, and a paltry two classes to work with!

I'm still proud of what I accomplished given the time constraints I had, and I've added the game (both source and binary executable) to my portfolio page. There's a video demo available as well. If I decide to do another game jam in the future, though, my project's size may be a bit more grounded in reality.

Fun With Genetic Algorithms

Posted by Reverse on 08-05-17

Lately, I've been putting a lot of time into learning about genetic algorithms, and working with them. As a research assistant at UMB, I utilized genetic algorithms on a handful of occasions, so I was already familiar with the types of situations in which they can be utilized to find solutions. However, inspirations can come from all sorts of places, and it was an amusing anecdote I read about a week ago that re-sparked my interest in this topic. I'm not sure if the story is true or not, but as it goes...

A game developer postulated that a genetic algorithm could be evolved for use in the field of video game AI. Rather than script an individual enemy's behavior, this developer decided to try and let his creation develop its own behavior pattern. So, in the game he was working on -- I suppose it was an action RPG or something similar -- he created a goblin, and started whipping together some code for the genetic algorithm. When he got to the fitness function, naively, he decided that fitness should be equal to the total time that the creature spends alive. He hoped that the Goblin would maximize its lifespan by utilizing its available skills to defend itself.

His project was a success and a failure. While the Goblin did learn to maximize its own survivability, it did so by exhibiting extreme cowardice. It would flee all battles, stubbornly refusing to engage other creatures or the player.

I think this shows the potential of genetic algorithms in this problem domain. The goblin learned to do something remarkable. At the same time, this is also an amusing reminder that a program will only do exactly what the programmer tells it to do, and nothing more. ^^