GAM710 wk3.5

App Jam Submission

Having reached 40 hours it’s time to submit my project. Looking back I can say it’s been quite a learning experience. I started out with a basic idea and quickly realized that it wasn’t going to be anywhere as easy as I had imagined.  The video below shows my progress to date.

 

I started off with just a cursory knowledge gained from watching a few youtube “how to’s” and Unity UI basics and understand a bit of the menus. After jumping in and quickly failing, I had to look for some help on Pluralsight and Lynda. I can saw there is quite a wide range of depth to the Unity fundamentals video. I had problems bringing in assets correctly and understanding what a prefab really was. How to correct prototype primitives and add basic game object actions with scripts.  Eventually I found what I need between videos, Unity forums and Google. I have to say the biggest time sink was environment setup. Dragging, duplicating and snapping all the materials together, adding the textures to the right areas of the inspector was time consuming and far longer than I had imagined it would. I did learn about the different texture types and how to tweak their appearance.

I discovered ProBuilder and Pro Grids, learned the basics of Player and NPC movement and thought about level layout a bit more.  The next learning experiences were lighting and baking, overlapping UV’s and particles. Along the way learning about NavMesh, Box Collision and how to fix dropping through the world which happed quite a few times.

Getting the player controller setup and running before time ran out was my final goal. I got my character moving around the level but not after having a problem with it stuck halfway in the floor. The bit of setup seen in the movie clip was getting Cinemachine hooked up and following the player character.

Overall, it was an amazing learning experience because it pushed me to grasp the basics of building a functional “prototype”. I had work through the process in a way where each new step built upon the last. The time constraint kept me from getting side tracked with experimenting too much. Some of the bigger challenges I ran into were trying use assets that were not compatible with the version of unity I was using, not understand the parent/child relationship early on, and having problems with character animation and staying above the floor.

In the end,  I own a huge debt of thanks to Unity Instructor Joshua Kinney. He was able to really explain how to get things done and what settings needed to be tweaked to get things going.

Next steps for me are looking scripting, animation and UI interactions. I also wanted to explore character creation and rigging for a better understanding of character movement. I have started two new Unity modules recommended after completing the fundamentals training.

Screen Shot 2019-06-25 at 12.56.09

Hack n’ Slash

Time

 

 

GAM710 wk3.4

Prototyping App Jam Project

This week has been about just jumping in and getting something to work. At the beginning of the week I “just jumped in” and made a mess.  After seeing that some of the online tutorials I had been watching didn’t really give me a prototype the just outlined the mechanic and a basic level layout, I  felt like I was back to square one.

You watch a few Youtube videos on dropping in free assets from the assets store and think, “this will be pretty easy to get something up and running that looks good”. Looking back, I knew better but allowed myself to believe it was as easy as it looked.

I’ve now put a bit of time with Unity and have a better understanding of what I can do and just what a prototype is. I had to take some time and really think about what I needed to do and how that gets fleshed out. I went back to the tutorials on Pluralsight and worked on understanding basic scripting.

At this point, the player object understands the games objects and the cursor also reacts to the game objects, this is seen in the video below. Next steps are building out a test level and adding textures. At the moment I have put in 28 hours towards the App Jam while keeping up with my other studies. I didn’t realize short 40 hours would be but I feel I can get a test level working in the next day or two.

 

Time

GAM710 wk3.3

Second Build with Scripting

Finally made it through the Unity Fundamentals training  video and have started the  next in the series. I had a bit of gap between starting and finishing and found myself going back over about an hour of instruction. I have rethought my original approach and the fact that I had put things off to dig into the App Jam. I need to spend some time with the Unity study, even if its just and hour to keep things fresh while playing with my App Jam project. I also had the chance to get another AR app onto my iPad that will let me place objects in camera space. For right now, I am just using a cube as a place holder. I am working on creating a prefab object to use. I’ll update the blog with my progress once I’m happy with the result.

This iteration I actually went through the process of creating a game object and using a script to give it functionality. The video tutorial was using an older version than I had installed as well as an older version of the ARKit plugin for Unity. This cause problems with using a RayCast and ARSessionOrigin. It took Googling to get it resolved. This still needs a bit of fine tuning with regards to plane detection. You can see the result below.

GAM710 wk3.2

Time Tracking

During our weekly class discussion, the topic of time tracking for the App Jam came up and I had realized I wasn’t approaching the issue with a professional attitude. Just marking the time on a notepad and then transferring it to an excel worksheet wasn’t the most efficient approach. Of course the really question, “Was I really getting all the time entered?”.  The again, it wasn’t really easy to visualize how I was really spending on the App Jam.

I had been using Salesforce for time management at work but that was enterprise time tracking software. One of the group mentioned they were using Harvest but it only came with a 30 day trial and I have a way to justify the investment on top of the other monthly expenses to which I was already committed.

