Wednesday, December 29, 2010

Reimporting Blender Models

Have been busy these last few days putting the finishing touches on the new and improved city museum for the game and have begun reimporting already-developed models. I will be using the opportunity to change the format of the textures from .png to .jpg as the latter seems to be much smaller in size and Unity can handle them better. Here's a screen capture of what I've got so far:




Once I get a spare moment I will make a video of a walk-around to better illustrate the virtual space. Broke my hand - again - so I'm having to manage Blender and Unity with a left-mouse configuration; at least for the next four or so weeks. Good thing I already have most of the development work already done. 

Saturday, December 18, 2010

Blue Window Frames and FRAPS Test

Finally got the second floor of the museum finished, including all textures and the final changes to the meshes. Although I will be adding several more models for the prototype test (e.g., medieval tower and some traffic signs one would normally find in a pedestrian zone in Germany), I wanted to do a quick test to see how the framerate for the game was. I exported what I had as a Windows executable file, ran the game from my laptop (Dell XPS M1730) in 1280x 1024 windowed format, set the graphics quality for "beautiful," and let FRAPS record the information for me. This is what I got:


Frames: 2739
Time (ms): 48159
Min fps: 49
Max fps: 76
Avg fps: 56.874


Still a better framerate than television (~30 fps). And here is a screenshot of the test, showing the completed second floor of the museum and the remaining meshes that need to be textured:




I noticed in earlier tests that the .png texture format was just too large and caused the game to slow down too much; I switched all textures to .jpg format, which seems to render much more quickly. All in all, a pretty good test, I suppose, although I wonder what the framerate will be on my students' computers when they test the game next semester. They may have to set the graphics quality for "good," or perhaps the game will lag too much. One other thing to test out before the prototype is deployed.

I thought a day or so about what I should do with the second floor window frames on the museum. Although I could have done them in a regular brown wood texture, I didn't know whether this would be as optically interesting. Then again, I didn't want to add something that one wouldn't perhaps find in Germany. So, after searching a while "Fachwerk Fenster" in Google Images, I discovered this nice picture:


I thought the blue color added a nice touch, so I sampled the color inside GIMP and created a texture map for the windows. I didn't put too much effort into the frames, however, since I'm guessing that most players won't spend too much time looking at the second floor of the museum and I needed to quickly move on to other aspects of the project, such as programming the whole thing in C#.




Tuesday, December 14, 2010

Fachwerk Imported and Pontification on the State of Second Language Studies

After making some minor tweaks to the museum model inside of Blender, I was finally able to texture- and bump-map the exposed timber work meshes and import them into Unity. Once I got the workflow down, the whole process went very quickly. Main points to remember: (1) make modifications to meshes in Edit Mode, not Object Mode inside of Blender; (2) break up larger mesh objects into smaller ones (select vertices you wish to separate in edit more and then press P-Key); (3) create one base object, apply texture- and bump-maps, and *then* make copies of the mesh (Shift-D in Edit Mode). So far, this is what I got:


Front View, Entire Project

Side View, Close-Up

Back View, Close-Up

Now that the timber work is in, I'll be focusing on getting the window frames completed and perhaps texturing the second floor of the museum. Once that is done, I'll maybe do a quick walk-around in a video.

Finally, a bit of pontification. I've been watching the support and study of second languages at the university level slowly unravel under the weight of the economic recession, with programs at the University of Albany SUNY, University of Toronto, University of Southern California, and elsewhere either get "streamlined" or eliminated altogether. Although I certainly bemoan this trend, I wonder if language professionals have not, in some small part, helped to bring this calamity on their own heads. I was surprised, for example, that at the recent 2010 ACTFL conference in Boston, no panel discussions or exhibitors were addressing the impact the iPads and similar devices could potentially have on the teaching of literature. If second language professionals were more engaged with new and emerging technologies, and actively conducting research (and writing grants) to evaluate this technology in instructional settings, would we be more relevant for a wired world? Would it help to revitalize our profession?

Friday, December 10, 2010

Vertical Beams Completed

Just finished getting all the vertical beams inserted into the mesh, which I have highlighted in this screen capture in white:




All the beams were based on one root mesh object, to which I applied both a color and bump map channel. Once this was done, I made a copy of the mesh inside Edit Mode (Shift-D) and then dragged the copied mesh to the new position. So that the same face of the beam was not facing out on each beam, I rotated the copied mesh object 90 degrees on its z-axis. On every fourth rotation I would rotate the mesh object on its y-axis. This provides a possibility of eight "unique" faces for each beam, hopefully giving the viewer a sense of variety while not increasing the work load of the designer (me, that is) too much. Next development task: the horizontal beams.



