Tuesday, April 7, 2015

Moving Rectangles

At my last blog, I knew in a general sense how to make programs in F#, however, I definitely didn't know enough to make a large application (written in a functional style) with it. However, after doing A LOT of research, I believe I am at the point where I can sit down and write my application.

Outside of school I made a small game prototype, overall the goal was to get familiar with using Monogame, and learn more about F# syntax. I believe it was a success, while making the game I learned a lot, both from what went well, and from what I will need to invest more time in to research for my final project. One of the big things I learned I need to do more work with is Fonts.

Anyway, now to show you what the current state of my application is
My game is currently just a tech demo. Its a rectangle you can rotate, and translate around on the screen using arrow keys and WASD keys. This past week at the help desk I focused on figuring out how to render a rotated image onto the screen. This took longer than I expected because I didn't think that the monogame documentation is helpful in understanding how drawing works. I ended up looking at the Xna* documentation for the class I am looking for and that helped to clear up my confusion. I didn't look at the Xna documentation for the longest time because I thought that the Xna and Monogame interfaces may be different, however, in retrospect since Monogame is designed to be closely related to Xna I don't think that there is many significant differences in the interface with which an application communicates with the Monogame framework vs. the Xna framework.

Things which I will do in the next few weeks:
1. Physics -- I really need to start figuring out how collision detection will work in the game. This is a really large part of my project so I need to get started ASAP. I have high hopes for it right now though, I have been thinking about how I should go about getting it to work and I now have an idea about how to implement it.
2. Fonts -- In order to render text onto the screen you need a font, I have been looking around about how to make fonts in the last few days but I still need to do a lot of research in order to know how to fully implement it.
3. Particles -- I have never really made particles, but they are a quintessential part of any game with great graphics.

*Monogame is an open-source implementation of Microsoft's Xna framework