Project Legend - Update for Weeks of 03/09 and 03/16

Objectives for the Week

  • Week of March 9 (Week 3 of 9)

  • Playtest - paper prototype based on wireframes
  • Start writing code on tying to location services
    • Be able to pull phone location
    • Take a picture and access location information of the picture
    • Technical investigation - validate picture is of a certain object
  • Deliverable for next week: demo code, iterate on wireframes from playtest

Week of March 16 (Week 4 of 9) - Spring Break, No Class

  • Find a concept artist and a visual designer to help with art and assets for Project Legend
  • Write story for Merchant's House
  • Continue writing code for location services from last week
  • Deliverable for next week: code demo

Updates from the Week

Working on this for the week showed me a few things, the big thing being that I've picked up a lot of work for a technology I've never worked with. In trying to build the code for this week, there were a lot of libraries that I was unfamiliar with. I suspect I will have to rethink the scope of my final deliverable because of the sheer amount of components that are going into the tutorial, but I'll dive into that later in the post

Code

I started to dive into the camera part but realized that I no longer am taking a picture - when the player reaches their location, they're just using the camera view finder. So I switched to being able to pull the phone's location. I used the Core Location library in order to at least pull the phone's location. I found a tutorial that talked about getting the phone's location using Swift since the Apple Developer documentation is still in Objective C - while the syntax is sort of translatable, it made it a bit of a struggle to follow their code snippets. This tutorial didn't exactly explain everything that went into the code, but Xcode's handy reference functions led me to figure out that the data I was getting was interpreting the latitude and longitude readings. I may not need to use the player's exact coordinates but can do something called region monitoring to see if the player is in proximity to the location I pass it.

I've found sample code that brings up the camera, I will need to tie them together.

Project Plan Updates

The project plan deliverables for the week needed to be revised. I realize I've taken on a lot for the semester given how unfamiliar I am with the technology. I did start out on this with the intent to learn Swift, but here are the libraries I'll need to work with

  1. Two mini games - SpriteKit
  2. Camera - AV
  3. Locations - CoreLocation

Admittedly I also didn't get as far I wanted due to the break and getting stuck on my Always On Always Connected project, but there are some changes to the deliverables for the week. For example, the technical investigation on validating the picture no longer applies since I altered the mechanics of the game - the player now holds up the camera to get an augmented reality experience rather than having to take a picture when they reach their location. I also didn't need to write the Merchant's House storyline as I cut that from the scope due to the size of the tutorial work and because my research trip to the location got canceled. 

However, I've changed the two mini games so I can no longer use the tutorial code I was building previously as part of the game. I think what I can do for the semester is build the separate components of the game for the class before trying to bring it all together. I've also done some preliminary research into the augmented reality capability and so far everything is centered around Objective C still. It's not terrible, but it'll be another thing to   

I think this is the order that I'll work on things: 

  • Getting the user's location to trigger the camera (CoreLocation + AV)
  • The jigsaw game (SpriteKit)
  • The introduction to the game (Storyboards)
  • The hidden object game (SpriteKit)

If I have these three components nailed, I can get the first half of the tutorial done and polished by the end of the semester. I can probably fake the user's location in order to transition the player to the hidden object game. 

For Next Week

So all of that said, I need to update my project plan (and the flow of the tutorial, my initial post is really out of date). Here's the immediate tasks for the week though: 

  • Build on the location code I have so that if I'm in a certain spot then the camera gets pulled up. 
  • Start building the jigsaw game.
  • Fix my project plan.