Thursday, December 9, 2010

CATL Scholar Award and Bump-Mapped Beams

Now that the semester is almost officially over (one more final to give, to the regret of my students), I have had more time to catch up on small project minutiae and make some substantial progress on my project. One thing I forgot to mention in prior posts is the Center for the Advancement of Teaching and Learning (CATL) Scholar Award, which was announced back at the beginning of November and which will help support the DigiBahn Project as develops one complete level of a 3D digital game-based learning environment for second language acquisition. The award will provide course release time to assist in project development, purchase hardware and software, and grant access to technical training and new conference venues.

I've been making progress these last few days on getting the exposed vertical beams in the second floor of the model in place:




If you read my earlier posts below, you will recall that I complained that the color and bump maps could not be applied to all the beams after they had all been created and that I had to start from scratch again. However, I found out that if channels for color and bump maps are created in the original object, and copies of this object are then made, all subsequent changes to these channels propagate across all already-made copies of the original object. So, in a sense, copied meshes inside of Blender are object-oriented, provided that the root object of these meshes contains all the information required. In sum, changes to copies of an object cannot be applied retroactively.

I've also been having some fun with the bump map channel inside of Blender:




The color for the beams was sampled in GIMP from a photo of exposed timber work on a German building and the bump map, which was also created in GIMP, was selected from a photo of wood grain. The result, I hope, shows old rough-cut wood beams that, over numerous generations, have been painted over. I'm not sure how I can get the bump maps into Unity 3D, and this is something that I will need to work on.

Wednesday, December 8, 2010

Textured Beams On the Way!

Seems to be either feast or famine when it comes to blog postings with me. Now that the semester is officially over (besides the final I still have to administer), I have a lot more time to do game development. Wish I would just be able to spend more time on doing background research on the use of 3D digital game-based learning environments, but I figure that if I don't get the game developed I won't have anything to test anyway.

After creating the model completely, I discovered that you can't apply a texture to one instance of an object (say, a vertical beam) and expect it to be applied to all instances of vertical beams in the game object. So much for a true object-oriented paradigm. So, what I have had to do is delete all instances of vertical beams (except for one), apply a texture to this object, and then make copies of it:




To ensure that there was some variety in the textures visible to the player, I would copy a beam, rotate it 90 degrees, make another copy, and repeat the process. This ensures that at least four different faces are visible; hopefully players won't look too closely or they will discover the pattern. But at least it is better than the same face for every beam. So, in the coming days I will be working on getting all the textures applied to the model and then importing it into Unity 3D.

Full Museum Model Finished

Well, I should add that the full museum model is almost finished - I still have to add the door handles to both doors. Otherwise, how will people be able to get in and out of the building? Although I still need to get a handle on how to light a scene most effectively in Blender, I made a few quick untextured renders to provide an overall impression of the building:


Front View


Back View


Minus the door handles, the model consists of 3731 vertices, which I hope Unity 3D will be able to handle once I import the model. As this will be the only model in the game with a high vertex count, I'm hoping that the game engine won't take a big hit. We'll just have to wait and see. In the coming days, I hope to make another turnaround render of the model and post the video.

Wednesday, December 1, 2010

Exposed Timber Work (Fachwerk)

Since I started redesigning the city museum model, I thought I would add a few extra features that were not in the original. If you check my earlier posts (see below), you will notice in the screen shots that the exposed timber work (Fachwerk) on the second floor of the museum is simply painted on in the textures; there is no real 3D "feel" to this aspect of the model. I thought about adding the exposed timber work for some time now, wondering if the extra vertices would slow down the game at all. But it is exactly this feel that makes, in my opinion, the real Fachwerk so interesting when you see these buildings in Germany:




So, now that the semester is starting to wind down and I have a little extra time on my hands, I thought that I would start adding the Fachwerk to the second level of the city museum. After checking a few sources online about how these buildings were constructed, I came up with the following (untextured) addition:




I think the addition adds much more to the real "feel" of the model, although I'm not sure what type of performance hit the game engine will take with the extra vertices. Oh well, that's what prototypes of for, I suppose. I particularly like the crisp edges of the model, although this is obviously lacking in the original buildings, which have an old, weathered look to them and a more "organic" feel; as if they have grown rather randomly through the ages. The next thing for me to work on in the coming weeks.

Tuesday, November 16, 2010

Burning Down the House

