Friday, 10 March 2017

Bowhead is live! - Project in the museum!

Today was the day! From the 11th of March until the 16th, our installation is installed in Hull Maritime Museum!

We threw all of our energy and resources into this project, and I'm thrilled to see it pay off! Today our first users came in, and they all left with a smile, so in a way that's our goal achieved. The Leap Motion seems to have been intuitive enough for people use, and people seemed to understand the game mechanics pretty much right off the bat. The stand for the Leap Motion seems to draw people towards it better than at Digital Dystopias, where a lot of users would look around for the sensor or think it's a touchpad.

Today Ash and I went to the maritime to fix an issue where the Mac would come out of fullscreen in the game. We got around it with a script Ash wrote beforehand- the trade-off being that it requires one mouse click when the machine is first started.

We also raised the volume of the harpoon and chain sounds which are handled in Unity, and trimmed some of the bloat in the project by trying different lighting settings, minimising the particle effects in the game, and also cleaning up some of my many print messages which had snuck through in the last build.

Somewhat bewilderingly, the graphics card in this particular Mac is known to not function with Unity, leading to the game running without a graphics card! All things considered, I think the frame rate isn't bad. We were able to get away with a lot of optimisation as a result of the screen we are using having a relatively low resolution, but we are pretty satisfied with the final build.

There might be a write-up at the end of the run in the museum, just picking apart the project as a whole, but this is me signing off for now at least!


Sunday, 12 February 2017

Report on the installation for Digital Dystopias Festival at Middleton Hall

We were exceptionally lucky to have a test-run of the installation in a real scenario at the Digital Dystopias Festival at University of Hull. This ran from Friday (10/02/17) to Tuesday (14/02/17), and members of the public were able to play the game and give feedback on it.

Based on the feedback, I am thinking that the project is mostly successful, as people had fun playing it, gave some great suggestions to further the project, and also asked me very encouraging questions about the theme of it.

Here is a selection of the questions I was asked:
"What ship is that?"
"Why is this one called the Dianna?"
"Is this to do with Bowhead in the Maritime Museum?"
"Why did they hunt the whales?"
"Where did they hunt these whales?"
"What type of whale would they be hunting?"

The project seemed to be a hit with children around the age of 10, as they were repeat players of the game, even coming back to play it in between the events at the festival. They were also very observant, spotting a bug with a boat spawning before the game had started. They were also the majority of people who completed the game.

I was lucky to have a lot of Computer Science students at the event (due to the festival being centred on technology), and they seemed to all be very positive about what we had created, and also surprised that the project was from the Music department. Largely they were mostly interested in the Leap Motion itself, and asked a lot of questions about the device, and what it could be used for. This would suggest that the Leap is a nice talking point to entice visitors at the museum to get involved.

I found that asides from younger children, there was a definite spike in slightly older adults playing the game. This was great, and I'm not sure that would have been as much the case if we had presented a complicated game played with a mouse and keyboard. One major issue was that this group didn't always understand how to use the technology based on the message on the screen, and very few people read the explanation sheet accompanying the game. This means that the tutorial needs work, as I won't be (and should not need to be) there all week to explain the gameplay at the maritime museum.

The enclosure was not entirely up to scratch for the exhibition, having failed a theft test. Rob also wasn't happy with the aesthetic of melted plastic, so we are planning to fit a veneer over the top to address both issues. This should help by creating a more snug fit, whilst covering my blunders with the soldering iron.

Current to do list:

  • fix boat spawn before  the game starts
  • fix bug where timer doesn't stop if whale dies
  • speed up longboat movement?
  • fix a bug where harpoons sometimes don't return to the boat
  • reduce leap sensitivity
  • have a passive (indirect) tutorial - Ash has suggested recording a very brief video in the Maritime Museum with the finished enclosure to make it extra clear how to play the game.

Thursday, 9 February 2017

Adam Courtney ...And I feel...tired...

This is just a log of the final adjustments we make just in the last couple of hours.

  • Nathan's soundscape is in, and I absolutely love it! It adds a lot of character to the game in my opinion- I'd listened to it on it's own, but with the game it adds a lot of polish. Also having Max run it independently means that it runs the duration rather than stopping and starting with Unity's reset. That will mean it sounds different for people when they play it each time.
  • The tutorial now has a 30 second timer, where if the player hasn't come up for air to complete the tutorial, the game resets.
  • Fixed a bug where the player's breath would go down if you stayed on the surface of the water after the tutorial.
  • Ash and I will get cracking on the video material as soon as we can.

Adam Courtney- It's the end of the code as we know it...

