![]() |
||||
![]() |
||||
| 2010 | ![]() |
NavMeshes | ||
![]() |
||||
| 2009 | ![]() |
Overlord 2 | ||
![]() |
||||
| 2007 | ![]() |
Overlord | ||
![]() |
||||
| 2005 2004 |
![]() |
Mecha-Tron | ||
![]() |
||||
| 2003 | ![]() |
Ablaze V.I. | ||
![]() |
||||
| 2002 | ![]() |
Morph Cube | ||
![]() |
||||
| 2001 | ![]() |
LDEye | ||
![]() |
||||
| 2000 | ![]() |
Roboman | ||
![]() |
||||
| 1999 | ![]() |
Photon 3D | ||
![]() |
![]() |
![]() |
||
| 1998 | ![]() |
Talx | ||
![]() |
![]() |
![]() |
||
| 1997 1994 |
![]() |
Ablaze | ||
![]() |
||||
| 1993 | ![]() |
Stracon 2 | ||
![]() |
||||
| 1991 | ![]() |
Stracon | ||
![]() |
||||
![]() |
As part of one of my studies at the HTS I chose to implement a graphical version of 'talk'; a shell-based application with which users can exchange messages in a terminal-like environment ('talk' has its origins in UNIX history, back in the days when messenger services were still in their infancy more or less).
The 'talk' application is actually a rather straight forward implementation that involves queuing pending 'talk' request in a buffer of a server daemon and establishing a direct peer-to-peer connection between 2 talk applications by exchanging IP addresses and port numbers. At the time I had very little knowledge on UNIX systems or internet/network programming in general so this proved to be quite an interesting challenge (partially because I also had to reverse engineer the protocol from the scarcely commented source code itself).
The GUI was implemented using a freely available library called 'Qt' for X-Windows on the IRIX operating system. The usage of this library would reduce development time quite substantially as it was far easier to implement a window-based interface than if this was to be done with for instance 'Motif'. The downside however was that at the time 'Qt' was strictly user event-driven and required some 'tricky' workarounds in order to handle asynchronous data exchange. This involved using multiple process instances in order to let the application handle its on-screen window updates while waiting at the same time on input data via a socket (actually 'blocking' on it). This project taught me a great deal about internet/network programming, multi-processing/threading and UNIX in general.