tag:blogger.com,1999:blog-67811221080913463472024-03-05T13:13:22.619-08:00RobDJs Project Blog- Learning to make great things, technicallyRob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.comBlogger38125tag:blogger.com,1999:blog-6781122108091346347.post-50717790164001383612015-03-25T07:40:00.000-07:002015-03-28T10:01:26.377-07:00Astronautics Simulation - Revisited (Post Mortem)<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Even though the module was over and I received my grade, I spent a weekend fixing up this project to get it ready to demo on the 18th of March. I did the demonstration on Wednesday and things went well, which I am happy with. The members of the astronautics department seemed to like it a great deal and had many VR/Oculus questions. Below I'll summarise what I did to get the project finished and ready. After this I will cover future work and improvements that could be worked on.</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">In my last Astronautics Simulation post, I covered briefly what worked and what did not work with the system. I used these points to fix the original issues. I rebuilt the simulation, reusing the assets and some of the code from the previous version. However I removed the first minigame and designed 3 others. I also fixed the skybox bug in minigame 2 and completed it. I then added audio, a GUI and narration into the simulation, created by myself using Photoshop and Audacity along with a voice changer. The system still follows a similar modular structure. I'll map these below:</span></div>
<br />
<div style="text-align: justify;">
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Main Menu:</b></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2HwaUz2yiIOENFLWSufEAab4ZMaOtHNMNziOliY0V2OT5OBSgr0pCqGcsPP0z-j5rAjzYKJYfNKCpsAIqkMXKnBEIL_OjxedU51az2aZ8JKZToGNrTc8xvAmpvYqvRl5qDEhi3LcKx3pZ/s1600/MainMenu_Screenshot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2HwaUz2yiIOENFLWSufEAab4ZMaOtHNMNziOliY0V2OT5OBSgr0pCqGcsPP0z-j5rAjzYKJYfNKCpsAIqkMXKnBEIL_OjxedU51az2aZ8JKZToGNrTc8xvAmpvYqvRl5qDEhi3LcKx3pZ/s1600/MainMenu_Screenshot.jpg" height="180" width="320" /></a></div>
<br />
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The main menu had issues due to constricted movement. Even though this didn't stop the user from using the system, most of the playtest feedback received spoke of allowing users to move around this main menu with more freedom. Due to the nature of the Oculus Rift, many users wanted to explore every level, even the menu-panning by walking and looking around.</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">There was also a bug where the user could get turned around when booting into the menu, before putting on the rift. The tracking data would incorrectly set where the rift was pointing at the time before the user had it on their heads. I also found this issue to occur when loading from one level into another (a Unity Scene in this case). The tracking data would update before the level finished loading, causing the users' center view to be set off-center in-game. I fixed this issue by offering the users a way to reload each level by pressing a button on the pad or key on the keyboard. This would allow the level to reset and the new tracking position to be set correctly. This is more of a work around than a bug fix, but it works well enough.</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">The new main menu was reconstructed to be a level in itself. This was changed from the row menu panning mechanic used previously. This new menu allows the user to select a minigame from 4 different panels which hover above the floor. The user is also able to navigate around the room and look at the various satellites and other eye-candy dotted around the level. This allows for less constricted movement, which works better on the rift. The user selects a level the same way as before, by looking at the desired panel and pressing Enter or A on the gamepad.</span></div>
<br />
<div style="text-align: justify;">
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Minigame 1 (New): - Weather Analyser</b></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwR4EugQSa9YpHLmzfVTN0aVUM_eyhUsqYgiRTh6XXaibfheQcuOozr5Lf9snJ1M9MDDrOdYwo7XG7oGC2as0kX0_2Ij8OxA-a2IKIfgQgY8phpwiXnT0jr8PaU3nontYwyqL63Cjg_Ho-/s1600/WeatherSmal.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwR4EugQSa9YpHLmzfVTN0aVUM_eyhUsqYgiRTh6XXaibfheQcuOozr5Lf9snJ1M9MDDrOdYwo7XG7oGC2as0kX0_2Ij8OxA-a2IKIfgQgY8phpwiXnT0jr8PaU3nontYwyqL63Cjg_Ho-/s1600/WeatherSmal.jpg" height="266" width="320" /></a></div>
<br />
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The original minigame1 was completely removed. The underlying design did not work well with the rift and as such I thought it best to start over. The new minigame has a similar look but deals with the planet Neptune rather than its moon Triton. The user can now look around unconstricted as they pan around the planet Neptune along the X and Y axis. Getting closer and further away from the planet as the enter / exit the dark side of Neptune.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">The objective of this minigame is to navigate around Neptune and spot various weather anomalies. The user has a simple GUI consisting of a crossair and a context panel. Once the user spots a weather anomaly (by looking at it through the crossair) a message pops up at the bottom in the form of a context GUI panel. Once this occurs a voice over narration also starts to play explaining the weather anomaly in more detail.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">At this moment in time there are a total of 5 weather anomalies to find. There is no time limit as the way the game is designed ensures the user always has a point of reference and as much motion sickness it not an issue. Camera pan speed was also slowed down to a comfortable level to aid in this. And at any time the user can quit out of the game via the B button on pad or the N button on the keyboard. This will allow them to play as long as they feel comfortable before quitting out.</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Minigame 2 (Reworked): - Infrared Spectrography</b></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqf_SDHdi6WJXLRp2141YH8JcYm2LKtYgZiYJH7dlBrXD2ein_atBFPkAUdZMPhLYrVHfL7gzc45kyHOddAZIwWmT-H6XuO_0Tolif48hDc1C70jcnfLeOXMBeF1outiN5hCjT885gv7Mn/s1600/InfraSmall.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqf_SDHdi6WJXLRp2141YH8JcYm2LKtYgZiYJH7dlBrXD2ein_atBFPkAUdZMPhLYrVHfL7gzc45kyHOddAZIwWmT-H6XuO_0Tolif48hDc1C70jcnfLeOXMBeF1outiN5hCjT885gv7Mn/s1600/InfraSmall.jpg" height="218" width="320" /></a></div>
<br />
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">This minigame worked well but was not feature complete and had a nasty bug in it. In this version the game was finished off and the terrible Skybox seams were fixed.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Apart from that not much changed from the original concept. The user uses the RB/LB/RT/LT buttons on the pad or UIOP on the keyboard to select a infrared mode. Based on the mode selected they will be able to identify different objects in the galaxy they see infront of them. The users can view the level in 360 degrees and they are not constricted in anyway in terms of camera panning along any axis.</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Minigame 3 (New): - Probe/Orbiter/Satellite museum</b></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzXBW7mhQhkMJmgHjJdxogcLwsxHeWPf5uOWL9U7rpBotCrGKxaoqGffpOKHbRYWTKAganRwN-630pkmWXiU2nqNzECqLrG6h_Ya584qQ4htNOFbFrKq772AjQevEXwszFHOQ5R-w3kIrv/s1600/OrbSmall.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzXBW7mhQhkMJmgHjJdxogcLwsxHeWPf5uOWL9U7rpBotCrGKxaoqGffpOKHbRYWTKAganRwN-630pkmWXiU2nqNzECqLrG6h_Ya584qQ4htNOFbFrKq772AjQevEXwszFHOQ5R-w3kIrv/s1600/OrbSmall.jpg" height="246" width="320" /></a></div>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">This minigame is a simple room and allows the user to walk around inside it. In this room the users will find a close up model of both the Orbiter and Probe. These two models were recreated based on the CAD files provided by our supervisor. As much detail as possible was put into the recreation of these models. When the user walks up to one of these models and is close enough, the narrator will start narrating the background information about the Probe/Orbiter.</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Along with these models the user can find 6 of Neptunes satellites, modeled by Begoña in great detail. When the user walks up to these the narrator provides the user with information about each satellite including physical traits.</span></div>
<br />
<div style="text-align: justify;">
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Minigame 4 (New): - Triton Orbit</b></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCLODdzBe6Pr0yXwTEfUZ3FOtpbwXYhtItx2luPKjV7_4cPbREp1_IZwfQXwHjUvnZ_LGkccLWWw1cmgJUW_7NliV4sPXHfNrvVU_BaKUDwdmG0-LpFNVHDPKeo1nX-pC20bPp0zj1iWD4/s1600/TritonSmall.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCLODdzBe6Pr0yXwTEfUZ3FOtpbwXYhtItx2luPKjV7_4cPbREp1_IZwfQXwHjUvnZ_LGkccLWWw1cmgJUW_7NliV4sPXHfNrvVU_BaKUDwdmG0-LpFNVHDPKeo1nX-pC20bPp0zj1iWD4/s1600/TritonSmall.jpg" height="243" width="320" /></a></div>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">This moon was created by one of our modelers, Begoña, and includes a normal mapped texture taken from actual images of Triton. This minigame is pretty similar to minigame one, however the objective here is to observe where the photo quality of the texture drops due to lack if imaging data. This is to show how our understanding on Triton can be increased by additional visits and investigation.</span></div>
<br />
<div style="text-align: justify;">
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Future Work</b></div>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">There is a lot of room for improvement. I'll cover this below in a general way and then per level.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Generally it would be a good addition to the simulation to add some particle effects or shaders that draw stars or interstellar gas as you orbit around things in the game. Even if this is a far off effect it would add to the immersion of the system.</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">It would be good to have more than 1 audio track in the game. This can be easily added the difficulty would be in tracking down appropriate audio tracks to use, with permissions.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">The narration could be improved upon. As it stands I use a voice generator and modify the output using a voice changer to up the semitones of the voice by 2. This makes the voice sound warmer and more human but it is still not ideal. best solution would be to have somebody read out the narration rather than use synthetic voice generation tools.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">The objectives in most of the minigames are similar in nature, it would be good to add additional gameplay elements. If this is done however, it's important to keep in mind which mechanics would work well in VR and which would not. At the moment due to time constraints I followed a similar path for all of the minigames as I knew they would work well in VR. Additional research into designing for VR would be of great use here.</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Main Menu improvements</b></div>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The lightning in this level is not perfect yet. This is largely due to the lack of shaders around the planet Neptune. because I did not have time to create these I had to use a hacky-way to make the planet look nicer. I did this by using lighting. But it's not ideal. It would be good to spend more time on the lighting and improving the Neptune planet itself.</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">The floor is a very basic texture and is pretty bright. It also has some issues with level of detail when rendering on the rift. It would be better to get a nicer texture and maybe redesign the level to match it.</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Mission 1 improvements</b></div>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Having a planet Neptune with a much more detailed texture would be great here. Preferably one that shows different weather patterns on it (such as the dark spot). </span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Additionally it would be nice to have a UI graphic that guides the user towards different weather anomalies as at the moment they are difficult to track down. It would also be good to have a gUI graphic appear on the planet where the weather anomaly was spotted to inform the user about which ones they found and which are not yet found.</span></div>
<br />
<div style="text-align: justify;">
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Mission 2 improvements</b></div>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Add additional things to find. At the moment there are only 5-6 objects to find in this game. It would also benefit from GUI guidance and tagging of objects found.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Touching up the near and mid infrared skyboxes to be more realistic would also be a great improvement.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">The only major bug left over in the system occurs in this minigame. For some unknown reason, movement controls will break game-wide (although not that often). The bug starts occuring when switching vision mode to the far infrared spectrum. There is not logical reason this should happen, but it does. Further more reloading the level does not fix the issue. The only way to fix this is to reboot the game. I suspect something is going wrong with the OVR Character controller. Further investigation will be required to see what is up here.</span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Mission 3 improvements</b></div>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Adding a way to stop narration (by pressing a button for example) would be good. This would allow the user to stop the narrator if they accidentally triggered narration. Another solution could be having the user press a button to start the appropriate narration when looking at an object.</span></div>
<br />
<div style="text-align: justify;">
<b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Mission 4 improvements</b></div>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">This is a pretty basic game. Expanding on this in more detail would be good. Adding additional narration or objectives perhaps.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">In closing I'm pretty happy that I reworked the old simulation and got to a point where it was at least bug free and feature complete. If required and time permits I'll take a look at building onto this with hopes of the system being used for the task it was created for.</span></div>
<br />
<div>
<div style="text-align: justify;">
<br /></div>
</div>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-13436906819407223552015-03-23T05:39:00.002-07:002015-03-23T05:53:57.741-07:00Oculus Rift Side Project - Dolly zoom test<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I did a test a few weeks back (quite a while now) to see how the Dolly Effect worked with cameras and their frustum. The idea was proposed by my supervisor as something that might be interesting to explore in my free time. we discussed this during one of my MSP module meeting.</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I did not actively know about this 'Vertigo' effect until it was mentioned by my supervisor. Only after speaking with him did I realize that I have seen this effect in many movies. I thought it would be interesting to look into. I was specifically interested in how this would apply to the Oculus Rift and what sort of effect it would have on users when in use. </span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I started by looking into the Dolly Effect on Wikipedia (Wikipedia, 2015), as it gave a good overview with examples as well as the maths that went into creating the effect. </span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">After this I looked at how to implement this in a prototype and hook it up to the rift. The easiest way I thought, would be to use Unity since I had other projects already set up in that engine to work with the rift. On an off chance I looked at the Unity documentation and found that they had all the code written for a dolly zoom effect! (Unity Documentation, 2015) This meant the only modifications I had to make was to convert the javascript code into C#. And after this, get the effect to apply to the Oculus Rift.</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Converting the code into C# wasn't really required but I thought it would help me understand how they implemented the mathematics behind the concept better. And it did, converting the code did not take long at all. </span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The next step was attempting to get the effect to work on the DK2. I couldn't simply attach my dolly effect script to each Oculus camera as this broke the cameras during runtime. I had to instead modify the OVRCamera script that came with the Unity integration package. I did this by 'merging' my script with the OVRCamera script. Most of the merging was pretty straight forward stuff. Adding variable declarations to the top etc. The only really interesting part was that I had to make use of the LateUpdate() method rather than a normal Update method. As the rift updates differently than standard Unity Update(). Once this was in place, the code worked like a charm and the effect worked awesome! The code changes can be found below, summarized:</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJdn1W33pK7VH0su1iS34FkLN3fsh91OlTG36CmMkoVpB0qJ2FBRWxm9KClpq42T-YNkj_Xs7Sno3dAB_nNLBLAhc6a7IjHoueYz07somC3kaOLVaN4WQkgbxZP6lRyCdFEG5uRmbYpJWS/s1600/CodeEx.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJdn1W33pK7VH0su1iS34FkLN3fsh91OlTG36CmMkoVpB0qJ2FBRWxm9KClpq42T-YNkj_Xs7Sno3dAB_nNLBLAhc6a7IjHoueYz07somC3kaOLVaN4WQkgbxZP6lRyCdFEG5uRmbYpJWS/s1600/CodeEx.png" height="360" width="400" /></a></div>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<i><br /></i>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><i>What w</i>as even more neat was the fact that I would attach the focal object in the scene via a public variable and doing so would give a different effect. Stretching towards the door (see blow video for example). Or skewing the door when heading towards a teddybear. or bursting through the door completely. It feels pretty trippy when this effect is used on the rift :D</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/UfhAJR4cjzU/0.jpg" frameborder="0" height="266" src="http://www.youtube.com/embed/UfhAJR4cjzU?feature=player_embedded" width="320"></iframe></div>
<br />
<br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Pretty fun stuff!</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Wikipedia. (2015) Dolly zoom. [Online] Available from: http://en.wikipedia.org/wiki/Dolly_zoom [Accessed: 3 March 2015].</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Unity Documentation. (2015) Dolly Zoom (AKA the “Trombone” Effect). [Online] Available from: http://docs.unity3d.com/Manual/DollyZoom.html [Accessed: 3 March 2015].</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Youtube. (2015) Dolly Effect / Vertigo Effect on DK2 in Unity. Available from: https://www.youtube.com/watch?v=UfhAJR4cjzU [Accessed: 3 March 2015].</span>Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-76246087427939380212015-02-08T23:29:00.002-08:002015-02-08T23:36:29.657-08:00Astronautics Simulation - Continued<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I spent last week testing the simulation on my Oculus Rift (DK2). I also had two other people try it out, one who has used an Oculus Rift (DK1) before and another who has never tried it. This was a happy coincidence really but allowed me to try and gauge motion sickness when using the system.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Please see my findings below:</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Main Manu:</span></b></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b><i><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">What works:</span></i></b></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The menu panels work pretty well and look really cool! Due to me using (a type of) raycasting it is able to select menu elements just by looking at them and pressing the A button on a pad or the Return key.</span></li>
</ul>
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The moon orbiting the planet (One of the many Begoña made) really pops out from everything else on the scene and every person who has played on the simulation wanted to walk underneath it and look up instinctively.</span></li>
</ul>
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Luke's placeholder skybox holds up quite well on the rift, with no seams or artifacts, users of the system always end up looking around and behind them and feel like they are floating in space. I might leave this skybox in since it seems to be working well but I'll have to do further testing on this once the other skyboxes are fixed.</span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b><i><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">What doesn't work:</span></i></b></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The controls, or shall I say a lack thereof. All users of the system wanted to be able to move around freely. This was a reoccurring theme for most of the play sessions. It appears that constricting movement (which is listed as a bad idea according in the best practises document) is not the way to go. All users including myself felt constricted, when wanting to get a closer few of the menu's elements.</span></li>
</ul>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">MiniGame 1:</span></b></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b><i><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">What works:</span></i></b></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Well...it doesn't crash? Apart from that not much. The assets and skybox do well together and the Triton moon looks great. </span></li>
</ul>
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The game functions as well, and does what it sets out to do. Only a few Oculus specific bugs cropped up.</span></li>
</ul>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b><i><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">What doesn't work:</span></i></b></div>
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The gameplay however is not ideal. This is mostly a design issues as I designed the game without ever using an Oculus Rift. The freedom of the camera controls (even when I try and constrict them) interferes with the gameplay to a large extent. Constricting camera movement causes disorientation and potential motion sickness after one game has been played through. This playthrough was also done by the person with the strongest stomach. This is what I was afraid of during development I wanted to test for.</span></li>
</ul>
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">There are a few bugs that occur due to locking the camera at certain times. For example the user can get turned around and due to the camera lock get stuck on what it behind them. Even when not the case, the camera panning can make them feel as if they are looking behind them, when they are just off-center to the moon. This is a pretty good simulation of the disorientation, and I suppose one could argue the game works to well! But it is not fun and needs to change.</span></li>
</ul>
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The UI is far to large and blurry, these UI elements were placeholders anyhow, and need to be changed for better ones.</span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I will have to redesign this game. The good news being that I have an idea in mind that would be similar, but lend much to the visual feedback that seems so pivotal when using the Oculus Rift.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">MiniGame 2:</span></b></div>
<br />
<div style="text-align: justify;">
<span style="font-weight: bold;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></span></div>
<div style="text-align: justify;">
<b><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">What works:</span></b></div>
<br />
<br />
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The good thing about this game is that less seems to be more. Everything works really well in this game. All the people who tried it, appear to be able to play it for a prolonged time. Well after the timelimit. This is probably due to the fact that the game is not very fast paced. The movement is also not constricted and the user is allowed to look around freely and is encouraged to do so.</span></li>
</ul>
<br />
<br />
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The skyboxes also look really cool. The areas that have no seams are really immersive and draws the users attention which is exactly what is intended.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">As a side-note debugging your game level by standing inside it is a surreal experience!</span></div>
<br />
<div style="text-align: justify;">
<span style="font-weight: bold;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></span></div>
<div style="text-align: justify;">
<b><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">What doesn't work:</span></b></div>
<br />
<br />
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The seams! The damn seams in the skyboxes are a visual eye-sore and needs to be fixed. I have a new skybox ready to test and I hope that this will resolve the issue.</span></li>
</ul>
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The only other issue is the lack of content to look at in terms of gameobjects. More of these need to be added and this shouldn't take to long but relies on the skyboxes heavily so these need to be fixed first.</span></li>
</ul>
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Again the UI here (even though placeholder) needs to be changed for better ones that are less blurry and off center. It is tricky to view a stereoscopic UI in a 2D environment during development.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><b>Conclusion</b>:</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">At least now with some testing behind me and more to come in the near future I can make a start on fixing these issues.</span></div>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-17179138401309459092015-02-05T06:34:00.005-08:002015-02-19T01:43:02.685-08:00Media Specialist Practice - Research<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><b>Deciding on a Specialization</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">As my next module, Media Specialist Practice, is in full swing I started looking into a specialization that I would like to use in this modules project.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Due to my current employment, and after looking through work related criteria (in terms of skill sets employers are currently looking for in developers) I came to the conclusion that I would like to get some experience in graphics programming.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Having only briefly heard about graphics programming, I had no knowledge about what it really entailed, only that it was an important facet in the games industry and specifically in development. Most of the games I have developed were not in-depth enough to require any custom graphics programming. I tended to rely on ready made shaders available with off-the-shelf game engines.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I started reading up on it and saw that graphics programming was used to draw object in 3d space. Rather than use a machines CPU the GPU on graphics cards could be used to draw elements or visual effects to the screen.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">There were two main lines of graphics technologies. OpenGL and DirectX. I started reading into these to see which would be best to look into as I would not be able to cover both. After reading up on the internet there were pro's and cons for both sides. DirectX was better maintained but only worked for Windows, for example. Where as OpenGL was platform independent, but followed more of an open source route and as such could be disorganized and chaotic at times. The deciding factor for me as asking developers at my job and seeing what they used in their day-to-day. This was how I landed on OpenGL as my implementation of choice.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><b>Research into OpenGL</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Having absolutely no experience in OpenGL or graphics programming I started research into subject. Starting with the basics. I found a lecture (Youtube, 2014) on Youtube posted by SIGGRAPH University titled "An Introduction to OpenGL Programming". This was a three hour lecture, and I expected it to be quite in depth. </span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">However I was surprised to find that the 3 hours were jammed full with a basic overview of the OpenGL pipeline, including examples. This lecture gave me a good, basic, general overview of OpenGL, but quite a bit of it went over my head. This was due to three problems as I saw it:</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
</div>
<ul>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">My basic knowledge of C++ could make understanding the code a bit more of a challenge but not impossible</span></li>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">My lack of knowledge with 3D maths, specifically linear algebra and matrices</span><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> made it difficult for me to understand the methodologies</span></li>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">My basic experience with using shaders meant I did not know what polygons, vertices</span><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> and fragment shaders were</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Now that I knew where I was failing in terms of understanding OpenGL I set out to improve on it. During the lecture above, one of the lecturers made mention of a book called the OpenGL Red Book. I made note of this and looked it up. It is freely available on the net and is quite comprehensive. I made a start at reading up on this. Thus far I have made it through the first chapter.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Additionally I googled around for more 3D math based tutorials. I found the following tutorial which seemed prefect for what I required, titled "Learning Modern 3D Graphics Programming" (</span><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">McKesson, </span><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">2012).</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">With regards to improving my C++ knowledge I looked into buying a book on the language. Personally I find myself better capable of learning when approaching a problem or field from the top and working my way down. This is opposed to the 'starting at the basics and working your way to the top'. It is due to this fact that I was super happy to have found a book titled "Accelerated C++ Practical Programming by Example". I grabbed a copy off Amazon and have been working my way through it. It makes heavy use of the standard library before working its way down into the details. I find it easier to learn the details once I have a solid understanding on the overall structure and how all the components fit together.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Finally, I realized that I was getting lost in the OpenGL field. The graphics programming field was much bigger than I had first expected. I thought I'd start looking at practical ways to implement some of the OpenGL stuff I was reading up on, when the time came. I knew that I would be using Unity to some extent, as the coursework theme covered Unity. Also my line of thought was that if I was going to use a game engine I wanted to make use of one I knew well and understood. Especially since I'd have my hands full with the graphics stuff.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I did some quick research on wether or not Unity could use OpenGL in the creation of shaders and I saw that it was a possibility. I do need to do more research into this currently as I know windows systems use D3D and not OpenGL. But unless I am mistaken I can force my program to make use of OpenGL. I will need to look into this some more.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">After I knew I had a good chance of making use of Unity with OpenGL I started reading up on shaders in Unity. I did this by making use of the Unity tutorials and scripting reference. This is currently on going but I have thus far read up on all of Unity's Built-in Shader's making use of the Built-in Shader Guide (Unity, 2015). I learnt about Normal, Transparent, Cutout, Reflective and self illuminating shaders in detail.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">In this guide I learnt a lot about what you can accomplish using shaders and I found the Normal mapping shader to be of particular interest. This shader would add depth to textures but was not a geometric shader, It only changed how lighting and shadows were used with the texture. I used normal mapping in my previous module and I was really impressed by it. I had a model with a great texture but it was appearing blurry the pre-baked lighting looked off. After applying a normal map to the object it suddenly sprang to life. I need to make a note about normal mapping / bump mapping as a potential topic for this module.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">As it stands now, I will continue to look into things and try to come up with a proper proposal to discuss with my lecturers this Tuesday.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">That's all for now,</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Rob</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><b>References</b>:</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Youtube. (2014) SIGGRAPH University : "An Introduction to OpenGL Programming". [Online] Available from: https://www.youtube.com/watch?v=6-9XFm7XAT8 [Accessed: 21st January 2015]. </span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Unity. (2015) Built-in Shader Guide. [Online] Available from: http://docs.unity3d.com/Manual/Built-inShaderGuide.html [Accessed: 4th February 2015].</span><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">McKesson. (</span><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">2012) Learning Modern 3D Graphics Programming. [Online]</span> </span><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Available from: http://www.arcsynthesis.org/gltut/index.html [Accessed: 19th January 2015]. </span></div>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-31265323691267424252015-02-01T14:07:00.001-08:002015-02-01T14:07:17.601-08:00The End ... ?<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Well my Digital Studio Practise module is done now. The system however is not so I'm aiming to fix it up properly as time permits. It's important to keep in mind that while I would like to work on this and get it done, I am really busy at work during the day. My free-time game project is continuing but largely due to my amazing team and I can't keep expecting them to do all the work, so this is another matter I need to keep in mind.</span><br />
<br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Additionally my new module has already started and I have been looking into OpenGL stuff. There is so much to learn! And there is so much math! But I am chipping away at things as often as I can.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">More on that though when I finalise my topic for my next module. With regards to the DSP system I am trying to finish up, I thought it'd be useful to keep a list of things I need to do:</span><br />
<br />
<b>Features:</b><br />
<ul>
<li>Research topics for final two minigames <strike><br /></strike></li>
<li>Implement final two minigames<strike><br /></strike></li>
<li>Implement admin panel, if this is still a feature that will add to the system overall</li>
<li>Finish off minigame 2 by adding other level assets, add UI </li>
<li>Add audio to game</li>
<li>See if more detail can be added to Minigame 1 - Triton</li>
</ul>
<br />
<b>Bugs to fix:</b><br />
<ul>
<li><strike>Fix camera panning bug on main menu </strike><b>-Fixed</b><strike><br /></strike></li>
<li><strike>Fix panning speed on menu load-in </strike><b>-Fixed</b><strike><br /></strike></li>
<li>Change skybox on main menu to Visual from minigame 2</li>
<li>Fix skyboxes in minigame 2</li>
</ul>
<br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">That's it for now.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Rob </span><br />
<br />Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-87681903953882532402015-01-17T13:13:00.001-08:002015-01-17T13:13:33.802-08:00Rough work - UML diagrams for Minigame 2<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Please find below the rough work done for mini game 2.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJg5Ly4js9E0t3tU_sLiIWhxT3kTCR0cRsyhYKVRC3OqJh6r4cD6JRiIDEEIQtu2-vOatxhBtZykuolU2X8p-Vg43exJnhC2JZLjYvGz9c_Zs2h6-zveaAk-jKoTkVOInfbNiZnW3B1PZx/s1600/012.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJg5Ly4js9E0t3tU_sLiIWhxT3kTCR0cRsyhYKVRC3OqJh6r4cD6JRiIDEEIQtu2-vOatxhBtZykuolU2X8p-Vg43exJnhC2JZLjYvGz9c_Zs2h6-zveaAk-jKoTkVOInfbNiZnW3B1PZx/s1600/012.jpg" height="320" width="232" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Minigame 2 use cases - draft</td></tr>
</tbody></table>
<br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">More to come to this section</span>Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-85083608740463702342015-01-17T13:08:00.003-08:002015-01-17T13:08:43.186-08:00Rough work - UML diagrams for Minigame 1<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The below are various rough use cases I did for our first Balancing minigame. Along with a class diagram:</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheAjvRf6n-il4RBHPWIwH0Jq9vrqm-T5FBclDuCRUASviqych7jJ9CEx-fFOrGDuwshT7pRfgvCbMAmOh-CHGp2C5ZT8-uowFnaL8fZvYls2CEY9y3FkjEXaOfxx2wWtbvv0kSKRrL0TNX/s1600/007.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheAjvRf6n-il4RBHPWIwH0Jq9vrqm-T5FBclDuCRUASviqych7jJ9CEx-fFOrGDuwshT7pRfgvCbMAmOh-CHGp2C5ZT8-uowFnaL8fZvYls2CEY9y3FkjEXaOfxx2wWtbvv0kSKRrL0TNX/s1600/007.jpg" height="228" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Use case draft on Bottom Left Page</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFb9ofHBxqxXQcndhHfWTtSxrQUyD1ugIss5XMlzu1Zeuk0GuyV0l-vGhKZluQTjtIibJnCi2-GUoqqGBg3JLbpEnq-zby_t00DJ5e4CBlJP7AVp8HAg1UMrC-fL0y_bEfm7SwCqHkD279/s1600/008.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFb9ofHBxqxXQcndhHfWTtSxrQUyD1ugIss5XMlzu1Zeuk0GuyV0l-vGhKZluQTjtIibJnCi2-GUoqqGBg3JLbpEnq-zby_t00DJ5e4CBlJP7AVp8HAg1UMrC-fL0y_bEfm7SwCqHkD279/s1600/008.jpg" height="227" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Use Case Diagram reworked</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUmsMCUX60IEicHdrSBne3_4yiDFAPVnjN3yYosujy7aIHyzEn8_bYMc9oRv916-45VJBenoOjLjxy4p-VAnQYD540OQuKdr_CfXkLisroshVvq0_Ci77htUpho1MCfPvLIZZVJff1y6ET/s1600/009.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUmsMCUX60IEicHdrSBne3_4yiDFAPVnjN3yYosujy7aIHyzEn8_bYMc9oRv916-45VJBenoOjLjxy4p-VAnQYD540OQuKdr_CfXkLisroshVvq0_Ci77htUpho1MCfPvLIZZVJff1y6ET/s1600/009.jpg" height="229" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Class Diagram based on above usecase diagram</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkcgJcmapXjI-hDYjpaQa0Es45-v_4w881IffSJhPJePuaCQXSobYDPxbaP8qyyaYO_Q3AkxjdYoYrSp4VoVCNJLyJFJYkV2jRwzfErmtTJLSC36ggATZ_xa8UhWA1yZ2sO5uusrCzSeXt/s1600/010.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkcgJcmapXjI-hDYjpaQa0Es45-v_4w881IffSJhPJePuaCQXSobYDPxbaP8qyyaYO_Q3AkxjdYoYrSp4VoVCNJLyJFJYkV2jRwzfErmtTJLSC36ggATZ_xa8UhWA1yZ2sO5uusrCzSeXt/s1600/010.jpg" height="232" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Class diagram followed by class dependancies</td></tr>
</tbody></table>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">In the next part I'll be covering the second minigame.</span>Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-43215317856829699322015-01-17T13:03:00.001-08:002015-01-17T13:03:20.358-08:00Rough work - Use Cases and Class diagram for Main Menu<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Please find below the rough use case diagrams, activity diagram and class diagram for our Main Menu system I sketched up:</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0YhwtfXNeZjliykDoYL1F9WSKbmRStHJORBPntbYxdignvsh98Co-kI7j0oJDvhAyp7G2gVewqhyphenhyphenrcAOjd6qR48ufoJXl2fhflWIKmWqoO21TEQmUu8qRHrvdIvJQLB7BszCvsNXqa6IN/s1600/006.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0YhwtfXNeZjliykDoYL1F9WSKbmRStHJORBPntbYxdignvsh98Co-kI7j0oJDvhAyp7G2gVewqhyphenhyphenrcAOjd6qR48ufoJXl2fhflWIKmWqoO21TEQmUu8qRHrvdIvJQLB7BszCvsNXqa6IN/s1600/006.jpg" height="233" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Basic high level use case - on Right Page</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6JoVq6lIqj-MBpP7mwhZxFK2MU0bMKrohbpp4-rocC6e1h1SkyPOW6nOxWkoLOXyp5VZZg-wizi4c4TbNIepdSABCe6N1MPXDfIhHWmh6s3vmD5wHLcIr6NN9qQNXxDKDz3xvLl_8_haF/s1600/007.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6JoVq6lIqj-MBpP7mwhZxFK2MU0bMKrohbpp4-rocC6e1h1SkyPOW6nOxWkoLOXyp5VZZg-wizi4c4TbNIepdSABCe6N1MPXDfIhHWmh6s3vmD5wHLcIr6NN9qQNXxDKDz3xvLl_8_haF/s1600/007.jpg" height="228" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Activity Diagram on Right Page. High level use case on top left</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTJqepPdiWYW0gKBmDgHHuRs186mEozK-w8OCkOxnoDOerca9KmPNmRlQEQwubZqUKKBOiAqSF3WiKZGZOuDRaReISNjQj_vUQSbPugizcxPH6Bj0Z3-3aC78w-eNsO25Q77swgsIgDCZy/s1600/011.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTJqepPdiWYW0gKBmDgHHuRs186mEozK-w8OCkOxnoDOerca9KmPNmRlQEQwubZqUKKBOiAqSF3WiKZGZOuDRaReISNjQj_vUQSbPugizcxPH6Bj0Z3-3aC78w-eNsO25Q77swgsIgDCZy/s1600/011.jpg" height="232" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Class Diagram for Main Menu</td></tr>
</tbody></table>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Please find the rough work for minigame one in the next post.</span>Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-4463609618803523342015-01-17T12:26:00.004-08:002015-01-17T13:03:29.830-08:00Rough work - Brainstorming notes<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Gearing up towards the final report(s)/deliverables I thought it prudent to post all the notes and technical designs I sketched out for the system I was working on. Please find these in the next few posts.</span><br />
<br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Note: Please note that I was working backwards in my notebook and as such the pages read from <b>right </b>to <b>left</b>. </span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">This post covers some basic brain storming I did on the first minigame titled "Balancing minigame".</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVaRx6xwRCABSYCDrpmb5r-ezKRgFj1Nu0TwWee7cT3GXsHVC4Uy19B_vBfAq5Cm4h8Ex0WmtJLRWJbWKMqZbX5BQ6mxYrL0MrVNZl_zr-LctDuGlbQDSdFjPE6VOx7zAGJXfkC8uWtBHe/s1600/001.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVaRx6xwRCABSYCDrpmb5r-ezKRgFj1Nu0TwWee7cT3GXsHVC4Uy19B_vBfAq5Cm4h8Ex0WmtJLRWJbWKMqZbX5BQ6mxYrL0MrVNZl_zr-LctDuGlbQDSdFjPE6VOx7zAGJXfkC8uWtBHe/s1600/001.jpg" height="221" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Page 1 - Minigame brainstorming</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKkb7PT3CIbLSwL31BrZkZa8SvkcVAUYzRT-WGWBJaQX9sOFqxOSDVMMhia6Pe0pZ5iJ4RZNzHCbKVJs_20mzlIYj6keebvv0Yp0mlOBQuyiopVtGKXLc-1rgUrvFfIArpeQWvQgKalKJ7/s1600/002.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKkb7PT3CIbLSwL31BrZkZa8SvkcVAUYzRT-WGWBJaQX9sOFqxOSDVMMhia6Pe0pZ5iJ4RZNzHCbKVJs_20mzlIYj6keebvv0Yp0mlOBQuyiopVtGKXLc-1rgUrvFfIArpeQWvQgKalKJ7/s1600/002.jpg" height="228" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Page 2 - Minigame brainstorming</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1xu_y2YL4VozfenXETJwUmvjUVybeA-bO9wRwGUpVp7AQ0OqI1haOPsZxBRSI_kcjPvwd7SLBx5-x7oBaxrBbD2fcMRh9oVUxhgru6cEAN4aH8062G6OzCR9bNNv96gtJsgMOZI9xiAbV/s1600/003.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1xu_y2YL4VozfenXETJwUmvjUVybeA-bO9wRwGUpVp7AQ0OqI1haOPsZxBRSI_kcjPvwd7SLBx5-x7oBaxrBbD2fcMRh9oVUxhgru6cEAN4aH8062G6OzCR9bNNv96gtJsgMOZI9xiAbV/s1600/003.jpg" height="229" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Page 3 - Minigame brainstorming</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivRRHlFfpIM08se9runn6rus-pufV2FaFIgeExRtmyNGU_3rFm2LaImAGvCau_JQIaBYPoPCp8MCmzMdzYXCSXcxAGkSMaqHkOpdDkUX9pLYFLdVkC8q4h48p0DnfHOEFM4-B2xrB37LJO/s1600/004.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivRRHlFfpIM08se9runn6rus-pufV2FaFIgeExRtmyNGU_3rFm2LaImAGvCau_JQIaBYPoPCp8MCmzMdzYXCSXcxAGkSMaqHkOpdDkUX9pLYFLdVkC8q4h48p0DnfHOEFM4-B2xrB37LJO/s1600/004.jpg" height="233" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Page 4 - Minigame brainstorming</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-n2poMJc2P7Eu50LiJ3NbjyHBspHTkz_PwP4u5kZ6JN5OM6G_dpWz6e05STJh3nUKOjnNLaWAm7kw6KhftccWTNwRemw5RmjSjtopWFR6poOsQ0Nrk_UvQUnttSUSAIOWXDKLe_0TobmP/s1600/005.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-n2poMJc2P7Eu50LiJ3NbjyHBspHTkz_PwP4u5kZ6JN5OM6G_dpWz6e05STJh3nUKOjnNLaWAm7kw6KhftccWTNwRemw5RmjSjtopWFR6poOsQ0Nrk_UvQUnttSUSAIOWXDKLe_0TobmP/s1600/005.jpg" height="233" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Page 5 - Minigame brainstorming</td></tr>
</tbody></table>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Page 5 also covers a basic use case diagram for the presentation segment of our overall system. The next section will cover the main menu UML diagrams.</span>Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-88504719224374599632015-01-03T20:15:00.001-08:002015-01-03T20:15:43.475-08:00Presentation update video<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">As I won't be in the country at the time of the presentation I made a small video update. A link can be found here:</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><a href="https://www.youtube.com/watch?v=EeyZtM1HfWY&feature=youtu.be">https://www.youtube.com/watch?v=EeyZtM1HfWY&feature=youtu.be</a></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/EeyZtM1HfWY?feature=player_embedded' frameborder='0'></iframe></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">That's it, small update tonight.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Rob</span>Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-82318159074109951722015-01-02T08:31:00.002-08:002015-01-02T08:49:06.836-08:00Infrared Mini Game 2 - Research<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I am running very short on time as I will be leaving the country for a few days soon. It is due to this that I took it upon myself to look into research for the second mini game. This minigame will be about the use of Infrared in space exploration. This is not a complete literature review, as my role is to focus on the design/implementation of the minigames. But it should be enough for me to make a start on the design and implementation on my second Infrared based minigame.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><b>Research</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">From what I've gathered <a href="http://www.ipac.caltech.edu/outreach/Edu/importance.html">on the Internet</a> and by talking with Dr.Claus in one of our meetings, Infrared is used to explore and see things in space that would otherwise not be viewable. Or as easily viewable, due to interferences. It is a form of electromagnetic radiation. An example of this can be seen in the image <a href="http://www.ipac.caltech.edu/outreach/Gallery/IRAS/psc_allsky.html">here</a>.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I started by looking at the research links Begoña posted regarding Beagle 2, after Dr.Claus mentioned to us that it might be worth while to look into it. I looked through a few of her links <a href="http://astronauticssimulation.blogspot.co.uk/2014/12/more-about-dr-malcolm-claus-meeting.html">here</a> (http://astronauticssimulation.blogspot.co.uk/2014/12/more-about-dr-malcolm-claus-meeting.html).</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I stumbled across the <a href="http://nssdc.gsfc.nasa.gov/nmc/experimentDisplay.do?id=2003-022A-02">Infrared Mineralogical Mapping Spectrometer (OMEGA) experiment</a> documentation after viewing the <a href="http://nssdc.gsfc.nasa.gov/nmc/experimentSearch.do?spacecraft=Beagle%202">NASA Beagle 2 experiments page</a>. I spent an hour reading up on the documentation here and around the topic of spectrometers but this information was very technical and way over my head. This specific entry was also just a proposal and no actual data was collected. I also realized I needed something simpler and more eye catching for my mini game. But the mention of spectrometers gave me a starting point.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">In our final team meeting we proposed to look into an "explore the galaxy" option. As it may break up the constant 'staring at planets and moons' theme. Rather than focus on one single object in space. This minigame would be about a few different ones viewed from afar. I looked a bit deeper into this with spectronomy, using youtube and I found this video here:</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><a href="https://www.youtube.com/watch?v=faW_G3ctB8A">https://www.youtube.com/watch?v=faW_G3ctB8A</a> - </span><span style="font-family: Courier New, Courier, monospace;">Exploring the Infrared Universe</span><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">. This was a very useful video clip and it introduced me to Infrared exploration in a way that I understood. In the video they make mention of the, amongst other things, Near / Mid and Far infrared wavelengths and what each is used for. </span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The video goes further to make mention of the different space telescopes, IRAS / ISO / Akari and Spitzer. This information was just what I needed. I summarized the juicy bits below:</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><b>Near / mid / far infrared</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">As an object cools it will transmit its radiation at progressively longer wavelengths and therefore further into the infrared.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
</div>
<ul>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Near infrared = radiation wavelengths that are longer than those in the visible spectrum (what we can see normally). Cooler red stars will become more apparent and interstellar dust will become transparent when viewed with near infrared wavelengths.</span></li>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Mid infrared = the cool interstellar dust itself starts to shine. Interstellar dust can often be found around celestial objects such as red stars.</span></li>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Far infrared = transmitted by very cold objects. Using this wavelength astronomers can observe the cold radiation of protostars. And stare into the center of galaxies, including the Milky Way. This allows us to make observations on objects very, very far away as we can bypass the plethora of noisy data that may otherwise appear.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Observing the Infrared spectrum from Earth is difficult becaus</span><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">e molecules in the atm</span><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">osphere interfere with the observation. Additionally the Earths own infrared radiation interferes w</span><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">ith observation. It is due to this and </span><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">the best way to measure the infrared spectrum is from in space.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><b>Spacecraft & Instruments</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The video went on to explain the different space craft used in Infrared imaging, briefly. Again a summary of what was said can be found below.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
</div>
<ul>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">IRAS - The first ever space based observatory for Infrared wavelength measurement.</span></li>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">ISO - Detected water in the universe. In the atmosphere around planets in our galaxy.</span></li>
<ul>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">- Dust and gas that fill the space between stars is called the interstellar medium. ISO found a carbon rich material called polycyclic aromatic hydrocarbon. In space this materials presence</span><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> is a strong advocate to organic chemistry and can be used in research for life on other planets.</span></li>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">- Discovered that there was a peak of star formation about 3 billion years ago. This discovery was achieved as ISO was able to use the infrared</span><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> spectrum to view past the interferences that normally surrounded galaxies.</span></li>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">- Andromeda (our neighbor Galaxy) is considered to be a typical spiral galaxy. However ISO discovered</span><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> that it was made up of several</span><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> concentric ring, of a very cold dust around 13 Kalvin. Far to cold to be viewable on the visual wavelengths.</span></li>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">- In a nearby galaxy fast moving streams of plasma was observed being released from the center of the galaxy, but until the introduction of ISO, we were unable to view through all the gas and dust to see into the center. ISO revealed, using Infrared wavelength that the central object in this galaxy was a black hole.</span></li>
</ul>
</ul>
<br />
<div style="text-align: justify;">
</div>
<ul>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Akari - Japanese infrared astronomy satellite, not much information on this.</span></li>
</ul>
<ul>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Spitzer - NASA's infrared space observatory launched in 2003</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><b>Herschel Space Observatory</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">After those the <a href="http://en.wikipedia.org/wiki/Herschel_Space_Observatory">ESA's Herschel space observatory</a> was build. The worlds largest space telescope. It allowed unparallelled exploration capabilities and allows us to probe space in much more detail than we were before, using the Infrared spectrum. Herchel consists of the following parts, which make up its payload.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
</div>
<ul>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">PACS - <b>Photo conductor array camera and spectrometer</b> - Can study young galaxies and star forming nebula. It is the first spectrometer capable of obtaining the complete image of an object at once.</span></li>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">SPIRE - <b>Spectral and photometric imagine receiver</b> - Designed to exploit wavelengths that have never been studied before. Can be used to study the history of star formation in the universe</span></li>
<li><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">HIFI - <b>Heterodine instrument for the far infrared</b> - High res spectrometer also designed to observe unexploited wavelengths. It is able to identify individual molecular species. Used to study galaxy development and star formation.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The remaining parts of the payload consists of the shielding and cooling systems. All of these are found underneath the huge primary mirror (the largest of its kind in space).</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">After watching the aforementioned video I started looking at Herschel in itself and found the following youtube videos very interesting:</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
</div>
<ul>
<li><span style="font-family: Courier New, Courier, monospace;"><a href="https://www.youtube.com/watch?v=ZBOfH2s7RgA">https://www.youtube.com/watch?v=ZBOfH2s7RgA</a> (Herschel's First Year In Space)</span></li>
<li><span style="font-family: Courier New, Courier, monospace;"><a href="https://www.youtube.com/watch?v=WGtr-UQjbCo">https://www.youtube.com/watch?v=WGtr-UQjbCo</a> (The ESA Herschel Space Observatory: 1st year achievements and early science results part 1)</span></li>
<li><span style="font-family: Courier New, Courier, monospace;"><a href="https://www.youtube.com/watch?v=ejoyNZ4a9-o">https://www.youtube.com/watch?v=ejoyNZ4a9-o</a> (The ESA Herschel Space Observatory: 1st year achievements and early science results part 2)</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The lecture videos were very interesting and gave some very good photographic examples of star formations using Herschel. Allowing users to see otherwise unviewable '<a href="https://www.youtube.com/watch?v=ejoyNZ4a9-o">extra galactic background</a>'. This was achieved by using the SPIRE camera mentioned earlier. </span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The '</span><span style="font-family: Courier New, Courier, monospace;"><a href="https://www.youtube.com/watch?v=ejoyNZ4a9-o">ESA Herschel Space Observatory: 1st year achievements and early science results part 2</a></span><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">' video also gave examples of star formation of the Polaris (or Ursa Minor)</span><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> and Aquila constellations of space. The video went on to demonstrate how one of these looked likely to have stars at some stage while the other did not. This was done via measurements of Infrared wavelengths and scatter graphs.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">They also made mention that the HIFI system was used to obtain '</span><span style="font-family: Courier New, Courier, monospace;">the most complete spectrum of molecular gas at high spectral resolution ever</span><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">'.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Again this is where graphs, unknown calculations and terminology started to come in but it was still useful to get an overview of just how the Herschel space observatory and more importantly Infrared wavelength measurements were being used in a practical way.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">They made mention of a Herschel Atlas program. Which was the biggest undertaking for space-area measurement. This program might be worth looking into if I need some new ideas for minigames. At this moment in time however, the team has agreed that I will be doing two minigames only and AK the other two.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><b>Rough Concepts based off research</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Thus far I have come up with two core concepts for my infrared mini game based on the research above:</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
</div>
<ul>
<li><b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Star Formation using Infrared</b><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> - This could be something simple like the connect the dots game in Dragon Age or what the mastery's mechanic looks like in </span>Skyrim<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">.</span></li>
<li><b style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Difference Wavelengths</b><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"> - Using Different type of Wavelength to see and identify different things in a nebula (Short/Mid/Far Infrared Wavelengths)</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Either of these will work. I think I have enough research about infrared for now. My next objective will be to look into how to make a nice looking nebula skybox to use. Regardless of which option I pick from the above - I will need to have this made and it will need to look as amazing as possible. I might even need three versions (one for each potential wavelength).</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">This is the next step I need to take.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><b>References:</b></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">Infrared in Space Exploration Websites:</span></div>
<div style="text-align: justify;">
<a href="http://www.infoplease.com/encyclopedia/science/infrared-astronomy.html"><span style="font-family: Courier New, Courier, monospace;">http://www.infoplease.com/encyclopedia/science/infrared-astronomy.html</span></a></div>
<div style="text-align: justify;">
<a href="http://www.ipac.caltech.edu/outreach/Edu/importance.html"><span style="font-family: Courier New, Courier, monospace;">http://www.ipac.caltech.edu/outreach/Edu/importance.html</span></a></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">Youtube:</span></div>
<div style="text-align: justify;">
<a href="https://www.youtube.com/watch?v=ejoyNZ4a9-o"><span style="font-family: Courier New, Courier, monospace;">https://www.youtube.com/watch?v=ejoyNZ4a9-o</span></a></div>
<div style="text-align: justify;">
<a href="https://www.youtube.com/watch?v=WGtr-UQjbCo"><span style="font-family: Courier New, Courier, monospace;">https://www.youtube.com/watch?v=WGtr-UQjbCo</span></a></div>
<div style="text-align: justify;">
<a href="https://www.youtube.com/watch?v=ZBOfH2s7RgA"><span style="font-family: Courier New, Courier, monospace;">https://www.youtube.com/watch?v=ZBOfH2s7RgA</span></a></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">Wikipedia:</span></div>
<div style="text-align: justify;">
<a href="http://en.wikipedia.org/wiki/Herschel_Space_Observatory"><span style="font-family: Courier New, Courier, monospace;">http://en.wikipedia.org/wiki/Herschel_Space_Observatory</span></a></div>
<div style="text-align: justify;">
<a href="http://en.wikipedia.org/wiki/Akari_(satellite)"><span style="font-family: Courier New, Courier, monospace;">http://en.wikipedia.org/wiki/Akari_(satellite)</span></a></div>
<div style="text-align: justify;">
<a href="http://en.wikipedia.org/wiki/Spitzer_Space_Telescope"><span style="font-family: Courier New, Courier, monospace;">http://en.wikipedia.org/wiki/Spitzer_Space_Telescope</span></a></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;"><a href="http://en.wikipedia.org/wiki/IRAS">http://en.wikipedia.org/wiki/IRAS</a></span><br />
<span style="font-family: Courier New, Courier, monospace;"><a href="http://en.wikipedia.org/wiki/Infrared_Space_Observatory">http://en.wikipedia.org/wiki/Infrared_Space_Observatory</a></span><br />
<a href="http://en.wikipedia.org/wiki/Polaris"><span style="font-family: Courier New, Courier, monospace;">http://en.wikipedia.org/wiki/Polaris</span></a><br />
<a href="http://en.wikipedia.org/wiki/Aquila_(constellation)"><span style="font-family: Courier New, Courier, monospace;">http://en.wikipedia.org/wiki/Aquila_(constellation)</span></a></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">Reports/Journals:</span></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;"><Add Neptune Report reference about payloads here></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-24114959804951336112015-01-01T12:58:00.003-08:002015-01-01T13:14:00.643-08:00Rollbacks and roll forwards - Life on the bleeding edge<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I'm taking a moment away from my GUI shenanigans to write a small update.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">In short, I might have jumped the gun with regards to my rollback. A few weeks ago I spent some time looking at how to use the new Unity 4.6 GUI with Oculus rift. I kept coming back to <a href="http://answers.unity3d.com/questions/817645/how-do-i-output-to-oculus-rift-on-unity-46.html">this topic here</a>.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Without the hardware to test this out, I grew increasingly concerned that I would develop the simulation on a version of the engine that was not fully supported yet. From what I gathered some people were having trouble seeing their applications output to the actual Rift device.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">What I should have done was investigate this issue in more depth but as I was so distracted with the development (and a bit of team management) I didn't do this.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">From the very beginning of the project, I have had to keep an eye on monthly (even weekly) updates from Oculus and Unity as they are very active on the development of their products.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">For example when our module started Unity Free Oculus support didn't exist. A month later it was up and running and being used by many people, and updates have been whizzing by.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">It is with this mentality in mind that I thought I would rollback to build 4.5.5. My thoughts about this was that once 4.6 was fully ready I would be able to update my project to 4.6 pretty quickly and just create a new UI.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">However if I created the simulation on 4.6 and it turned out to not work properly on the Oculus Rift, I would not be able to quickly rollback to 4.5. In fact it took me a full day to get my 4.6 content running on 4.5 as I had to manually import all assets and re-add them to scenes.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Without the hardware I was running on assumptions. That is until I read deeper into things. It seems from what I can tell the user in the above post was using the Direct to Drive option on Oculus Rift rather than the extended mode. This is still an issue with the DK2 when developing and is a minor annoyance rather than a deal breaker.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">On the 23rd of December the <a href="http://blogs.unity3d.com/2014/12/23/calling-all-vr-enthusiasts-target-the-oculus-rift-with-unity-free/">following post was made</a> on the Unity blog. Stating "<span style="font-family: "Courier New",Courier,monospace;"><span style="line-height: 1.5em;">The Unity Free integration for Oculus
gives you access to the exact same Oculus features as users of Unity
Pro. You can use Unity 4.6 and the Oculus integration package to deploy
any sort of VR content imaginable to the Rift!"</span></span></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="line-height: 1.5em;">So what does this mean? Basically I am now rolling all the work I did today in 4.5 to 4.6 and then I will be merging it with my previous work I had already done in 4.6. A bit of time wasted, but it's my own fault for not spending the time reading up on things more.</span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">At least now I can get a UI up and running on the Rift. See my previous post titled "Minigame work cont. - Looking into new Unity 4.6 UI with the Oculus Rift" for more on this.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="line-height: 1.5em;">Cheers,</span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="line-height: 1.5em;">Rob </span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-65711090298151681642014-12-31T03:09:00.002-08:002014-12-31T03:09:13.058-08:00Interesting articles on Programming / Games Dev / Mobile Dev / HCI<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Currently refreshing myself on system design I stumbled across an interesting site with a bunch of research articles. They appear to cover many different topics including Games Development, Mobile Development, Programming etc.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<a href="http://queue.acm.org/topics.cfm"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Link is here.</span></a></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Specific pages are here:</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<a href="http://queue.acm.org/listing.cfm?item_topic=Programming%20Languages&qc_type=theme_list&filter=Programming%20Languages&page_title=Programming%20Languages&order=desc"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Programming</span></a></div>
<div style="text-align: justify;">
<a href="http://queue.acm.org/listing.cfm?item_topic=Game%20Development&qc_type=theme_list&filter=Game%20Development&page_title=Game%20Development&order=desc"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Games Development</span></a></div>
<div style="text-align: justify;">
<a href="http://queue.acm.org/listing.cfm?item_topic=Mobile%20Computing&qc_type=theme_list&filter=Mobile%20Computing&page_title=Mobile%20Computing&order=desc"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Mobile Development</span></a></div>
<div style="text-align: justify;">
<a href="http://queue.acm.org/listing.cfm?item_topic=Graphics&qc_type=theme_list&filter=Graphics&page_title=Graphics&order=desc"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Graphics (including modeling, photoshop etc)</span></a></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Just listing these here to refer to them in the future. Not specific to our project but I thought it might be useful in the future and my own game dev projects. Background information and such.</span></div>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-20776772861067012012014-12-29T02:15:00.004-08:002015-01-17T13:24:36.589-08:00Minigame work cont. - Looking into new Unity 4.6 UI with the Oculus Rift<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I spent some time last night and the day before porting out the first Minigame to build a demo for Dr.Claus. I ran into a problem when creating a UI for my game. Without the Oculus Rift creating a UI was trivial.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">A standard canvas worked fine and elements resized themselves nicley along the anchor points implemented in 4.6 of Unity. However when using the Oculus the UI would not show up at all.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I have been googling around as time permits to look at how others have gotten around this. One solution was to roll back to Unity 4.5.5#. This would solve the problem but means no fancy new UI features and probably a lot of annoying UI code.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The other solution I found on Youtube was to use a Canvas but setting it to world space. I tried this out and it works a treat.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">However, I saw a post on Unity Answers mentioning that on the Oculus forums they said Unity 4.6 is not supported on Unity 4.6. And that people were having trouble seeing anything on the actual Rift hardware when using Unity 4.6. Additionally there have been reports of Input issues when using 4.6 with the Oculus.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I posted a request on the Team Blog asking any team members to try and snag us a Rift so that I can run some tests. I am unfortunately unable to get a Rift out myself as every time I have tried I am at work whenever a Rift is available. And I have been trying to organise this process via e-mail which is very difficult even with the Tech staff being very supportive.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">If this is the case, then we would have no choice but to roll back to the supported 4.5.5# build. This means more implementation time for UI elements. I'll keep working on this today, but my current focus is getting a demo to Dr.Claus.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">References used:</span></b><br />
<a href="http://answers.unity3d.com/questions/817645/how-do-i-output-to-oculus-rift-on-unity-46.html"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">http://answers.unity3d.com/questions/817645/how-do-i-output-to-oculus-rift-on-unity-46.html</span></a><br />
<a href="http://rifty-business.blogspot.co.uk/2014/12/unity-46-thought-bubbles-in-rift-scene.html"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">http://rifty-business.blogspot.co.uk/2014/12/unity-46-thought-bubbles-in-rift-scene.html</span></a><br />
<a href="https://forums.oculus.com/viewtopic.php?f=37&t=14439"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">https://forums.oculus.com/viewtopic.php?f=37&t=14439</span></a><br />
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><a href="https://www.youtube.com/watch?v=gkHZSeQGuUo">https://www.youtube.com/watch?v=gkHZSeQGuUo </a></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Left to do on balancing minigame:</span></b></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Create UI to inform users they should use Thrust.</span></div>
<br />
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"> Need to rethink this, when playing on the rift this might not be a good feature. </span></li>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"> Taken from the Oculus Best Practises documentation - Page 2-3, '<span style="font-family: "Courier New",Courier,monospace;">Avoid visuals that upset the user’s sense of stability in their environment. Rotating or moving the horizon line or other large components of the user’s environment in conflict with the user’s real-world self-motion (or lack thereof) can be discomforting.</span>'</span></li>
<li style="text-align: justify;"><span style="font-family: "Courier New",Courier,monospace;">The display should respond to the user’s movements at all times, without exception. Even in menus, when the game is paused, or during cutscenes, users should be able to look around.</span></li>
<li style="text-align: justify;"><span style="font-family: "Courier New",Courier,monospace;"> Use the SDK’s position tracking and head model to ensure the virtual cameras rotate and move in a manner consistent with head and body movements; discrepancies are discomforting.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Create immersing UI</span></div>
<br />
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"> Work in progress</span></li>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"> Keep in mind the following from the Oculus Best Practises documentation '<span style="font-family: "Courier New",Courier,monospace;">Maintain VR immersion from start to finish – don’t affix an image in front of the user (such as a full-field splash screen that does not respond to head movements), as this can be disorienting</span>.' </span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Add timer until victory - Added, need to hook up to code</span></div>
<br />
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"> Still the case</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Add defeat once rotation meets X position</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Replace placeholder assets</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Integrate and test on Occulus Rift</span></div>
<br />
<ul>
<li style="text-align: justify;"><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"> Got this up and working for 4.6. Can make this work in 4.5.5#. Need to do more research.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b><span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Left on IR minigame:</span></b></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I also started looking into Infrared for use in space exploration using the links on our group blog that Begoña posted. I have a few ideas knocking around that I hope to work on. I need to find a fun way to implement this idea rather than have a simple "press B to scan" game.</span></div>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-25503046909418854222014-12-15T18:08:00.000-08:002014-12-15T18:11:10.577-08:00Balancing Minigame continued - Version 0.8<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Quick update to my change log tonight: </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Courier New",Courier,monospace;">/* Version 0.8 - Added Raycasting when camera is balanced directly on planet.<br /> * Added timer, no code hook up yet */</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Not been able to complete as much tonight as I was preparing for our team meeting tomorrow. I still need to scan in my notes I made about this minigame as well. It's still in my notebook.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Additionally need to scan in and computerise my case and class diagrams. Again in my notebook.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><b>Functionality idea:</b> Adding obfuscation by having different colliders around for the raycast to hit. On hit return data based on colliders type/name/tag or layer. This would result in different levels of feedback. Meaning that I could use this technique to have the player return different levels of 'fuzzy' data/photo's. The more centered they aim, the better the result, the less accurate they are, the worse.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Left to do on this minigame:</span></div>
<ul style="text-align: justify;">
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Create UI to inform users they should use Thrust.</span></li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Create immersing UI</span> </li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><strike>Add timer until victory </strike>- <b>Added, need to hook up to code</b></span></li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Add defeat once rotation meets X position</span></li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Replace placeholder assets</span></li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Integrate and test on Occulus Rift </span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Left on IR minigame:</span></div>
<ul style="text-align: justify;">
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Need to cover this with the team tomorrow as there may be some confusion about how this minigame is being presented.</span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><b>Note to self:</b> Don't forget to import the Occulus Rift APIs. Perhaps export package into new project set up properly for VR support. Would be more organised that way.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><b>Note to self:</b> </span>Do
we want photos to be taken automatically or via player input? Easy to implement either way code-wise. This
will be down to play testing. If the balancing mechanic is very active (which it is currently) having
the player take photographs manually will become difficult and annoying.
Need to playtest demo once timer is hooked up.</span></div>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-87186414662630232352014-12-13T16:26:00.000-08:002014-12-13T16:40:22.303-08:00Balancing Mini Game - v0.1 to v0.7<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I want to start getting these things done and out of the way. I feel the time for research is over and it is time we move onto implementation. As such I started work on one of the 5 minigames today. I intend to finish it (code-wise) by tomorrow and have the next one started by then. I am aiming to have two minigames finished by Tuesday. This is because I want to show them to Dr.Claus who is waiting to play some demos. And generally time will be running short, pretty soon.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><b>Balancing Mini Game summary:</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">First proposed by our mentor as something we might be able to think about doing, I took the idea and ran with it. After telling the team about it (<a href="http://astronauticssimulation.blogspot.co.uk/2014/12/potential-minigame-idea-using-balance.html">here</a>), I started design and implementation of the minigame.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The minigame will have the player facing a planet (or moon at the moment), as if they were the probe or orbiter. They would have to look at the planet/moon and take photographs to send back to earth.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">During this mission, a piece or debris or a mini asteroid hits the probe/orbiter and knocks off one of the buoys responsible for balancing it.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The player now needs to balance the probe/orbiter back to the 'sweet spot' to gather the required images. The player will orbit along a rough axis (halfway between X and Y) and need to use the game pad or keyboard to rectify themselves back towards the planet.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">While doing so however, due to the damage suffered the player may veer off balance once again. This can be rectified using the Thrust feature (A button on a pad or W on keyboard). This will allow the player to regain control of the probe/orbiter and continue attempting to rectify the balance.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><b>Current version - 0.7 looks like this:</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQobKfUWGoSkdlwz_qamTTcS558HZU4ZD0s6hG0n8aYHytVEDi-qZTR6SXRZHU3fS7yWKhDOfOLg7b0W-l6h_CZ8ey_dSfMxUSjPk14QJ-MaJDzVa-Indb8Tu-hLI79fXjRCiRQh7pWTX9/s1600/2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQobKfUWGoSkdlwz_qamTTcS558HZU4ZD0s6hG0n8aYHytVEDi-qZTR6SXRZHU3fS7yWKhDOfOLg7b0W-l6h_CZ8ey_dSfMxUSjPk14QJ-MaJDzVa-Indb8Tu-hLI79fXjRCiRQh7pWTX9/s1600/2.jpg" height="205" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Example of current build</span></td></tr>
</tbody></table>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The above image is what the mini game starts off with. It will remain in a paused state until any key is pressed (either keyboard or pad). Once done, the game will start and the UI is be hidden away. </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">It looks a bit rough at the minute as I threw together the UI in photoshop in a few minutes. The skybox is a placeholder from Luke at the moment and Begoña's Tritan moon model looks pretty sweet but is also not completely done yet.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><b>Balancing Mini Game Changelist</b>:</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4AMwLmLK3sgk_gCB4E-kLXm-W9bqk6URNLwoDJ_n_2uo541QhzAb1eWKV_a63gXYavZoXCjp_rkRHCxIyZSZKz_0AghEeIEUINFt6pLpVkRbt0oH27cxHu7gYbZaVMipDrfHtl_3xbWOY/s1600/3.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4AMwLmLK3sgk_gCB4E-kLXm-W9bqk6URNLwoDJ_n_2uo541QhzAb1eWKV_a63gXYavZoXCjp_rkRHCxIyZSZKz_0AghEeIEUINFt6pLpVkRbt0oH27cxHu7gYbZaVMipDrfHtl_3xbWOY/s1600/3.jpg" height="214" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Change List across versions</span></td></tr>
</tbody></table>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Full source code is avaiable in my Github repository which can be found <a href="https://github.com/HoboMechanistic/AstroProject/tree/master/MiniGames">here</a>.<b> </b></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><b>Work left to be done:</b></span></div>
<ul style="text-align: justify;">
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Add raycast to moon (Basically how I intent to make a 'sweet spot')</span></li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Create UI to inform users they should use Thrust.</span></li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Create immersing UI </span></li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Add timer until victory</span></li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Add defeat once rotation meets X position</span></li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Replace placeholder assets</span></li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Integrate and test on Occulus Rift </span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">That's it for tonight!</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Cheers,</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Rob </span></div>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-75363630337735423812014-12-09T23:05:00.003-08:002014-12-09T23:07:33.753-08:00Game Jam over back to work<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Well we finished our game jam on Monday and managed to submit a build with 5 minutes to spare! Talk about cutting it close.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">During the game jam I learnt how to use the new UI system and also how to attach scripts to the UI's new GUI system. Can't say I liked this new GUI system at first but the more I used it the more I saw how I could save time using it.</span></div>
<br />
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Game Jam entry is here - the build has a few bugs, but it's stable at least.</span></div>
<br />
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<a href="http://ludumdare.com/compo/ludum-dare-31/?action=preview&uid=38275" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">http://ludumdare.com/compo/ludum-dare-31/?action=preview&uid=38275</a></div>
<br />
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcwQtkJ-ISCeRGC-4CFU2J7HuVqp-1qJTXuNM83HCv9Qrt9nyB_Yi5CBEQFS_55rQNwSxQFzdC_Sy0kMt3hRPpxMlO7Noh_5U98BMNksCmJ9bOsSA7YBsPjNEo6J2BcFB0n5gAoHhd-jUu/s1600/Gr.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcwQtkJ-ISCeRGC-4CFU2J7HuVqp-1qJTXuNM83HCv9Qrt9nyB_Yi5CBEQFS_55rQNwSxQFzdC_Sy0kMt3hRPpxMlO7Noh_5U98BMNksCmJ9bOsSA7YBsPjNEo6J2BcFB0n5gAoHhd-jUu/s1600/Gr.jpg" height="181" width="320" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;">Now to get back to work with the project!</span></div>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-28120154245022935922014-12-04T16:44:00.002-08:002014-12-04T16:44:49.321-08:00Unity 4.6 - Two Birds with One Stone<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I'm taking this weekend off to do a game jam with a team of awesome people I gathered up from different walks of life. I am hoping to use this game jam to just have some fun and not forget why I'm doing this Msc in the first place - to make games!</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">But doing this game jam will also give me a chance to test out the new GUI system that Unity 4.6 has implemented. I am hoping to apply what I learn in the game jam to help speed up the simulations UI development. As this is not something any of us has thought about in-depth.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I will post a link with more details on how my game jam is going in my personal blog <a href="http://www.tinyflamedev.blogspot.co.uk/">here.</a> For now here's an example of something I made tonight (also works with X360 controllers!):</span></div>
<a href="https://www.blogger.com/goog_427960073"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></a>
<div style="text-align: center;">
<a href="http://tinyflame.co.uk/Prototypes/Internets.html"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Link to prototype.</span></a></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA0HWkv-I-JWVk7BRlhDul6CTb4_g47ou6YPd6LrepWV5QR2xIC6r6TqgPQqM-fydhAlPfSxj7dUMRIwRPYMqnYga99HKVpQS5U4KRICHo16a35VRlHnU0fkKqO3QNC80VABA-BLzGdRm7/s1600/Btns.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA0HWkv-I-JWVk7BRlhDul6CTb4_g47ou6YPd6LrepWV5QR2xIC6r6TqgPQqM-fydhAlPfSxj7dUMRIwRPYMqnYga99HKVpQS5U4KRICHo16a35VRlHnU0fkKqO3QNC80VABA-BLzGdRm7/s1600/Btns.png" height="200" width="320" /></a></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Ps. You'll need the Unity webplayer plugin installed. Don't worry it's safe :)</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">That's it for now,</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Cheers, </span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Rob </span></div>
<br />
<br />Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-33689026616047355012014-12-01T14:30:00.000-08:002014-12-01T14:45:24.575-08:00Infrared Game Mechanic v0.1<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Alrighty,</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Now that I got my raycasting working in my other prototype my next step was to get an Infrared mechanic up and running. We intent to use photography in our project (<a href="http://luke-darling-dsp.tumblr.com/post/103044399177/data-collection-research-in-our-project">please see Lukes blog post about this here</a>). Since we are planning to use this I had to come up with a way to implement this.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Akshayan had a very good point that we should do it in a non-boiler plated way. To allow the Astronautics department to edit the mechanic if they so required. This was a very good idea and I kept it in the back of my mind. To implement this mechanic I wanted two major things,</span></div>
<ul style="text-align: justify;">
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Get input (via the X360 controller).</span></li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Change the texture (material really) of all objects that will be affected by the Infrared mechanic.</span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"> Before I bore you to death with my blog post this is what the end result of this mechanic looks like, I attached it to the rotation prototype:</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/Xgbmnmfjd4o?feature=player_embedded' frameborder='0'></iframe></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Please note that this is only v0.1 and the textures along with most assets are a placeholder. Thanks Luke for the cool skybox :D</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Adding the Scan-mechanic to the X360 controller</span></b></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The first thing I had to do was bind an 'Infra' preset (I set this up in the inputs menu in the engine) to Axis 3. This axis was what the two trigger buttons were tied to. Once done I could manipulate the triggers.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I wanted to know what floating values were being assigned to each trigger as both trigger buttons share the same axis. I could have looked this up on the API reference but I felt like experimenting tonight! I added a statement so check if the Input axis values was greater than 0, just to see what happened. </span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">This didn't work as I had hoped as the left trigger was greater than zero and letting go of both triggers was also greater than zero.</span><br />
<br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">So I thought I'd just output whatever values were being assigned to the axis depending on what trigger I held down. And what value was outputting when I had no trigger held. So I added some console prints:</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBS3LFb_rVk4YN7BGLkpg9D3uzgqUQx8zCnqWsTsKeMCEIy9zgfJxNTHNeNeAAa1mQXb8Hf_D4sy0mS79PIW_pcEdyFuRKI6zjK3cp3rwVupempjYD7GrkPo13dZTedoOg1U2ECliSzh7w/s1600/WhatFloats.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBS3LFb_rVk4YN7BGLkpg9D3uzgqUQx8zCnqWsTsKeMCEIy9zgfJxNTHNeNeAAa1mQXb8Hf_D4sy0mS79PIW_pcEdyFuRKI6zjK3cp3rwVupempjYD7GrkPo13dZTedoOg1U2ECliSzh7w/s1600/WhatFloats.jpg" height="109" width="320" /> </a></span></td><td style="text-align: center;"></td><td style="text-align: center;"></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Adding Debug Text to output Axis</span></td><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></td></tr>
</tbody></table>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">And this showed me that the left trigger was being read as Infra, and had a floating point value of 1. The right trigger had a floating point number of -1 and no trigger being held down output a 0.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdGLCKNpmiSOCoENcmm1bCGaUE-8fEHyIuSym_p70CDLrnV0EwfVFq5vUmtwPnFCJfF7YjsP85Fv6ceShIDTAbQtOY-09VUqXOR6FFo-9MsdVYRmyDnPsWQyKSsMa_ixxilc7qg95ZZVjf/s1600/Triggers.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdGLCKNpmiSOCoENcmm1bCGaUE-8fEHyIuSym_p70CDLrnV0EwfVFq5vUmtwPnFCJfF7YjsP85Fv6ceShIDTAbQtOY-09VUqXOR6FFo-9MsdVYRmyDnPsWQyKSsMa_ixxilc7qg95ZZVjf/s1600/Triggers.jpg" height="152" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Throwing out some debug text to see axis values</span></td></tr>
</tbody></table>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Now that I could get the trigger inputs I could use them to do something cool, like for example change the material on a game object if I held the trigger down. Then change them back if I let go of the trigger.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I did this by first assigning 3 variables to store the default materials of the three planets. That way I could change the materials back to the original ones when I let go of the triggers.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Next up I had a condition that checked to see if the 'Infra' axis value was greater than 0.5. For some reason it instantiates at 0.014... so I couldn't use greater than 0. I'm not sure why it reads input like this then shoots back to 0. This might just be my old X360 pad's wear and tear.</span><br />
<br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">But for now as a work around I just use the value 0.5. This means that if the left trigger is held down (axis 3 reads 1) the condition is true.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCZ8qi2epw-jq4DrUIjq3kDusQKiTFpLQH5EhIG_fwvCrws90smstiS85VnXd4NtrzGggiE6dPlDSeP5yrWQGpXgZMxgvVk8kNWZ_0LyK2FPx6hqxcq2jELs08RMh2nIjJR9xgz_W1ovnw/s1600/TriggerDown.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCZ8qi2epw-jq4DrUIjq3kDusQKiTFpLQH5EhIG_fwvCrws90smstiS85VnXd4NtrzGggiE6dPlDSeP5yrWQGpXgZMxgvVk8kNWZ_0LyK2FPx6hqxcq2jELs08RMh2nIjJR9xgz_W1ovnw/s1600/TriggerDown.jpg" height="74" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">My Trigger Down Code</span></td></tr>
</tbody></table>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Now I just had to replace the debug code with the actual Infrared feature. To do this I assigned a public Material variable and used the engines Drag-and-drop method of attaching a placeholder Infrared material I whipped up. I did not hardcode the Infrared material into the script as I want the Astronautics department to be able to modify the material is they so choose. As Akshayan's idea about a modifiable system was a very good one. So for now I did this quick and dirty.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">So the final code is pretty simple. I swap the materials from defaults to 'Infrared mode' while the left trigger is being held down (checked once per frame). And when I let go of the trigger (Axis 3 goes from 1 to 0) the default mats are loaded in again.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaHZRE0E5MVmrZpLRco_hj1yqr_VHLnhdG4wS-gRdJXaJt8N6Amafq3bEcfiloXDQxqsqPYQ1BkcqI7l57PxTGFAPAbVhrMcW8QCi1kmL53uBuqWMHf2p9DUvL6V9R2B3WJ-UzK5lNaVsH/s1600/Swap.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaHZRE0E5MVmrZpLRco_hj1yqr_VHLnhdG4wS-gRdJXaJt8N6Amafq3bEcfiloXDQxqsqPYQ1BkcqI7l57PxTGFAPAbVhrMcW8QCi1kmL53uBuqWMHf2p9DUvL6V9R2B3WJ-UzK5lNaVsH/s1600/Swap.jpg" height="143" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Swap Mats Code</td></tr>
</tbody></table>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The end result is a material swapping mechanic that can give us a cool infrared scanning mode!</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfxK96TriWceKqyqDAgQKAGkvTH_-epTHPLzvJg12rWvYImpSeQJRSTQNrb8pZhOfqUZeMXi0O1qr96hAm9attcgSggqAoq1Z5ZgOqEi9RlqA-lRhWbCk97Po9wVV1oL-iKXn4EI630l2f/s1600/NormalMode.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfxK96TriWceKqyqDAgQKAGkvTH_-epTHPLzvJg12rWvYImpSeQJRSTQNrb8pZhOfqUZeMXi0O1qr96hAm9attcgSggqAoq1Z5ZgOqEi9RlqA-lRhWbCk97Po9wVV1oL-iKXn4EI630l2f/s1600/NormalMode.jpg" height="212" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Normal Mode</span></td></tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"><tbody>
<tr><td style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicQYPiuCwq5ErOSOjIIBdgz2rrC72sgX_AwxASQHnhPjLzOvZydkkppOPaTs7pWOY145jz3WEExRYjHHlDGI-aq9TLAeAe5MtT7SRgs7U2FcYiktrCuG4BBPi4fn7olKeHAHSgz_7El9GY/s1600/InfraredMode.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicQYPiuCwq5ErOSOjIIBdgz2rrC72sgX_AwxASQHnhPjLzOvZydkkppOPaTs7pWOY145jz3WEExRYjHHlDGI-aq9TLAeAe5MtT7SRgs7U2FcYiktrCuG4BBPi4fn7olKeHAHSgz_7El9GY/s1600/InfraredMode.jpg" height="196" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Scan mode!</span></td></tr>
</tbody></table>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Even though all the assets are placeholders and could look better, the mechanic works!</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><b>Other tasks done today:</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<ul style="text-align: justify;">
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Gave Matias and Konrad the contact details of the Kingston College staff member. This way they will be able to take point with this and gather the required information for their student feedback surveys. They will also need to make the amendments to the survey the tutor asked for. I figured this was better than me being an unnecessary middle man.</span></li>
</ul>
<ul style="text-align: justify;">
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Got in touch with the technicians again to try and get my hands on the Oculus Rift. Was given details of two people who currently have the two DPK1's signed out. So my next step would be to contact them and ask if I could snag one for a day or so. Probably put this on the backburner until I have something concrete to test out since I don't want to waste peoples time.</span></li>
</ul>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-56936019147134574212014-11-30T23:19:00.000-08:002014-11-30T23:19:06.838-08:00Following up on Project 3rd-parties<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Quick notes, I e-mailed the module leader at Kingston College to see if they had time to review our survey for the UX guys stuff. Hoping to hear back sometime this week. </span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">As a precaution we might have to start looking into other options. I won't have time to do this and develop so one of the UX guys might have to take over here.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I also e-mailed the technicians about the Oculus Rift again, as I missed them on the 18th when I dropped by. Trying to organise access to the hardware for sometime in the next few weeks to run my prototypes.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">That's it for now as it's very early and I'm still blurry eyed.</span></div>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-21646132762582038642014-11-30T13:36:00.003-08:002014-11-30T13:36:37.585-08:00'Look at Object' mechanic - using Raycasting<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Ok so this has a lot less math and a lot more fidgeting around with the engine. The end result is a lot less code as I depend on the engine to do most of the brunt work.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I never used Raycasting before, so I made use of the Unity video tutorial (<a href="http://unity3d.com/learn/tutorials/modules/beginner/physics/raycasting">found here</a>). And as always the <a href="http://docs.unity3d.com/ScriptReference/Physics.Raycast.html">Unity API references</a>.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">It seemed pretty straight forward and it was. The most trouble I had was adjusting my Raycast to work well with my world. I ran into the following Hicups:</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<ul style="text-align: justify;">
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">My Ray was attached to my camera, as this is what I was looking around with. The cube infront of my camera would get in my way and constantly block all other collision my ray might have encountered. The same issue happened to my Respawn-boundary I set up.</span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">To fix this I added the planets to a separate layer and used to optional arguments to ignore everything outside of this layer. As an added precaution I instantiate the ray at the (cameras position)*2 to avoid the cube entirely so this would fix the issue regardless of layers.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">My ray was defined as: </span></div>
<div style="text-align: left;">
<span style="font-family: "Courier New",Courier,monospace;">Ray ray = new Ray(gameObject.transform.position*2, gameObject.transform.forward);</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">And my collision check was done as:</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-family: "Courier New",Courier,monospace;">if(Physics.Raycast(ray, out hit, 500, 9))</span> [...] Where 500 was the length of the ray and 9 was the layer to avoid.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<ul style="text-align: justify;">
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">At first I was using Mathf.Infinity as the rays distance, but found it tricky to use with the debug visual I had set up (to see the raycast in-engine while running). </span></li>
</ul>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">As such I changed the distance from infinity to 500. This made the debugging code work and I could see the raycast properly.</span></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7CJ99A0gPBGlBjbjGOUW_eKTYJzDUvds85-q09A95DRR3HrCQA1qw0N6FwOGhqqDt8blBAc5NEinK1yWfEfSe67RCREnBBLM4OS4DNX7vSMSFPPsA8rZFnacgBNH714X1jZciVGl7jCVI/s1600/whiteline.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7CJ99A0gPBGlBjbjGOUW_eKTYJzDUvds85-q09A95DRR3HrCQA1qw0N6FwOGhqqDt8blBAc5NEinK1yWfEfSe67RCREnBBLM4OS4DNX7vSMSFPPsA8rZFnacgBNH714X1jZciVGl7jCVI/s1600/whiteline.jpg" height="225" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Raycast being shown in-engine while run</td></tr>
</tbody></table>
<br />
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Debug code:</span></div>
<div style="text-align: left;">
<span style="font-family: "Courier New",Courier,monospace;">Debug.DrawRay(transform.position, gameObject.transform.forward*500);</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">One final snag was where I was updating a value in the wrong method (not per frame) which meant the raycast wouldn't rotate with the camera. A minor oversight which I quickly fixed and the final result was a new "Look at object" mechanic that used raycasting.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br />This method of work is a lot easier to use as I use the engine to do a lot of the work for me. At the moment it's a bit to precise with the raycast, meaning I have to center the camera exactly at the right spot. I could fix this by tweaking the collision boxes.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">However as this is just a prototype and we have yet to build the actual assets for use, this will not require tweaking until later.</span></div>
<br />Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-18452242182687861502014-11-30T12:50:00.000-08:002014-11-30T13:08:30.811-08:00'Look at Object' mechanic - using the Dot Product<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">As I mentioned in the presentation I used the dot product to multiply two vectors together. To find out at which angle I was viewing a game object (b) from a different game object (a).</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I first found this solution by searching around on the internet. I found some psueodo code (which I will post at the end) which made mention that the dot product would be ideal for this, as such I started reading into the math some more. I did this as I feel that I could learn a lot about how this mechanic would work if I delved into the details a bit. Also I am not overly confident on my math skills so I always try and sponge up as much as I can/when I can.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The Dot product is defined as:</span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvaDzpsrtlpmXrFkG4KVgH-xkXKG-cjQKYNPezz37o4-BpUc8r0GL0DYxh_2QacjbDpISQYSit-_vOOoS1cVhtCI-BxJesUOcg3Kg2VjEkt4NEt3SZki_sug9rqQMIIvgeubhUfeGFpwQC/s1600/formula.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvaDzpsrtlpmXrFkG4KVgH-xkXKG-cjQKYNPezz37o4-BpUc8r0GL0DYxh_2QacjbDpISQYSit-_vOOoS1cVhtCI-BxJesUOcg3Kg2VjEkt4NEt3SZki_sug9rqQMIIvgeubhUfeGFpwQC/s1600/formula.png" height="26" width="320" /></a></div>
<br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">We do not list (a<span style="font-size: xx-small;">x</span> . b<span style="font-size: xx-small;">y<span style="font-size: small;">)</span></span> or (b<span style="font-size: xx-small;">x</span> . a<span style="font-size: xx-small;">y<span style="font-size: small;">)</span> <span style="font-size: small;">as these equate to 0.</span></span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: xx-small;"><span style="font-size: small;">By rotating the vector b to a baseline (to 0 or the x-axis) we end up with:</span></span></span><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: xx-small;"><span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdS1uqM_CUY62voqt1WM8-fimONe7d6c1cGu0WzHUWHVSmlUNmBDnSvawdXFoe5JHQWs_9ltPBdYGxLcKCWRfJ01CKKBw5haym1bno7rPkCGGOklRs8NhjQqlO_EWoEqdLiISJPhnkpYst/s1600/formula2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdS1uqM_CUY62voqt1WM8-fimONe7d6c1cGu0WzHUWHVSmlUNmBDnSvawdXFoe5JHQWs_9ltPBdYGxLcKCWRfJ01CKKBw5haym1bno7rPkCGGOklRs8NhjQqlO_EWoEqdLiISJPhnkpYst/s1600/formula2.jpg" height="101" width="200" /> </a></span></span></div>
<br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;">We have the vector a multiplied by the vector b which is equal to the magnitude (length) of vector a multiplied by vector b multiplied by the cosine (the angle between the two vectors).</span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;">This can be calculated and will results in a scalar value (a single number). Which we then use in some way which I will describe in my code below.</span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;">I'm pretty happy I spent some time reading up on sin and cos as I mentioned in a previous blog post. It seems that they are used often in 3D calculation in games and simulations. From what I have seen over the last few weeks I'm going to need to spend some more time brushing up on my 3D math skills. At least I learnt SohCahToa! So I know that we could calculate the cos in the formula above by multiplying the Adjacent with the Hypotenuse of the angle between the two vectors! Isn't it amazing what you can learn with google? </span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;">Even though I understand the fundamentals of the math behind this I still would like to spend some time reading up on this. Unfortunately this is only one mechanic and there are many more I need to develop! So I will have to make a note of this and put it on the backburner for now. The sites I used to research Dot product were <a href="http://en.wikipedia.org/wiki/Dot_product">Wikipedia</a>, <a href="http://betterexplained.com/articles/vector-calculus-understanding-the-dot-product/">Better Explained</a>, <a href="http://www.mathsisfun.com/algebra/vectors-dot-product.html">Mathisfun </a>and the <a href="http://docs.unity3d.com/ScriptReference/Vector3.Dot.html">Unity API reference</a>.</span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;">Now that I had the dot product I looked at what vectors I would need to use. According to the API reference I would use the .forward of the gameobject I wanted to have look around (so in this case the camera). Additionally I would need to get the direction of the target object from my (camera's) current position.</span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;">This made sense when comparing it to the psuedo code I found online. The only difference was the psuedo code normalized the value (so between 1 and 0) after working out the direction of the view object from my camera. This was done probably for ease of use when it came to comparisons (if greater than 0, less than 0.5 etc).</span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: small;">The psuedo code can be found <a href="http://answers.unity3d.com/questions/777931/making-a-look-at-trigger-through-a-camera.html">here </a>and I will list it below as well:</span></span><br />
<pre><code class="prettyprint linenums">
</code><code class="prettyprint linenums">
<li class="L0"><span class="pln"> </span><span class="typ">Vec3</span><span class="pln"> dirFromMeToObject </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="pln">objPos </span><span class="pun">-</span><span class="pln"> myPos</span><span class="pun">).</span><span class="pln">normal</span></li>
<li class="L1"><span class="pln"> </span><span class="typ">Vec3</span><span class="pln"> myCurrentFacingDir </span><span class="pun">=</span><span class="pln"> trans</span><span class="pun">.</span><span class="pln">forward</span></li>
<li class="L2"><span class="pln"> </span></li>
<li class="L3"><span class="pln"> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Vec3</span><span class="pun">.</span><span class="typ">Dot</span><span class="pun">(</span><span class="pln">dirFromMeToObject</span><span class="pun">,</span><span class="pln"> myCurrentFacingDir</span><span class="pun">)</span><span class="pln"> </span><span class="pun">></span><span class="pln"> </span><span class="lit">0</span><span class="pun">)</span></li>
<li class="L4"><span class="pln"> </span><span class="com">//object is with a 180 degree arc in front of us</span></li>
<li class="L5"><span class="pln"> </span></li>
<li class="L6"><span class="pln"> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Vec3</span><span class="pun">.</span><span class="typ">Dot</span><span class="pun">(</span><span class="pln">dirFromMeToObject</span><span class="pun">,</span><span class="pln"> myCurrentFacingDir</span><span class="pun">)</span><span class="pln"> </span><span class="pun">></span><span class="pln"> </span><span class="lit">0.5</span><span class="pun">)</span></li>
<li class="L7"><span class="pln"> </span><span class="com">//object is with a 90 degree arc in front of us</span></li>
<li class="L8"><span class="pln"> </span></li>
<li class="L9"><span class="pln"> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Vec3</span><span class="pun">.</span><span class="typ">Dot</span><span class="pun">(</span><span class="pln">dirFromMeToObject</span><span class="pun">,</span><span class="pln"> myCurrentFacingDir</span><span class="pun">)</span><span class="pln"> </span><span class="pun">></span><span class="pln"> </span><span class="lit">0.75</span><span class="pun">)</span></li>
<li class="L0"><span class="pln"> </span><span class="com">//object is with a 45 degree arc in front of us</span></li>
</code></pre>
<br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: xx-small;"><span style="font-size: small;">Understanding the psuedo code was trivial after learning what a Dot product was. Now that I understood this solution I could start implementing it. It would require some set-up first however. Before manipulating the vectors (which would be Vector3s) I would need to get the coordinates from transforms and store them in variables, then build the required Vector3s based on those coordinates.</span></span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span style="font-size: xx-small;"><span style="font-size: small;">So in closing I came up with the following code solution:</span></span></span><br />
<br />
<b><span style="color: #0b5394;"><span style="font-size: xx-small;"><span style="font-size: small;">using UnityEngine;<br />using System.Collections;<br /><br />/*This script will return output based on the angle an object is being viewed at from a different object (in this case the camera)<br />It does this by using the dot product to multiply the two Vector3's of the two game objects.<br />Taken from the API reference, the dot product is a float value (a scalar value) equal to the magnitudes of the two vectors multiplied together<br />and then multiplied by the cosine of the angle between them. (The cos would be the angle between the two Vectors) */</span></span></span></b><br />
<b><span style="font-size: xx-small;"><span style="font-size: small;"><br /><span style="color: #0b5394;"><span style="font-family: Arial,Helvetica,sans-serif;">public class LookAtObject : MonoBehaviour {<br /><br /> //Initialising some vars to store coordinates of the objects vectors<br /> Vector3 myCurrentFront;<br /> Vector3 planet1Pos;<br /> Vector3 currentPos;<br /> Vector3 dirMeToObj;<br /> Transform tmpStore;<br /> Transform tmpMyVec;<br /><br /> float tmpStoreX;<br /> float tmpStoreY;<br /> float tmpStoreZ;<br /><br /> float tmpMyVecX;<br /> float tmpMyVecY;<br /> float tmpMyVecZ;<br /><br /> //If we are viewing the secondary object from x angle this is toggled and we have output<br /> public bool IsActive;<br /><br /> // Use this for initialization<br /> void Start () {<br /> IsActive = false;<br /> }<br /> <br /> // Update is called once per frame<br /> void Update () {<br /> calcLookAt();<br /> }<br /><br /> void calcLookAt(){<br /> //We get the current facing of the primary game object<br /> //We use this to ensure the other game object is infront of us<br /> myCurrentFront = gameObject.transform.forward;<br /> <br /> //Temp store for the other objects transform (Planet1)<br /> tmpStore = GameObject.Find("Planet1").gameObject.transform;<br /> //Primary game object's (camera) transform is stored in here<br /> tmpMyVec = gameObject.transform;<br /><br /> //Storing each separate coordinate for a vector, from both primary and secondary game objects<br /> //This is to build two Vector3's to be used in the Dot Product calculation<br /> tmpMyVecX = tmpMyVec.position.x;<br /> tmpMyVecY = tmpMyVec.position.y;<br /> tmpMyVecZ = tmpMyVec.position.z;<br /> <br /> tmpStoreX = tmpStore.position.x;<br /> tmpStoreY = tmpStore.position.y;<br /> tmpStoreZ = tmpStore.position.z;<br /><br /> //Building the new Vectors to be used in the comparison calculation<br /> planet1Pos = new Vector3(tmpStoreX, tmpStoreY, tmpStoreZ);<br /> currentPos = new Vector3(tmpMyVecX, tmpMyVecY, tmpMyVecZ);<br /><br /> //Gets the magnitude of the primary object to the secondary one and then normalizes it<br /> dirMeToObj = (planet1Pos - currentPos).normalized;<br /><br /> //180 degrees infront of us - performs the .Dot product calculation between the direction value and the front facing part of the primary objects transform<br /> if(Vector3.Dot (dirMeToObj, myCurrentFront) > 0){<br /> //Debug.Log ("Looking at Planet Area at 180 degrees");<br /> }<br /><br /> //90 degrees infront of us<br /> if(Vector3.Dot (dirMeToObj, myCurrentFront) > 0.5){<br /> //Debug.Log ("Looking at Planet Area at 90 degrees");<br /> }<br /><br /> //45 degrees infront of us<br /> if(Vector3.Dot (dirMeToObj, myCurrentFront) > 0.75){<br /> Debug.Log ("Looking at Planet Area at 45 degrees");<br /> Debug.Log (Vector3.Dot (dirMeToObj, myCurrentFront)); //used for debugging<br /> IsActive = true;<br /> }else{<br /> IsActive = false;<br /> }<br /> }<br /><br /> public bool getIsActive(){<br /> return IsActive;<br /> }<br /><br />}</span></span></span></span></b><br />
<br />
<span style="font-size: small;"><span style="font-family: Arial,Helvetica,sans-serif;">This all works pretty well (as I demonstrated in the presentation). However as a few developers informed me, it would be much easier to just use Raycasting. With that in mind, I looked into it and I'll show my findings in my next post.</span></span><b><span style="font-size: xx-small;"><span style="font-size: small;"><span style="color: #0b5394;"><span style="font-family: Arial,Helvetica,sans-serif;"> </span></span></span></span></b>Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-18203562585489207312014-11-28T16:24:00.001-08:002014-11-28T16:24:20.762-08:00Doing Technical Lead stuff - Solving the Facebook Group archiving problem<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">As we do 99% of our collaboration on a private Kingston Uni protected Facebook Group page, we were concerned that we would not be able to show how we were working together as a team.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">As such we decided to follow the good examples set by the other teams and move over to a blog based communication system. Even though the Facebook Group page was easier as it updated quickly in real time, for tracking purposes it was not ideal.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The problem however was that even after we switched we still had 3 weeks worth of collaboration listed on the Facebook group page. We had to find a way to archive this data.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Luke selflessly volunteered to manually copy the data from the group page but this seemed like batch work to me and something we could script.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I spent a few minutes tonight looking at the Facebook developer page and looking into the Graph API. I used this API along with the online Explorer Facebook provides to write a query. This allowed me to pull down all the data from the group page. Video's and Images may have to be manually re-linked as they are currently linked to the group page.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The first thing I had to do was get an access token to gain access to my groups. Using the explorer made this easy:</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCNzsOJJRG42pOz1OQfwIOMv2vQAxFKjdFvux4__0a7NpJDAaxjCPQkyr1jWplm6NKPMp5Nkp0Od6ZkJ_WhuS38pwErsEfbaGNkyyYNMbHUe7S1HzTOg03IXx19RyMgBrbVbx1qSCZuyfU/s1600/accesstok.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCNzsOJJRG42pOz1OQfwIOMv2vQAxFKjdFvux4__0a7NpJDAaxjCPQkyr1jWplm6NKPMp5Nkp0Od6ZkJ_WhuS38pwErsEfbaGNkyyYNMbHUe7S1HzTOg03IXx19RyMgBrbVbx1qSCZuyfU/s1600/accesstok.jpg" height="207" width="320" /></a></div>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The link to the Graph API explorer can be found here: <a href="https://developers.facebook.com/tools/explorer">https://developers.facebook.com/tools/explorer</a></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I messed around with the search queries using good old API references: <a href="https://developers.facebook.com/docs/graph-api/reference/v2.2/group/">https://developers.facebook.com/docs/graph-api/reference/v2.2/group/</a></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I then worked out the right query to pull the data I required.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">At first I used: me?fields=id,name, groups</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">This gave me a list of my ID and name followed by all my groups along with group ID numbers.</span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I could then use the <span class="json_string">Astronautics Simulation ID (</span><br />"id": <span class="json_string">"<a href="https://graph.facebook.com/584844028286125">584844028286125</a>") to write the following query: 584844028286125/feed?until=now.</span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span class="json_string"><br /></span></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span class="json_string">Which spat out all the raw data for archiving.</span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span class="json_string"><br /></span></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span class="json_string">Not ideal as the data in a raw form:</span></span><br />
<br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span class="json_string">[...] </span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span class="json_string">{<br /> "data": [<br /> {<br /> "id": "xxxxxx",<br /> "from": {<br /> "id": "xxxxxx",<br /> "name": "Deon Cresswell"<br /> },<br /> "to": {<br /> "data": [<br /> {<br /> "name": "Astronautics Simulation",<br /> "id": "xxxxx"<br /> }<br /> ]<br /> },<br /> "message": "Sketch is now updated and on Dropbox",<br /> "actions": [ [...]</span></span><br />
<br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span class="json_string">but it beats spending an hour or so copy/pasting!</span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span class="json_string"><br /></span></span>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span class="json_string">Other tasks I did tonight (will update in more detail tomorrow):</span></span><br />
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span class="json_string"></span></span><br />
<ul>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span class="json_string">Replaced coordinate tracking system in the Tracking prototype with a Raycast, the engine does most of the brunt work now.</span></span></li>
<li><span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><span class="json_string">Started work on a texture replacement mechanic (although I'm still looking to see if this is the best solution)</span></span></li>
</ul>
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span>Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-70645503334275618782014-11-26T00:55:00.002-08:002014-11-26T00:56:13.183-08:00Post Presentation Notes<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The presentation went ok, few notes:</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Need to write up a scope document or project definition document. Now that our supervisor has approved of our design Matias volunteered to do this.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">Replace my 'trigger look at' function with Raycasting. I read up how to do this in Unity and shouldn't be to difficult really. I'll try and push out a build with that today.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">I also need to look at replacing textures on objects during runtime. I've done this before so again, it should be doable.</span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;">The team agreed to start using the team blog for discussions as up to this point we were using a facebook group and facebook chat. Using the blog might make it easier when it comes to marking.</span></div>
Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0tag:blogger.com,1999:blog-6781122108091346347.post-29411807618360906202014-11-24T15:57:00.002-08:002014-11-24T16:02:58.255-08:00Presentation Preparation<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><b>Presentation Prep: </b></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Tonight we all met on facebook to
help Matias who was compiling the presentation. In case he had any
questions regarding our slides.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">After that we had a
quick Skype call (Deon, Luke, Matias and myself) to discuss who was
covering which area of the presentation. We also followed up with other
members about areas we were unsure about which they specialised in.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">The
final version of the presentation is now on dropbox and Deon, Luke and
myself will meet up a bit earlier tomorrow before the lecture to make
sure we are ready and not missing anything.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><b>Other Tasks:</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">In
other news, Matias e-mailed our project proposal a while back and our
mentor came back to us. Thankfully he was happy with the design we
settled on. Matias is organising another meeting with Dr.Claus so that
we can show him what we have been up too. I hope he likes our work thus
far!</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">I also set up a Github repository for the project.
I can upload all my code here (it's empty for now apart from all my
personal projects). This might be useful at a later stage.</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">As
a side note I linked my Github to my Linkdin so people who view my
profile can access all my source code as well. Saw a few companies who are now asking their applicants to have a github account. So I'm glad I
got one set up. Staying relevant! :)</span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Helvetica Neue",Arial,Helvetica,sans-serif;">Finally, I started messing around with
Visual Studio using my Unity scripts and I will be swapping Monodevelop
for VS in the near future for development. </span></div>
<br />Rob de Jagerhttp://www.blogger.com/profile/10494377764663201090noreply@blogger.com0