I'm hoping this is nearly the final version of the game, as time would dictate that is the case.

  • Made the glowing harpoon effect more subtle, they also now don't glow after hitting the whale
  • UI is coloured, and goes red more often. Font also changes size for emphasis when breath is low, and if player gets hit.
  • Sound levels in Unity have been lowered a lot (they were drowning out the Max patch).
  • Made and then fixed bug where one the Swan ship would appear without a texture on the mini-camera.
  • More directions from the top text.
  • Moved the camera for the big ships, so that the little boats are visible to warn the player.
  • Added a warning to the screen when a new ship is spawning.
  • Made whale able to move more around the screen.
  • Chain from harpoons now looks more like a chain
  • Harpoons now have a slight swinging effect when they miss the player (hopefully slightly more realistic).
  • Fixed bug where harpoons would return to ship rotated 90 degrees sideways.
  • Made guns focus on the harpoons once fired.
  • Fixed bug where demo video would have started if the game ended (instead of after resetting).

Remaining before installation:

  • Add Nathan's soundscape to the max patch
  • Add a timer so that if a player leaves during the tutorial the game returns to the start screen.
  • Add the tutorial videos to the project.

Wednesday, 8 February 2017

Adam Courtney- Home stretch! :)

Progress on the game has slowed slightly in favour of creating an enclosure for the Leap Motion which is hopefully durable enough to last a week at the museum without any trouble.

I've opted for a plastic Hammond box (£6 in Maplin) as the primary casing. It needed modifying to hold the Leap Motion, so I did some research on how to cut out the shape for it to sit in.

The method I saw online was the hot knife technique, which involves using a knife edge as a soldering iron tip, and cutting the plastic while the knife tip is heated up. I was unable to procure the knife-edge tip from the shops I tried in Hull, so opted for a modified approach, screwing a Stanley blade onto the side of the soldering iron.

It was a bit of a trial and error process, as the blade was much hotter at the back than the front, leading to me having to cut backwards. However, given it is my first attempt, I was happy with the results. There are a few parts on the case which have been scuffed, which was unfortunate, but the case serves the purpose. The cable can't be pulled out, as the end is encased in the box, and the Leap Motion is sat flush with the top of the case. It should be possible to use cable ties and a few other simple methods to lock it down tomorrow. Whilst it's not a beautiful thing, it works and I'm pleasantly surprised at the result.

Changes in this build:
Tutorial code is implemented! I was able to do it with a modular approach, so that there is minimal impact on existing code, and the script can be bypassed hopefully if needed.

Tonight, I am:

Adding in the video clips to replace the blank squares I've been working with.

fixing an issue where the second camera doesn't disappear once the boat is well and truly on-screen - DONE!

The text and formatting needs improving, as the videos are covering them.

After this is done, the project should be...dare I say it somewhere near finished! I may stay and play test to ensure it's bug-free this time around, and also see if any other graphical improvements can be made.

I also plan to replace a graphically intense steam spray with a graphic, just to make life easier for the computer.

Monday, 30 January 2017

Adam Courtney- Tutorial and cameras

This post is more of a roadmap on what the final few developments to the project will be, with the chance for us to amend it before we commit major changes. It's also a chance for me to reflect on the feedback we received at the Maritime Museum presentation, as things were highlighted that we could add and improve.

