Wednesday, January 31, 2007

Meeting with doctor in CUH

We met with Deborah Ryan in CUH on Monday 29th January and she outlined a typical case of a patient entering A&E. Here is a rough transcript of what she said:

Case #1

A 36 year old male, one week post-op, driven in by a member of his family.

The nurse takes the info from the patient and passes it on to the doctor.

Info :
Lower abdominal pain
One week post appendicectomi
Epigastric
Some distension
Feeling nauseous
Feeling unwell
Mild tachycardia
Heart Rate : 105
Blood Pressure, stable, 135/85
No temperature

Blood is taken by the nurse in A&E
Doctor should cross check whether the patient was in before.
Doctor comes to patient who is lying on bed in a cubicle.
The patient hasn’t vomited
Mild pain
Mild constipation
Epigastric pain
Right lower quadrant pain
Blood pressure is a little bit high.

Past Medical History:
High cholesterol – on a high dose of medication for it (14mgs)
Past history of alcohol abuse
On a binge the night before
Was on a binge the night before the operation
Put some of the pain down to the drink
Smokes 10 – 15 cigarettes a day
Married, one child

Family History:
No major diseases
Uncle died suddenly in his 40s (maybe heart related)

Review Symptoms:
No headache
Some dizziness
On Tranadol (painkillers)
No urinary symptoms
Tachycardic

On examination (takes about 15 minutes):
Pale
Unwell
Sweating
Abdomen mildly distended
Bowel signs are present
Respiratory system is clear
Chest is clear
Cardiovascular heart sounds 1 & 2, no murmurs

Neuro examination:
Grossly normal

Repeated checking of vital signs:
Still tachycardic
Blood pressure 150/85

After examination:
Doctor looks for an ECG (nurse places order)
Orders bloods (fills out forms)
Orders chest X-rays

Checks last weeks blood results:
High cholesterol (increase risk)

Run cardiac enzymes
Labs have problems running bloods because there are too many liquids in them
ECG shows SVT

If the patient becomes unstable:
Shock him using Defibrillator

If the patient is stable:
Give medication
Painkillers
IV access
Oxygen

Later, the patient is experiencing no pain:
Add on cardiac enzymes
Look for a repeat ECG and cardiac monitoring

At this point, the doctor would start looking for help from the senior doctors

Saturday, January 27, 2007

We have finally figured out how to import our own individual animations for each character (player and NPCs) and call them by binding them to a key in default.bind. The next issue we face is calling a .dsq animation when the player enters a trigger area in the game world. We have managed to get this working with animations on the player character but not with animations for the NPCs. Also, we are having problems in that the triggered animations is being called when either the player or NPC enters the trigger area and we need to be able to specify that we want only the player to be able to trigger the animation in the code. We also need to specify which NPC the animation will be called on.
Our chatHud is finally fully functional and we are able to output messages to it when the player enters a trigger area in the game world, eg. when the player approaches a patient the chatHud will display a greeting message.
One of the biggest problems with the torque game engine is positioning the NPCs. Torque was built as a game engine mainly suited towards multiplayer FPS games. In these games the players are randomly spawned throughout the game world. Obviously we cannot apply the same pattern of NPC positioning to our game as this would put patients and doctors in areas of the hospital that they logically should not be. We overcame this by each NPC calling a function that maps it to its own individual co-ordinates.
As well as coding we have done further interior and exterior modeling using 3ds Max and Quark respectively and have added some fully textured objects to the game world.
We need to keep working on the trigger areas and linking them to animations and functions as many of the different aspects of our game developement plan will rely heavily on these triggers.

Thursday, January 18, 2007

Recent Progress

We managed to import a bot to the game and were able to change his appearance from the standard blue man to the Orc character that comes with Torque. We were able to get the bot moving around the game world by having him following a pre-determined path. We also managed to change the speed that he was running at to make his movement appear less frantic and more "human".
We have also converted our first 3ds max model that we have modeled ourselves. It is a model of a hospital bed. Having converted it to .dts inside in max we were able to add it to the game and scale it to an appropraite size. However we have been having a problem with all of the textures we've been importing into Torque and even the textures that have come with Torque, such as the red Torque Game Logo item. The textures flicker randomly as we move throughout the game. Its possible this is happening because of the machine on which we're running Torque but at the moment we are unsure of the cause.
We have also been successful in adding a trigger box to the game world here by when the player enters the triggered area a function/animation is called. At the moment we have only done this using the jump animation.
Since we are considering the possibility of disabling the mouse as a means of looking around and using it solely to select buttons and objects on screen we decided it was nessessary to be able to create keyboard functions that would allow the player to turn left and right. We have been able to add these functions and map them to keys on the keyboards. We have also adjusted the ingame pitch so that the player is unable to tilt his view into an awkward angle.
We have also been doing work in relation to printing messages to the game screen, ie. in the event of the player colliding with an object or person. At first we focused on doing this through use of the bottomPrint command but following a lot of work on this command we were unable to get it to work properly. We then looked to adapting the chatHud that is used in the starter.fps example that comes with Torque. Following a lot of time and effort we now have messages printing to the chatHud using the messageClient() command. However there is still a lot of work to be done using this command properly.
We attempted to add object selection to our game by way of clicking on an object or person through coding the engine and followed a long tutorial on how to do this. However, at present, we have been unable to get this working.
We also attempted to add a context sensitive crosshair to our game whereby if you moved the cursor over a patients arm the cursor image would change to an image of a hand or if you wanted to administer an injection the cursor would change to an image of a needle. We haven't been able to get this working properly but think that we are not too far away from being able to get it going.
Our main preoccupation at the moment is to add further animations to our player and to the bots, beyond the standard run and jump animations. This is proving far more complicated than initially anticapated although some minor headway has been made. This will continue to be our focus for the time being.

