A long-term programming project or in my view any project, regardless of its physical or digital existence, may start by outlining some fundamental questions. For example, its reason to exist, related research, steps towards its creation and realistic expectation. I have realized that these questions might seem straightforward forward but answering these questions is a strenuous task. In my experience, if I try to understand everything, in the beginning, I get overwhelmed and eventually stuck. A clear picture of what to build is very important, but a planned and clear path towards how-to-build is almost impossible. Instead of figuring out everything in the beginning I have noticed that dividing a project into small workable chunks is very helpful. This approach gives me a sense of completion when a portion is completed and highlights additional possibilities. Moreover, this approach makes the project manageable if I get stuck with some problem. It is difficult or impossible to find a complete tutorial on what I am building but it is relatively easy to find training resources related to each unit of the project.
As part of my thesis project, I am working on a browser-based multiuser experience. The project is themed on the element of play in public space. The project builds upon the argument that personal mobile devices can be used to encourage public interaction in public spaces. The prototype to test this hypothesis has two parts one resides on the personal mobile device and the other on a large display in the public space. The journey to actualize this project has many known and unknown steps. After evaluating its “reason to exist” I started my research to find other related projects and tutorials. Before the development of my particular piece, I always try to follow related programming tutorials to the end. This allows me to learn the syntax, algorithms and fork the exiting project.
Let’s talk about the prototype.
The gameplay in the prototype has two occurrences, one triggers on the personal mobile device and the other corresponds on a shared large display. The gameplay involves catching flies by swinging the phone in the air and the shared display corresponds by eliminating a fly when it is caught by the player on their mobile device.
The project under development has already gone through two iterations. The first prototype was extremely static and low fidelity. It was mainly built to test the basic gestures. In the first version, the code was written without any consideration of its reuse and segmentation. The 2nd iteration however uses some valuable features of object-oriented programing language. In the third version, I am trying to implement MVC (Model-View-Controller) strategies. This approach is already giving me an organized hierarchy of separate yet interconnected elements. At the beginning of the project, I had no idea which elements are part of the Model, which are View and which should categorize as Control. It might go without saying, but I didn’t know how to build this project until I have started building it. At this point, I know where to find solutions when I am stuck but there are many unknown factors that I will unfold as I go through this journey.
Anas Raza
317 26 56