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.
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:
Today I met with Dean regarding my literature review progress. He gave me some good feedback regarding composition, about balancing the critical evaluations at the end of each section, so as to include both benefits and criticisms of the techniques for Dynamic Difficulty Balancing.
Last week I managed to complete almost a third of my literature review. It is divided into three main sections: DDB, AI and PX. I managed to complete most of the initial draft for DDB.
Over the summer I coded most of the foundations for my game, such as classes for state machines, AI behaviours, collision systems, item collection and projectiles. I found particularly challenging the implementation of a navigation graph and search algorithms, so the AI could navigate around collision.