Thursday, January 27, 2011

Start, Info and About Screens Finished

Took a break from doing modeling in Blender, where I still need to make game resources (bottles, cans, trash), and spent a few days getting the game start, about and information screens setup. With Unity, this was a snap to do and only required minimal scripting in C# and light image creation skills in GIMP. This is what I got:

Start Screen

Info Screen

About Screen

In the coming days, I will try to make a screen capture of the game as I also included a really nice sound loop that I found on FlashKit, which unfortunately does not come across on screen shots. I'll probably also get back to making the final game resources before getting down to writing the instructional materials for the game. Nevertheless, I'm happy to say that I'm weeks ahead of schedule and should be able to test the game out in-class in April.

Thursday, January 20, 2011

Game Finally Coded

I have been working feverishly these last few days, hoping to get get my game coded before the semester begins. Once the semester begins, I'll have my hands full with grading, teaching, and the what-have-yous of being a university professor. And although I won't be testing the game until the end of the semester, experience has taught me that the end always has a tendency of sneaking up. So, better to get it done sooner than later. Here's what I got:

I finished just in time, as I was starting to get loopy from writing code. This morning I was getting frustrated from making changes to a certain script but not seeing any difference in gameplay. Then I realized that I was editing a script for a totally different object than the one with which I was interacting. Time for a break!

Now that all the game logic is coded, I just have to add a few more game objects (e.g., bottles and trash) and then think seriously about how I will instructional the game. Sure, I have a general idea about what topics will be covered, but I need to think about prior knowledge that players may have and sequencing the instruction. In sum, a good chance for me to put my ideas from an earlier article into effect. Once that is done, I will be making student supporting materials (e.g., homework) using Scribus. After that, well, hopefully an article and national open-source distribution of the project.

Monday, January 10, 2011

Polishing Interface and Writing Code

I have been working these last few days on tweaking the game interface and writing the code the will provide game functionality. I'm happy to report that the code for managing the points and health in the game are all finished, as seen in this screenshot:

Every minute, the code will deduct one health point and play a small audio file (a "ping"); players will be able to get health points by purchasing something to eat or picking up a first aid kit. When players gain health points, another sound file is played. The game points work on the same logic. Once I get the money interface finished (what you see in the screenshot is just a place holder), I will get to work on developing the interactive objects that the player needs to pick up and recycle (or throw away).

I'm also happy to say that coding the game is going much more smoothly than I thought. Progress in this area was helped on tremendously by code I grabbed from the AlmostLogical blog. Once I got my mind wrapped around the code, tweaking it for the game was very straight-forward. Here's a screenshot of the code:

I've been really impressed with the Unity code libraries. Some game functionality, which I thought would take lines of code to write, are accomplished with one-line function calls. Hats off to you, Unity.

On a side note, an interesting report on the NPR website detailing how video games increase brain power and multitasking skills. Apparently, computer gamers perform better than non-gamers on certain tests of attention, speed, accuracy, vision and multitasking. Who would have thought?

Friday, January 7, 2011

The Verisimilitude of Real Spaces

Playing Half-Life 2 Lost Coast a few weeks ago, I was struck by the sense of "place" that the game provides and the story that the spaces tell in a visual manner. Not only were the images beautifully rendered, but the spaces themselves seemed to emit a sense of real history, especially inside of the church:

Since starting work on my project, I've been fascinated by this real sense of space that can sometimes be found in virtual worlds and I've been wondering if it could be leveraged to help teach a second language. They say that nothing helps students learn a second language better than immersion abroad. I just wonder if immersion in a virtual space can also be helpful and, if yes, in what manner. Can the story that virtual spaces tell help to create mental narratives that students can use organize a second language and navigate spaces in which this language is used?

Although clearly not as beautifully rendered as the Half-Life 2 game, I've been trying to develop a verisimilitude of real space in the game I've been developing. In other words, to get it as close to a real-world German town as possible:

Now that the models are developed and inserted into the game, future work will focus on scripting player/object interactivity an C#, polishing gameplay, and testing the game prototype in my German 122 class in Spring Semester 2011. After that, well, then comes the boring stuff of writing up essays to discuss data and research findings.

Monday, January 3, 2011

Reflecting and Refracting with the Fountain

More than halfway with reimporting developed game models, which entails opening the models up in Blender, removing the object scale (Alt-S) and rotation (Alt-R), and redoing the rotation and scaling in Edit Mode. For fun, I decided to throw in a model of a fountain into the museum square instead of a tree. I also wanted to play with the water reflection and refraction capabilities that Unity offers. Almost every German town has a fountain at the center of town and, in my opinion, Bad Oberdinkelheim should be no different. This is what I got:

The second floor of the museum is reflected in the water and the bottom of the fountain is refracted through the water. All in all, very easy to do with no coding involved; just drag-and-drop functionality that is controlled through the Unity GUI.