My Division II was an exploration of computer programming, video game programming and design, and numerous aspects of teamwork, including but not limited to communication. During my time at Hampshire, I cultivated all of these skills. This marked the start of video game development as part of my academic career.
My first semester of Division II consisted of four courses: American Sign Language I, Linear Algebra, Introduction to Programming in Unity, and Evolution of Game Playing Multi-Agent Systems.
American Sign Language I taught me about Deaf culture, and by extension, the importance of accessibility for the differently-abled. What I learned in that course has influenced how I design my games and other creations in order to take accessibility into account.
Linear Algebra was a crucial course for me to take as a computer programmer. Linear algebra has immense application in computer graphics as well as various algorithms. Thanks to the Linear Algebra course, I was able to program my own rendering engine in OpenGL from scratch.
Introduction to Programming in Unity is the first Hampshire course I took about making games. It taught me how to use my favorite programming language: C#. It also taught me how to use my favorite game engine: Unity! Learning Unity has proven to be crucial, as I used Unity for all of my future game-related Hampshire courses. Unity is a huge and powerful step up from my previous favorite game engine, Game Maker Studio. I still use Unity to this day! Most importantly, for the first time, I made a game by collaborating with other people.
Evolution of Game Playing Multi-Agent Systems was a course that made me do lots of independent work. I got experience transcribing functionality from one programming language to another. As a result, I greatly honed my C++ skills, which made me a much more competent programmer.
My second semester of Division II consisted of three courses: Virtual Reality Game Lab, Genetic Programming, and Programming Paradigms.
Virtual Reality Game Lab was the first course I took that was specifically focused on team-based game development. I learned how to make games for virtual reality headsets such as the Vive. Thanks to this course, I now have extensive experience developing for virtual reality. Additionally, I learned how to use version control software, namely Git. I learned both the guided user interface and command line forms of Git. Version control software is incredibly important in the actual programming industry, and has helped me immensely along my journey as an engineer.
Genetic Programming introduced me to functional programming, which was a totally different paradigm from the object-oriented programming style I was used to. I also learned how to write programs that generate other completely new computer programs. This is an important concept in artificial intelligence, which coincidentally is the exact subject of a course I'd take next semester.
Programming Paradigms expanded upon concepts I learned previously, including functional programming. I learned about all sorts of types of programming languages and got to practice using them. This course greatly enhanced my proficiency as a computer programmer and prepares me for all sorts of different situations. That's job security!
My third semester of Division II consisted of three courses: Interdisciplinary Game Studio, Game Engine Graphics and Audio, and Artificial Intelligence.
Interdisciplinary Game Studio is perhaps the most important course I've ever taken at Hampshire, at least in terms of my personal development. The premise of the course is that the entire class works on a single game together. The class is broken up into several teams based on discipline, such as art, programming, design, and so on. Every team has a lead, and I had an opportunity to be the lead programmer. I wasn't at all confident in my abilities, but despite that, I decided to try being the lead. Contrary to all of my expectations, everything went wonderfully. I learned a lot about communication between teams as well as how to work as a producer by assigning tasks to my team members. My performance seemed to be very impressive, and as a result, I received a standing ovation on the final day of class - something I could not have anticipated before taking the course. I now know that I am able to learn whatever is necessary for whatever role I choose to take on a given project, and that my self-confidence isn't necessarily going to reflect my actual performance. The game we created, Project IONA, is available on the App Store and Google Play.
Game Engine Graphics and Audio was my first independent study. I attempted to build my own game engine from scratch, continuing off of the rendering engine I started in the Linear Algebra course. I learned a lot about how OpenGL worked, as well as how to create some fancy visual effects using low-level code. It was definitely a worthwhile experience to have, but I think that trying to make my own game engine so early on was unnecessary, especially since there was still so much I didn't know about Unity.
Artificial Intelligence is exactly what it says on the tin. I learned how to create some basic AIs while also learning about how artificial intelligence technology is affecting the world at large. I learned that sci-fi and our reality might not be so different. Neural networks and how they work is perhaps the coolest subject I learned from this course. As a programmer, there's a lot I can do with AI, and it's a field that I could certainly have fun studying during my own time.
My fourth and final semester of Division II consisted of three courses: Game Development Workshop, Partnership with Fay Games, and Database Driven Websites.
Game Development Workshop continued my semesterly trend of developing games for classes. In this course, I created two games. Unlike Interdisciplinary Game Studio, the class was broken up into several smaller projects, so I didn't have to manage such a huge team this time. This was mainly an exercise in programming work. Thanks to this class, I started to develop my own extensive Unity C# code library that I still expand and use to this day. This was the point where I started to treat software architecture as an art, and the codebase I'm creating is greatly speeding up my development time.
Partnership with Fay Games involves a game I am collaborating on with my mentor and Division II chair, Ira Fay. Development on the project is ongoing as of Fall 2018, and it will likely be my Division III project. This course has been an ongoing exercise in self-motivation, something I've often struggled with.
Database Driven Websites taught me how to develop websites that interface with databases. As a programmer, this course has been extremely useful to me, since I knew nothing about creating websites before. I learned several languages and frameworks including HTML, PHP, SQL, and Ruby (on Rails). It is thanks to this class that I was able to program and design my website: www.paulcalande.me.
Thanks to the extensive portfolio of games I produced during Division II, I was able to attend the prestigious MassDiGI program over the summer. Just over 30 students around the world were accepted!
At MassDiGI, I learned a lot about the specifics of the actual video game industry. Some of it concerns matters I don't care much for, including monetization and analyzing market trends, but business types will certainly find it useful. Other concepts were more relevant to me, such as rapid prototyping to enter the testing phase as soon as possible.
During the program, I learned how to use Unreal Engine, a popular game engine used by numerous reputable video game companies. I also learned how to use two new version control software: Subversion (SVN) and Plastic SCM. I was mostly doing independent programming work, which is something I was already used to prior to attending MassDiGI. I found the lectures to be more informative and more rewarding than the actual work I did.
Setting aside the learning curve that comes hand-in-hand with taking courses full of material I don't know, there were other challenges I faced during my academic career. The biggest challenge by far has been maintaining self-motivation, and it is something I still struggle with. Lack of motivation manifested most prominently during my Spring 2018 semester, and especially towards the end of the MassDiGI program. As a result, I wasn't performing at anywhere close to my maximum potential. My work, while still passable, suffered for it.
Moving forward, self-motivation is a very important skill I must learn. It is currently unclear to me why I lost so much drive in the Spring of 2018, but it is something I am continuing to ponder. In the meantime, I am focusing on trying to schedule my time by the hour, as I have not done that before. Previously, I relied on bursts of spontaneous motivation to do my work, and that has become too unreliable for me to count on. I must now rely on discipline and proper time management in the form of scheduling. I must stop procrastinating so that I can take better care of my future self.
Division II has arguably been the most important two years of my life as I have accomplished many wonderful things and have created a body of work that can serve as the foundation upon which to build my future. Thanks to my experience gained being a leader, I now know that I can and should approach new tasks with a "can do" attitude. Google is a programmer's best friend, and with the entire wealth of human knowledge at my fingertips, I can accomplish anything I want to so long as I invest enough time.
I've always loved creating experiences for other people to enjoy. I am an entertainer at heart. Video games are a great medium for that, and I am glad I chose the path I did, even if it has been difficult to find my motivation sometimes.
I'm not going to be content just riding the waves of my past successes. I want to consistently be working towards a better future for myself and continuously reach new milestones that I can be proud of. I will leave my own unique mark on this world, and I will start to do so not later, but now. I have decided that will be my motivation while I go through Division III and beyond.