Week 02

Week 2: Calculus and Cancer by Valzorra

Tech Workshop and Building the World

In addition to documenting all of my starting points and making decisions about which four themes to focus on, Week 2 was also devoted to some pretty awesome workshops. As usual, we had our Tech Workshop and Building the World sessions with James on Tuesday. During the first part of the day we took a closer look at the crucial A* algorithm, specifically how to translate the theory from Week 1 into code and some common design problems it raises. I was quite please to discover that although I did not feel very confident about it, my pseudo code for the A* algorithm from Week 1, was mostly on track with the actual solution. I was especially happy to find out that my approach of using the coordinate system to figure out what are the neighbouring nodes to a parent node was a valid method.

My favourite part from the morning session on Tuesday was exploring the geometric solution of how we check whether a node is accessible or not. I think I was particularly fond of it because it is a very elegant and mathematical way to go about solving a problem through the use of elementary formulas on the surface area of a polygon. Additionally, more so than any other issue we explored that day, it involved thinking outside of the box and it showed me that mathematics can be incredibly useful in solving design and optimisation problems. Overall, I was really pleased to have learned the A* algorithm and I will be sure to apply some of the problem solving methodologies we explored to my practice. I will be especially careful to use solid mathematical solutions to issues rather than Unity specific solutions, because if I learn how to efficiently problem-solve through maths, then I will be able to apply the knowledge to any programming language and game engine.

Tech1.JPG
Handwritten notes from the first part of Week 2’s Tech Workshop, showcasing the geometric solution to obstacle detection.

Handwritten notes from the first part of Week 2’s Tech Workshop, showcasing the geometric solution to obstacle detection.

After fully exploring the A* Algorithm we proceeded to go into some fundamental Calculus. As many of us were interested in advanced concepts and mechanics that could possibly feature in our FMPs, James felt it necessary to introduce/remind us of core Calculus as that field of mathematics is the backbone of a series of systems we are likely to use, for example particle systems. Additionally, knowing these fundamentals is more than likely to save us time as game developers, because calculus is incredibly applicable when it comes to solving unexpected problems.

The session itself was quite intense as we had a variety of material to go over. Within an hour we managed to cover functions, limits, slopes, derivatives, and the power rule along with its proof. Although it was tough at times, I really enjoyed being challenged and pushing myself to digest, and remember as much from the material as possible. Overall, I was quite happy that I did not really get lost throughout the session and managed to understand everything that was presented. I am looking forward to Week 3, when we are to continue our exploration of these basic principles.

Tech3.JPG
Handwritten notes from the Calculus portion of the Tech Workshop

Handwritten notes from the Calculus portion of the Tech Workshop

By the time we had finished our discussion on Calculus for the day, the Tech Workshop had finished and after lunch it was time for our Building the World Sessions. We continued our work on Probability and Chance, beginning with a few revision exercises on the material from last time. After we were done with that we had an exciting game of Craps and explored Probability Trees through it. What I found most interesting about the session was the idea of designers changing the probability of certain events. What’s even more exciting to me would be to give the player the opportunity to change the outcome of events based on these probabilities and thus to enhance their gameplay experience by giving them control under certain conditions. The idea of chance, control, and controlling chance is quite fascinating to me, and I believe it even touches on the famous faith against free will debate. Mathematics connects the dots.

BTW1.JPG
Notes from the Building the World Session and my attempts at crafting a Probability Tree. Even though, I arrived at a correct solution, I ended up making it more complicated than it need to be.

Notes from the Building the World Session and my attempts at crafting a Probability Tree. Even though, I arrived at a correct solution, I ended up making it more complicated than it need to be.

Friday Workshop: Simulation Theory

After a very challenging and productive session on the Tuesday, we had another workshop scheduled for the Friday of Week 2, delivered by Seth Giddings. The workshop and lecture centred around Simulation and Simulation Theory and how we should view and consider simulations as games designers. I did enjoy the presentation overall, however, my favourite part of the day was by far designing our own simulation in the form of a board game. Seth had purchased a series of inexpensive gossip-style magazines filled with the most ludicrous articles imaginable. We were to take these magazines and take advantage of them in our simulations, whether that was simply for the use of their imagery or as a form of inspiration and idea generation.

The magazine my team and I were working with.

The magazine my team and I were working with.

My team (Ella, Bernie, Dean, Fred, and Richard) and I grabbed one of the magazines purely arbitrarily and began exploring its pages. We were all undoubtedly convinced we had just witnessed the pinnacle of investigative journalism. The magazine was almost exclusively dedicated to lifestyle articles, primarily around weight loss, weight gain, and certain medication to alter weight. It featured a series of recipes, which were questionably healthy as well as the supposed latest fashion and interior design trends. Among the most noteworthy sections of the magazine was the Horoscope, whose author has surely been nominated for the Creative Writing Awards 2018 under the Superstitious Fiction section. All in all, the magazine was absolutely absurd, filled with strange and insensitive articles that promoted body alteration and unrealistic expectations.

Some of the horoscope pieces we used in the game as tokens.

Some of the horoscope pieces we used in the game as tokens.

