As I wake up this morning I realize something terrible. There is nothing to eat, at least not for me. Normally it is my job to cook for the family. Customary societal dictates may indicate that I am, therefore, a mother. As I fail part of that test, being a woman, quite explicitly one might go on to assume that I am a father. This is also false. I currently live with my family, and part of the arrangement is that I cook. However, because I need all the time I can get, my mother has agreed to do something about dinner. I believe she’s going to order pizza at least one of these nights, and I would certainly not be opposed to this course of action for both nights. So dinner is covered.
Yet we lack breakfast. There is no cereal, no bread, and I haven’t the time to prepare something more complex. Further, the family also has no time to do so, as they will be working this weekend. One of them is already gone as I wake up, the other will be soon. For dinner, they will be here. For breakfast I am up a creek without a paddle.
Well I shall just have to go hungry for a few hours. Trust me, I have gone much longer without food, but I don’t relish the distraction. Speaking of distraction, let’s get into the meat of what I am here for. Let’s talk shop.
I must admit, I never expected to make as much progress as I did last night. I have constructed and thoroughly tested the ability to display Sprites to the screen already. I have a basic guard, though I will need more enemy types than this in the end, and I have a player. The player can move around the screen with the arrow keys, though I use a Key Listener (really a Key Adapter) for this, and I’ve been told Key Bindings may be better (and I agree this will allow me to better implement customized controls), so I will almost certainly be tinkering with this functionality further. Most importantly, my guard can see the player, but only within their field of view. I haven’t gotten to the point where I have any data about my levels in the game, so I haven’t given the guards the inability to see through opaque barriers yet, but what I have I am quite proud of.

How it works is simple. My guard can draw an invisible line between himself and the player, and a second (very short) line in the direction he is facing. I then calculate the angle between these lines (using a method that involves no division, no dividing by zero here!) and if the result is within the guard’s predefined FOV (and nothing else prevents him seeing, though again these remain unimplemented) the method responsible for handling his vision returns false.

I would stress that I have tested these things. Everything I have described so far works. Believe me when I say that while learning the language I exclaimed excitedly whenever I seemed to have solved a problem, only to shrink in disappointment when testing showed this to be premature. I learned quickly to only be excited by results, and let me tell you I am very excited.
That being said, here’s what I have that is untested. I have a Level Class implemented that should be able to read input from a text file, and use that to construct a level out of tiles. There’s a very good reason why this has gone on untested, I have no levels to read. I don’t even have tiles to create levels from.
So time for the big one. Today I will be working on my in-game level editor. First I will be coding the ability to flag where tiles should be placed by clicking on the screen, and then I will be making some very simplistic tiles to place on the screen. I won’t lie, under the outline I proposed yesterday these simplistic tiles will probably be making it into the final product. Finally I will formulate a way to save files from the level editor, to any arbitrary folder in the directory. Once these steps are done, I can test my Level class and its ability to open and read files, as well as implement guard movement (which is very dependent upon factors presented in the levels themselves and so cannot be done until the levels themselves are done).
Busy day. I’ll get back to you with my progress on this later.