Planned Changes

  • Interactive tutorial- this is a feature none of us expected to be able to add, but it is going into the project after all! We were aware that the project was using a pretty niche controller (it's rare to see a Leap Motion out in the wild), but had underestimated how much explanation it might need to a first-time user.
  • The current plan is to introduce the Leap Motion via very brief videos that Ash has recorded, and then introduce parts of the interface such as Breath and Health gradually, with the player interacting with the Leap Motion to confirm they understand the gameplay and controller.
  • The videos are simplistic, with a hand over the Leap Motion on a white background, and synchronised screen captures to demonstrate cause and effect.
  • The "dead" screen area above the water is being utilised before the boats, so that the player can always see the whale and how their interaction affects the movement.
  • We've also added a second camera, which highlights to the player that a boat is approaching in a box on the screen! This is quite a nice visual to illustrate where the boat is coming from, and we are also going to add a warning indicator to show when a harpoon boat is approaching, so the player knows to stay away from the left in order to avoid getting hit by a boat that's not even on the screen yet.

This is our "storyboard" for the tutorial, the pictures illustrate the screen at that time.
  • I've written in pseudo-code what I want to happen, and my task tonight is to get the videos into Unity, and get playback under control. Then I'll be adding in the breath mechanic "test".
  • We have also changed the camera perspective from a pseudo-2D orthographic camera to a perspective camera. This should help give the scene a better sense of depth, and help make it clearer when harpoons are being fired, and whether they hit.
  • As a "quick fix" to some feedback we had about it looking like a harpoon in the background should be hitting the whale, we increased the collision boxes on the whale, to make the harpoons hit at any distance if the whale is sharing the X/Y coordinates of the harpoon. In terms of gameplay, it makes it much harder, as players can't just swim up every time to dodge harpoons, but the visuals have suffered as the harpoons are getting stuck in thin air due to the bigger hit boxes. That can be tweaked though, and hopefully a compromise can be met.
  • I'm hoping to add to the blog a few more screen captures of the project's development over time, as well as a demonstration of the tutorial sequence.

Tuesday, 24 January 2017

Adam Courtney- Effish-ient development

Over the past week, the progress on the game has drastically picked up, and as a group we have pulled together something that I think we are quite proud of. The paracetamol shaped placeholder whale is now an animated, breathing, textured creature, the floating boxes are now very detailed, historically accurate boats, and the game is quite fun to play.

Today's presentation at Hull Maritime Museum went okay, I'm really quite happy with what we've put together, and we have some great feedback to continue developing the game to fit into the museum. The main concerns raised were to do with clarity of experience for a new player- whether the current tutorial sequence was enough to introduce the leap motion, and the gameplay elements. It was suggested that the tutorial text could be added to, and the harpoons could be made more visible when playing. I took the decision to be minimal with the text on the screen, so I will try to address this over the next day or so. We've experimented with adding flair effects to the harpoons, and making the lines stand out more, but it may be a balancing act getting the balance between accuracy and clarity in the gameplay.

My contribution has been exclusively within Unity, and Max- Ash, Nathan and Dan have put together the models for all of this content in Blender, which were coloured, and then textured in photoshop. In terms of gameplay, the core game is pretty much the same, but the changes I've implemented have made it far more robust, smoother, and much more streamlined to play. This has led to some tense points where I've had to take chances with re-writing code, learning new techniques such as raycasting, and learning more about textures than I could have guessed was necessary.

New Developments:

  • Raycasting is used to detect players being in range of harpoon guns.
  • Leap motion/mouse now is much more fluid, as the whale moves straight to it rather than it being a physics-based event each frame.
  • Randomised boat models, with boat's name appearing in text.
  • More arcade-based feel, with the year counter replaced with a simpler 60 second timer.
  • All models (Big boats, small boats, guns, harpoons & whale are all added.
  • Harpoons now fire directly at the player (they took a rounded path)
  • The guns point at the player properly, and the harpoons return to the gun properly
  • Tutorial sequence, added 10 seconds to the timer, where the UI explains some gameplay before boats spawn. (game is actually 70 seconds as a result).
  • Added a basic animated hand sprite and leap motion picture to indicate what the player should do to start the game.
  • Fixed a new bug where the boats intermittently wouldn't spawn (a variable in an if statement was the culprit after tracing it with my many print commands).
  • I've changed the layout of the game so that the boats no longer can collide with the player, and the harpoons fire at the player from background to foreground. This was part of the new recast scripting, as it let me use 3D coordinates to fire at.
  • Ash and I added a lot of new cosmetic changes, such as using a Creative Commons font for the text, making the text bigger, adding weather effects and lighting, and re-texturing some of the sky assets to create a new atmosphere for the game.
  •  Unity's sound events are used for instances of the boat as it is more logical than duplicating Max messages.
  • Fixed a bug where harpoons would get stuck in the scene (a misplaced game object in player hierarchy caused this)
  • I took samples from Creative Commons, and added them to Nathan and Dan's sound bank for the max patch.
  • Added in Ash and Dan's animation, and Ash helped me with the C sharp script to control the animations with in game events (death animation, and faster swim when mouse is moving)
  • Changed the background texture so it no longer scrolled, and instead the motion is implied by the sea movement, and the clouds etc.
  • Disable cursor, and then enable it with a hand sprite texture.
  • Added a sea foam effect to the big ships to give a sense of depth and water. (Ash also did this)
High Priority:
  • Improve tutorial section, make it more detailed, (explain player is the whale, how to use leap motion, that the whale needs to come up for air, and needs to dodge the harpoons).
  • Get the balance right between harpoon visibility, historical accuracy, and the game aesthetic.
  • Fix a bug where the breath sound isn't switched off in max after the game ends. Maybe a global reset would be a good idea.
  • Add the Background music
Medium Priority:
  • Add an escape function, so that the max patch can be ended, and the game can be closed without changing window. - Deemed unnecessary, as it's possible to power off the machine and have the startup script.
  • Add a win sequence or something aesthetically pleasing for the player to reinforce victory.
  • Add a splash screen/ intro, so that the game doesn't appear unresponsive during the delayed start.
  • Change the app icon.
  • If possible, open the max patch within unity? - Irrelevant due to Ash's startup script.