Undergraduate Thesis Project

Interactive Virtual World Experience: A Java Implementation

My bachelor's degree final year project was a real-time virtual world system. It involved network socket and multithreading programming skill heavily. So, why was it so special about this project?

Communication plays a very important role in the human history evolution. From the century of Morse code technology until today’s Internet technology, we are trying very hard to improve the communication techniques. At this century of computing world, we have the modern network technology to support our communication channel. Thus, it makes our distance becomes short and sending information becomes cheap and instant.

Currently in the market there are plenty of chatting and messaging systems that allow anybody online to interact and chat with others. For examples ICQ, IRC, yahoo messenger, MSN messenger etc. It is actually a kind of method to communicate with others who is online as well. Most of these chatting systems use text-based entry from the keyboard and pointing device like mouse to click on some functional buttons. It is the most common and easy way to talk to people online. Of cause, some of these systems include some extra features besides sending messages, like transferring files, sending contacts, sending URL, sound feedback etc.

In the computing world, people who are not addicted to the chatting program, he or she might be addicted to game. There are a variety of games in the market nowadays, including puzzle games, arcade games, word games, card games, adventure and strategy games, multi player games etc. Since these two areas are actually so much attractive for our human being, then why not we incorporate game and messaging system together to create such a system for people to join in the virtual world and start to interact with each other. With modern network architecture and technology, having such a system is no longer impossible. In fact, it is just a matter of how real this virtual world can be built.

With the idea of virtual world, those people who join in are not only able to communicate with others or play games with others, they will be allowed to express their feeling as well. Everybody in the virtual world can have the ability to mask his or her feeling. How this actually can be done? Of cause, with the ease of studies on human psychology, AI technology, 3D graphics animation, high speed processing computer, high speed network etc, we can actually create our virtual world in future, where by human will just need a computer with the Internet line to join in this virtual community. This virtual community can allow us to act as different character at any time we wish to.

We have social masks and business masks, which we “wear” depending on what we’re doing, where we’re going, and the people with whom we’re interacting. Our behavior becomes an emotional mask. In a discussion on CyberMasks at Computer Game Developer’s Conference in 1997, Barbara Hayes-Roth cited the way feeling and actions are connected as described by William James:

Our natural way of thinking about emotions is that perception of some fact excites emotion and this gives rise to bodily expression. Common sense says we lose our fortune, are sorry and weep; we meet a bear, are frightened and run; we are insulted by a rival, are angry and strike. This sequence is incorrect.

My theory on the contrary is that bodily changes follow perception of the exciting fact and our feeling of the changes is the emotion. Thus we feel sorry because we cry, afraid because we tremble, angry because we strike.

Therefore, we will really love this system if it can allow us to mask up our feeling in order to act as a different character at different time. Think about it, we don’t have to be ourselves at all time in the virtual world, things can be so much different and we can always have new experience with different characters. I personally believe everybody will just like to join in because of the interactive experience.

For further research and more detail information, please download my project source code, user manual and documentation from the links below:

Project Source Code (*Note: The video file is too huge, therefore it is not included.)

Project Documentation

Sample Screen Capture

Below here shows you some project screen captures.