Thursday, 27 November 2008

Week 10: 24th Nov - 30th Nov: Gantt Chart and Planning

Found out I need to use some sort of chart to show how I am planning my honours project. The example we have been given is a Gantt Chart. I have downloaded a file with will help me make one and I have also looked them up online.


Example of Gantt Chart:



My plan is to make my own gantt chart (or equivalent) for next week. Also need to get some of the draft sections of my proposal done and posted.

Friday, 21 November 2008

Week 9: 17th Nov - 23rd Nov: Plan!

The next step is to keep researching and noting resources, understand exactly how the project will go and what I will have to do, plan time well to do everything and generally write the proposal. shown below is an outline on the proposal which I am going to stick to when I write it:

Introduction
–General overview – Background – initial literature review –annotated bibliography
Motivation
–Why do you want to do this and why would anybody be interested in what you want to do
Research question
–The research question to be answered. Aims and Objectives
Addressing the Question
–What will be done to answer the question -methodology
Plan/ Schedule and Resource Requirements
–What equipment/resources will be needed/used
References and Bibliography
The supporting evidence for your proposal.
-----------------------------------------------------------------
I am going to try and aim for two sections written a week. This should leave time for looking over and tweaking.

Thursday, 20 November 2008

Week 9: 17th Nov - 23rd Nov: Presentation Time

Below is my final presentation:








Overall the presentation went well. I was last in the group of people and this made me very nervous. I was listening to everyone else before me giving their talks and their projects seemed so hard and very involved whereas mine sounds very simple and looks like it wouldn't take much to answer. This made me very nervous and scared thinking about what questions I may be given at the end. However, once it was done I stood waiting for my questions and I needn't have been worried. Henry first asked me what the focus of my project was but he practically answered the question himself as he went on to ask me is it to see at point realistic simulations need to be approximated and I basically agreed with that as I do realise that a point will come but I am going to be simulating realistic movement until the running speed slows down. Dr Ozveren was next to ask me a question. He wanted to know if I would only be looking at bouncing objects and I said not entirely as the ball, when it bounces, will have additional movement of spinning involved so I will be looking into all movement really. This was really the end of the presentation but their last comments to me was that its sounds like an interesting and difficult topic. This put a big smile on my face as it was the the difficulty that bothered me. Here I was thinking, its too easy, its too easy, but in fact they are very interested in how difficult it may be and how interesting it sounds. It was the boost i really needed to get me through this project and it gave me an added confidence in the project.

Friday, 14 November 2008

Week 8: 10th Nov - 16th Nov: Presentation Preparation

I got comments back on my worksheet 4 (shown below):
-
Sounds good to me. The biggest issue I would see with this is actually nothing to do with how older games approximate physics, as it's more an issue of scale. A simple geometric shape like a cone, sphere, or box is simple as you can simply check against the parametric surface and ignore the mesh itself, but as you start trying to do the same physics calculations upon meshes made up of multiple convex and concave shapes it's really only feasible to do “perfect” simulations when there is very little to nothing else being done by the CPU and even the most high-end gaming PC can probably only handle a small amount of low-poly objects. With the point mass and sphere you will most likely find it to be quite simple to do but the real trick will be to optimize your calculations to handle hundreds or thousands of point masses or spheres at a time, preferably without causing a bottleneck on the CPU which prevents your application from doing anything else. So, basically, what I'm saying is there is no question of whether or not you can perform “perfect” simulations, but whether or not you can perform those simulations in a game on objects which actually matter to the game.
-
Also in the email was this comment:
-
I hope I don't sound like I am being too critical of your project. It can be a really good project but from what you've written in the worksheet it sounds like either you expect problems and so don't wish to say your going to do too much for the project (which isn't really bad), or you don't know much about programming physics simulations and are drastically underestimating the computing power you'll be working with.
-
--------------------------------------------------------------------------
-
As I mentioned before, I have had worries and doubts about the project and these comments sort of made me feel it more. I am actually glad that someone else could see it too and so I wanted to find out more. I emailed him saying that I was having these feelings towards the project and that I understood where he was coming from but I wondered if he had any advice on what to do about it. He emailed back with:
-
Well if you still want to do the same project but put a little more into it, there are quite a number of methods for either parametrization of mesh surfaces to better fit their usage in complex calculations that you could investigate. Simply changing your question to involve improving physics calculations efficiency as opposed to asking if it's possible would easily be good enough though. For instance, instead of your question of "Can the movements and collisions of an object on a curved surface be realistically simulated in real-time?", you could change it to something along the lines of 'How can physics be simulated realistically without reducing frame-rate to less than "real-time" rates?' With a question similar to that you could easily do exactly as you mentioned in the "Addressing the Question" section of your worksheet #4 and perhaps focus more on what can be calculated exactly and what can be approximated without losing realism and still make it run fast. A single point-mass or sphere interacting with a bezier surface would probably be difficult to use to benchmark any calculations but you could probably have lots of objects interacting with the same surface without too much problem, or even those objects and the surface interacting with everything in the scene(probably much harder).I hope this helped. You really don't need to change your project or anything, I just thought that perhaps it would be difficult to write a good dissertation on something which could probably be answered as a yes or a no.
-
This seemed a little better to me and got me thinking about changing the question to the above mentioned, as I could see from that version that there was a way of obtaining results if you like and drawing a conclusion. I did decide to tweak the question however, it would not be completely final until I had a work with my supervisor. I am due to see Dr Lucas on Friday to show him my draft presentation and so this would give me the perfect chance (and my final chance!) to speak to him about my worries over the project, ahead of the presentations on Monday.
-
-----------------------------------------------------------------------
-
Just had my meeting with Dr Lucas. He was a little confused by the comments I was given and where I was thinking of changing the project. Eventually, he showed me that it was perfect the way it was. We discussed my doubts on how I would be able to answer the question. He said that I did not really need to look into frame rates as such and just the fact that the ball bounced on the curved surface, showed that the question was answered. It really went back to something I already read and knew. When it comes to physics, 'if it looks right then it is right'. Therefore, final implementation will show that realistic movement can be implemented and I can take into account the limitations in the dissertation. Dr Lucas had a look at my draft presentation too and was fairly happy with it however, he did add a couple of things (such as issues that may come up) to it that need to be put into another slide perhaps. Overall, I am much happier. Even though in the end, the question was not changed, I felt much better about how my project would turn out and how I will gather the information I will need, form a simulation and write up my findings in a concise and structured manner. Now to do the presentation!!

