Author: Jonathan Metzgar

  • A Traveling Salesman Problem Example

    Let’s say that you are trying to solve the traveling salesman problem. Let us compare two particular approaches: Random and Greedy. We will use a small subset of New York cities (NYC, Rochester, Albany, Syracuse). Random Algorithm: 1. Pick a random starting city from (NYC, Rochester, Albany, Syracuse). Let us start with Rochester.  Chosen Cities…

  • Using an Entity Component System with Python and SQLite3

    In the last blog post, I introduced entity component systems with some C++ template code to help out with safe typecasting. In this blog post, I want to share my experiment using Python and SQLite3 to implement the database structure I read about in Adam Martins’ blog. I have not had the opportunity to test…

  • Entity Component Systems

    This past week, I have been focused on learning about entity component systems, or ECS. This is an interesting idea that brings in ideas from the relational database field. It started getting popular in the early 2000s with a talk at Game Developer Conference by Scott Bilas. As they were initially difficult for me to…

  • Working with Vulkan

    So, work on Fluxions 4.0 has begun. I started out by digging into Kristian Høgsberg Kristensens’ vkCube source code. I think he did a good job laying out all the essential pieces. Vulkan like OpenGL is a C library at heart. Instead of many state calls, you need to fill in data structures with all…

  • Fluxions Engine 3.0: The History of a Research Graphics Engine

    The first graphics engine I wrote was in the late 1990s which I originally named KA3D — short for Kick-Ass 3D. But, I couldn’t commit to this name because it had a slight hint of profanity which I am generally uncomfortable with. So I changed it to Fluxions after the Method of Fluxions which Isaac…

  • FreeBSD Part 4

    Today, I am getting my development environment all set up. I wanted to use VS Code, but it wasn’t in the pkg system for 12.1. So I tried to use the ports system, however, the 49GB slice I have for my /usr folder was filling up — fast. OK, so instead I decided to see…

  • FreeBSD Part 3: Boot Loading

    So one of my laptops is a ThinkPad Yoga that I use Windows 10, Fedora, and FreeBSD. The adventure was figuring out how to get FreeBSD to boot. I am using GRUB2 from my Fedora installation to chainload the bootloader. To do that, I had to add the following entry to the /etc/grub.d/40_custom file. After…

  • Pushdown Automata

    A pushdown automaton (PDA) is a state machine with a stack. They can either be deterministic or nondeterministic. Mathematically, they are weird to look at. It is better to be deterministic rather than nondeterministic because you control what your application will do even if you do not know the exact order of user input. They…

  • Stock Market Game

    From the book “Announcing Computer Games for Business, School and Home” by J. Victor Nahigian and William S. Hodges, this post is about two interesting games: Star Trek and Stock Market. There are many good games in this book, but I’ve chosen these two because they are interesting to me today. In the past, I…

  • Gamedev This Year

    Furtual Rabbit was my first game in a year. It was revealing how out of practice I had gotten. It might be time to start doing more One Hour Game Jams. On the other hand, I got a lot of experience with computer graphics and simulation techniques which was my main focus during the academic…