These last few weeks I have been banging my head against the proverbial digital wall, trying to get my computer game -- or 3D digital game-based learning environment, which sounds more sophisticated -- to work just the way I would like. The primary problems were: (1) the door animations in the game just didn't open and close right and (2) I couldn't get two animations on the same mesh object to play independently of each other inside of Unity. Taking inspiration from a Talking Heads song, I decided to burn everything to the ground and start over. As trying to explain my problems in written format is difficult, I made a video highlighting what the problems were and the solution I found for them:



So what have I learned? Well, for starters, any changes (e.g., scaling and rotation) you want to make to a Blender object that you will eventually import into Unity *must* be done in Edit Mode, not in Object Mode. If you made these changes already in Object mode then Alt-R will clear the rotation and Alt-S will clear the scaling. Apparently, you cannot include more than one animation armature on an object, which makes animations working independently of each other difficult to create (e.g., opening and closing two doors). However, this worked example by Devin and Calin Reimer shows that it is possible, with some advanced knowledge of how Blender animations work inside of Unity and a handle on the C# programming language. Thanks, Devin! Oh, by the way, if you use Devin's script in Unity when you have the Terrain Toolkit loaded, you'll get nothing but errors.

Now it's just a question of getting the models rebuilt, working on a GUI for the player to use, and getting some of the game functionality programmed. Trying to make the deadline by end of next semester so that I can run an experiment with a beginning German language course and publish the results. Let's see if I will be able to get everything done by then.

Friday, October 22, 2010

First Blender Animation Imported into Unity

I have had my nose to the proverbial grindstone these last few days, working hard to get a Blender animation to play inside of Unity. After two solid days of coding, debugging, and scouring the Web for clues, I finally got it to work:




To summarize my findings: Unity doesn't automatically import mesh animations from Blender. Rather, what you need to do is to create an armature, make the mesh child object to the parent armature, and then animate the armature. The animation needs to be saved as an action in the Blender Action Editor, which Unity picks up once you import the file. Work on the animation spanned three development platforms, Blender, Unity and Microsoft Visual C# Express (which I configured for automatic code completion). Now that I have a rough idea of how to get objects to move within the game, I'll add some extras such as sound and screen-based text. Should be a lot of fun.

Monday, October 11, 2010

Jacked-Up .blend Files

For some reason or another, it has been a busy start of the semester, even though I have one course reduction and also minimal preps since I'm teaching a course I've already taught in the past. Getting the NEH Digital Humanities Start-Up Grant team together, the proposal written, and submitted took some time, in addition to my other committee responsibilities at the university. Pretty soon, the semester was half-way over and I hadn't done any real development work on the project directly.

To get me back into development, I formulated a project workflow that would increase my knowledge of Blender and Unity while getting a prototype game developed, which I hope to test live in my beginning German language and culture course next semester: (a) view a few videos from Blender Essential Training; (b) import models into Unity; and (c) begin programming game in Unity. Imagine how frustrated I was when, after opening the .blend file for the main building in the game, I noticed that I could not get the models to rotate while in mesh mode:




After I had checked other .blend files, which seemed to work fine, I came to the realization that the model file itself must - somehow - be corrupted. Nothing I did seemed to correct the problem, and I'm not even sure I could fix it, so I was forced to revert to a prior version. Good thing for backups! I did lose some work, which perhaps equates to about 1-2 days of recreating what I lost. 

Tuesday, September 28, 2010

NEH Digital Humanities Start-Up Grant Proposal Submitted

It's been a long while since I last posted an entry on this blog. The start of any semester is always difficult, and this last was no exception. Between course preparation, grant submissions, and other sundry tasks needing completion, I've been rather busy. To get back in the swing of things, I've decided to post excerpts from my recent NEH Digital Humanities Start-Up Grant proposal. Much of what I drew upon to draft the grant can be found in prior articles addressing the topic of 3D digital game-based learning for second languages acquisition, although the process of writing the grant - I think - sharpened my focus a great deal and made a few things clearer to me, such as the role of narrative structures as a means of transmitting situational linguistic and cultural knowledge. Anyway, here's an excerpt of what I sent off:


