Technologies: Java, Android SDK, Eclipse
This was our semester long project for CIS 350, Software Engineering. It was a lot of fun because we actually got to work with a real client, a faculty member from The Penn School of Nursing. Our task was to create a game aimed to help stroke patients by getting them to use specific arm movements. Our client wanted a game that was similar to Fruit Ninja, but would measure specific metrics such as the number of hits, misses and the total number of targets after each round. The game would also have to be able to adjust its difficulty depending on the performance of the player, because we wanted to make sure the game wouldn’t be frustrating to play for these patients. I worked with 3 other Penn students, Joseph Tong, Jason Rudin and Mike Fisher. We also had a project manager and we met him and our client every week to go over what features we had completed and what was left to complete. We were learning about Agile Software Development in class, so we followed the same process model for this project.
Developing for Android for the first time ended up being a great experience, and I got to work on different parts of the project. First we set up the main gameplay mechanic, which was basically the ability to destroy objects by swiping them. Then we split up tasks. I worked on the self-adjusting difficulty, so that the game would get easier if the player’s performance was below a certain level, and would get a little harder if the player performed well. After this point, we decided to get some more exciting graphics, so I created 2 different 3D asteroids in Maya and rendered out a revolution and explosion effect. When I tried to load those into the game, it ended up taking too much time. So I decided to load them asynchronously, and figured out how to do that using the Android Developer Docs(which are really helpful!). It was amazing to finally see the animations work within the game. I also learned how to set up a simple database so that we would be able to save user stats such as total number of hits and misses from session to session.
I’m planning to put up a gameplay video pretty soon, so check back later to see some live game footage!