Today I'm going to talk about where I am in the game's development. The summary, to simplify it a lot, is that I'm introducing and testing the AI of the rival cars and, incidentally, the AI that collaborates with me.
In the last few days, development has focused on this aspect, and I have to say that I'm still working on it, but I'm progressing more or less as planned. I'm working on the AI so that rival cars behave intelligently and don't just follow a fixed path, but try to dodge other cars, creating a minimally realistic experience. This behavior also includes rivals following the road and analyzing the track ahead. In addition, this means that the time has come to introduce collision detection. So there are quite a few changes introduced at once and, although they are already present in the game engine, many things need to be modified and adjusted. In the video you can see that the movement is still chaotic, the painting of the cars makes them overlap each other and, in short, there are many things to improve.
Optimization for Amiga
Although the main development of these functionalities is being carried out in the Linux version, I have started to optimize the code for the Amiga version. The goal is to maintain an average performance of 30 frames per second on an Amiga machine with a PiStorm with Raspberry Pi 3 at a resolution of 640x480. It's being complicated, although this phase has just begun.
For example, I have changed the analysis of the path that an AI-controlled car will follow. If you look at tutorials on this type of game, what is usually done is to calculate the difficulty of the next segments with respect to the one that car occupies. Now, instead of doing it, say, in real time, the analysis is done before the race starts and stored in memory (after all, drivers usually know the circuits by heart, right?). This way, what is done is to access memory at all times to extract information about what is coming and the calculation is not done. Accessing memory also has a time cost, but it is somewhat less.
More things in the works
Everything I'm talking about I'm alternating with the attempt to close a first technical demo to distribute, in which a player can drive around a circuit. That part is pretty much closed, but I can't quite leave it as I want because something always comes up. First, I have changed the name of the game a little. The previous one was very similar to something already existing that I found on the net.
The second obstacle is that I have come to the conclusion that it is better not to use real cars, so I will have to say goodbye to the Koenigsegg One and the Clio that were seen in previous videos. This, which seems like a simple decision, means redoing the title screen image (nothing out of this world, really), but in the case of the cars it has completely broken the workflow I had, which consisted of searching for 3D objects (cars) with an appropriate license and generating everything necessary in Blender. The solution to this is coming again from the hand of Generative AI, but this is a story that deserves to be told separately.

Oh! I said goodbye to cars from well-known brands, but that's not entirely true. When I made the decision not to distribute them, I also decided that there should be a system that allows for mods and the introduction of new cars. That is already implemented and it is possible to replace or add new cars, something that I will also have to explain later.
Code generation AIs continue to evolve
Another point that I find interesting to talk about is something that has also affected me, although I'm not sure to what extent. I think I've told you before that I was using Sourcegraph Cody for development. The truth is that I liked it a lot and I had reached a good level of symbiosis with it. In mid-June, the company informed me that this service was coming to an end and that it would be replaced by a new one called Amp. This meant that I couldn't renew my subscription, but they gave me $40 in Amp credits to try it out.
I pushed it to the end of the deadline they gave me and, on July 22, I started using Amp. For now, what I can say is that it really is something else. While Cody was a programming assistant that proposed changes to the code that you had to apply (and review on the side), Amp is an agentic system. This means that you give it a task and it completes it to the end. There is an AI that reasons and decides the steps to follow and entrusts each step to the corresponding agent. It's spectacular to see it in action. Now it looks for which files in the source repository it should analyze and modify, makes the changes (applies them), modifies the build system if necessary (cmake in my case), compiles, studies the compilation failures if any, corrects the errors by modifying the code again, recompiles and does not stop until it delivers the result you have entrusted it with.
I repeat that the process is brutal as a spectator, but my doubts come from the side that I don't know if I want it to do so much for me. Perhaps because I haven't gotten used to it, but the previous flow forced me to review on the fly, and this one requires you to see what has changed, review it, and it does quite a few things at once, so something can escape you. In addition, that whole sequence of steps means more waiting time. Cody could deliver something in less than a minute and Amp can take more than 5 minutes easily.
The cost is also something to analyze. Before I had an open bar for $10 a month. Now I have spent $8 in Amp credits in less than a week.
As for the quality of the results, it is clear that the new agentic system delivers something that works and, before, on some occasions Cody did not, but underneath Claude is still the AI which, in my opinion, is the best for programming, so I don't know if it's worth it for me because the code doesn't change that much.
Anyway, I think that's all for now, which is not little, and, really, I myself didn't think I had so much to tell.
EspaƱol
English (UK)