4a. Environmental scan
The research and development of 3D-DGBL environments for SLA is still in its infancy, with most advances coming from private industry although work in the academy is quickly gaining momentum. Alelo Inc., for example, produces a customized series of 3D interactive video games and simulations that are widely used by the US military to train its personnel in Arabic, Dari, Pashto, and French. The academy, on the other hand, tends to rely primarily on commercial off-the-shelf (COTS) games, the modification (or “modding”) of these games, and 3D virtual reality worlds such as Second Life as instructional platforms for SLA. Although COTS games can be used to teach a second language, they run the risk of conveying false cultural information. Foreign releases of the popular strategic life-simulation game The Sims, for example, are linguistically and culturally disjointed in that they simply layer the second language over gameplay based on a US West Coast suburban lifestyle. Modifications of COTS games can also be limited by copyright restrictions, and purchase of the original game is usually required to play any derivative modification. Furthermore, the effort and time required to modify a COTS game to the point that it is culturally accurate and pedagogically viable speaks powerfully in favor of developing a custom 3D-DGBL environment from the beginning. Finally, 3D virtual worlds have proven popular in SLA and open source projects, such as the synthetic immersive environment (SIE) Croquelandia, which is used in intermediate Spanish courses at the University of New Mexico, are beginning to gain traction. The recent spate of virtual world closures (e.g., Teen Second Life), however, raises the question of whether this technology is ideal for long-term development as an instructional platform. The open-ended and unstructured gameplay of virtual worlds can additionally be difficult to manage and assess in an instructional setting, and the pragmatics of these worlds may not necessarily be those of the target language and culture. While 3D video games commonly rely on a predefined story or narrative arc to structure gameplay, virtual worlds emerge out of unpredictable, unscripted, and complex sets of interactions among their denizens and the unique communicative norms of the virtual worlds themselves. As these norms can potentially be overwhelming for beginning students of a second language and culture, more research must be conducted on how the narrative structures of standalone 3D-DGBL environments can be used to scaffold the learning process.



4b. Enhancing the humanities through innovation
Situated cognition theory, sociocultural approaches to SLA, and current discussions in video game studies point to ways in which the narrative generated by 3D-DGBL environments may be leveraged to help teach second languages and cultures. Situated cognition theory posits that people apprehend reality and transmit knowledge by means of narrative structures. Essentially subjective "stories" of a perceived reality, these narrative structures are not monolithic and unchangeable, but must be continually validated, augmented, and corrected by the communities of practice occupying specific sociocultural spaces. Current sociocultural approaches to SLA focus on this intersection of the personal and the communal, with particular attention being paid to the linguistic artifacts that emerge there. Underlying these approaches is the assumption that language acquisition is a process occurring not only in the head of the individual language learner, but also between the heads, so to speak, of people sharing common linguistic and cultural systems. This insight is important for SLA as it suggests that narratives shape specific social, cultural, and linguistic contexts; that they transmit the core values of the communities of practice inhabiting these contexts; and that they are ultimately negotiated on a personal level based on the identities, needs, and unique subjectivities of the people seeking entrance to these communities. Each person provides a "plot," as it were, to interpret these dominant narratives, which in turn generates a life "story" that can be evaluated as an independent artifact of this interaction. Many video games have a similar core dynamic. Presenting simultaneous multimedia output that is shaped by player interactions with the game world, these games generate narrative that is highly immersive and necessarily participatory in nature. The figured worlds that unfold through these interactions, each one being slightly different based on player input, performance, and personal preference, are a direct result of players feeling their way through the contours of the game world on a physical, mental, and emotional level and, as a result, form a story that is as unique as the players who interact with the game.


The DigiBahn Project will be developed at this intersection of narrative as a form of situated knowledge, narrative as an artifact of intercultural and interlinguistic activity, and narrative as the product of a figured digital world. Informed by these complementary theoretical approaches, the project will prototype a 3D-DGBL environment for teaching the German language in specific sociocultural contexts to advanced high school and beginning university students. Underpinning project development is the instructional proposition that immersion in a 3D-DGBL environment will allow players to create narrative structures that they themselves configure through interactions with the game world and which, in turn, configure players as new members in a simulated community of practice. A corollary of this proposition holds that these narratives can then be transferred out of the game world in order to help players navigate and make sense of real-world sociocultural and linguistic contexts. 


Screenshot of gameplay from The DigiBahn Project

Towards these ends, the proposed project will develop one level of standalone 3D graphic adventure game for both PC and Mac platforms requiring players to navigate a virtual German pedestrian zone and train station while meeting specific instructional goals such as using recycling and trash containers, operating a foreign automatic teller machine (ATM), purchasing a telephone calling card, interpreting departure and arrival tables, finding the appropriate track for departure, and interacting with non-player characters (NPCs). Answering calls made by the Modern Language Association in its Ad Hoc Committee on Foreign Languages Report to revise and revitalize the teaching of second languages and cultures by means of new technologies and innovative instructional approaches, the project will look for specific ways in which 3D-DGBL environments can: (a) engage a wider range of students in the SLA process through challenging and meaningful gameplay; (b) align with SLA learning objectives and assessment strategies; (c) function as a gateway to upper-division cultural studies and language courses; (d) recruit high school students to second language and culture courses at the university level; (e) promote learning through the development of transferable mental schemata and situated sociocultural knowledge; and (f) foster deeper translingual and transcultural reflection. 

