Friday, January 28, 2011

DotNetFish - Lack of Motivation

Its been hard to get motivated to work on the project lately. I was sick with the stomach flu at the first of the month, and that really took the wind out of my sails. However, I was able to get one more thing working. Maps are now saved after creation, and can be loaded.

Here is a short rundown of the most critical tasks I need to finish
  • I need to get tile rendering completed on the editor. Once I have this done, I will be able to view the map.
  • I need to create a way to define a spawn point on the map.
Once I finish those two tasks on the editor. I will be able to commence work on the client. Here's the short list of what I need to do there.
  • Get the rendering completed
  • Get the boat to move
  • Get the boat to be able to fish
Once I've got that done, I should have a minimally viable product for testing. This means that I will have a full tool chain, and can start implementing features. There are a few other things that I need to work on though

  • Need to refactor the tile creation process to take into account the start and end points of land
  • Need to refactor all of the WPF projects to use a pattern for the UI. Will either use MVP or MVVM pattern
The game solution will probably not be refactored to use MVP or MVVM, because I plan to use it from the start, and it should be simple to go back and get the others done. Its just a bit tedious, and that sucks the motivation right out of you when things are tedious. 

Hopefully February will be a better month.

Sunday, January 9, 2011

DotNetFish - Progress is being made

You just can't see it yet. I got the first iteration of the tiling process push to github. However, it is still rough. I added a few safeguards to show a red tile if there was an error, just so I could get some other work done. The initial map tiler does the following logic to assign a tile to an edge. I have a csv file that defines the edge points for each tile in the tileset. 1. check the edges for changes between water and land. 2. take these points and convert them to the 12 possible points that can be used on a tile. 3. find the tile that matches those 2 points and assign that tile to the arraylist There are a couple of problems with this that I have found. 1. It might be possible to have more or less than 2 edges. This can be an issue with really small streams having 2 edges, and also some tiles with water on the edge only have 1 edge depending on the color. So any tiles like that will be red. I will probably need to add some 2 edge tiles, but that can be a future improvement. Dealing with 1 edge tiles is more tricky, and I haven't figured out a good method to deal with them yet, other than expanding the range of colors that count as water. 2. Edge tiles might not match up properly. The next iteration needs to do things differently. Right now it doesn't check the surrounding tiles to see where its edges are. It needs to do this, and if a surrounding tile has an edge, it needs to use it first. This should prevent any issues with tiles not lining up properly, as long as the CSV file is correct. (I probably need to write a small program to generate the CSV automatically). The next step is to get the Editor to save/load the map, and get it to show the map in the editor. Once I get the tiler finished, I'll try to put up another post showing how that works in code.

Saturday, January 1, 2011

DotNetFish - A Change of Course

Last night I was looking at some data. My goal is to provide a map that is very close to the actual size of the lake. I came to a very cold and clear realization, that the map tiler as a stand alone piece of software will never work in that regard. This holds very true when you look at larger lakes in the US such as Sam Rayburn in Texas. Don't even ask about how big lake superior is(huge!). I always thought that it would be nice to allow the user to be able to import a map they draw into the program, but I don't think this is feasible. Besides, if I want this game to be as realistic as possible, then I want to be able to fish on real lakes. So, with that being said, I'm going to remove the MapTiler project completely, and integrate it into the Level Designer, where is should have been all along. I hope, and this is a big hope, that the Gmap controls for WPF are just as easy to use. The work I posted yesterday won't be lost though. I will reuse nearly all of it. The only different is that I will remove the black to white step, and no longer be saving an image. So I am removing a step here, which is always good. It has been said that it is hard to design a simple solution. I can definitely agree with that. Hopefully, the solution I have now is 1 step simpler than the last one. *Update* If you check out github, MapTiler is now gone, and all of the code has been integrated into Level Designer. It compiles, but that's about it. By the end of the day tomorrow, I should have level designer sorted out, and have it actually outputting some useful data.