Friday, December 18, 2015

12/14 - 12/18: Back to the Grind

This week was spent doing tech support for Unity 3D and Visual Studio. That was so much fun. Since every time I tried to edit a script in Unity it defaulted to opening in Visual Studio it was pretty great at the start of this project, but my trial ran out. So now every time I try to edit a script the page opens in Visual Studio and it attempts to get me to buy the full version. Now I'll have to reinstall Unity with MonoDevelop since it was never installed in the first place because of Visual Studio. Needless to say I've gotten little done on the project this week, but I did manage to finish the script for the presentation. Next week I should have the algorithm done, one way or another.

Friday, December 11, 2015

12/7 - 12/11: The Paper is Done!

This week was spent doing all of the work revising and finishing the paper. The last two paragraphs to do were added as well as the edits to the captions on images. I also finally finished reformatting the images on the paper. Once that was done however I worked on my script for the presentation, its not quite done yet but it should be soon. Once the presentation video is done it will be here. Next week I should be able to get back to working on the algorithm in Unity.

Friday, November 27, 2015

11/23 - 11/27: Revision

This week was mostly spent modifying and expanding my paper based on my notes. I also went and revised and edited my paper to fill in some gaps about explanation, like adding in a part in the research explaining what BSP Tree means, as well as explaining how cellular automata works. I also spent quite a bit of time reformatting the images and getting them all to fit with captions on them.

11/30 - 12/4: Second Draft

This week I went and added the rest of the paragraphs that I was missing. Those were really just everything but the two paragraphs about the algorithms. I wrote the introduction, the section about my research, the section explaining how the finished algorithm works, and a paragraph explaining where this algorithm fits into the grand scheme of creating a game. That's about all I did this week. Next week should be editing more and putting the finishing touches on the paper.

Friday, November 20, 2015

11/16 - 11/20: First Draft

I got a nice solid couple paragraphs written. Mostly it was forcing my way through explaining the algorithms, so they are kind of dense and almost unreadable. I also have a thesis statement and some images that I plan on using. I would have added them already but Blogger is very finicky about it handles images and captions. I also worked a bit more on my program and switched over to an alternative method for the 2D array which again I am hoping works.

Friday, November 13, 2015

11/9 - 11/13: Project Paper and Rubric

The Rubric I'll be Using
This week was spent exclusively on creating my paper for this project, as well as creating the rubric with which to judge my final project. There were also minor updates to the site pages, mostly on the research paper tab though. The project rubric wasn't that hard to create once I sat down and worked on it, though it did require quite a bit of thought about how the project was going to pan out. Next week there should be significantly more that gets done on the paper, because it is due on Friday. Aside from informing you of my work on my paper this week there wasn't a whole lot to write about, but if you want to see what I got done just read the paper.

Friday, November 6, 2015

11/1 - 11/6: Arrays in the Second Dimension

Link to the videos here
This week I've started my long and more than likely painful journey into creating this massive algorithm. I chose to start with the Cellular Automata because there was a tutorial on it and all I really needed to do was translate the code from C# to JavaScript. Not even ten lines in I ran into my first problem, the lack of 2D arrays in JavaScript. In the tutorial the guy just goes right past it because in C# there are 2D arrays and therefore no explanation is needed. I meanwhile need to create a 2D array and what I wound up with was something that (hopefully) works. How I got there was a long trek through Stack Overflow looking for answers. When I found none I posted a question and got reasonably quick results with only one of them being actually useful. Essentially what it is is an array that holds other arrays. I have yet to test it though and the only reason that I say it works is because Unity hasn't yelled at me for doing it this way and knowing Unity it would have been more than happy to yell at me if there were any possible errors. I also created my formal project proposal which is as follows, the plan is to create a dungeon map generator combining cellular automata and BSP Tree. This will prove that I understand both of these algorithms and am capable of altering them to do as I wish. The project will only be  to create a generator, nothing else and if by some miracle I have time left over I can start making this into a full game. That's about all that I got done this week, between looking through Stack Overflow for answers and starting this algorithm I feel like I got a reasonable amount of work done.

Friday, October 30, 2015

10/26 - 10/30: Generating Ideas

 
BSP Tree Dungeon Generation
 
Cellular Automata
This week has been productive. I finished uploading some of the other blog posts this week as well as creating static pages for this blog. I managed to put almost all of my sources annotated on the Sources page so I'll have to finish that up next week. I also refined the style sheets and finalized my blog's banner. 

Aside from just purely housekeeping and aesthetic things on this blog I've also just started working on doing my pseudo code for the dungeon generator. So far this is what I've figured out, using BSP Tree I can subdivide a large dungeon into smaller subsections. I would stop dividing these earlier than BSP Tree typically does so that I could have the program decide whether it will continue to divide then or generate a cave.

If the program decides to create a cave then within this subsection a cave will be made and connected to the dungeon later. Generating a cave will have a 30-40% chance of being initialized depending on what works best and feels the best generation wise. I have yet to determine what percentages work best, but once I do I'll be sure to include that on the Algorithm page. This is the section where the tile sets would be assigned to each of the sections. If the cave generation option isn’t chosen then the BSP Tree subdivision will continue within that square and after that section of code has finished running then rooms would be generated within the finished sub sections. After that has finished then the rooms will be connected via corridors. 

The best part of this is that I most likely won’t have to change the room adjoining code because this section is just supposed to connect rooms. All that I will need to do is connect the rooms into the cave systems just by using the corridor placement. After that is done then the tile sets will be applied to each section. I've also placed pictures on the right of each of what each of the algorithms makes when it's finished running. That's about all that I got done this week, but I feel as though I've accomplished quite a bit.

Friday, September 25, 2015

9/21 - 9/25: Initial Proposal

Basic Dungeon using Random Room Placement
After I spent some time looking through information about dungeon crawlers I was able to find some of the various ways of creating dungeon crawlers. Actually most of my information about the basic algorithms came from Future Data Lab. The algorithms that I looked at can be found here on this page. After reading some articles and looking at how each of these algorithms works I've developed what my project should be about. In theory it should be possible to combine two or more of these algorithms into one larger one. I'm not entirely sure how I'm going to set about that yet, so I'll have to look into these more. For now my initial proposal for this project is to create a single dungeon generator using at least two different algorithms for dungeon generation.

Friday, September 18, 2015

9/14 - 9/18: The Driving Questions

So the goal for this week was to create a driving question that would guide the project as a whole. So that means that this has to relate to the research I'm doing, the game being made and the paper. These are the three that I've come up with. 
  1. How are dungeon crawler maps generated?
  2. How does the generator randomly decide where to place structures on the map without causing problems?
  3. Is there a best way to construct a random level generator? 
I think these are reasonably good questions to be asking at the start of this project seeing as how I have little to no knowledge of how the guts of these procedural dungeon generators work. These should guide me to some decent resources and help me to get some idea of how these things work. This means that I can really start diving into the algorithms to get an idea of what to propose for my project next week.

Friday, September 11, 2015

9/8 - 9/11: In it for the Long Crawl

This is the first post of my new blog! This blog's purpose is to catalog the progress (or lack thereof) that I make weekly on my senior thesis in computer science and will be updated weekly for that reason. So the first question you may be asking is, "what's this blog going to be about?" Well lucky for you, you won't have to wait to find out! This blog will track not only the progress that I make on my paper and presentation, but also my project. My project will be a randomly generated dungeon crawler within Unity 3D. Well that's about all I need to post here for now, so until next week!