However, by far the most insensitive article of all was one called “Thank you, Cancer“. It featured the story of a woman who had beaten caner and who was essentially grateful for her illness as it helped her achieve some of her long-term goals. The primary reason the team and I thought this article was incredibly insensitive was the title “Thank you, Cancer“ and the implication that this deadly illness is somehow the reason for those achievements. Additionally, the article completely fails to acknowledge that many are not as fortunate in their struggle against the disease and thus makes it appear as though their battles are not worth mentioning. As we were all so appalled by that piece of journalism, we decided to make a satirical simulation of what life with cancer would be like according to the article.

Ellla

The basic premise of our board game, titled “Thank you, Cancer“ after the article, was that each player must accomplish certain goals and check things off their bucket list, all within a limited amount of time before death. We created a circular board with special locations signifying the items on the bucket list. In order to have accomplished a certain goal, players needed to use a dice to move towards the designated space of that goal. If a player is to pass through all designated spaces and life goals, then they have ticked every item off of the bucket list and essentially win the game, knowing they can die happy with their cancer. If players were unable to go through all life goals within five turns, then they would lose and instantly die to the cancer. Additionally, there were spaces on the board that would award players with Healthy Food Tokens, which would add two additional turns, thus extending patient life. Finally, there are places on the board that would grant a Horoscope Token. Each Horoscope Token has a unique effect based on the text on the card. Those were the simple and straight-forward rules of “Thank you, Cancer“.

The finished board game “Thank you, Cancer“

The finished board game “Thank you, Cancer“

Upon attempting to play the game, players often found the odds stacked against their favour. Five turns were nowhere near enough to achieve all life goals and the addition of insta-kill cards in the Horoscope Section further decreased any chances of victory. However, this does fit in with the idea that the board game and simulation we designed was a satirical piece meant to mock the preposterous articles and viewpoints within the magazine. The entire magazine placed extraordinary emphasis on bucket lists and shallow life goals, which why we decided to take those ideas to the extreme and turn them into an essentially unbeatable game. Overall, I quite enjoyed working on the project as it was incredibly entertaining and it gave us the opportunity to get somewhat creative with the source material. I also appreciated the new knowledge around simulations Seth shared with us and I am especially fascinated in the idea of looking into simulations as a powerful training tool.

Week 2: The Four Themes by Valzorra

Although I had come up with a series of starting points on the Friday of the Good Start and Bad Start Workshop, I was not entirely satisfied with them and I thought that I need a lot more in order to make a decision about the four I would look into further. That’s why I sat down and took a look at everything I had come up with on the Friday. Once I had written all of the topics down, I started filling that list with more and more topics which stemmed from each other and made connections between each other. During this process, I was mostly answering the questions “What interests me?“ and “What am I passionate about?“. It’s important to me to spend this year working on a project that I would really enjoy, and a project that would hopefully inspire and intrigue others in the topic. I want to end Year 3 with a project I am proud of and a project that represents me and my work in the best way possible. That’s why it only seemed logical to me to focus on topics I am passionate about as that would make the work flow infinitely easier. With this approach I came up with a large list of around one hundred and twenty topics, which is detailed below.

The first page of notes on topics I am passionate about and would enjoy researching.

The first page of notes on topics I am passionate about and would enjoy researching.

A second page of topics, all amounting to about 120.

A second page of topics, all amounting to about 120.

However, now that I had this massive list of topics, I needed a way to pick my four main ones that I would like to narrow down on and research further. As I wanted to make an educated decision on which topics to choose, I felt like I needed a better way to visualise the data and to represent the connections between individual topics. So many of these subjects were incredibly intertwined and it made sense to me to go for the topics that had the most links and connections with other themes and ideas. This meant that I needed to go down the rabbit hole that is Data Visualisation and to pick the best methodology of representing my interests and the relationships between them. I did most of my research into Data Visualisation from a fantastic website called D3, which deals with Data-Driven Documentation. From the dozens and dozens of graphs they had to offer, I found that a tradition Arc Diagram and a Radial Arc Diagram were the most appropriate for the type of information I wanted to represent. At this stage I knew what I was aiming for and now it was a matter of figuring out how to craft the diagram itself.

Just a fraction of the available diagrams at D3.

Just a fraction of the available diagrams at D3.

Upon further research into Arc and Radial Arc diagrams, I concluded that the easiest and most modular way to craft them would be through the use of HTML and JavaScript. That format allows for the addition or exclusion of new points of data without having to recreate the entire document as you would have to if it were created as an image. Additionally, if I were to create this diagram in an image editing software, I would have to manage separate layers for hundreds of connections between the different starting points, which would not only be incredibly time-consuming, but it would also be very heavy on my computer’s processing power. Therefore, the most optimal and time-saving solution for crafting Arc and Radial Arc diagrams is to use a bit of programming.

