tag:blogger.com,1999:blog-37156463224857434352024-03-20T02:28:23.317-07:00Sliding in the DeepTiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-3715646322485743435.post-63120002119874948092011-12-10T15:15:00.000-08:002011-12-10T15:21:47.359-08:00Demo Uploaded!Please check out our demo video!<div>Also: </div><div>We changed the name of our game to "Steer n Slide".</div><div><br /></div><br /><iframe src="http://player.vimeo.com/video/33460685?title=0&byline=0&portrait=0&autoplay=1&loop=1" width="512" height="384" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>Keenhttp://www.blogger.com/profile/15739390972436912325noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-60046814301647895092011-11-28T09:33:00.001-08:002011-11-28T09:38:58.996-08:00Level EditorTo provide users with more experiences, we designed a level editor using which we can design a tunnel with fixed length and well aligned obstacles. It could also import, export and modify maps. The maps are located in Level Mode and could be selected by the users.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRGZQx3qnLQfnEumkSZqZaFlEtHnlqTwOxHrGOhSRZcCvwwmOF-v7xnh6xDwEM6wdd-2o2S1V7ohKTdeT8SVuampR1xO2tQ-XgRzPsJOmEv5VdEzD1zwOaSjuf3VFh5FQG42p-gvynYng/s1600/Untitled.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="191" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRGZQx3qnLQfnEumkSZqZaFlEtHnlqTwOxHrGOhSRZcCvwwmOF-v7xnh6xDwEM6wdd-2o2S1V7ohKTdeT8SVuampR1xO2tQ-XgRzPsJOmEv5VdEzD1zwOaSjuf3VFh5FQG42p-gvynYng/s320/Untitled.png" /></a></div>Robin Fenghttp://www.blogger.com/profile/06032819336853134396noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-45778731159614937432011-11-28T09:30:00.001-08:002011-11-28T09:32:27.269-08:00Score System ImplementedWe have embedded a score system to the game which will record and update high scores.
The layout is designed as below as a digital monitor. Letters and numbers will be displayed one by one dynamically.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuuY7zsUzsie0VWeWu71PnPC5jVgtjnHgrQUl9W9jH0EyBeTY6wMxGdreJQxw1CpOsDO8hU7cF-VFrMzZ4RtafOA8HBXSdJHMZ_qnGf3G_ufkPsY4wiOl191o3ISsQv8DanJyDynDw0Mc/s1600/Untitled.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="253" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuuY7zsUzsie0VWeWu71PnPC5jVgtjnHgrQUl9W9jH0EyBeTY6wMxGdreJQxw1CpOsDO8hU7cF-VFrMzZ4RtafOA8HBXSdJHMZ_qnGf3G_ufkPsY4wiOl191o3ISsQv8DanJyDynDw0Mc/s320/Untitled.png" /></a></div>Robin Fenghttp://www.blogger.com/profile/06032819336853134396noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-19522546173129175222011-11-02T09:14:00.000-07:002011-11-02T09:14:27.264-07:00Demo of the Motion Controller<iframe src="http://player.vimeo.com/video/31471319?title=0&byline=0&portrait=0" width="560" height="371" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>Tiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-65976311992144710092011-10-31T18:37:00.000-07:002011-11-01T12:29:41.280-07:00Alpha Version Progress Report<span class="Apple-style-span" style="font-size: large;">Progress Report</span><br />
Up to now, we have finished all of the requirements in Alpha Version:<br />
Procedural generation of tunnel<br />
Distribution and generation of obstacles and accelerators <br />
Collision between character and obstacles<br />
Scoring system<br />
Sound effects<div><br />
We have also implemented some of those in Beta Version:<br />
Webcam based movement control<br />
Dizzy and motion blur effects<br />
Menu GUI<br />
<br />
In the next few weeks, we will be working on:<br />
Other Beta Version requirements, including dual game mode, diverse bonus/ obstacles and custom shaders, etc.<br />
We will also optimize the existing mechanism and graphic effects according to the feedback.<br />
<br />
<span class="Apple-style-span" style="font-size: large;">Game Demo: </span><div style="background-color: transparent;"><div class="separator" style="clear: both; text-align: -webkit-auto;"><iframe allowfullscreen="" frameborder="0" height="329" src="http://player.vimeo.com/video/31444013?title=0&byline=0&portrait=0" webkitallowfullscreen="" width="560"></iframe></div></div></div>Robin Fenghttp://www.blogger.com/profile/06032819336853134396noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-43358487770428643042011-10-31T16:48:00.002-07:002011-11-01T17:32:32.010-07:00Motion Controller Detail<span class="Apple-style-span" style="font-size: large;">Idea:</span><div>Threat the frame of player(s) as a texture and analyze the average direction of the contour edges of the player(s).</div><div><br />
</div><div><span class="Apple-style-span" style="font-size: large;">Assumptions:</span></div><div>1. Players can be distinguished from background because they are moving. (Even if they looks still, people have subtle movement other than the background.)</div><div>2. People can be seen as sticks. (They are tall, long, and most of the edges are vertical if they stand still.)</div><div><br />
</div><div><span class="Apple-style-span" style="font-size: large;">Extract Moving Things:</span></div><div>That is a simple trick, because the background image never moves (Assumption 1), we can simply use the difference between a frame and its previous frame.</div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipgoROt7rJFjjh24cRet_0PG57ig1GB-FR46Li8usTnYuz_b3hEqY7WsCgevy3LgmXQDzYctVUmLVzyXkqwG0-t9b5AWEvBBZp1ayMJh64AJ_eNlwk2BbjRTrs30ocGKl5kZUap71HQUPR/s1600/FrameDiff.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipgoROt7rJFjjh24cRet_0PG57ig1GB-FR46Li8usTnYuz_b3hEqY7WsCgevy3LgmXQDzYctVUmLVzyXkqwG0-t9b5AWEvBBZp1ayMJh64AJ_eNlwk2BbjRTrs30ocGKl5kZUap71HQUPR/s400/FrameDiff.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div><br />
</div><div><span class="Apple-style-span" style="font-size: large;">Smooth and Get Gradient Map:</span></div><div>We can use a gradient convolution kernel {-1, 1} to get the result. We can see that the horizontal lines are obvious after convoluted with a Y direction gradient, and the vertical lines are obvious after X direction gradient.</div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyH1oXnC5Tiy9O5LNYnXwkbVrSbrn46Ivbf3gJg-htrXNGGgeG0T8F9GXaoPdcqyusacfwFw5-vXz6foUUt94W577XDhi2MUrVIx1U0c_C9DRLJ3YY9o7MMzfsh_4qACwz4hgArAG4mw9t/s1600/Convolution.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyH1oXnC5Tiy9O5LNYnXwkbVrSbrn46Ivbf3gJg-htrXNGGgeG0T8F9GXaoPdcqyusacfwFw5-vXz6foUUt94W577XDhi2MUrVIx1U0c_C9DRLJ3YY9o7MMzfsh_4qACwz4hgArAG4mw9t/s400/Convolution.png" width="400" /></a></div><div><br />
</div><div><br />
</div><div><span class="Apple-style-span" style="font-size: large;">Get the Interesting Points:</span></div><div>We can see from the gradient kernel, even if the background is subtracted, there is still a lot of noise comes from the background, that is due to contrast change from frame-to-frame brightness change. So we need to set a threshold that means, if the edge is more obvious than something, I should pay attention to it. A simple way to measure how the edge is obvious is add the magnitude of the x-and-y-direction gradient up. (If Gx*Gx + Gy*Gy > threshold, the point in counted as a interesting point.)</div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2w8wBZkTvYyCZZgVAA7YI7bXpRUKyMuU6eu3161xZ8Wt0SJdjMVxzXzOr3u0xXyzCZgsbSPhw1Wc3mbyuTqyCQc63F5OKN8H9PEXMvgkwoxE1JIZuNE8t0ZtktistPycWTU6wT_fDlyCK/s1600/InterestingPoints1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2w8wBZkTvYyCZZgVAA7YI7bXpRUKyMuU6eu3161xZ8Wt0SJdjMVxzXzOr3u0xXyzCZgsbSPhw1Wc3mbyuTqyCQc63F5OKN8H9PEXMvgkwoxE1JIZuNE8t0ZtktistPycWTU6wT_fDlyCK/s400/InterestingPoints1.png" width="400" /></a></div><div><br />
</div><div><br />
</div><div><span class="Apple-style-span" style="font-size: large;">Calculate the Point Directions:</span></div><div>Here is an example of how to calculate the local direction of edges:</div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAzZcfu8FHxuQNMRxcPismBrCLbGdnj88yHMc4rRZ5s-7CQzu7hlN7lrz1zOfP1rj1VOeAvMEWb0YygQDEoA0-mUQqI4X0mSgSEi66l5K7kqrwuFfdW3nKY7fI6n6XX8LrAemA5jIv8jU8/s1600/ConvolutionRes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAzZcfu8FHxuQNMRxcPismBrCLbGdnj88yHMc4rRZ5s-7CQzu7hlN7lrz1zOfP1rj1VOeAvMEWb0YygQDEoA0-mUQqI4X0mSgSEi66l5K7kqrwuFfdW3nKY7fI6n6XX8LrAemA5jIv8jU8/s400/ConvolutionRes.png" width="400" /></a></div><div>The upper left matrix is for a simple edge, the upper right one is the smoothed edge with a Gaussian kernel of size 3, while the lower left is the convolution result with a x-direction gradient kernel and the lower right is the the convolution result with a y-direction gradient kernel.</div><div>As we known that if the edge is vertical, the x direction convolution response will be high and vice versa, we can get the direction of the edge by calculate the tangent value of x and y direction convolution results.</div><div>Say, we want to know direction of the point (3, 3), we can simply use atan2(-16, -16) = 45 degree.</div><div><br />
</div><div><span class="Apple-style-span" style="font-size: large;">Calculate the Average Direction of the Whole Frame</span></div><div>Knowing the method above, we can simply accumulate all the direction values and calculate the average of them to get the direction of the whole frame.</div><div><br />
</div><div><br />
</div>Tiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-81373453025494471422011-10-31T16:48:00.000-07:002011-10-31T17:10:48.321-07:00HUD in Game<span class="Apple-style-span" style="font-size: large;">Idea:</span><br />
We want to Create Really Simple but cool HUD in game to show the current score and speed level of the player. Because our game is pretty like the racing game, the idea of build a speedometer like HUD comes to our mind first.<br />
<br />
<span class="Apple-style-span" style="font-size: large;">Rotate the Pointer:</span><br />
We started to add our HUD from a Unity GUI Texture, but the problem is, it is not allowed to rotate any non-3D GUI Textures in Unity, while we definitely don't want to use mesh textures because that is not cool...<br />
So one way to rotate the GUI Texture is like that:<br />
<br />
<i><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"> posPointer = new Vector2(transform.localPosition.x - sizePointer.x * 0.5f, transform.localPosition.y);</span></i><br />
<i><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"> rectPointer = new Rect(posPointer.x - sizePointer.x * 0.5f, posPointer.y - sizePointer.y * 0.5f, sizePointer.x, sizePointer.y);</span></i><br />
<i><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"> pivotPointer = new Vector2(rectPointer.xMin + rectPointer.width * 0.5f, rectPointer.yMin + rectPointer.height * 0.5f);</span></i><br />
<i><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"> GUIUtility.RotateAroundPivot(angle, pivotPointer);</span></i><br />
<i><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"> GUI.DrawTexture(rectPointer, pointer);</span></i><br />
<i><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"> GUI.matrix = matrixBackup;</span></i><br />
<i><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"> GUI.DrawTexture(rectSpeedometer, speedometer);</span></i><br />
<br />
It Rotates a Texture2D like the OpenGL way, and the result is pleasing.<br />
<br />
<span class="Apple-style-span" style="font-size: large;">Result:</span><br />
Here is a screenshot of our HUD:<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGYlT2KjYto-0eyDywT3MFNUpJ7L2UxNsv9XPgxWA-uARYpbjwaFqEu8iJMrj3uJpBldFMiYCpdfLIuF0uH57GMZNPUxoEQtCRytDZgMNCgLmTUGdZvoKJyBHT-XpTlngCPDbTYD_1nxiw/s1600/HUD+Screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGYlT2KjYto-0eyDywT3MFNUpJ7L2UxNsv9XPgxWA-uARYpbjwaFqEu8iJMrj3uJpBldFMiYCpdfLIuF0uH57GMZNPUxoEQtCRytDZgMNCgLmTUGdZvoKJyBHT-XpTlngCPDbTYD_1nxiw/s400/HUD+Screenshot.png" width="400" /></a><br />
<div class="separator" style="clear: both; text-align: center;"><br />
</div><br />
<br />
<div><br />
</div>Tiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-6659840552541057992011-10-31T16:47:00.001-07:002011-10-31T18:37:02.191-07:00Start Menu GUI DetailWe have implemented most parts of start menu GUI and connected it to the game scene.<br />
<div>
<br /></div>
<div>
As mentioned before, we use doors in the tunnel to act as the menu GUI for the game. Now we have three doors, which are:</div>
<div>
<br /></div>
<div>
Main Menu with four buttons as "Game Mode""Options""High Scores""Quit Game"</div>
<div>
<div>
Game Mode Menu with three buttons as "Classic Mode""Time Mode""Go Back"</div>
<div>
High Scores Menu with "Go Back" Button</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl3u7PKPKIUjrhBXODsz19mlXEKa7TCc81TxBRH6L6zbZfk-EX_cGzkHKzlRZduGpzUUWGlSyfvgBqhcY-sHyXlazNVuFZ1qlzK-PJMzpDtnqj7Nm32y_I1iDcAV6GSIvJTzr5FqpDylE/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl3u7PKPKIUjrhBXODsz19mlXEKa7TCc81TxBRH6L6zbZfk-EX_cGzkHKzlRZduGpzUUWGlSyfvgBqhcY-sHyXlazNVuFZ1qlzK-PJMzpDtnqj7Nm32y_I1iDcAV6GSIvJTzr5FqpDylE/s320/1.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkxcOeHXODTT4rceuZKy4n1rZ4ixrQOiMfBsqxdmVRe073vklYmhSBd9cFeRM4VlaFfroB7Gbim1itECuS-rKcF9SxyNu-CZmvzfJDDvSZ4SnwNtL_ltxe94nGFsgCwcb1YGV3tdSWnag/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkxcOeHXODTT4rceuZKy4n1rZ4ixrQOiMfBsqxdmVRe073vklYmhSBd9cFeRM4VlaFfroB7Gbim1itECuS-rKcF9SxyNu-CZmvzfJDDvSZ4SnwNtL_ltxe94nGFsgCwcb1YGV3tdSWnag/s320/2.png" width="320" /></a></div>
<br />
<br />
We have also added some more detailed animations to the menu, for example, the button will "stand up" when a user puts the mouse on it. Light will also be turned on and gear will spin before the door opens.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br /></div>
<div>
<br /></div>
<div>
We will apply the animations to all of the parts of the doors and implement all of the functions including Options and High Scores. We will also modify the scene transfer to make it smoother instead of convert the camera from the menu to the game directly.</div>Tiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.com1tag:blogger.com,1999:blog-3715646322485743435.post-13299193004340295802011-10-27T00:01:00.000-07:002011-10-27T00:04:11.863-07:00Procedural Tunnel Generation Detail<div>//FIXME</div>OMG! alpha version presentation is coming!!!<div>Let's focus on games rather than words!</div><div>Details will come soon :-)</div>Keenhttp://www.blogger.com/profile/15739390972436912325noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-53998235338886260142011-10-18T22:57:00.000-07:002011-10-18T22:58:00.956-07:00Challenges Encountered in Procedural Tunnel Generation<p class="MsoTitle">In Sliding in the Deep, the core development task is to procedurally generate the tunnel. In our design, the tunnel has two varying parameters, the longitudinal direction and latitudinal curvature. We want to make our tunnel turn left/right/up/down randomly. And its shape can also vary between a complete circle and a plane. Player will move inside the tunnel if its curvature is positive and outside the tunnel if its curvature goes negative. We want the tunnel direction and curvature change smoothly.</p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">The basic idea is to derive a section of tunnel from a procedurally generated cubic Bezier curve, namely, the guide curve. This guide curve will determine the general shape of this section of tunnel. Its start point coincides with the end point of last guide curve. Its end point is randomly picked. We want our tunnel to always develop along the +z axis, so we keep our tangent of two endpoints be (0, 0, 1) * constant.<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">The basic idea is easy and straightforward. But we did meet challenging problems when implementing this idea:<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt; mso-char-indent-count:0;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span lang="EN-US"><span>1.<span style="font:7.0pt "Times New Roman""> </span></span></span><!--[endif]--><span lang="EN-US">How to describe the tunnel’s curvature?<o:p></o:p></span></p> <p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:0cm;mso-char-indent-count: 0"><span lang="EN-US">Most of the time, the tunnel is an arc of a circle (or a complete circle). But things goes messier if current curvature is 0, which means the tunnel degenerated to a plane. We can no longer treat it as arc since its radius will be infinity.<o:p></o:p></span></p> <p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt; mso-char-indent-count:0;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span lang="EN-US"><span>2.<span style="font:7.0pt "Times New Roman""> </span></span></span><!--[endif]--><span lang="EN-US">How to ensure uniform speed?<o:p></o:p></span></p> <p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:0cm;mso-char-indent-count: 0"><span lang="EN-US">The speed of player moving along the curve is an essential element in our game. It will only be affected by the interaction between player and obstacles or accelerators. We actually want our player move a contestant length of curve in each step (If it doesn’t get accelerated or hit an obstacle). If using Bezier curve, the naive method to deal with player movement is to use the Bezier parameter t. But for Bezier curve, uniform change in t doesn’t mean uniform speed.<o:p></o:p></span></p> <p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt; mso-char-indent-count:0;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span lang="EN-US"><span>3.<span style="font:7.0pt "Times New Roman""> </span></span></span><!--[endif]--><span lang="EN-US">The workload of tunnel generator is not uniform. Next section only needs to be generated if player get near to the end of current section. But the generating process needs heavy computation. Simply call the generating function when player move towards the end will make the game get stuck for a very short time. This is annoying and will make our user experience quite bad.<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">The method we used to solve those problems and more implementation details will be given in the following blog.<o:p></o:p></span></p>Keenhttp://www.blogger.com/profile/15739390972436912325noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-86595574887424772192011-10-18T12:47:00.000-07:002011-10-19T11:53:33.798-07:00Automatic Tunnel Generation Script Done<span class="Apple-style-span" style="font-size: large;">Result Demo:</span><br />
<iframe allowfullscreen="" frameborder="0" height="400" src="http://player.vimeo.com/video/30747025?title=0&byline=0&portrait=0" webkitallowfullscreen="" width="533"></iframe><br />
<br />
There are aliasing problems for the recorded video because the frame rate of Windows Encoder Express is only 10 fps... The game experience is continues and fluent.Tiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.com2tag:blogger.com,1999:blog-3715646322485743435.post-66837306103738068732011-10-16T21:34:00.000-07:002011-10-16T21:35:00.936-07:00GUI Design ConceptAlong with the game, we are also designing the GUI in a tunnel. For each scene, there is a closed sci-fi door inside of the tunnel. There are several buttons on the door which also act as buttons of the GUI. We have designed the model of the door and now we are working on the textures and shaders.(shown in picture 1)<br />
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCXkA-9EbhIitkIYt4skuchUumkJHGakMMWlVUa6x6Env5SBSHx_8dg4G9AC4R4g0nBrdp7gijgb0VcE22cTvbLeYjQqKEO1zFMjS4xBIC0WqNulljZDGjbsGtLT_6YHb9OQMayJPva10/s1600/Closed+door+in+tunnel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCXkA-9EbhIitkIYt4skuchUumkJHGakMMWlVUa6x6Env5SBSHx_8dg4G9AC4R4g0nBrdp7gijgb0VcE22cTvbLeYjQqKEO1zFMjS4xBIC0WqNulljZDGjbsGtLT_6YHb9OQMayJPva10/s320/Closed+door+in+tunnel.png" width="320" /></a></div>
<div style="text-align: center;">
picture 1</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
Since the buttons are real models instead of GUI elements, We plan to use Unity's raycasting command to tell which button the user presses. When the user clicks on a button, a related light will be shining and the gear in the middle will be spinning, indicating the door is going to open. (shown as picture 2)</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdHLbiCPA8zXykUnHFz_6cIuLEqA7SvKKYaapTMpc4orRn_gh-ngS94OtUYRpZjEXn2LK7Q9jb7n2koQAECgsJEy5F8hRzs7ogQDwbQV_jM1Y62RHR35JuiZq01CZyWaamRtwe86PlnH4/s1600/Click+on+a+button.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdHLbiCPA8zXykUnHFz_6cIuLEqA7SvKKYaapTMpc4orRn_gh-ngS94OtUYRpZjEXn2LK7Q9jb7n2koQAECgsJEy5F8hRzs7ogQDwbQV_jM1Y62RHR35JuiZq01CZyWaamRtwe86PlnH4/s320/Click+on+a+button.png" width="320" /></a></div>
<div style="text-align: center;">
picture 2</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
After all of the animations, the door will open and the scene will go through piece of tunnel and reach another door which carries some other buttons. (shown in picture 3)</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ5HKzXmINe7xtCylRF2xEXDMXZw10xFEOqUi74vkY4YYaXTEU-K-y1BPbTsbcDvdpBbExy4Ak21KB2nOWeyYnpeM_LXyyDIRRcAi-BlcFpTyf7jhthZj3Y-YTbUHa_fPuQfQ47KzJXI8/s1600/Open+door+in+tunnel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ5HKzXmINe7xtCylRF2xEXDMXZw10xFEOqUi74vkY4YYaXTEU-K-y1BPbTsbcDvdpBbExy4Ak21KB2nOWeyYnpeM_LXyyDIRRcAi-BlcFpTyf7jhthZj3Y-YTbUHa_fPuQfQ47KzJXI8/s320/Open+door+in+tunnel.png" width="320" /></a></div>
<div style="text-align: center;">
picture 3</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
Although the GUI is also in the tunnel, the position and angle of the camera are different from those in game because we want to focus on the buttons on the door to make it more convenient. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
In the next few days we will implement the textures and shaders to the scene and add script to the models for user control.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Cheers!</div>
</div>Robin Fenghttp://www.blogger.com/profile/06032819336853134396noreply@blogger.com1tag:blogger.com,1999:blog-3715646322485743435.post-36994459501767546722011-10-07T15:57:00.000-07:002011-10-07T15:57:06.240-07:00Test of Unity Runtime Mesh GeneratingHere I wrote a script which generates 24000 triangle mesh every frame. (Although the are not changed, I updated them every frame, I just want to ensure that my machine is power enough with generating these by Unity)<br />
<br />
And I change the render setting, zoom in the z-far clip plane, attach a small keyboard control script to the camera.<br />
<br />
The demo shows the result:<br />
<iframe src="http://player.vimeo.com/video/30212104?title=0&byline=0&portrait=0&loop=1" width="560" height="441" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>Tiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-72249399436467588052011-10-05T13:31:00.000-07:002011-10-05T14:42:12.129-07:00Find a simple illustration of our game conceptThere is an old but interesting game called Heilopter Game<br />
<a href="http://www.addictinggames.com/arcade-games/helicoptergame.jsp">http://www.addictinggames.com/arcade-games/helicoptergame.jsp</a><br />
<br />
In this game, players are controlling the height of the helicopter by clicking the left button of mouse.<br />
There are many similarities between our game and this one:<br />
1. One degree of freedom.<br />
2. Endless stage.<br />
3. Dynamically generated scene.<br />
4. Obstacle avoidance<br />
5. Main goal of the game is getting higher score (by keeping the avatar not die...).<br />
<br />
The difference between ours and the helicopter are:<br />
1. We have 3D scenes and fancy graphics effects.<br />
2. We provide body movement controllers.<br />
3. We add more elements like acceleration strips, dynamic bonus/obstacles.<br />
4. We have physical-based effects.<br />
<br />
We think sticking with classic game ideas is a good start.<br />
All we should do is adding a lot of new elements to a simple concept.<br />
<br />
-Keep the concept easy and make the game fun by adding more elements. That's the guideline we always want to follow.<br />
<br />
Hope you enjoy the helicopter game:)Tiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-6247420203362339522011-10-04T09:20:00.000-07:002011-10-04T09:23:07.635-07:00Test Your Eyes: Which One Makes You More Dizzy? (It Comes AGAIN!)From the feedback of the last post of "Test Your Eyes", the participants are feeling strong difference between polygon tunnel and cylindrical tunnel, almost all the feedback are saying polygon tunnel makes them more dizzy.<br />
<br />
The only difference between polygon tunnel and cylindrical tunnel is the former has rapid changing corners. And my assumption is people get sick from integrate the corner change.<br />
<br />
But from the implementation aspect of view, polygons are easier to use if we want generate dynamic game scenes, and low-polygons are always cheaper for rendering.<br />
<br />
Inspired by last source in optical illusion, we decide to change the texture pattern in the tunnel and see how we can decrease the dizzy effects in the polygon tunnel.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJdbBJCaFkKGRD9WX70cNeUDnz1t5dmp2CV41GNbngcOJFdtdXfSDyMNr5Q97PBe6cFQLjkJWnaVlYi9L8RMmADuMuniAXUsSWNq_gdXaeWu7xOKRIwsnfe2gX6PjYvjgduPg7q8TObjvy/s1600/PatternChange.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="124" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJdbBJCaFkKGRD9WX70cNeUDnz1t5dmp2CV41GNbngcOJFdtdXfSDyMNr5Q97PBe6cFQLjkJWnaVlYi9L8RMmADuMuniAXUsSWNq_gdXaeWu7xOKRIwsnfe2gX6PjYvjgduPg7q8TObjvy/s320/PatternChange.jpg" width="320" /></a><br />
<br />
And here's the result, let's test our eyes again. (These two shares the same mesh structure, the only difference is the texture)<br />
<iframe allowfullscreen="" frameborder="0" height="210" src="http://player.vimeo.com/video/30023862?title=0&loop=1;byline=0&portrait=0;" webkitallowfullscreen="" width="560"></iframe>Tiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-28756664889900489382011-10-04T08:59:00.000-07:002011-10-04T08:59:12.222-07:00Interesting Source: Optical IllusionsThere is a research called "Optical Illusions" posted at<br />
<a href="http://www.cfar.umd.edu/~fer/optical/index.html">http://www.cfar.umd.edu/~fer/optical/index.html</a><br />
<br />
I just pick some related results to our game design. Basically the reason of the following illusion is called by inappropriate edge smoothing and integration by human eyes.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAnJK8FyJQp8YgOs1DK5-6ghjw5_fotBVHrJum9uDXK7nNgOmX1WXCHLKg5bZ7UXe1GhhMgw3zdWfhYiASursb9mBOG6XVZAwQjL4l6G7uzcjJxua6HdKiGRa-yEBrcG0KLB3ffW9DeBQd/s1600/cafewall.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="153" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAnJK8FyJQp8YgOs1DK5-6ghjw5_fotBVHrJum9uDXK7nNgOmX1WXCHLKg5bZ7UXe1GhhMgw3zdWfhYiASursb9mBOG6XVZAwQjL4l6G7uzcjJxua6HdKiGRa-yEBrcG0KLB3ffW9DeBQd/s320/cafewall.gif" width="320" /></a><br />
<span class="Apple-style-span" style="background-color: white;">The café wall illusion consists of a black and white checkerboard pattern with alternating rows shifted one half of a block and with thin gray mortar lines separating the rows. The pattern creates the illusion of the horizontal mortar lines being tilted. The effects of smoothing on the pattern can explain this illusion.<br />
If we take a closer look at the pattern, we find that the horizontal gray lines create two different types of edges because of their proximity to the black and white blocks. There are gray lines between white and black solid areas (type 3 edges) and there are gray lines between two black areas or gray lines between two white areas (type 2 edges).</span><br />
<span class="Apple-style-span" style="background-color: white;">(If you want to look up what is type 2 edge and type 3 edge, please go to </span><a href="http://www.cfar.umd.edu/~fer/optical/smoothing1.html">http://www.cfar.umd.edu/~fer/optical/smoothing1.html</a><span class="Apple-style-span" style="background-color: white;">)</span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSzOjemR4GTy7-AqI7aFTbDY2eY17J_91Rfea9OlBZy7dkKDPUW6pNlroVCMoPc2zEtxaAFRy06jdiKzyxilE-8N6hSDPVI0rR-fyn0c1tLU8VhEkxSQUlAAMiWo1e4REVAJjRLzTDSpHM/s1600/cafewall-enlarged.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSzOjemR4GTy7-AqI7aFTbDY2eY17J_91Rfea9OlBZy7dkKDPUW6pNlroVCMoPc2zEtxaAFRy06jdiKzyxilE-8N6hSDPVI0rR-fyn0c1tLU8VhEkxSQUlAAMiWo1e4REVAJjRLzTDSpHM/s1600/cafewall-enlarged.gif" /></a><br />
<span class="Apple-style-span" style="background-color: white;"><br />
</span><br />
<span class="Apple-style-span" style="background-color: white;">If we smooth the image and then apply edge detection, we obtain edges as shown below.</span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwva9WcXbyk0rfnJwxEOCvTbi6G8V18mIa_fHct27jT-eSg9xN23v4F1FJJHQZUnGbW1prvH1ZkkfHQCgTQEsSeIGAZ0s28yVE0psX-9ch37wwX4P-_Cb2VQyXKnoUVo03AbcBWxMkTaTW/s1600/cafewall-edges.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwva9WcXbyk0rfnJwxEOCvTbi6G8V18mIa_fHct27jT-eSg9xN23v4F1FJJHQZUnGbW1prvH1ZkkfHQCgTQEsSeIGAZ0s28yVE0psX-9ch37wwX4P-_Cb2VQyXKnoUVo03AbcBWxMkTaTW/s1600/cafewall-edges.gif" /></a><br />
<span class="Apple-style-span" style="background-color: white;"><br />
</span><br />
<span class="Apple-style-span" style="background-color: white;">As you can see, the smoothing distorts the edges to bulge where the horizontal mortar line is between two areas of the same gray value and to come closer together otherwise. A local edge detector produces small edge segments, which are tilted in the same direction as perceived. These edge elements are then linked by more advanced computational processes into lines of longer extent. Assuming that these processes are computationally approximations using as input the position and the orientation of the short edge elements, they will derive tilted mortar lines.<br />
Based on the understanding of how the illusion works we should be able to counteract the effect by introducing new elements into the picture that balance out the illusion. We do this by inserting white and black squares into the corners of the tiles. As you can see, this greatly reduces the illusion.</span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghXi_uMcdihnfvUxKVWcT2k0m52UD3jDIRZcJgNaegfj7tx887AWiG8lqbdwvmxUjAyG8bKoE5O6l_RSzCvM4wXuvk2WN5t5LocM5TSSJeSJt5avso7BOdUYhRl4PISpaBgZHQpGal2Wp0/s1600/cafewall-adjusted.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="153" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghXi_uMcdihnfvUxKVWcT2k0m52UD3jDIRZcJgNaegfj7tx887AWiG8lqbdwvmxUjAyG8bKoE5O6l_RSzCvM4wXuvk2WN5t5LocM5TSSJeSJt5avso7BOdUYhRl4PISpaBgZHQpGal2Wp0/s320/cafewall-adjusted.gif" width="320" /></a><br />
<span class="Apple-style-span" style="background-color: white;"><br />
</span><br />
<span class="Apple-style-span" style="background-color: white;">If we zoom in and look at the edges we notice that the added squares compensate for the drifting of the lines. There is still “waviness” to the edges, but it is too weak to be perceived.</span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtrKVyktKruJtgk11ZYPFN2tLz3hZkC6xuoMwcMtbkZ2OPnbtwGk9wVSIWaPherJoAsz2G7DD2frlL7jODKu8qwqNinBg50IBWq8vKA_1kcb2gNo_uOYmRkLcoA1L6ZKrH5DjCulTBx4F8/s1600/cafewall-adjusted-edges.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="141" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtrKVyktKruJtgk11ZYPFN2tLz3hZkC6xuoMwcMtbkZ2OPnbtwGk9wVSIWaPherJoAsz2G7DD2frlL7jODKu8qwqNinBg50IBWq8vKA_1kcb2gNo_uOYmRkLcoA1L6ZKrH5DjCulTBx4F8/s320/cafewall-adjusted-edges.gif" width="320" /></a><br />
<span class="Apple-style-span" style="background-color: white;"><br />
</span><br />
<span class="Apple-style-span" style="background-color: white;"><br />
</span>Tiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-41106914572630161692011-10-03T20:42:00.000-07:002011-10-03T20:42:09.355-07:00Test Your Eyes: Which One Makes You More Dizzy?<b><br />
</b><br />
<b>Rolling with small angle Vs. Rolling around the whole tunnel</b><br />
<iframe allowfullscreen="" frameborder="0" height="210" src="http://player.vimeo.com/video/29997412?title=0&byline=0&portrait=0&loop=1" webkitallowfullscreen="" width="560"></iframe><br />
<br />
<b>Object nearby Vs. Object faraway</b><br />
<iframe allowfullscreen="" frameborder="0" height="210" src="http://player.vimeo.com/video/29997405?title=0&byline=0&portrait=0&loop=1" webkitallowfullscreen="" width="560"></iframe><br />
<br />
Polygon tunnel Vs. Cylindrical tunnel<br />
<iframe allowfullscreen="" frameborder="0" height="210" src="http://player.vimeo.com/video/29997401?title=0&byline=0&portrait=0;&loop=1" webkitallowfullscreen="" width="560"></iframe>Tiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-71160684172258329122011-10-03T20:31:00.000-07:002011-10-03T20:48:28.436-07:00The Demo of High Concept<iframe allowfullscreen="" frameborder="0" height="420" src="http://player.vimeo.com/video/29997054?title=0&byline=0&portrait=0;&loop=1" webkitallowfullscreen="" width="560"></iframe>Tiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.com0tag:blogger.com,1999:blog-3715646322485743435.post-7418215177139217112011-10-03T19:40:00.000-07:002011-10-03T19:40:20.366-07:00High Concept<div style="background-color: transparent;"><div dir="ltr" id="internal-source-marker_0.41300148982554674" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sliding in the Deep</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Keen Sun, Robin Feng, Tiantian Liu</span></div><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br />
</span></div><div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">High Concept</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sliding in the Deep delivers a stunning motion-controlled tunnel experience. Test your agility in an ultimate challenge with smooth 3D graphic. Concentrate, keep your body moving and score as high as possible!</span><br />
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Features</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><ul><li style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Highly Immersed Game Experience:</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> We allow players use body movement to control the avatar, together with the first person camera to make players wh</span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">olly immersed. </span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">We are not going to use Kinect because we would like to use least expensive devices but still bring the users maximum involving experience. We will capture the user’s face position and trace it during the game to control the avatar.</span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></li>
<li style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Diverse Bonus/Obstacles:</span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> There are many kinds of o</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">bstacles with different shapes and sizes which will make benefits/troubles to players.</span></li>
<li style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Fancy Graphics Effects:</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> Smooth and appealing visual effects give players the best sense of speed. Players will get dizzy when hit the obstacles. The view will be blurred when get accelerate</span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">d. </span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The textures of the tunnel, sliding speed of the player and the locations of the obstacles will be carefully designed to avoid inconvenient feelings.</span><span style="background-color: transparent; background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></li>
<li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dynamic Scene Generation:</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> Game scenes are generated randomly and dynamically. Players will never get tired because they can never enter the same tunnel again.</span></li>
<li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Undo IT When Things Go Wrong:</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> We provide a flashback function which gives players limited opportunities to restart at some previous time. Hope they won’t make the same mistake again.</span></li>
<li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dual game mode:</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> We will implement two game modes, classic mode and time mode. In classic mode, players have limited lifes, once they collide with some obstacles, they lose a life and game is over if they lose all the lifes. In time mode, game will ends after certain time, and players are spurred to run as much far as possible.</span><span style="background-color: transparent; color: red; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></li>
</ul><br />
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Player Motivation</span></div><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Slide as deep as possible in the mysterious tunnel. Avoid collision with randomly raising obstacles. Get as more bonus as possible.</span><br />
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Genre</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tunnel speedy exploration / Somatic Game</span><br />
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Target Customer</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Players who are looking for the ultimate immersed control experience, sense of speed and wonderful graphics.</span><br />
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Competition</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">None.</span><br />
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Unique Selling Points</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><ul><li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Highly accurate and interesting control method</span></li>
<li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Fancy visual effects</span></li>
<li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dynamically generated scene</span></li>
<li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Flashback function</span></li>
<li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dual game mode</span></li>
</ul><br />
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Target Hardware</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">PC. For the best experience, a webcam is needed.</span><br />
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Design Goals</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Simple: </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Relatively slow sliding speed with fewer obstacles create an easy way to learn and play. Hints will also appear before the obstacles appear.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Hot: </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Fast action. Hints disappear and more obstacles come up with various shapes, sizes and combinations.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Deep: </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Even faster if the player hits a accelerator. The tunnel will change more dynamically. Obstacles might move instead of stand still. Other tools are also available to create special effects like convert left/right direction.</span></div>Tiantian Liuhttp://www.blogger.com/profile/07735924901241787453noreply@blogger.com0