Hello and welcome to BotLab’s Dev. Blog!
The following is meant to serve as an online reference of our development process and is broken down into team member’s individual roles.
Production
I met the team on Monday, and after setting up the room, we discussed preferred roles and what we each wanted to get out of the project. Fortunately, we have a well balanced team with no overlap in intended roles. The team breakdown is as follows:
Producer: Jehan Sandhu (me!)
Programmer: Guanghao Yang
3D Artist: Kangyan Li
UI/UX + 2D Art: Meng (Nicole) Wan
Designer + Programmer: Trisha Surve
We casually met our faculty instructors, Mike C. and John D, and with their input, soon began blocking out a rough schedule for our core hours. We also began to prepare for our first face-to-face client meeting on Friday by researching organizations and experiences that dealt with bot building, systems learning, and noteworthy games and mechanics.
Following the advice of Mike, we met John Balash earlier on in the week to learn more about our client (they have a professional rapport), how to best prepare for our Friday meeting, and the types of questions to ask of the client. Additionally John will be assisting us with getting Middle School children to playtest with.
We requested equipment and platforms midway through the week, four ipads and four android tablets to use ARKit or ARCore accordingly, and decided on the team name of BotLab. I also reached out to the client via e-mail to set the basic agenda for Friday’s meeting. The latter of the week was spent preparing a short presentation and materials for our client meeting.
We met our client, Bill, on Friday (check out the pictures below!). After a brief period of team introductions, we began open discussion about the project. Our client was very warm and open minded, explaining what the organization wanted while also noting he wanted us to leverage our individual skills towards the team. Additionally, we were able to lock down some constraints: what we make has to be portable and easy to demo on accessible hardware.
Next week we will meet Tuesday to fill out a RACI chart and we will begin daily SCRUM meetings. We’re all very excited to be working with the National Robotics League.
Programming
We did a research on what kind of technology we might use. For now, we think AR could be a good fit to our project.
The most popular AR platforms are ARkit and ARCore.
For ARKit, it’s the technology introduced during WWDC 17. its key highlights include
1.Tracking: Ability to accurately track the device position in the real-world. Using the Visual Inertial Odometer (VIO), the ARKit combines with camera tracking and motion sensor data, with which a real-time position of the device is recorded. Additionally, no tracking cards are required
2.Landscape Understanding and Lightning Perception: iPhones and iPads would be especially aware of the surroundings using the ARKit. It comes with the ability to identify surfaces in the real-world environment, like floor, tables, walls, ceiling, etc. Also referred to as ‘Plane Detection’. Remember observing the vapour and shadow effect in the demo?
3.Rendering: It provides an easy integration with SpriteKit, SceneKit as Metal, with an added support for in Unity and Unreal Engine
It’s available on iOS 11 only
Another choice is ARCore, it’s Google’s answer to Apple’s ARKit was ARCore – the AR framework for Android devices. Compare to ARKit, it emphasis on following:
1.Motion Tracking: ARCore observes IMU sensor data and feature points of the surrounding space to determine both the position and orientation of the device as per its movement
2.Environmental Understanding : ARCore detects horizontal surfaces using features similar to motion tracking
Light Estimation: ARCore detects the lighting ambience of the device, thereby enhancing the appearance and making the visual accurate in real-time
3.User Interaction: With the ‘hit-testing’ feature, ARCore detects intersection of light rays in the device’s camera view
4.Anchoring Objects: To accurately place a virtual object, ARCore defines an anchor that ensures its ability to track the object’s displacement over a period of time. ARCore efficiently improves its understanding of the position and environment.
The SDK preview qualifiers are – Android 7.0 Nougat devices : Google Pixel, Pixel XL and Samsung Galaxy S8
We don’t think it’s good for us to have it on head-mounted virtual retinal display like Magic Leap and Microsoft Hololens as it requires extra equipments and it’s not convenient to bring it to everywhere.
For engine middleware, we would like to pick Unity. Both because we used Unity a lot and Unity provides a good support for almost every AR technology to easily integrated.
Design
Role:
I will be working as a Game Designer on this project and would be leveraging my technical skills to help with Gameplay programming.
Responsibility for client meeting:
For our first client meeting, I was responsible for researching games that incorporate “Stealth Learning” for kids. We had to make sure that we were not only looking at past robotics games that already exist, but also past ETC projects that have cleverly demonstrated this type of learning. I ended up analysing Water Bears and BattleBots: Beyond the BattleBox. It was particularly interesting to understand their design perspectives and principles upon which the games were built. As a team, we had to get as familiar as we could with designing and developing a game for this space. We also had a meeting with John Balash who gave us really good advice on preparing for our meeting with the client as he knew the client before hand. Based on John’s advice, we made a list of things that the two games did right and another list to identify their shortcomings to have a discussion around this topic in case they were brought up during the meeting.
Important questions:
Mike Christel suggested that we go through Sabrina Culyba’s Transformational Framework draft to identify the set of questions we needed to ask our client for us to proceed.
These were some of the questions we focussed on:
- What is the high-level purpose of the game? What is the goal of this experience?
The high-level purpose of this game is to get students interested in the process of building a bot, prototyping, learning from mistakes and follow continuous iteration.
- What are the existing barriers that stand in the way of achieving that goal?
The materials used are expensive and do not allow much of trial and error when building.
- What do you want the players to know/learn after playing the game?
The players should get familiar with the pipeline of building and testing a robot.
- Resources that we need to consider for insight and feedback in our domain.
Link to the website: www.gonrl.com. Our client will also be connecting us with people from the industry and students already a part of this process
- Key concepts: What is the critical content that the game should embody?
A good feedback loop to help students identify their mistakes, find solutions and learn from them.
- Assessment plan: How do you intend to measure success or asses that the game is effective?
Still needs to be discussed in detail.
Target Audience:
We were able to identify our Target Audience, children from 5th-7th grade along with the stakeholders, teachers andmanufacturers.
Target | Impact |
Students (5th – 7th Graders) | Interest, Engagement, fun, excitement, enthusiasm |
Teachers | Demystify the learning tool and make them less intimidated by it |
Manufacturing Companies | Make them understand the importance of this program |
Deliverable:
A polished product by the end of the semester that can be shown in conferences and to stakeholders.
Art
We did the researches about several robotic projects before meeting our client. One of the robotic projects we researched is called Mindstorm produced by LEGO. This product provided a simple pipeline of building robot for kids. Kids can actually build a robot in every shapes with its sensors and motors. In addition, kids can also use its programming app made by LEGO to program the behavior of the robot they built.
For the client meeting, the client shared a lot of informations about what NRL do and what they want to achieve.The goal of the project we are going to make is attracting 10~14 years old kids to play with our app(games) to learn basic manufacturing skills and let them be interested in joining the robot competition held by NRL. Moreover, we should also interests the teachers and the people in manufacturing industry to use this games to teach or make connection with kids who love doing manufacturing. The experience we are going to create should contain building and testing the virtual robot. The kids can learn that different materials will suit for different situations and how to choose materials to make their robot better in limited budget. At last, kids will get feedback of their virtual robot about how things are working and how things are not working.
In the effect and art side, the behaviors and animations of the virtual robot should be based on reality which means that it will not be able to fly or shooting bullets.
UI/UX Design
It was the first week of this semester. Our team members formally meet with each other and team advisors. I will take care of UX design in our project.
As a preparation for the first meeting with the client, Our team did some research about our client National Robotics League with related resources and present to the client with a slide.
We acquired lots of touch points during the meeting. Our client has a really clear goal that he wants to use our project to attract more companies to join them as partner and more students who are interested in manufacture. In this way, we are clear for whis our target audience. In their vision, our project could make kids feel excited and teachers on STEM program would get a high level meaning about our game. It should exit as expansion of instructors class discussion, which could make kids gain skills about manufacture. It’s a really great start of our project.
For the presentation, we looked forward to framing a problem of our project with them in our first client meeting on Friday. As a UI/UX designer in our team, I designed a slide theme based on the color of the client logo, which could let them feel a sense of customizing. And we will keep using this theme in the future presentation to keep the consistency of our project.