Along with the .NET development that we’re doing, those of us who are going to be heavily involved in creating the virtual worlds area of the site are learning tons of new skills – it’s been fun. I’ve been sketching out maps of the core communal areas, and we’re learning Blender.
Since what we do needs to be part of the existing site, we’re starting simple. The initial criteria was as follows:
- We need as close a relationship between the 3D environment and the flat web environment, balancing that requirement with the need for a real, immersive world.
- Basic elements of the site (profile information, mail, galleries, blogs, etc.) should be available in both areas, formatted differently to suit the medium used. For example, when in the 3D environment, you would be able to right-click on other members avatars and be able to see their bio, possibly a small thumbnail of their profile picture, and a link to their profile area. You could check your mail at an actual mailbox its the same messages that you see in your inbox on the site. You can view members gallery images and videos in an art gallery, or by looking at their scrapbook, or by seeing videos on screens in a room. Again, the same information.
- Design, development and even initial planning should be shared with community members. Students should gain real-world game design and development skills from working on the project, as well as a real-world credit for a CV. This will involve creating tools to make creation of content easy for non-professionals, and also a method for submitting material for inclusion in the community as a whole. (Just as in communities, people can create private content for use in their community and school. It wont be subject to a quality check, and wont be accessible for members outside that community. High quality content, however, can be submitted to us for evaluation and inclusion into the overall community content, allowing members to contribute and share material, and benefit from their contribution (points, etc.).
- Users must be able to create a highly individualised avatar to represent them in the virtual environment. Contrary to an MMO game, however, they will be limited to one avatar just as they are limited to one unique account on the system. People will have the ability to change the look of their avatar, however again, contrary to the way that a game avatar works.
- Users should be able to create and furnish personal spaces a home room, a community home room (think the Gryffindor communal area).
- The world design must support instancing. We would have a capital city, for example, but home areas and community areas would be instanced (i.e., not have an individual presence that everyone can see). If a learning instance designed to let students experience a pivotal moment in history was built, for example, it should be instanced so that many users and classes can visit it at the same time without crowding. A virtual meeting room for a school should be instanced so that multiple teachers can use it at the same time.
- We need to provide for virtual meeting and teaching areas, with shared whiteboards, video screens, etc. Information either typed or drawn on the whiteboard should be saved to that communitys resources area as text files and .jpgs.
- Interaction in the virtual environment would also have to tie in with the current points system so that users can level through their activities.
- Users need to be able to choose a personal avatar to represent them on the site. The avatar creation area will offer the ability to choose different body types, different skin colours, different hairstyles and hair colours. They also need to be able to choose a basic look so they can start with one outfit. Users should be able to change their avatar.
- Users will collect different clothing for their avatar, and be able to switch in their personal areas.
- Avatars should have some basic animations/emotes available to them from the start: wave, cheer, walk, run, jump, etc. Later on, dance and more complicated movements would be nice.
NPCs (Non Player Characters):
NPCs should have varying levels of interaction built into them. Examples of NPCs would be:
- Storekeeper who sells you additional objects based upon your xp level
- Quest-giver NPCs
- NPCs who give directions
For instance, a quest-giver NPC would have the following dialogue when you click on him:
Greetings, friend. Are you prepared to take the welcome tour of the city?
Upon acceptance, the NPC starts walking, and periodically points out useful areas. (Quest is accepted, and is assigned to member in an inactive/unfinished state.) When he reaches the starting point again, he thanks you for taking the tour, and a message displays that you received 5 xp. (Quest moves to finished state, all criteria having been met, and the 5 points are awarded.) If you have already taken the quest, he would merely say Greetings, friend. Its a nice day and not offer you a quest.
We need some discussion around how to handle a single, fairly limited environment that can potentially have thousands of concurrent users, without sharding the environment.
We start with a basic town as a central area, with a few basic buildings:
- Meeting/social areas, both indoor and outdoor (a series of parks/gardens, taverns/restaurants, etc.)
- Art gallery (showcase of members work)
- Movie theatre (film showcase)
- Club (member-created music, place to socialise)
- School (instanced area with shared whiteboards for text, video, etc.)
- Lecture hall (similar to school area, except larger, for community-wide gatherings, must still support instancing).
- Stores, based on the assortments in the shops we need to be able to tie in dynamically with the actual shop assortments.
There also needs to be an option for personal environments, and Im not sure how to handle these. They couldnt have a persistent location, as there wouldnt be enough real estate. This is the area that needs to tie in to the profile page (if they choose the template that has an area for it). Perhaps we dont allow access into other peoples personal spaces communal areas are for getting together, and there are no private chat/interaction areas that would forestall a lot of problems with cybering, bullying, grooming, etc. You could view the persons room via their profile page, and the owner could spend time there again via the profile- but you couldnt actually enter someones private space with your avatar. (Discuss personal areas)
Personal areas should include:
- The ability to personalise your space, according to your level and access to items. You should be able to skin it with different colour schemes, pick different furniture styles, etc.
- Your gallery would be represented as a photo album, perhaps, and maybe you could pick one or two pieces of artwork to display in picture areas on the walls.
- Videos could be viewed on your TV, and you could have your music playing.
- The messaging system should be available as well, and you could sit at the desk and write a blog entry.
Media uploaded to the site should be available in virtual areas. This includes graphics, video, written work, and music.
Gaming will be an element of the 3D area longterm, actual MMO-type games that we will create, but short-term we need to have arcade areas where we can pull in Flash games, etc., and play them from within the 3D environment.
- There should be different chat channels that the member can join a general chat channel, perhaps one for his school, and one for his friends list. People could create channels on the fly for different purposes, in order to have a more targeted place to discuss things.
- All chat needs to be logged and monitored, so that we can refer to individual conversations if there are problems.
- Instanced areas, such as the classroom, will have their own chat channel.
- NPCs will have sound files for scripted dialogue, but that should be repeated in the chat area (for members who have no speakers, such as at school, or who are hearing-impaired.
Security: Separation of Kids and Adults
Discuss how to handle this issue. Do we shard the environment, and have kids/teens areas and adult areas? How do we handle approved adults, such as teachers and group moderators, or corporate/educational representatives in Kids/Teens areas?