Monday, March 30, 2015

Flubaroo and Google Forms

Since last blog we did a few things at the help desk.

Primarily, over the last few weeks we have been creating videos on the Help Desk channel, designed to be a crash course for teachers on the latest and greatest technology from the educational software industry.
We split up our class into two groups for this task, one group focusing on Google Classroom, and my group, which focused on Google Forms and the Flubaroo add-on, which assists in grading quiz/tests which were created in Google Forms. You will be able to see our video on the Andover Innovation channel soon.
I learned a little bit about editing while helping Arthur edit the video. This was definitely a good thing for me to learn because knowing how to create videos which look sharp and well edited is a good skill to have. Also it was a lot of fun creating the video.
As well I learned how to make google forms, compile them into a spreadsheet, and even how to grade them using Flubaroo

Overall, throughout the video creation process it was a lot of fun to work with other students in the class, and I think I will be able to take some of the elements of video creation which I learned from this and apply it to my final project (maybe I can make a video of my final project)

Monday, March 2, 2015

Semester Goals

          A few months ago I began learning the C# programming language and up until this point, I have learned quite a bit about the basics and I continue to learn more every day. It has been an interesting, exciting, fun, and at times a difficult process, and I am excited to continue learning and excited that I am on my way to the world of programming. When I first began programming in the C# language (using Microsoft Visual Studio), I learned to display text in the console window and the first program I created was the “Hello World” program which is a very well-known program among all programmers. After learning to display text to the display window, I learned about variables and values as well as “if else” statements. This is basically the summed up version of everything I have learned (but I have learned all of this in great detail and depth), and I will continue to learn more in the weeks, months, and years to come.
          Currently since I am still a beginner in the C# programming language, I am short on ideas for projects I can create using this language. As I continue to learn more about what C# is used for and just more about the language and how to use it in general, I hope and plan to get ideas about possible projects for the future of this class. I currently don’t have enough knowledge to even get a small idea yet, but that should change in the next couple weeks. I have noticed that C# is a very large and expansive language and can be used for any number of programs, applications, and games. It can be used for desktop applications, web design, mobile phone applications, and much more. Hopefully as I continue learning something will come up in one of the many areas that I can base a project on in the future.

Semester Goals

Innovation Lab Blog 1 - Noah Mezher
Last semester, I started the Intro to Java course here at AHS. Before that, I tried teaching it to myself, but couldn’t keep a tight enough schedule, so I figured the course would be good. I had prior experience with other programming languages like C, C++, JavaScript, and HMTL5, so I had the general idea of coding down, but never knew much about each language. I learned the basics of Java, and I want to learn more this semester in this class. I don’t have enough experience with the language to write a typical executable program, but hopefully at the end I will have an idea that fits my ability and I will be able to write it.

Like I said, I can’t write an executable program, but I will be learning the language so when I have an idea, hopefully it will be in my ability to do. I want to make a game with Java, so I will need to learn about importing images, GUI, and buttons, along with implementing those objects in the right place. I already programmed a hangman game in the course for my final project, so I could improve on the GUI in that game, because it is all text based at the moment. I could also make a totally new game. I do not know what exactly I will be doing, but I will definitely figure it out by the end of the semester and have a project done.

Sunday, March 1, 2015

The Amazing Racing Game Design Goals

For my project I will be creating a game using the monogame framework and F#.

The idea that I have is to make a racing game. The vehicle will be relatively light, and able to perform tricks such as wheelies, and 360 degree flips. It will be interesting to have the tricks act as powerups, performing complex tricks will speed up the vehicle, thus rewarding players who are able to do these.

Challenges with the project chosen:
-        Graphics - For rendering I will *attempt* to use OpenGL, I need to be able to render 2D rotated images to the screen, and I know *somewhat* how to do that in OpenGL (I did a tiny bit of exploration with how to use OpenGL last year when I was messing around with LWJGL).

-        Programming Paradigm - I will try to program in a functional first style, using an imperative style only where necessary (e.g. when interfacing with the underlying monogame framework, which was originally made for to support the imperative style of programming). I am relatively new to functional programming (I started last year), but hopefully I will be able to make something out of it. Worst case is that I will revert to F# imperative, which I would find more familiar due to my experience with java in the past.

-        Physics – There are a few hurdles with some of the physics involved. First I will have to implement the SAT (Separating Axis Test) when testing for 2D rectangular collision which is not axis-aligned. I have looked at it before, but I have never done anything with it, and it definitely looks daunting. As well, the design relies on a lot of torque and rotational motion. I have done work with rotational motion in the physics class I am currently taking, but I do not know how hard it will be to implement what I learned in class to this relatively massive project. Also, the terrain would (ideally, but not necessarily guaranteed to happen) not be rectangular, it would look relatively curvy.

-        Audio – I have no experience creating sound assets, and so I don’t know how difficult it will be. Potentially it could be relatively easy, or it could be extremely hard. I just don’t know.

Goals for the Project:
-        Investigate the relationship between functional programming and development time. Based off what I have read online, it seems that functional programming is a succinct way of creating programs, and can save development time. I want to test this by doing a relatively big project in F#.
-        Make a fun game – It will definitely be fun just to make a game and tweak it until it is exactly what I wanted.

Tools I will be using for my project (some may be added later)
-Monogame framework
-Inkscape (Planned to use for creating assets)
-Paint.NET (Could be used in conjunction with Inkscape for visual asset creation)
-Git (Version Control)
-Visual Studio Community Edition
-Audacity (sound effects + music)

I will do my best to get all of this done by the due date in June, but I will cut unnecessary portions of the project out if necessary.

A few conceptual drawings are shown below (because my idea is hard to illustrate in a still image, and I just drew a few random things related to what my ideas are to give you a sense of what it might look like).