Thursday, August 5, 2010

So, Like, Where is Bad Oberdinkelheim?

Earlier plans for the game I am developing included creating an exact mock-up of a real-world German space, specifically Stuttgart Central train station, as the game environment. My thinking at the time was that the game should expose a player to virtual spaces that were as authentic as possible so that the learning that takes place in these spaces would also be authentic - or "real" - as possible. For some reason or another, I was stuck on the idea that a video game is only legitimate insofar as the spaces it represents are based in the real world. Not only would this help in transfer of mental schemata, I theorized, but it would also go a long way in removing the stigma that video games were in someway separate from reality and, by extension, therefore useless in an instructional setting.

Problems emerged, however, when I realized that many real-world spaces just don't lend themselves very well to a video game environment. Sure, games can be layered onto real-world space (such as geocaching does), but games generally involve the creation of what Huizinga describes as a "magic circle" that separates the real from play. Real-world spaces are generally simply meant to be functional, and sometimes they do a poor job of even that. The idea of making the game environment to be as "authentic" as possible was finally put to rest after a discussion with Anne Balsamo at the Humanities Gaming Institute a few months ago, where she asked me (roughly paraphrased): "And why would normal instruction in the classroom be perceived as more authentic?"

Her comment led me to realize that what I normally do in the classroom is also, at its most basic level, also a personal interpretation of what I perceive to be authentically German and that I had unrealistic expectations of 3D digital game-based learning environments. Just because the environment appears to me more real than, say, a textbook does not mean that it really is. There is also a large degree of personal interpretation that creeps into the creation of the game space. So, I decided to create a game that had playful virtual spaces that emulated German sociocultural spaces, instead of a game that used real German sociocultural spaces and forced them to be fun. The latter, I thought, seemed to be a recipe for disaster (or, at the very least, a potentially boring game). Thus the imaginary town of Bad Oberdinkelheim came into being:




The development of the town will be influenced by the the surrounding area: The Romans were indeed this far north and buildings in this area do manifest a certain type of architecture. The game, in sum, is a verisimilitude of the real. How these game spaces play and feel, however, will be largely informed by theories formulated by game studies, new media, and digital game-based learning. It will, at the very leasts, be interesting to see what comes of the whole project in the end.

Finally, looking at the recent video I made for the last blog posting, it occurred to me that the video settings were all whacked-out. I specifically did not like the black letter boxing on either side of the screen. So, here's another attempt at the same thing:


Although this time I think I did less of a good job explaining why I think 3D video games are good for second language acquisition. Oh well. It's hard to talk, think, and walk around a 3D space at the same time. In sum, my hypothesis is that such video games lead to more efficient and effective learning by helping students perform better on assessments in certain areas, retain what they learn longer in their minds, and develop mental schemata that can more easily be transferred from simulated virtual environments into real-world environments. If you have any questions, please do not hesitate to contact me via email

This may be my last posting for a few weeks. The semester is starting up in a few weeks and I need to get my classes, and a conference paper on webcams in the classroom, organized. IN the future, I will be doing the coding for the game, so we'll start to see how the game objects, player interactivity, and learning objectives all come together.

Wednesday, August 4, 2010

3D Resources for Game Prototype Finished

Fall semester will be starting in a few weeks, so I have been working like mad to get as much finished on the game as possible. Experience has taught me that, despite best intentions and wishing otherwise, the start of every semester brings with it the inevitable distractions and game development generally tends to suffer during this period. The hard work on long summer hours in the office finally paid off, and just this morning I put the final touches on the door handles to the museum. What better way to celebrate than to make a screen recording?


Actually getting the screen recording made was an odyssey in itself. I've been using Camtasia in the past to make the recordings, but I wasn't happy with the frame rate and choppy playback. Doing some research online, I discovered that the other people soled this problem by running Camtasia with the DivX video codec (which is lossy, compared with the standard lossless Camtasia codec that ships with the software). In other words, no choppy playback. This solution did not work, so ended up saving my Unity3D game as an .exe file, running that file in a smaller windowed screen, and using FRAPS to record the results. A lot nicer solution!