Tuesday, 11 November 2008

Week 8: 10th Nov - 16th Nov: Worksheet 4 and Meeting 1

Shown below is worksheet 4 (it was sent to another student and I am now waiting on comments back):

Introduction

The topic of my project is the use of mathematics/physics in games, relating specifically to the movements and collisions between differently shaped objects and curved surfaces. The aim of the project is to successfully implement mathematical techniques which will hopefully simulate realistic movements and collisions of an object over a curved surface without having to suffer a loss of speed or accuracy when it comes to collision detection and response.


Issues

A big issue that is integral to this project is that when it comes to mathematics/physics in games, it has been said that, ‘if it looks right, then it is right’ [Conger (2004)]. Why should the collisions be approximated and can it be successfully implemented realistically in real-time without much difficulty.

In general, I will implement objects bouncing of a curved terrain taking into account gravity and friction. Hopefully if there is time, I will look into things such as rough terrain (increased friction), wind, other objects (such as box, cylinder etc), multiple objects etc.


Research question

Can the movements and collisions of an object on a curved surface be realistically simulated in real-time?


Addressing the Question

First of all, I want to look at the movements of a point mass bouncing on a flat surface with no friction but remembering to take gravity into account. After this, the same point mass will then be demonstrated bouncing on a curved surface (represented by Bezier surface). After this is simulated, the next step would be to look at a solid sphere bouncing of the flat terrain which would then require the added movement of spinning/rotating to the ball. Of course, once this is done on a flat surface, it will be simulated on the curved plane. To get the correct bouncing effect of the sphere on a curved surface, I will have to take the tangent plane of the curve at the point of collision. With this information, the calculations of the bounce are the same as when it impacts the flat surface. After all of this has been implemented (using OpenGL), I will go back and recreate the collisions for both the point mass and the sphere but this time with friction.

Hopefully there will be time to look into more complicated problems as described above (Issues section).

With the implementation of everything I have discussed, I will hopefully find that collisions can be kept quite realistic without the loss of accuracy.


Progress

