Started the draft of my outline and abstract. Continued working with the “jigsaw” idea/method ran into a hiccup with placing content while moving left and up, this will require a code segment to further regulate the placement based on there the anchor point is.
This week I tackled simple branching. I have gotten it to the point where it is fully functional but limited in content. At some point during the process, the algorithm will place a specified branch segment, It will then create the lower branch using only chunks that are specified to be either flat or down. It places a certain number of chunks then a cap chunk to signify that the branch has completed. From here the algorithm works on the top branch, placing only rise and flat chunks, and eventually ending with the portal. Thought about a “jigsaw” method where the algorithm keeps track of overall outline of placed chunks and after branching occurs checks before the placement of chunks.
Thought a lot about how I am going to handle simple branching, currently looking into a version that would just at some point split the level and after the split, here will be a branch that only goes right and down and one that goes right and up. very rudimentary but it would be a building block.
I have been working on editing my final draft for my proposal and updating it with new information that I discussed with Xunfei about the direction of the project. I have been adding information on the different directions I can take this project.
Submitted Proposal Draft 2. Worked on presentation. I have decided that instead of just generating the geometry of the levels it will be a lot more interesting and compelling to also figure out how to generate the puzzles within the level. This will be tricky but I can think of a few ways to to this. The first and easiest one would have some chunks fully contain a simple puzzle, while this would be effective and ensure complete-ablility it would get repetitive fairly quick and not be very challenging. The second method would be to have meta data contained within each chunk, and have a more developed chunk selection process. such as this chunk contains a 4 block vertical jump, so before there is another chunk like this there must be a chunk that contains a crate. the last method that I thought of would be another algorithm that would loop over the geometry of the level and place puzzles like that. this would be quite tricky but it would simplify the generation of the geometry.
I have finally submitted the first draft of my proposal for PCG using ORE in my video game. I am excited to keep working on it, Initial results are promising.
I have been continuing work on my first draft of the proposal, progress is slow but I will eventually get there. I have been doing a little work to try and improve my simplified ORE algorithm but I think I will have to postpone this work so that I can focus on my proposal.
I have designed a simplified ORE algorithm. I created a chunk library using ascii characters, only 15 different chunks. It is a simplified ORE algorithm because each chunk has 2 anchors, so there is only ever one place for the extension to take place. It also randomly selects the chunks so there is no selection process. While this algorithm is simple, I have been able to generate levels with great diversity. One of the parameters I feed it is the number of chunks I want to stitch together. I find that 40 looks the best and that the more chunks you have the more variety. since there is only ever one extension point, it does not allow for branching which is one facet that make a game more enjoyable.
my literary review has definitely guided which direction I want to take my project in. While doing research into the different kinds and application of PCG There are a lot of cool examples of the use of tile based such as in spelunky or rhythm based in others. I am most intrigued by Occupancy Regulated Extension(ORE), an algorithm that looks at where a play can exist in a level and branches out based on a predetermined library of level segments. This methods seems like the most applicable to my video game, or at least the geometry and it gives the users some control, what level segments go into the library. I have yet to find source code for it however.
I have finally finished my literary review, and it has been super cool finding more examples of games that use PCG. I think It would be really neat if I could figure out a way to implement an algorithm in a way to make my game infinite! Its also amazing how far PCG has come from Rouge which was basically the first to now, were some games are much more complex and intricate.
I have continued working on my annotated bibliography, but I have not finished it yet. I am finding it hard to focus on and be motivated for a project that I can not physically work on. I am still missing a couple sources for the annotated bibliography and I have been a bit lazy about looking for them. I think I will start by looking at other papers that I have found citation’s.
I have been a little bit behind on synthesizing my articles into the annotated bibliography, I mostly have just been trying to collect more and more articles. The gesture control Idea and the educational app idea seem a little difficult to complete in a semester of work so I think I will probably continue forward with the PCG for my video game, It is something I am definitely passionate about, I cant say the say for the others.
I have started collecting papers on my three ideas.
There are many different sources that have used gesture controlled navigation in the past so I think it will be hard to differentiate from them, but most of them seem to have to use another device. There are a couple that are just controlled by a camera, this would be a neat way to solve this problem, and wouldn’t require people to buy anything.
For my second Idea of PCG for my video game, I have gathered sources where people use pcg to remake games or even make new ones. None of them seem super similar to what I would like to implement. I have also found a few good overviews and lit reviews of the subject. These will come in handy.
The papers I found for my last idea, of an educational app for ultimate frisbee, mostly just include the theorys and methods for educational applications. these include apps such as duo lingo and other language learning sources. I figure a lot of this could be mapped over to any educational application. It seems like a lot of the problems in this field deal with retention.
I decided to pivot on my ideas a little bit because 2 of them were already solved and I didn’t feel that I had anything to add to the field. I have found papers and starting to read them on my new ideas, ideas listed below.
Idea 1 : Gesture Controlled Mouse and Keyboard
Description: The Idea is to fully replace the keyboard and mouse of a computer by using a 2D camera to track hand motions. I really like the idea of incorporating the feature of swipe to text as seen on some mobile phones, this could possibly increase typing speed.
Idea 2 : Procedural Level generation for 2D platform game
Description: Last semester I built a Game in Unity with 2 friends, we have continued to work on our game with the intention that one day we sell it. A large part of this process will be the generation of new levels. One idea is to develop an algorithm that procedurally generates the levels. While procedurally generated games are fairly common, procedurally generated platformers are far less common. There are a few challenges involved that I think would make this interesting.
Idea 3: Educational app for learning the rules of Ultimate Frisbee
Description: My other new idea, is to create an app that is maybe similar to other educational apps such as Duo-lingo, but with the intention of teaching the rules of ultimate frisbee. Since it is Self-refereed sport it is much more important that the players know the rules themselves. However these rules in the rule book are very wordy and hard to follow sometimes, this would provide an easily accessible way to learn the rules without having to sit down and read a book.
Further deliberated on my 3 ideas, I really enjoy the idea about replacing the keyboard and mouse set up with a gesture recognition system from a 2D camera, most gesture recog systems require another device that one must buy, but cameras are already built into most things. My other favorite is the personal budgeting app, I am interested in this one because it applies to my life, It would be software that I would use to help me save money.
My first idea is for a application that allows the computer to be navigated with gesture control, initial thought is to use the camera that is on almost every laptop to map the mouse pointer between say the thumb and the forefinger, and when the thumb and forefinger touch emulate a the click of the mouse. Further interface could also be implemented such as a virtual keyboard or talk to text features, basically attempting to replace a mouse and keyboard, further research needed.
My second idea is either a stand alone software or a Photoshop add on for real time pixel art animation editors. Given a sequence of images with a specified distance apart, color pallet and speed at which to move through the images, one could make a change and the animation would update real time, also allowing the change of color pallets.
My third idea is a personal budget planning and expense tracking app. I person can track what they buy by inputting the cost of an item and categorize that item falls into (possibly further subcategories for more in depth statistics) ie $16.69 on groceries on 1/21/19, $32.55 on cloths on 1/22/19 etc. One can input there salary and how much they want to not spend and the app could keep track and suggest a budget for you, give statistics about your spending patterns etc.