The video shows all the models I created in Blender and GIMP for the game so far, talks about my plans for testing the game prototype, and even outlines some of my ideas on why 3D digital game-based learning environments would be good for second language acquisition. Basically, my hypothesis is that such video games lead to more efficient and effective learning by helping students perform better on assessments in certain areas, retain what they learn longer in their minds, and develop mental schemata that can more easily be transferred from simulated virtual environments into real-world environments. I'll be using Fall Semester to polish the game interface and program player interactivity and, in Spring Semester, I'll go live with the software in a beginning German class to see what aspects of the hypothesis can be supported by experiment. An article will follow shortly thereafter. In any case, should be a lot of fun.

Monday, July 26, 2010

Signs Inserted

Spent the morning and early afternoon working on a display box for the museum signs. Had some difficulties getting the stainless steel texture "just right" for the sign, so I opted to go with a scratched metal texture from DeviantArt. I wish I could spend more time getting the 3D objects to look more authentic, but since I do the art design, programming, and instructional design for the whole project, I have to keep things fairly simple. Too much depth in one area means that the project won't go forward quickly. In any case, here's the latest screenshot:


I didn't make a close-up screen capture of the poster display as I wanted to show how it fit into the whole museum entrance. For the rest of the afternoon I think I will turn my attention back to the book project, which has been on the back burner for a while.

Saturday, July 24, 2010

The Romans in Bad Oberdinkelheim

I've been trying to make the historical background to Bad Oberdinkelheim seem as authentic as possible. While looking at the map of the surrounding area, it occurred to me that, perhaps, the Roman presence was felt this far north. After looking at a few historical maps, specifically one that detailed Roman history in the state of Hessen, I discovered that the Limes Germanicus indeed ran through the area. What better way to celebrate this fact than to have a numismatics exhibit in the city museum:




I wonder just how far I could push the Roman influence and history in the game. Roman ruins as a historical site that the player can visit, similar to the Roman baths in Weißenburg, Bavaria? Perhaps a good point of collaboration with a classicist. I'm still not completely happy, however, with simply hanging the exhibit posters on the wall next to the museum entrance. I'm thinking that perhaps I should model some type of stand or holder in which the posters can be displayed. 

Friday, July 23, 2010

Special Exhibit in Bad Oberdinkelheim

While designing the square in from of the city museum, it occurred to me that perhaps the museum should have a special exhibit. A few moments on the Web for gathering inspiration and a few moments with GIMP resulted in the following poster:




Very nice that the exhibit has generous support from the Goethe-Institut, Sparda-Bank, and the German Federal Ministry of Education and Research! I wish they would support the DigiBahn Project. Anyway, I was originally going to insert the sign into a holder, which would be displayed in front of the entrance to the museum. Instead, I decided to hang it on the wall to the side of the entrance. Partly because I felt it gave the wall some color and, perhaps more truthfully, I was tired of developing 3D models:




Now I need to think of ways to include the poster and special exhibit into the game. Perhaps the player finds a ticket to the special exhibit on the ground, which he is able to sell to an NPC, finally giving the player enough money to purchase a phone card to complete the level objective of making a phone call. 

Monday, July 19, 2010

First DigiBahn Walkthrough in Unity

For the last week, I have been working on getting my Blender models imported into Unity, installing a skybox, and putting some of the first person interactivity in place. Fortunately, with Unity much of this is simply a questions of dragging and dropping the appropriate pre-constructed assets into the game project. Here's a screenshot of what I have developed so far:




And - if you are interested - here's a video of the same thing, with some additional commentary on the game models and perceived benefits for second language acquisition courses:




Since FRAPS doesn't work with Unity, I'm back to using Camtasia to do my screen recording and, as a result, some choppy video when recording the game sequence. I'm going to have to find some software that will do screen recording for games, preferably something free. Any suggestions?

While looking through some old screen recordings of earlier DigiBahn Project development, I came across this video:




At this point of project development (about one year ago), I was working with seven students from German, digital art, and computer science to get something off the ground. As we were not in agreement with what platforms to use, we decided to mock something up with an Oblivion mod. As some of the students have graduated and gone on to pursue advanced degrees, I have been left to do all the 3D development, programming, and instructional design on my own. It's been a steep learning curve, but I've certainly learned a lot and the project is moving forward at a very decent pace, as a comparison between these two videos will attest.

Tuesday, July 13, 2010

And Thus It Begins

After conducting some initials test of importing Blender models into Unity, I decided that it was time to begin development of the game in earnest. I fired up Unity, started a new project, imported a Blender model, and saved the scene. Here's what I got so far:




A modest start, but at least I'm moving forward. In the coming days (weeks, months?), I will be working my way through Will Goldstone's Unity Game Development Essentials while creating my own game. I'm very happy that Unity can read Blender files natively, which grants me much more flexibility in actually developing the game. I can, for example, import a Blender model, see how it looks in the game, make any necessary changes to the Blender file, have the changes automatically update in Unity, and then move on to importing the next game resource. In this manner, I think I will be able to develop the whole game in a step-wise manner. 