To create the diagrams I took advantage of a very useful JavaScript library called Provotis, created by Mike Bostock. That library has the majority of the code and logic behind the drawing algorithms of the graphs. In short, the library works by creating a point, a node, for each piece of data. In my case, there would be about 120 nodes in the entire graph, as that’s the number of interests I wanted to analyse. For the Arc Diagram, it arranges all nodes in a straight line and creates a half circle between two nodes with the diameter of that half-circle being the distance between the two points. That half-circle is what represents the connection and between the two nodes. The Radial Arc Diagram is very similar, however, instead of positioning all nodes in a straight line, it arranges them in a circle. The connections themselves are straight lines which connect one point from that circle to another. The more elements a single node is connected to the larger it’s point becomes, thus signifying that that object has a multitude of possible links and connections to the other 120 or so elements. Therefore, the largest points of the diagram, the ones with the most connections, would be the ones I choose to analyse further.

To begin the process of sorting and organising all of my interests, I first classified all of the data points into distinct groups. I ended up with a total of seven groups, which were Art, STEM, Design, Psychology, Poetry, Concepts, and Other. Once the elements had been arranged in that manner, I started to position them all on the appropriate nodes for the graph. Below I have given a small snippet of how all of the nodes were inserted into my .js file.

//Snippet of how I have structured the nodes. 
//Each group represents a category of interests.
//There are a total of 7 groups.

nodes:[
    {nodeName:"Art", group:1},
    {nodeName:"Abstract Art", group:1},
    {nodeName:"Anatomy", group:1},
    {nodeName:"Cubism", group:1},
    {nodeName:"Impressionism", group:1},
    {nodeName:"Surrealism", group:1},
    {nodeName:"Asymmetry", group:1},
    {nodeName:"Composition", group:1},
    {nodeName:"Golden Ratio", group:1},
    {nodeName:"Salvador Dali", group:1},
    {nodeName:"Helen Frankenthaler", group:1},
    {nodeName:"Architecture", group:1},
    {nodeName:"Brutalism", group:1},
    {nodeName:"Structuralism", group:1},
    {nodeName:"M.C. Escher", group:1},
  // (...) 
    {nodeName:"Punk", group:7},
    {nodeName:"Neon", group:7},
    {nodeName:"3D Modelling", group:7},
    {nodeName:"Fantasy", group:7},
    {nodeName:"Magic", group:7},
    {nodeName:"Super Heroes", group:7},
    {nodeName:"Super Powers", group:7},
    {nodeName:"Supernatural Fiction", group:7},
  ],

Once I had listed all of my interests and turned them into nodes, it was time to establish the connections between them. Each node in this array has a reference number starting from 0. In order to establish a connection between two nodes one must simply enter the reference number of the source of the connection and the reference number of the target node. Additionally, based on how significant each of the interests and connections are to me, I have added a value to each connection, although most of the nodes have a base value of 1. Below I have attached an example of how the connections between nodes look.

//This is the basic structure of the linking system.

links:[
    {source:0, target:1, value:1},
    {source:0, target:2, value:1},
    {source:0, target:3, value:1},
    {source:0, target:4, value:1},
    {source:0, target:5, value:1},
    {source:0, target:6, value:1},
    {source:0, target:7, value:1},
    {source:0, target:8, value:1},
    {source:0, target:9, value:1},
    {source:0, target:10, value:1},
    {source:0, target:11, value:1},
    {source:0, target:12, value:1},
    {source:0, target:13, value:1},
    {source:0, target:14, value:1},
    {source:0, target:15, value:1},
 // (...)
    {source:76, target:66, value:2},
    {source:76, target:63, value:2},
    {source:76, target:62, value:2},
    {source:76, target:58, value:2},
    {source:77, target:58, value:1},
    {source:78, target:58, value:1},
    {source:79, target:58, value:1}
  ]

After I had entered all of the connections I found between all of the elements I was left with a complex, but accurate graph representing the different relationships between all of these interests of mine. Based on the number of links between them, there were a handful of categories that stood out and connected with dozens of other elements. The category with the most connections was Mathematics, followed by Art, Geometry and Geometric Rotation, and Poetry. Although I have attached both an Arc and a Radial Arc Diagram, I strongly prefer the Radial Arc Diagram as it is much easier to read through and to see the connections between the separate nodes.

Finished version of the Arc Diagram.

Finished version of the Arc Diagram.

Finished Version of the Radial Arc Diagram.

Thoughts and Reflection

After this examination of my main interests and passions, of how they fit into categories, and how each element links up to the others, I have successfully narrowed down my search to the four topics with the most connections of all. These topics are Mathematics, Art, Geometry, and Poetry. Overall, I was quite pleased with this entire process for a few reasons. This was a fantastic way to break from the traditional mind maps that I typically do, and offered me a new way to look at data and to examine crucial connections between data points. Additionally, working with HTML and JavaScript is not something I typically engage in, so it was quite fun and challenging to practise those skills and to further familiarise myself with the languages. I may very well use these skills for Data Visualisation in the future as well, simply because it is a very clear and precise way of showcasing large and complex information. Finally, I was also really happy with the results from this exercise, because I am highly interested in all four of the most popular topics. Additionally, they are all quite abstract and will provide me with an extensive range of research opportunities and avenues. I am super excited to begin diving into these topics a bit further and presenting them all to the course this Friday. So far, so good!