Then I happened across Clockify, ( https://clockify.mehttps://clockify.me ) a simple but efficient web-app  with free tier that allows covers all my basic needs. Clockify also has a browser extension, desktop app and a mobile app. They support Firefox and Chrome, Apple, Windows and Linux on the desktop and iOS and Android for mobile.  It has time tracking, reports, teams, tags and client billing. I have been using it for tracking my App Jam progress and it’s given me a better picture of how I’ve been spending my time. Now I just need to work on balance. Small steps.

Screen Shot 2019-06-20 at 9.10.52

 

GAM710 wk3.1

APP JAM

Week three started off with myself mulling over the theme for an app jam that we are part of this week. The goal is to stretch myself and see what I can put together in a 40 hour period. The theme is Guide – Opponent – Restricted. I feel a bit nervous at first but got started after listing to videos from Martin Cooke and Michael Cook. They offered some good advice for prototyping my project. I will use some paper style prototyping with photoshop and try and code wise, get the world environment working.

I have thought about the theme and looked at it using synonyms.

Guide

Opponent –     resister corrival  rival contestant competitor

Restricted –     limits  limited  segregated authorized

I also a few ideas from games like Flower, Sky and The Pack. Exploring opened play and how the game character interacts with the game environment. So far, about 10+ hours in just playing with different ideas. I have also been looking to how cloud anchors work and have put a link below for catch a quick overview of what it entails.

GAM710 wk3

Learning Curve for Unreal and Unity

This week has been a learning curve with Unreal using Blueprint and also using Unity. So far Unity has been the easiest to some sample AR file onto my iPad.  I had put together a sample AR project for my iPad but ran into a problem with the build Xcode and camera access but eventually go it working. I did have a problem getting wall plane to register. Could be that the surface is too white for the camera? See the video below.

Also played with replacing the cube mesh shape with a different asset and getting rid of the yellow test surfaces. I spent a bit more time with this than I have expected but I learned quite a bit about the interfaces and plugins. I will try and avoid using Vuforia, I think the cost is a bit prohibitive but I have played with the mapbox a bit and trying to a an objected tied to a GPS point. That bit is still a work in progress.

 

GAM710 WK2.1

Platforms & Tools

The overview of platforms, tools and frameworks was really interesting and something I hadn’t though about in the breath it was presented.  After thinking about what I would like to do, I am going to focus on AR/VR on both mobile and desktop. I have loaded Unity on an Apple machine with Visual Studio as the IDE and installed Unreal on a Windows machine. I have an iPhone and am shopping around on a good price for a Google phone. I’d like to run pure Android. In the meantime I’ve setup an emulator for both Android and iOS. Unfortunately, Flutter is gong to have to take a backseat while I get up to speed with using C++.

I have all ready jumped into some coding courses on Lynda for Unreal and the interface is quite different from Unity. Just thinking about the interface layout here and blueprint is pretty amazing.

unity-1

I took some time slogging through all the Unity vs Unreal articles and videos littering the web and found two that keep things simple and to the point.

https://sundaysundae.co/unity-vs-unreal/

https://www.quora.com/Which-game-engine-is-superior-to-develop-VR-and-AR-games-Unreal-Unity-or-other-game-engine

Also, if your really keen to hear a deep dive into the differences, have a listen these two podcasts:

https://podcasts.apple.com/us/podcast/episode-77-unity-vs-unreal-part-1/id972383709?i=1000440364578

https://podcasts.apple.com/us/podcast/episode-78-unity-vs-unreal-part-2/id972383709?i=1000440953878

 

GAM710 wk2

Programming Languages

The videos were great refreshers for what’s heavily used right now. After doing a bootcamp in Java, I have dabbled with C++ and C#, C++ because I was interested in Openframeworks and C# because of Unity. I will take a look at Swift, it sounds interesting and I didn’t realize how friendly it could be to a beginning coder.I am sad that PhoneGap was removed from the Apple App Store:

Due to Apple guidelines, the PhoneGap Developer App has been removed from the iOS App Store. New users will be unable to download. No impact to Android or Windows versions.

I did find an article on Medium on getting it set up through Git, I’ve put a link below but is a bit dated (Jun 2018). Apple and Adobe seem to have a real love/hate relationship.

https://blog.phonegap.com/update-on-the-phonegap-developer-app-ios-99e07e3309dd

Also an interesting blog article below on Git and GitHub.

https://jahya.net/blog/git-vs-github/

Github2

Photo credit: Andrew McWillams

GAM170 wk1.2

Week 1 Creative Piece
Theme: As long as we have each other, we will never run out of problems.

I thought about this for quite a while and then decided to riff on this theme by pulling together a couple of ideas I have been looking at recently. The idea of twins and duality struck me as an exciting way of viewing the theme, and I have been looking at simple 2d physics collisions and responses, flocking and steering and UI interactions that seem intuitive.

I had also just read an article in WIRED about “lunch break games” and the of jumping into a game for a quick moment of fun so, I wanted to play with wrapping these things into a concept game and see how I could get these things to work together.

Concept
A simple scrolling maze game using two circles paired at their center points that challenge the user to keep them as close to each other as possible using their thumb controllers so they can be moved as one. The player holds the phone like a game controller and controls the game piece by tilting the iPhone in six directions. He/She races against the clock and the ever-increasing scrolling speed. One of the circles will have some physics agency of its own, forcing the player to try and keep the two paired while moving them through the maze-like obstacles as quickly as possible.

The maze is generated using flocking like barriers where the separation, alignment, and is controlled using an algorithm with randomly generated parameters. The player chooses a game piece at the beginning of the game is unique form the other. Some will be harder or easier to control, while others will be faster or slower. This is left up to the player to discover. The game will use analogous color palettes. The game levels are colored by choice of game-piece at the beginning and will change in tint and saturation as the levels increase. The color will also change with the game piece as it collides with the maze. Players work to best their top score, and the speed and complexity increase the longer the is to push forward without crashing and burning.

The game will be developed using Flutter, and it is expected to be a challenge ( see link below ) but able to deliver to both popular platforms efficiently. I have been working on my Unity skills but fell a bit better with flutter at the moment. I have had problems with getting these keep from breaking on iOS with ARKit, so that was off the table this round.
I use a Mac, and the IDE will be Visual Studio Code. I have installed the integrated features for testing by installing Android Studio and updating Xcode for the simulators.

Screen Shot 2019-06-11 at 16.26.19

game look
https://blog.geekyants.com/building-a-2d-game-in-flutter-a-comprehensive-guide-913f647846bc

 

GAM170 wk1.1

Another big part of this week was spent on Pluralsight and Lynda. I really appreciate having access to these to learning sites and had used Lynda in the past but was surprised with Pluralsight. Normally I just logged in and know what I wanted to study but the approach Pluralsight was a pleasant surprise. After answering the interest questions and take the assessment tests after, I was surprised with the feed back and have started studying the Unity Developer course with a focus on Unity’s cross-platform AR Ecosystem, AR Foundation, ARCore and ARKit. I have dabbled with Unity quite a while back but happily remembered most of the basics of getting around the interface and file setup.  A new change was using Unity Hub.

I watched the “Mobile App Design and Prototyping in Photoshop and After Effects” video on Pluralsight and similar to a website mock-up using adobe, though I have never used after effects to screen transitions before. While I’m more familiar with this approach than the one take in the  video “Design an App with Android App Inventor” on Lynda, the speed of putting together a “working” app mock-up was amazing. While I don’t have an Android phone at the moment, I have found something similar for iOS with Famous (https://famous.co)

famous

Photo Credit: Famous.co

and am looking to try this out over the weekend. While not as function rich as the Scratch style drag and drop codeblocks of MIT App Intentor, it gives a functional app mock-up using the same barcode app loading feature. Again, more time saving than the Photoshop – After effects method.

I stumbled across Famous after reading through the IEEE paper on “Comparing Performance Parameters of Mobile App Development Strategies” using cross-platform development frameworks.  Looking through the paper there seems to have been quite a shakeout in this market with frameworks looked at but the main point was the runtime speed of the different frameworks on the main mobile platforms and the difference of running as a web app or running as a “standalone application by using
a Web-to-native wrapper”(Willocx, Vossaert, and Naessens 2) Having looked at the frameworks list in the paper :  Ionic (https://ionicframework.com), Appcelerator (https://www.appcelerator.com/mobile-app-development-products/) and Sencha Touch 2 (https://www.sencha.com), I have decide to stay with Flutter and Unity’s AR Ecosystem. They are both working on running at near native speeds and are able to access most of the OS API’s without relying on the phone browser that many of the web-app frameworks had relied on. As a student, Flutter and Unity offer full feature development for no cost, constantly being upgraded and improved and  have a healthy development community.

The one thing I hadn’t put much thought into was testing and the ACM Digital Library paper “Remote Paper Prototype Testing” was an interesting look at quickly testing and iterating on a concept. The feedback was simple and direct and was easily done with two people. I was glad that they had posted a support video that easily validated the concept and encouraged me to also take a simple approach to testing. I am going to enlist my students help with this one a have a concept that’s ready for testing.

There quite a few things to work on going forward,

  • Finish Wk 1 Concept assignment
  • Continue with Unity on  Pluralsight
  • Work on some Flutter
  • Brainstorming app ideas for sketchbook
  • Finish reading “Future Presence” by Peter Rubin

 

M. Willocx, J. Vossaert and V. Naessens, “Comparing Performance Parameters of Mobile App Development Strategies,” 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft), Austin, TX, 2016, pp. 38-47.
doi: 10.1109/MobileSoft.2016.028

URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7832966&isnumber=7832858