Our project is a linear interactive education website about local history. It shows about local history by introducing people Brisbane landmark and its history through an old captain. Users will be on a boat trip above the Brisbane River listen to captain about his story and play guessing game about the local old photos. It also has personalized elements that make the user more immersive.
Part A: Design Proposal
Goals to achieve
- Establish the theme and form of the project
- Investigate the interaction patterns of existing websites
- Conduct user research and create personas beased on the result
- Create an interactive flow chart for the website and make time plan for the whole project
My Contribution:
- Participate in the discussion and contribute ideas to the theme and form of the website
- Conducted research on some existing linear interactive sites, including The Boat and Make Your Money Matter.
- Planning the technology that the project may use and assigning the work content
From the beginning of the project, we assembled as the Team History Fan Club, I am the team leader and front-end developer. At the beginning of the project, we participated in the World Cafe, a creative concept exchange meeting. During the World Cafe, we found a concept of a tour of the Brisbane River to introduce landmarks, which made us feel very excited. Because the Brisbane River is one of the landmarks of Brisbane, and it has passed through the whole city, it is very suitable as a carrier to introduce local customs. We then carried out user research based on this basic concept and constructed a background story for this concept. I studied the examples of two existing interactive websites, the boat and Make your money matter, and we decided to make our project an interactive linear narrative game. Our customer base will be history lovers and visitors, and we made two personas based on our target user group.
Our team finally completed a framework, and we decided to use a linear narrative to create an old captain to lead visitors to Brisbane on the river. We call it Brisbane River Adventure, and the website is positioned as an interactive local history education website. When the ship arrives at the landmark, there will be a guessing interactive mini game proposed by old captain. Visitors will be introduced to the historical background of the place, and the user will need to guess which old photo was taken there. This inspiration comes from the guessing game I proposed at Design Exploration. We gave the game a reasonable Background, that is, it is a photo album that the old captain always has, which makes the user more sense of substitution. At the same time, we also want to add more personalized elements to the website, so that users can more fully integrate into the journey of the tour.
At the same time, the team members also draw the interactive flow chart according to our thoughts. In the next step, we will first make a demo, including the first chapter of the game interface, and the three steps of the forward-conversation-guess diagram.
Part B: Minimum Viable Product (MVP)
Goals to achieve
- Create first chapter of Brisbane Tour, including story, graphic material and code
- Create the frame of product
- Connect to SLQ dataset
- Conduct first round of user testing and gain feedback
My Contribution:
- Created the fron-end pages and implemented interaction functions
- Integrate existing graphic material resources
- Turn UI sketches into webpage
- Developed APIs for front-end to back-end connection to facilitate future expansion
- Tried to use more interactions and animations in your animation to provide a better user experience
In this phase we try to make an MVP to further build our project. In this step we try to make one of the chapters to implement our main interactive content, from boating to guessing. In this chapter, the goals to be achieved are: Testing the problems in the interaction, making the site easy to use and interesting.
In this chapter, our team created the content of the first chapter of the story, the graphic materials used in the game, including the building, background, picture drawing of the captain and player characters, and the storage and transmission of back-end data.
At the same time, as the front-end developer in the group, I also tested the feasibility of some of the technologies we expected to use. This includes the use of asynchronous loading to load stories through back-end scripts. And I also try to explore the animation engines and make animations more vivid and interactive.
In this step, I implemented the user's input mode, which converts the mouse wheel event into a forward distance, allowing the user to adjust their travel according to the speed of the wheel. And I tried to add a wobbled special effect to simulate the real river journey. The following code is a code that I created to simulate the ship's surface swaying with the water at rest. The logic is quite simple, but this swaying has been well received by users in subsequent user tests, which is very effective.
function staticRotate(boat, boundary) {
/*
This is a function to simulate the boat swaying in water when not moving.
boat (PIXI.container): the boat container
boundary (float): the bondary for changing direction
*/
boat.rotation += boat.rotateSpeed;
// only rotate when head is above or below the water surface
if ((boat.rotation * boat.rotateSpeed) > 0) {
boat.y += boat.ySpeed;
}
// change direction when hit the boundary
if (Math.abs(boat.rotation) > boundary) {
boat.ySpeed = -boat.ySpeed;
boat.rotateSpeed = -boat.rotateSpeed;
}
}
In this chapter, we have found that our interaction is recognized by the user, and the aesthetics and color of the website are also welcomed by the user. However, the user thinks that the game interface is too small, and the chapter buttons take up too much space. The indicator word "Scroll to start" at the beginning is not clear enough. At the same time, because our photo is randomly selected from the SLQ dataset except the fixed correct answer, it has the poteintial problem that there may be multiple correct answers.
In the final product, we are ready to solve these problems, and to build the functions we have planned.
Part C: Final Product
Goals to achieve
- Finalising functions including personalisations, gallery, user-problem report and full contents
- Settle down the 4 landmarks of Brisbane as our tour chapters
- Create corresponding graphic materials and storys
- Conducting furter user evaluations
My Contribution:
- Created home page - including input nickname and select avatar
- Integrate existing graphic material and text resources
- Adjusted UI layout based on user feedback
- Created a user report and other features and recorded an update log on the website about the page
In this phase we have further refined our project based on our previous progress and added story content to other chapters. Because of the time problem, we have to shorten the six chapters of the previous plan to four chapters. For this we can have time to make more beautiful graphic materials.
At the same time, I also created a home page for collecting user information according to the plan, including entering a username and selecting avatar. I used CSS to transform the form into a ship ticket, which satisfies the function and allows the user to get the feeling of entering the story when entering the website.
We finally selected Toowong, Milton, Queenstreet and New Farm as four of Brisbane's iconic attractions along the Brisbane River, and selected four famous buildings here to create graphics and its story with old captain.
On the other hand, we value the feedback from the users. We have modified the chapter buttons to the side, so the game screen has gained more space. At the same time, we have added a bug report function, which will automatically fill in the chapter and image link to inform developers to adjust the photo blacklist and enhance the user experience.
The new notification have also been redesigned, the way of input is specifically to remind the user to use the mouse wheel to slide. Because in the previous test, the user expressed confusion about how to continue in the color-guessing game. So after the end of the guessing game, there will be another reminder.
As the front-end developer, I keep tring to improve user experience through creating better interaction animations. I used a smoother movement to make the user live a smoother experience while the boat is moving forward. In the old version, script simply calculate the moving distance directly based on the value input by the user, but the animation can be shaking when the user’s input value is very small. In the new function, the boat will move to the target position input by the user at a constant speed, ensuring the movement of the boat keeps smooth.
//This function ensure the movement of boat is smooth anytime
//gameControl.goalPosition is calculated when user scroll the mouse wheel
//gameControl.actualPosition is the actual postion of boat
let distance = gameControl.goalPosition - gameControl.actualPosition;
if (Math.abs(distance) > 2) {
gameControl.actualPosition += distance > 0 ? 1 : -1;
gameControl.boat.rotation = Math.sin(gameControl.actualPosition / 10) / 20;
gameControl.boat.x += Math.sin(gameControl.actualPosition / 8) * 2;
Finally, we performed the work and achieved good results. Our products have been well received by most users. They think that the interaction of our website is easy to understand, and the art style and website design are also very comfortable. Some users have also gave us further feedback, including dialog in some chapters are too long to read.
Eventually our project was nominated for and won the Best User Experience Design Project in the Shcoll of ITEE Innovation Showcase 2019. We cherish this experience of creating and improving the project. This project gives us a deeper understanding of user-centered design.