Assembly Programming

Yesterday I successfully managed to teach myself assembly programming, using Masm/Winasm. It’s something I delved into last year, but found quite confusing. However, yesterday I really felt I had “levelled up” in my programming ability, and everything just clicked in terms of using the CPU registers properly.

I’m currently writing a little Hangman game for practice, and everything is going well so far. It uses console output for now, and later on I’m going to progress to using 2d graphics.

The whole experience is teaching me a lot about memory and computer architecture, so I think it will be beneficial to all aspects of my coding.

Game Progress

Last week I managed to implement my own algorithm that generates a navigate graph dynamically. This made creating a navigation graph much quicker, though the added complexity of the graph layout revealed that the search algorithms used by the AI were insufficient for smooth, natural movement. In the basic, hand-made graph, this wasn’t evident, as the simplicity of the graph served to better control the AI’s route. Therefore, until I can write my own, improved search algorithm, I’m going to use a simple hand-made navigation graph, so my time can be reallocated to more important areas.

Here’s a short video demonstrating the navigation graph and search algorithms in action. This demo was written from scratch in C++ using the DirectX9 libraries: