NM Virtual CS Department Big Board To-Do List

Jobs are numbered chronologically, which may not be an ideal organization.
#JobPersonStatus
3Avatars' heads should show who is talkingziad in avatar class but not called, use for VOIP status
9Turn rooms' data from previous CS 579 courses into .dat formatvarma2nd 579 CVE course data mostly done already
11Get ssh tunnel mechanism workingstandalone tunnels work; launching tunnel from inside unicron doesn't work yet
13Add dynamic state and server forwarding for whiteboards/blackboardsUse SVG subset? Develop or adopt generic dynamic state update protocol.
14add white/blackboard drawing to clientpkillouga "whiteboard session" tab
20client needs automatic reconnect to server when connection drops abakerIn recent, client was not hung after connection dropped.
25refine local (photo-based) texturesreplace GIFs with JPG's, but not until G5 is solved
26try out UDP for avatar motionabaker
26add interesting virtual objectsfollowup Shyam's graphical implementation with dynamic behavior
28add avatar orientation to persistent server stateakshay angle is saved but not yet getting restored
30add user statistics to persistent server stateAkshay so we can remember what users have done what for how long
43server log forwarding(limited) ability for admin users to request that logs be copied to them
45client and server hang after guest loginAnil?
48add a way for end users to change their passwordAnil
50add session recording facility so clients can remember their own sessionsremember those important conversations and instructions delivered via chat; chat recorded to Moodle has been prototyped
54check # of parameters to commandsissue "usage: ..." message when user gives wrong # of arguments
63add a command line option or internal command to re-enable mode 1 out of body movementWynn
66fix walls so they aren't infinitely thinadd thickness in a subclass
70integrate Samat's mapviewrchintal turn it into a "widget" in place of static 2D map
71add windows to more rooms that have themVarma
72control keys in chat widgets should route to 3D window commands
75avatar's heads should rotate to match how much "up" or "down" they are lookingoptional extra parameter of a \move command?
76classroom wing should be raised 1 meterKarthikand improve foyer
78add version # check to protocol loginabakeradded to server; not checked by client yet
79avatar jump commandImplemented by Shyam and Anil, not in CVS yet
81avatar (conservative) collision detection
83watchdog needs to survive broken pipe errors
88\who should tell where each person is and what they are doingabakerwith some privacy options
89moving backwards needs to be smoother, like forwards
91doors should be able to stop in between open and closedthis used to work fine
92add to model.dat a Title fieldAkshayso we can make other worlds besides NMSU Science Hall
96switch to JPEG faces (and other textures?)> 256 colors makes a big difference on faces; can't do until G5
98Suck in "live" whiteboard content from hi-res webcamagaddam,vijaya
100save a snapshot of the whiteboard prior to each Erase op
101define low-bandwidth graphics languageSVG replacement, with Joe Pfeiffer
102add faint lines at corners so they're more visible
104graphical model.dat editor
105render (more) as needed when a door opens
106make Client window resizablealmost works, needs equivalent of clicking on current tab after resize
107add collaborative source code editingiyad
108add collaborative compile message viewing
109add collaborative executing/debugging
110add away-from-keyboard accounting in server
111server does not always recognize logouts
113add "now serving" queues to instructorsso students can see who is busy
114merge model.dat and static.datfor easier transportation/sharing of model files
115file transfer mechanismAnilextend earlier mechanism to handle longer files
116Unicon language should auto-catch broken pipe errors and turn them into eof / failure
117fix spelling of "corridor"
118if someone's avatar is missing, autocreate one for them from guest.avt/guest.gifAnil
119add open(...,"m", timeout)
120implement a voice tunnel tunnel our voice UDP via Unicron TCP? or other workaround for clients without valid IP #'s.
121Quit shortcut (ctrl-Q) should ask if you are sure first
122multiple .state files on serverziad.state in 3 different rooms, for example
123create an autorun.inf file to launch our installer from the CD see microsoft's references
124add -no3D optionCVE should be able to run on 2D-only clients
125avatar eye height should be computed from avatar heightnot hardwired to 1.5m
126fix third person view "y" bug
127IDE mouse click should set focus and does notworkaround is to press an arrow key
128\inform messages should begin better than "\inform" and I am not sure if we have to hear about every single room change.
129watchdog "probing to find out if it is unicrond" can hang
130coordinate warps view out and away from building for no reason
131add multiplatform pseudotty to Unicon
132upgrade teleportsupport teleporting to rooms or users
133doors' dynamic state should include locked/unlocked
134add virtual keys
135room-based autosharing of documentsIDE autoinvite/autoaccept
136add command for server-download of whole virtual world
137add commands for virtual world edits\addroom etc
138user.state files' x coordinate should be trimmed when written
140WINDOWS face file uploads are corrupted/bad
141texture resize bugon linux x86, textures that are not power-of-2 mess up
142on initial startup (at least standalone mode) fix to not be looking upward
143fix door initializationthey look "open" but don't work until closed/opened, etc.
144avatars on ramps should appear raised to other users
145ramps should support colors/textures
146ramps should be able to rise west and northnot just east and south
147screen goes white when new user logs in or logs out
148avatars and ramps need to use WSection() (check for any others?)
149add \collect and \memory commandsimprove remote info and administration
150amaker dies when server is down needs to check server is up before it even runs, and handle crashes without losing user avatar data.
151this is the End of the todo list
Server can die reporting a failed attempt to read a file not open for reading, reporting a read(file(:4500)), as if its possible for a listener to get promoted to regular mode when select() returned it, but it wasn't actually opened yet? Or maybe the file gets closed after select() has returned it. If an open network connection gets closed at the other end, maybe it should cause read()/sysread() to fail, instead of runerr?

OpenGL / 3D Facilities To Do List

#JobPersonStatus
G1Font supportOmar done; alpha testing
G2Improve transparency support
G3Add miscellaneous polygon mesh modes done; testing
G5JPG texture supportOmar needs retesting, known bug on Windows
G6Fix FillPolygon to handle concave polygons See GLU tesselation
G7detect when we run out of texture memory
G8add automatic mipmappingon big video cards, anyhow
G10detect graphics hardware specificationscan tell video ram on most machines
G11debug or rewrite calls to gluScaleImage()isn't this too slow?
G12WriteImage() should support subwindows and/or 3D windowscode can be borrowed from where Texture() turns a 3D window into a texture
G13add ability to free textures when no longer usedsee glDeleteTextures(); maybe done, at least textures can be replaced
G15create a more direct writeable texture typeOmaropengl-native in-client-memory representation
G16add (read-only) 3D platform attributes glGetString() can return us glversion, glvendor, glrenderer, glextensions
G17texturing in bad format should fail, not runtime error and if a .JPG is in a file named .GIF, we should just succeed as JPG
G183D object selection support

Done List

1Merge 3D window and chat window into GUI.Dr. J
2Visible names on avatarsYo
4Convert please11 to FHN coordinatessee please12
5Create 3-room 3D model for please13 (167, hall, 125)Dr J
6Update UI to IVIB V2Nolan
7Add UI source snapshot to CVE CVSHaniat least partly done
8Merge CVE GUI into UI as "tab" widgetsHani
12Streamline Account Creation and Guest CreationKosta
15Suck in "live" whiteboard content from XML/SVG service
16move connection logic from chat window to session class, etc. Dr. Jdone when we got rid of chat window...
17Client should "remember" last username, use as default in login dialog
18server needs to not die with "Broken Pipe" when client terminates suddenly Kosta due to chatwin resize (1), due to "Broken Pipe" (3)
19server needs watchdog daemon to keep it up 24/7 Kostamaybe done
21add help window invoked by F1 key and menu option Hani
22integrate voice chat capabilityZiad
23integrate sound effectsAnildoor opening is in CVS, along with many sounds to integrate
24render-on-demand (only what is visible to user)Akshay
27login dialog: pressing carriage return from the user or password field should log onjeffery
29add server record of: how long the server has been upKosta
31remove network code from model.icnDr. Jrestructured classes
32add texture classRashmimaybe needs some debugging yet
33add a command to change user's passwordKosta
34server logline short timestampKosta(2/3/05 22:06) instead of (Thursday, February 3, 2005 10:06pm), etc.
35sort list of users in accountadminKosta
36messages from server should not say they are from userDr. J
37Use Texture() and Texcoord() instead of using WAttrib() everywhereadded WAttrib() that generates its displaylist elems
38Make Room / Model dynamic data instead of code see please13.icn and sh167.dat
39default command Dr.J repeat previous command, e.g. say
40when someone moves, chatwin output hung up until you click in your window and back in your chatwinDr. J got rid of chatwin
41client goes into pathological garbage collecting loop when server dies.loses connection message, fairly gracefully
42support multiple names as aliasesKosta#17 solves what this was about
44doors look awfulsome non-textured doors...
46add all the major cooridoorsDr. J
47add door state to the persistent server stateAkshay
49change model.icn room datafile parser to infer floor coordinates from room dimensionsthis works already. improved floor parser code might allow different floor types.
51third-person camera should not back through a wall behind avatarDr. J
52prevent same user from logging in twiceKosta
53fix bogus face texturesometimes blank, sometimes shows wrong person's face; should check if a texture fails and revert to a default
55room change messages when in CVE by oneself suppress "nobody to talk to"
56server generate avatar create remote's on loginAkshay (Dr. J)
57remove .txt filesYo (Dr. J)
58client seems to hang if server is not upafter connection fails, movement was frozen
59guest creation falsely reports authentication failure if server is not upKosta
60fix filename truncating in nsh using explicit \avatar wynnWynnhasn't reappeared, not sure about it
61fix patcher to not update splash.gif spuriouslyDr. J
62fix server crashes on null passed into selectDr. J
64fix .gif's that are checked into CVS in non-binary modeKosta
65if client dies abruptly, server thinks user is still logged inDr. J see #52. At present, server logs out old login when new valid login is presented.
67truncate real #'s passed to \moveDr. J17.59354878 should go to net as 17.59
68investigate unicrond startup timeI am not seeing a problem at present
69avatar should turn when camera turnsDr. J
73plaintext keys in 3d window should route to text input widgetDr. J
74bundle/piggyback avatar body part motions into single packets
77fix over-the-shoulder mode camera jitterDr. J
80chat should not repeat your utterances in the log window twice
82doors should not autoopen, at least not by default
84responding to window events needs higher priority than net eventsmaybe has been mostly addressed by now
85several textures not in CVS in binary modeRashmi (Dr. J)seems these got taken care of
86modify model.dat and model/ code to allow different wall textures in different rooms
87window label/title should indicate current roomDr. J
90typing a blank line causes a server crash?[Invalid mesage not sent to server]
93get rid of DBM databasesthey are a portability hazarddone by now?
94eliminate redundancy of nodechange and inform eventsDr.Jserver should gen informs when it receives a nodechange
95camera's up/down angle needs to persist across turns/movesDr. J
97fix derendering leakKarthik, Varmadisplay list grows indefinitely as you move; related to #37
99"fix" avatarsYo start with shoulders, and feet
103fix doors so they open the way they do in real lifevarmaso doors do not open out into the corridors
112add a "listener" port to clients for P2Ptried, with bad results
139maximize -- subwindow doesn't resize for maximizeDr. Jseems fixed
G4Add built-in texturesOmar
G9tune performance of traversefunctionlistOmar
G14add peephole optimizer to display listpossible but no longer planned