Friday, July 9, 2010

Stadtplan von Bad Oberdinkelheim

Keeping with the idea that the city museum will also be a tourist office of sorts in the game, I decided that a map of the city and its immediate area should be located in front of the museum. Simply modifying the meshes for work I have done already on the pedestrian zone sign, I came up with the following model: 



To make the sign, I did a quick Google search for "Stadtplan" and found a nice .png image for Neumarkt in der Oberpfalz. This image is actually only a placeholder as, once the game level is done, I'd like to make a map for the way the game level actually looks. This way, the player/learner has a reference point for the layout of the game. And, keeping with the idea of transferable learning, gets used to looking for similar structures in real-world spaces while abroad in German-speaking lands. Here's a quick render of where the map could potentially be placed in front of the city museum:




I'm at a loss, however, on what to do with the empty space adjacent to the city museum:




The other day I was thinking that, perhaps, it would be a nice place for an outdoor cafe, and I even went as far as making a sun awning for the cafe. Unfortunately, however, it just didn't look realistic and I decided to forget about it. Perhaps simply the exit for the museum? I'll have to give it some more thought.

Wednesday, July 7, 2010

Museum Signs and Integrating Information Channels

Spent the later morning and early afternoon getting signs made for the city museum. Here is a quick render of what I have so far:




I think that in the coming days I just may add a sign indicating hours of operation. Once that is completed, I will add a few other things that can typically be found in a pedestrian zone plaza in front of a museum: a few benches, flower pots, bicycle rack, etc. One aspect of the 3D digital game-based learning environment that I find particularly attractive is the interactive-visual. Player/learners will have to integrate information passed along a visual channel (e.g., the "Stadtmuseum" sign) with information passed along audio channels (e.g., a NPC who tells the player/learner: "Gehen Sie zum Stadtmuseum"). I'm thinking that the process of piecing this information together in a virtual representation of a real-world space could help foster the growth of stronger mental schemata. 

Tuesday, July 6, 2010

Learning Objects and Unity Import Test

Since writing my conceptual analysis on how to structure narrative in 3D digital game-based learning (3D-DGBL) environments in support of second language acquisition, which is scheduled to appear in the upcoming issue of The Foreign Language Annals, I've been thinking a lot about how to make my design recommendations an instructional reality. In the analysis, I basically describe the unique problem that 3D-DGBL environments pose for the instructional designer, that of player/learner agency, and posit that a learning object/object-oriented approach might be a way to manage this agency. Each game resource could potentially present an opportunity to learn for the player/learner and should be designed as a complete unit of instruction, addressing areas of language, society, culture, and overall gameplay.


Although I think my conceptual analysis is a step in the right direction, a move away from abstract theory toward practical application, I still am wondering how these design recommendations will actually be coded into the game. Case in point: The tower I have been working on for the last few weeks. I've spent a lot of time trying to make it look realistic, but how do I I move it out of the realm of "eye candy," so to speak, and into the realm of valuable instructional object? And how do I do so in an unobtrusive and interactive manner? Some of these questions, I think, will be answered in the coming weeks as I work in Unity and discover its strengths and limitations. Some of the object-oriented design that I propose in the article may need to be layered onto the game (e.g., code that causes a certain event to be triggered when a player is in the vicinity of the tower) instead of being included directly in the object in true object-oriented fashion. This insight leads me to believe that the pedagogy of the future will be strongly defined by its tools and player interaction with the products of these tools, rather than solely by theory which prescribes how these tools should be applied. Effective instruction may arise at the intersection of tools, theory, and practice, which in my mind highlights the importance of language instructors of the future being proficient in numerous technologies and programming languages. Anyway, just some thoughts as I work on the game.



I took Unity and Blender for a test ride yesterday, wanting to see how easy (or difficult) is would be to import models from Blender into Unity. Initially, it did not look so good as the first model I imported (into the demo game that ships with Unity) had a lot of shadowing on the meshes:


After consulting Unity Game Development Essentials by Will Goldstone, however, I discovered that I was importing the models incorrectly. That is, I was not making the appropriate settings in the Meshes section of the Inspector component. Once I checked the options for calculating normals, smooting angles, splitting tangents, and swapping UVs, I got this much cleaner import:


So much nicer! And I really like the effect of having a medieval tower on a tropic island. Some aspects of the import could still be improved upon, such as how to get the bumpmap applied and getting the lighting just right, but otherwise the process of getting it imported was very easy. Here's the screen capture illustrating how I did it:




