moved from projectspark.com now a rather heartbreaking read, but here it is...
The following interview was conducted between Team Dakota and Vadim Bulitko, professor at the University of Alberta. The University is just finishing up using Project Spark for the first time in the class CMPUT 250. The two talked about how Project Spark could be used in the classroom and the future of Spark in a university setting.
Brian: Describe CMPUT 250 and what you hope it teaches your students?
Vadim: CMPUT 250 has been offered at the University of Alberta since September 2005. That means we’ve taught it 20 times in 10 years. It’s an interdisciplinary class not just for computer science majors. We have 36 students that form 6 teams of 6 people to build a game. Each team has 3 programmers, 1 artist, 1 musician and 1 writer. We get people from all majors who get to work on something very exciting and very difficult. It’s a special opportunity because it’s a project-oriented class with students who have such different backgrounds.
Brian: What made you decide to incorporate Project Spark into your class?
Vadim: We’ve been looking to replace Bioware’s Neverwinter Nights engine (the Aurora toolset) for a while now. We’ve been using that since 2005. But that game was released in 2002, so the engine is 13 years old now. Students come from playing modern games like Titanfall and Halo and would like to see a visually more modern engine. We tried Unity a few semesters ago. It was a great engine, but quite technical. Our students only have 4 months to learn the toolset and make a game. Maybe if it was a year-long course it could have worked though. Unity is quite powerful, but its learning curve appeared a bit too steep for our course.
Most of our students haven’t used a game engine before. We needed something where a student can learn very quickly, but it also has to have sufficient depth so that the students can express themselves creatively. After reviewing a few different engines, we decided to pilot Project Spark because it looked like it has a nice and easy entry. We then found out one of our professors here was a friend of Brad Rebh at Team Dakota, so we got introduced.
Brian: What did you use to determine which of your students would use Project Spark for their project?
Vadim: First, let’s talk about the admission process to the class. This isn’t like most other classes where you sign up online and take it. You have to use an online form to submit an application to this class and it’s tough because it’s extremely popular. We received 107 applications this past semester and had to whittle that down to 36. An important consideration when choosing is I had to balance my students so we had programmers, artists, musicians and writers in the right proportion. Once they’re in the class, we let them form their own teams. Then these teams all pitch their game ideas to us. Now of the 6 projects, 5 would be built with the Aurora toolset, while 1 would build with the experimental Project Spark engine. The teams had to pitch which engine they wanted to work in.
Brian: What was the biggest advantage of going with Project Spark?
Vadim: The learning curve was the biggest plus on Project Spark. You have programs like Unity and Unreal Engine that are very powerful and used very widely. But they’re a bit much for 2nd year undergraduate students to learn and use in the timeframe of our class. Project Spark billed itself as the YouTube of video game development and I think it’s a philosophy that has paid off. You can pick up a controller and start building a game in the first evening.
Brian: What feedback have you heard so far from the students working on their project in Project Spark?
Vadim: We just had a debriefing meeting from them since they just finished up their game. I invited them all in and asked a lot of questions. They liked it and, some shortcomings notwithstanding, would recommend it to others. There were some things they hope are expanded on (our sound engineer had some thoughts on Kinect recording).
One of the strengths about Project Spark was the community. The community of Spark users seems to be so vibrant and helpful. They loved being able to go into the forums, ask questions and get answers. There is a big level of enthusiasm within the community and they could tell. The graphics were another major plus. They also have this very vibrant feel to them. It’s Sparky, and it stands out.
A very interesting thing that happened is we had a Political Science major on the team. With the Aurora toolset, typically he’d have to sit and wait for the programmers to do all of their work before he could do his. But here he picked up the controller and started programming scripts. It was so accessible that he didn’t feel intimidated, he felt included. What’s more important in the class is the process the team goes through to make their game. If all of these cross-disciplinary team members can learn together, then that’s better.
One thing I was surprised with is that they found the controls useful and intuitive. We thought it would be a pain at first, since you can’t program like a text editor. But with a keyboard, you can type and find your Kode. The team said that worked for them.
Also the idea that a game can be published and someone in say Australia could play it was powerful. Kinect for motion capture was also powerful. Where else could you find an easy-to-use out-of-the-box motion-capture software for less than $400?
Prototyping and testing are also very easy. The transition between Test and Edit is easy to execute. You can prototype an idea so fast and see if it works before going so far. The team did wish that Undo persisted between Test and Edit mode. That would have made things easier.
All in all, it was a great experience for the team. They enjoyed it. It does so many things well. The analysis is that this is a very promising program. We may be expanding project Spark more in the class next semester. And we’re also now looking at incorporating Project Spark into other classes at the University of Alberta.
There’s so much more I hope Microsoft does with Project Spark…