So far, I have mainly just researched around the area. I have been collecting more mathematical techniques that will be needed for this project and also teaching myself new techniques as well as revising old ones. I have realised that I will need to learn a few new mathematical techniques and this has increased my interest in the project. I have also tried a few experimental programs in DirectX and OpenGL to see which one would suit my capabilities and the projects requirements best. I have made a decision on OpenGL and hope to start implementing the beginning of my project as soon as possible.
----------------------------------------------------------------------
Meeting one with technical supervisor, Dr Lucas:
I had a meeting with my supervisor to go over everything that will be required next Monday at the presentations. As of yet, I have not wrote the presentation as I am still gathering information on my project and working out finer details. I spoke with Lucas about what I should include in my presentation. He told me not to go into too much detail, keep it to simple bullet points and to focus on the steps of how I will address the question. Another point of advice was to remember that I was still researching the topic and so if any questions came up that were difficult to answer then I should not panic about it and just say that it is something I have yet to look into. My focus now is to get a draft of my presentation done and show it to Dr Lucas this Friday at our next meeting.
-------------------------------------------------------------------
Now waiting on worksheet 4 to come back which will help in the writing of the presentation. I am having doubts about the level of difficulty of my chosen research question. I just seems to easy as if it can be answered by a simple yes or no as I do realise that there are limitations on physics calculations due to processing power which would significantly reduce the speed of a game or application. I am also still worried about how I will be able to draw results and ultimately draw a conclusion or even give a definitive answer to my question from the way in which I am addressing the question. I spoke to Lucas about this and was reassured that the way I am addressing the question is correct and just from the implementation of the ball bouncing on the curved surface, will show the question has been answered. However, I am still unsure. I feel like as it is a project that I should treat it the same way I would an experiment. Looking at the aim, the method, the experiment itself, the results and then the conclusion. And so, I am struggling to work out what results I can get as it will not give me numerical results, and hence from that draw a conclusion to answer the research question. I am sure with more research and thought over the next couple of days will help me to see where my project will go and hopefully , there will be not problems with it that may result in a change of topic.

Monday, 10 November 2008

Week 8: 10th Nov - 16th Nov: Worksheet 3 Comments

This are the comments I got back on my worksheet 3:

(Under Motivation)
You should check out FIFA 09. All my mates tell me that it is the business and that between the latest iterations of FIFA and Pro Evo, FIFA wins hands down. Not sure about graphically but gameplay that is the word on the street. Don’t rely on opinions go out and try it yourself. Rigid body dynamics is the way if you want to simulate bodies falling over realistically such as players getting tackled.

(Under Addressing the Question)
I think you will also have to look in to elasticity and conservation of momentum also. You will need to do all that surface point of contact stuff too. I’m sure you know what you doing though. How will you measure the accuracy of your results? Pictures, videos, actual physical experiments? Not sure if you explained that in the previous worksheets or not.#

(End of Worksheet Comment)
Good proposal overall. As you said yourself more resources are needed this will obviously give you better understanding of what will be required. Good luck and all the best with your project. Hope you liked the feedback.

--------------------------------------------------------------------

The feedback that was given has helped even more. It has highlighted area in which I have not yet looked into or even thought about in some cases. More research has to be done before the presentation next week. The whole project needs to be defined now and work must get started this week on presentation slides. An meeting with my technical supervisor will be made today for sometime this week so look over everything in preparation for monday
----------------------------------------------------------------------
I need to work on preparing for this presentation on the 17th (worksheet 4 should help with this).

Wednesday, 5 November 2008

Week 7: 3rd Nov - 9th Nov: Prep for Presentation - Worksheet 4

Got worksheet 4 to do for next week. Shown as follows:
-
Honours Project Work Sheet - #4
Be prepared to give a short presentation about your project and listen to the presentations given by your peers. You talk is to be about 5 minutes long and should address the following points.
-
Introduction
What is the topic and aim of the project?
-
Issues
What issues do you want to address.
-
Research question
What is your current research question?
-
Addressing the Question
How do you envisage yourself carrying out the project - a short exposition of the project.
-
Progress
What have you managed to do so far and how has this influenced your vision?

Monday, 3 November 2008

Week 7: 3rd Nov - 9th Nov: Worksheet 3

