Aeges Road Weekly Update
Well, I'm back. If anyone was wondering what happened, I took two weeks off, well, almost two weeks. As I was saying in my last post, college and everything else was just too hectic in order to even try and make time for Aeges Road, so I purposely scheduled time off. Even when I had time, I did something else and got myself rested back up. In my time off, I bought another indie game that I would consider the best RPG I bought in 2007, possibly even 2006. Eschalon, it is simple, it is old school, and it is somewhat tactical. The stats system and how well balanced it is, is what really won me over.
Saturday I started back up on Aeges Road. After a refresher and a time to reflect, I decided it was time to do more planning and less hacking. So I woke up early and began diagramming most of the theory and some of the logic. My first order of business was to fix my painfully slow range finding algorithm. So I diagrammed the theory behind it, made a UML activity (I think) diagram and separated the logic into something other than ugly code for once (I may have to change my name if this keeps up :-) ). After that, I opened up Torsion, and did some of the fasted coding I have ever done. Nested recursion, tons of nested logic statement, and it all took about 10 minutes to write.
Unfortunately, there was an error. An infinite loop that I could not track down. Windows just could not kill the process, and I was having a lot of difficulty getting feedback. Frustrated, I wound up spending most of Saturday and Sunday fuming and doing something else I will talk about a little later. Today, after pounding the code with more echo's than the grand canyon, I found something interesting. I have never, in my life, made this mistake before and hope I never do again. Standing alone, I would have found it in a heartbeat but nested into the code it I just couldn't see it. This one line of code destroyed my weekend.
for( %ol = 0; %ol < openList.getCount(); %ol )
At one point I think it took my machine 15 minutes to recover from end task. This is where any Unix or Mac developer will be throwing darts at their Windows box. Macs force quit and *nix's xkill are by far superior to the all too polite end task. It got to the point I was unplugging my computer at the wall to save time. I even had a blog post ready to go Saturday, but got caught up in this, and was giving what was really annoying me Saturday and chance to prove me wrong, and it did.
Well, after I finally started incrementing my controlling variable variable, I was floored with the results. My AI has been a beast. Making tactical combat work has been painful. Range finding is a must for getting the heuristics I need and my old algorithm was killing me on performance. At times, AI would take nearly 2 seconds to make a decision which would cause the system to hang. I knew it was the range finding algorithm, and it didn't help that it was being called multiple times. Now, the basic range finder is so fast I can do mouse highlighting in real time with it and no “noticable” performance hits are there. The performance hit shown in the numbers is very satisfying.
So now I have fast code that is pretty to boot and easy to use. This week will render few results until the weekend, but I can definitely see time saved by heavy diagramming. There are a couple of other small algorithms that are not performing right that are about to get hit with this. Anyway, enough about code, moving on.
This weekend I made a purchase, FLStudio. This is very similar to a midi music making program, but generates a much higher quality sound track. So far I have two very rough sound tracks, and I am getting the hang of it fast. The results continually impress me, and I just hope a simple musician like me can rise to the task of full on composition. I know it won't be as professional as hired music done or music I could have purchased, but I have dreamed of working with music since I was very young, and I am more excited about this project now than I ever have been.
Saturday I started back up on Aeges Road. After a refresher and a time to reflect, I decided it was time to do more planning and less hacking. So I woke up early and began diagramming most of the theory and some of the logic. My first order of business was to fix my painfully slow range finding algorithm. So I diagrammed the theory behind it, made a UML activity (I think) diagram and separated the logic into something other than ugly code for once (I may have to change my name if this keeps up :-) ). After that, I opened up Torsion, and did some of the fasted coding I have ever done. Nested recursion, tons of nested logic statement, and it all took about 10 minutes to write.
Unfortunately, there was an error. An infinite loop that I could not track down. Windows just could not kill the process, and I was having a lot of difficulty getting feedback. Frustrated, I wound up spending most of Saturday and Sunday fuming and doing something else I will talk about a little later. Today, after pounding the code with more echo's than the grand canyon, I found something interesting. I have never, in my life, made this mistake before and hope I never do again. Standing alone, I would have found it in a heartbeat but nested into the code it I just couldn't see it. This one line of code destroyed my weekend.
for( %ol = 0; %ol < openList.getCount(); %ol )
At one point I think it took my machine 15 minutes to recover from end task. This is where any Unix or Mac developer will be throwing darts at their Windows box. Macs force quit and *nix's xkill are by far superior to the all too polite end task. It got to the point I was unplugging my computer at the wall to save time. I even had a blog post ready to go Saturday, but got caught up in this, and was giving what was really annoying me Saturday and chance to prove me wrong, and it did.
Well, after I finally started incrementing my controlling variable variable, I was floored with the results. My AI has been a beast. Making tactical combat work has been painful. Range finding is a must for getting the heuristics I need and my old algorithm was killing me on performance. At times, AI would take nearly 2 seconds to make a decision which would cause the system to hang. I knew it was the range finding algorithm, and it didn't help that it was being called multiple times. Now, the basic range finder is so fast I can do mouse highlighting in real time with it and no “noticable” performance hits are there. The performance hit shown in the numbers is very satisfying.
So now I have fast code that is pretty to boot and easy to use. This week will render few results until the weekend, but I can definitely see time saved by heavy diagramming. There are a couple of other small algorithms that are not performing right that are about to get hit with this. Anyway, enough about code, moving on.
This weekend I made a purchase, FLStudio. This is very similar to a midi music making program, but generates a much higher quality sound track. So far I have two very rough sound tracks, and I am getting the hang of it fast. The results continually impress me, and I just hope a simple musician like me can rise to the task of full on composition. I know it won't be as professional as hired music done or music I could have purchased, but I have dreamed of working with music since I was very young, and I am more excited about this project now than I ever have been.



