ICT312 Virtual Environments for Games and Simulations



This unit was the most involved and difficult of my entire degree. In teams of four people we had to model the entire north wing of the library including all objects tables doors books book carry devices everything then add AI to talk to the player interact with the environment and act naturally using affordances all the objects had to be capable of being moved from their locations and still be used by the AI for things like placing coffee cups down onto flat surfaces. Once that headache was past we had the meager problem of designing and implementing our own physics engine to create realistic rotational and linear physics for all objects and AI, players in the simulation.

Personal Requirements

This was a four person group based unit.
We were each responsible for one level of the library and with modelling all objects contained within that level, I was also involved in much of the coding, some of the AI techniques, book and object manipulation and communication systems.

How it went

This movie is a fraps created intro movie of the simulation created by Steve Stratton and Myself the preview is quite large, high quality and 5 minutes long 89 meg.

Click Here To Download

The end product we produced was a three story library completely textured and filled with real life mirrored objects including artworks, sculptures, desks, chairs, tables, bookcases, books, librarians, security devices, sliding doors, A* pathing meaning the AI spontaneously generates runtime paths from current location to target avoiding all objects in the level while finding the optimal path to the target, runtime placement of books in the nearest bookcase, full object transparencies for windows and glass railings, sliding doors that open and close for the player and the AI characters, fully implemented mood and goal display system, Affordances implemented objects making interactions more lifelike, basic physics, full object picking and manipulation integrated sound and audio effects, dynamic and static lighting.

This image shows the communication and goal display system we decided to create. It displays pictures above the AI's heads which demonstrate either there current mood or current goals at any one time several of the examples shown in the screenshot are looking for a book(book icon) looking for coffee(coffee icon). This image shows some desks and tables with chairs on level three of our three level simulation, also visible at the back wall are some decorations picture hangings and a sculpture. move.
Visible are many AI filling shelves and other tasks, the bookshelf has just been filled on both sides by the AI characters there is a mood displayed on the closest AI character which means it is trying to decide what to do next. The book filling process is entirely runtime generated every time a book is picked up the AI will work out the closest bookshelf to their current position and walk there and fill to the next empty space. This image shows a book shelf before it has books filled to it as well as one of the computer station areas and their computer chairs in the back is a blue paper recycling bin.
This shows some of the pillars, signs and a computer area, this image is important because it shows textures clearly readable regardless of distance from the camera. The textures are very rich and realistic. A different bookshelf once again partially filled with random books, there are some different computer stations against the far wall.
We used this image on the CD cover for the simulation it shows a nice perspective view of the third level of the library with a single AI librarian at the counter as well as several nice textures and many of the third level objects.

The development and modeling process we used was to go through the library photographing textures and cataloging objects also we shot some running commentary movie walkthroughs then we researched what modeling software would best integrate with ourselves and Ogre rendering system. In the end we went with 3D Studio Max and OFusion to convert models to mesh data that Ogre could import.

This is a backpack composed of a chamfered complicated rectangle with an external handle it has four seperate textures and the color black. The library footstool has 1 texture and several colors looks very nice in the simulation.
Sliding glass doors their animation cycle involves expanding the two glass sliding parts while the center top black strip maintains position, and contracting the sliding doors in a similar fashion. This is a candy machine quite realistic looking and nice textures from all angles.
Highly detailed computer mesh was based on a simple chamfered rectangle with six separate textures the result is an extremely high detailed realistic looking dell computer. This is floor two of our level meshes in the end we combined them to form one entire library mesh which contained all of the pillars and some walls and windows.

Problems Encountered

  • Inability to produce results by some team members
  • Commitment Issues
  • Extreme workload
  • Communication
  • Problems Resolved

  • Inability to produce results by some team members was dealt with by keeping our supervisor up to date at every stage of the project, several group members were unable to furfil thier promises and produce results or to ask for clarrification or help at any stage.
  • Commitment Issues were addressed in the same fashion by informing the supervisor when several group members began not showing up to meetings or lectures and addressing the issue as advised by first calling emailing and contacting the members personally and when that failed informing them of thier commitments to the project and advising them of thier chances of failing the unit if they did not commit and perform as promised from that point on.
  • Extreme workload was a constant problem in this project made worse by two team members not contributing to the second half of the work, we overcame this by working extremly long hours and maintaining work ethic and high communication standards and helping each other fix coding and simulation issues throughout the project with the remaining team member.
  • Communication was an issue with two group members only this was not fixed in the duration of the project as the two team members involved did not want to contribute or communicate with us.
  • Conclusion

    This was the hardest unit of my degree and also the best for learning C++, programming techniques, AI, Communication, advanced problem solving and ironically the best and worst team contributions in my experience, it also produced the best final work of any of my other projects and the most impressive visually as anyone who has viewed the video can testify.
    Both my remaining team and myself scored the top marks in the unit and the highest mark for the project itself despite several shortcomings from lack of team member contributions and all the other projects having a full team compliment.
    Overall a fun and rewarding experience.