Completed worksheet 3 this week and sent it off and I am now just waiting for comments back. Shown below:
----------------------------------------------------------
Introduction
The aim of the project in general is to research and implement the best techniques to simulate highly realistic movement and collision of an object on a curved surface, that will hopefully limit or negate the need to approximate the movements and also without having to suffer loss of speed, the sacrifice of good graphics/animation or even, less accuracy when it comes to collision detection and response. I decided not to look into collisions and movements over a flat surface as this is only specified to a small number of games. The majority of games do not have flat surfaces and environments are very varied. Therefore, I will be looking into movements and collisions over curved surfaces.
-
Motivation
The use of mathematics and physics in games is very important and all games contain some level of mathematics and physics involved. I am very interested in the use of them in games and how they can be used to create more realism to certain games and in turn enhance the players immersion in that game. However, it has been said that the implementation of physics can be broken down to the rule that ‘if it looks right, then it is right’ [Conger (2004)]. Success seems to be determined by how it looks visually rather than how accurate it is. This is what I am interested in looking at in more detail. Why should accuracy be sacrificed? I want to look into ways of trying to increase accuracy without the loss of visually good graphics. Games which I believe could benefit of this, would be sporting games. Football games such as FIFA and ProEvolution are good examples. FIFA games have great graphics but the movements of the players and ball are not too realistic. Whereas, ProEvolution is quite highly realistic with movements and collisions but the graphics suffer a little. I have been told by fans of the game that out of the two, ProEvolution has better gameplay and ultimately enhances the player’s immersion in the game a lot more. I was also told that there needs to be a game which does both (realism of ProEvolution coupled with the graphics of FIFA). Therefore, I think a lot of people will be interested in what I am looking into.
Even though I will be researching and implementing curved and not flat surfaces, the topic can still be related to back to sport games (i.e. golf) but also to many games which have a curved environment.
-
Research Question
Can the movements and collisions of an object over a curved surface be realistically simulated?
-
Addressing the Question
To answer the research question, I will first have to look at good implementation of Bézier curves in OpenGL to represent my curved surface. This will also have to be randomized (on a mouse/keyboard press perhaps) to demonstrate my work. The next step will be to implement a particle bouncing of the surface. Once this works well, I will look at a sphere (ball) bouncing. With changing the object to a ball other aspects of movement come into play such as rolling and sliding. If there is time, I will also look at other objects, such as box, bouncing and moving over the curved surface. To implement all of these, I will have to take gravity into account in my workings.
-
Resource Requirements
A lot more resources will be needed in the area that is being researched (more journals and books etc) and especially mathematical books (even previous year’s course workbooks). In relation to the implementation of the project, the API that will be required will probably be OpenGL. On the other hand, this decision may change in the future, to DirectX depending on whether I want better performance and appearance of the graphics which will be used. For now, however, the decision will stay with OpenGL.
-
References and Bibliography
Books:
Mortenson, Michael E., 1999. Mathematics For Computer Graphics Applications. Industrial Press (2nd Edition) McReynolds, Tom and Blythe, David, 2005.
-
Advanced Graphics Programming Using OpenGL. Elsevier/Morgan Kaufmann Publishers Conger, D. 2004.
-
“Physics In Games”, Physics Modelling for Games Programmers. US: Course Technology
Websites:
Couto, P. [No date]. Studying Dynamics and Kinematics of a Soccer Ball in a Computer. [Online]. Available From: http://www.hsci.info/hsci2004/PROCEEDINGS/FinalPapers/E00-988182336.pdf
[Accessed 20th October 2008]
-
Anon. [No date]. Physics of Sport. [Online]. Available From: http://physics-of-sport.net/soccer.html
[Accessed 23rd October 2008]
-
Hecker, Chris. 2007. Rigid Body Dynamics. [Online]. Available From: http://chrishecker.com/Rigid_Body_Dynamics
[Accessed on 16th October 2008]
-
Van Verth, Jim. [No Date]. The Future of Curved Surfaces. [Online]. Available From: http://essentialmath.com/FutureOfCurvedSurfaces.pdf
[Accessed on 14th October 2008]
-
Anon. 1998-2008. A First Look At Nvidia's GPU Physics. [Online]. Available From: http://techreport.com/articles.x/15261
[Accessed on 14th October 2008]
-
Bobic, Nick. 2000. Advanced Collision Detection Techniques. [Online]. Available From: http://www.gamasutra.com/features/20000330/bobic_01.htm
[Accessed on 14th October 2008]
-
Lander, Jeff. 2000. Collision Response: Bouncy, Trouncy, Fun. [Online]. Available From: http://www.gamasutra.com/features/20000208/lander_01.htm
[Accessed on 14th October 2008]
-
Lander, Jeff. 2000. Physics on the Back of a Cocktail Napkin. [Online]. Available From: http://www.gamasutra.com/features/20000516/lander_pfv.htm
[Accessed on 14th October 2008]
-
Journals and/or E-Books:
Whitted, Turner. 1978. A Scan Line Algorithm for Computer Display of Curved Surfaces. [Online]. Available From: http://delivery.acm.org/10.1145/990000/988440/p8-whitted.pdf?key1=988440&key2=0358095221&coll=ACM&dl=ACM&CFID=9615735&CFTOKEN=29708554 [Accessed on 28th October 2008]
-
Baraff, David. 1990. Curved Surfaces and Coherence for Non-penetrating Rigid Body Simulation. [Online]. Available From: http://delivery.acm.org/10.1145/100000/97881/p19-baraff.pdf?key1=97881&key2=8868095221&coll=ACM&dl=ACM&CFID=9615735&CFTOKEN=29708554
[Accessed on 27th October 2008]