Thursday, January 11, 2007

Meeting

David, just incase you didn't spot the email we sent we were wondering if we could get a meeting with you some time soon?

Sunday, January 07, 2007

Saturday and Sunday

After attempts to mod the game engine to allow Object and NPC selection Friday and Saturday we decided to move onto the in-game dropdown menu.
We started by editing playGui.gui. We placed new buttons across our playing screen and attempted to attach functions to these buttons. At first it was not clear how this could be done or where the functions were to be written but after looking at the code from our mainMenuGui.gui we saw that the functions had to be written in the main.cs file.

Our intention is to give each button its own .dsq animation file as well as an action but for testing purposes we used a premade .dsq Jump which is already mapped onto "space".
We created the new function "jump" in the main.cs file which called the trigger $mvTriggerCount2++; which we found in the function creating the mapping to the "space"
This trigger is connected to the .dsq file that makes the character jump.
When all this was done correctly, during the game play we now have a button the users screen. The user can at any time press "m" get a cursor and press the button. This button calls the trigger which in turn calls the .dsq file which makes the player jump.
One issue which came up was when the button is pressed the .dsq loops and won't stop until the button is re-pressed. To stop this from happening every time the button is pressed the function is called twice.
Our button is now fully functional with no problems.

Friday, January 05, 2007

Friday

Today we managed to get the mouse working as a means of looking around (pitch,yaw) inside the game by editing the playGui file. We then went on to to add new code to the default.bind.cs file inside our game which now allows us, while in-game, to switch back and forth between using the mouse to look around and using the mouse as a curser to click on in-game items or Gui items.

We then spent several hours trying to code up a means of interacting with an object by clicking on it eg. getting the click to register with the object that the cursor is hovering over. However we have had alot of trouble with this and have not gotten it to work properly yet. We are also having a lot of trouble implementing an in-game Gui drop down menu although we have been able to put one into the game, we are having trouble customizing it and linking it with corresponding actions.

Thursday, January 04, 2007

Thursday-Update

The blog has been made public

Thursday

Today began with trying to fix the objects we exported from Max to torque. The problem with the objects was that the objects would appear but the collision detection would not work. This problem kept us busy for many hours. We finally fixed it by instead of making one object we had to make 1. the object 2. a collision detail( not object) that was invisible but collison detection worked 3. a col-1 object that also created the collision detection then they all had to be linked with the "Embed Button" in the utilitilties section which we did not have so we had to import a second plugin into max which had an Embed button.
Now that we are able to import basic model from Max to Torque we attempted to export a Simple "sofa" model from Max. Straight away we relised we were going to have a problem with all the models from any resource. The models all come in high resolution for CGI videos not games. The poly count is too high to be run inside any game.
Fiona told us about a program called Vizup that decreases the poly count on any .obj model so now we must:
>Open a .max model in 3ds max
>Export the model in .obj format
>Open the .obj model in vizup
>Decrease the poly count
>Export the model in .obj
>Open the .obj in Max
>Create a collison detail, a col -1 and embed them to the model
> Export the bounded model as a .dts
>Import into Torque

As of now Vizup is not fully functional but its pretty close.

Over the Christmas holidays David and I went through as many Torque Script tutorials as we could find.
Today we decided to put the theory into practice but building a basic game.
All started out well but we soon hit snags. The main one was with the input device. We are able to move W,S,A,D but Yaw and Pitch using the mouse has become a problem as the mouse cursor needs to be used for selecting options on our In-game GUI.
We also had a problem launching our basic prototype as Torque manually names all saved .gui files in Capital form but in lowercase in its scripts. This problem caught us for a while but after looking through the correct Torque script code we relised this problem existed and were able to move on.

As of now we still have input device issues but we have isolated the probelm to the playGui.gui code. This code has issues with understanding if the Gui info needs to be clickable or not. Once we figure out the code to overwrite the programs want to use the cursor to selecet options in the Gui we think that we can code the movement of the mouse to correspond to the yaw and pitch movement of the player.

Wednesday, January 03, 2007

progress

Today we began working on importing the .dif files. We built a sample level in Quark and were having alot of trouble opening it up in Torque. We spent ages working with the exporter and eventially have it working using the "Export220Map/Build High Detail DIF" option so now we can open up the .difs we build in Quark inside TGE to use as parts of our game's level.

We also spent a long time doing tutorials for modeling and exporting .dts files from 3ds max to TGE along with the model's textures. This is alot more complex than the .dif files and we are still having some troubles with the collision detection. We were bogged down in alot of compatibilty issues with 3ds max and the Torque exporter plugin for it as there were many errors with the plugin for 3ds max 7 but we eventually got the exporter options inside 3ds max 7 working using a plugin designed for 3ds max 6.

We are going to spend the rest of the night trying to get the collision detection working properly and if we can get that going we'll be able to start using Torque script tomorrow to implement some of our basic objects.

We also managed to get Torque Showtool Pro unlocked and running properly as well today which we used to examine our .dts models having exported them from 3ds max 7.