Thursday, July 1, 2010

Video of Finished Tower and Explanation

I just finished putting the final touches on the 3D tower model in Blender. I decided to document some of my backend work on the model with FRAPS and show of the tower with an turnaround render. This is what I got after merging the two videos in Camtasia:






From here on out, I need to figure out how to import this model into Unity 3D. From what I've looked at so far, I need to bake the textures onto the model, and then put the .blend file into the correct Unity project directory. Apparently, Unity reads .blend files natively, but I'm sure that I will uncover some interesting problems as I import the model. 

Wednesday, June 30, 2010

Windows and Clock Finished

Just finished remodeling the tower, which entailed adding recessed windows for the upper tower structure, a recessed clock face, a recessed door-like entrance on the side of the tower, and a hoist. Here's the most recent render (w/o a bump map or much thought given to the lighting):



I suppose if I had more time, I would really make the upper tower structure look nice. Once I become more proficient in Blender, I'll move on to explore some of its more powerful features. For the time being, however, I gotta get these models cranked out and imported into Unity, so some of it's gonna be fast and a bit dirty. Maybe someday I'll take a 3D art class myself, or get some digital art students on-board who can really get some work done.

Tuesday, June 29, 2010

Tower Hoist Addded

While getting the tower model ready for importing into Unity, it occurred to me that I should perhaps also add some type of hoist mechanism above the elevated window/door. After all, the denizens of the medieval town needed someway to get their mead up into the tower, right? Here's a quick render (w/o bumpmaps or much thought given to lighting) on what I developed this morning:




Although the particular image I have been using of the Obertor tower in Bad Camberg does not show a hoist, I have seen this mechanism on other medieval structures in Germany and thought that it would perhaps look good on the model. A bit of artistic freedom, perhaps. I also thought that it would break up the flat surface of the model a bit, giving players something to look up to while they are exploring the game. All in all, it was an addition with a fairly low vertex count, the iron ring having a total of 32 vertices. Still don't know how the Unity game engine will handle such things, but I'm hoping that the addition of such minor details - although hopefully not a CPU or GPU hog - will give the game world an added sense of depth.

Monday, June 28, 2010

Summer Workflow and Theory at 30,000 Feet

It has been a while since I sat down and updated my research blog. With the birth of our new son, the dramatic and total failure of my computer's video card, and my attendance at the recent Humanities Gaming Institute I have been extremely busy and distracted. Now that things are settling into a routine at home, my computer has (once again) been returned, and the institute is over, I can get down into a productive summer work flow. This is how I'll most likely divvy up my time:

Monday through Thursday:
Mornings: Work in the office, develop 3D game resources, watch Blender videos, play with Unity game engine.
Afternoons: Help out at home with children.
Evenings: Help out with children, read up on secondary literature (gaming, second language acquisition)
Friday:
Mornings: Work in the office on book project and blog.
The rest of the day same as M-Th.
Weekends:
Do whatever I can, whenever I can.

Before the summer is out, I'd like to polish my workflow by developing some models in Blender, baking UV textures onto the models, and then importing these into Unity. Once I've done this, I should have a fairly good idea of how Unity will handle the files and whether they are low-poly enough. I'm sure other bugs will emerge during the process, which will hopefully help me figure out where potential bumps are and how to smooth them out. I'm specifically focusing on two models to import into Unity, the tower and building I have already developed (see posts below). There are a few things I would like to adjust on the tower before I import it into Unity, namely the windows and clock. In past models, I simply “slapped” these features onto the main mesh, which seemed passable enough but did not give the tower a sense of reality. Windows generally are recessed a bit, a feature I'd like to add to the model:


Now for my feedback on the Humanities Gaming Institute. I've been torn for a while on what I should say about it. Although I did not stay for the entire time (family responsibilities called me home early), I'm not sure that my staying the full three weeks really would have provided me with new insights on how games could be used in a humanities context. In fact, much of the discussion at the institute seemed to be highly theoretical – at 30,00 feet, if you will – and did not address the “how” and “why” that are fundamental before games can be successfully applied in humanities contexts. There was a lot of talk of Foucault, Flusser, and Huizinga, and not enough talk (in my opinion) on learning objectives, the nature of knowledge in games, game affordances, assessment, and debriefing strategies. My question was simple: “Why should I choose to use a game to teach Topic X instead of another approach and what is the best way to use the game?” and I'm afraid that I did not get a solid answer. This was a huge oversight, in my opinion. Perhaps this is just my training as an instructional designer coming out, but I think that video games must be carefully thought-out before they are used as instructional tools.