Wednesday, September 16, 2009

Toward More Perfect Textures

I have been playing with GIMP to create the textures for the fountain. Although not as "intuitive" as, say, Adobe Photoshop, I have found GIMP to be adequate for my needs. It is also free, which it great for an indie game producer/university professor with a tight budget yet big ideas.

Using Blender to export UV maps on which to create the textures was hardly easy: It seemed to take me forever to get a handle on the idea of the texture channels, not to mention that key parts of the interface were spread over different parts of the application. Perhaps the upcoming Blender 2.50 release will address some of these issues. Anyway, here is what I got so far:

I was particularly please with the water and rust stains I was able to replicate using the GIMP airbrush tool and grabbing samples from stock photographs of rust. Nevertheless, there are still some areas I would like to address in my second attempt at creating a more perfect model texture:
  1. Remove seams: Blender unwraps a 3D mesh along predetermined and computer-generated seams. Here, the rust stain actually crosses a seam, making it visible to the viewer. Although the seam here is not so noticable (compared to the other side of the fountain and the lip of the basin), seams can be reapplied in a different pattern to an existing texture map, thereby allowing edges to be graphically altered and minimized.

  2. Smooth stretching: The curved surface of the basin lip introduced a lot of image distortion when the texture was applied to the mesh. After unwrapping the UV map, I will probably have to go in an manually tweak the map in order to minimze stretching.

  3. Create bump map: Although the stone texture looks fine if you look head-on at the fountain, the way that the light plays on the fountain at an angle creates the sense that the fountain is "unreal," are carved too perfectly. This is not the feeling I want to create with a fountain that has been exposed to the elements for years. A bump map will break up the surface reflection a bit, thereby creating the sense that the stone has texture. I will also have to cut down on reflection a bit, too.

  4. Resize textures: The main pillar in the center of the fountain has, I believe, the right sized texture applied to its mesh. The grain of the stone appears to be the right size for the mass of the structure and, accordingly, just feels right. The basin, however, is another matter and the stone grain just looks too large.
In any case, a second (or even third) stab at it will hopefully create a more realistic sense of actually being there. Once that is done, I should probably start looking at some Python programming to structure the player interactivity with the object...

Saturday, September 12, 2009

Old Rusty Pipes

I spent Saturday afternoon playing with the procedural textures that ship with Blender to create the water pipes on my recent project, the fountain that will go in the center of the pedestrian zone. Thinking about how these pipes should look like, I thought that they would have been exposed to the elements for some time and would exhibit natural pitting and wear. As they are in a damp environment, they would be slightly mosit and reflect light, but not too much as to be distracting. The black iron would have slighter areas of grey highlights. After tweaking the settings and numerous test renders to get the texture just right, I came up with the following:


I have already grabbed a sandstone texture off the Internet that in the coming days I will apply both to the pillar in the center of the fountain, the basin itself, as well as to produce a bump and specular map. When I'm all finished, I will create a turntable render and post it here. I'm particularly pleased with the reflection off the water and the slight surface distortion. We'll just have to see how the remainder of the project develops.

And here is a screen capture of the complicated Blender interface, which is gradually becoming more manageable:


The large image size (1920 x 1200) is the native resolution of my computer screen. Next time: Applying the stone textures!

Thursday, September 10, 2009

More Student Work on NPCs and the Bologna Process

We spent a fair amount of time in our last class period fleshing out the NPCs for the DigiBahn game. Here are some images of the work that the students produced on the whiteboard:



The students will be working in small groups over the course of the next week, working with library resources and databases to expand the backgrounds of these NPCs, articulating connections between their NPCs, and reflecting on how this context and background influences the use of language and aids in identity formation.

In class next week we will be moving away from the experience of playing the text-based interactive fiction version of the game, which has hopefully given us some ideas on how to structure the 3D version, and will begin a week-long discussion of Germany's role and responsibilities in the European Union. I thought that an examination of the Bologna Process would be interesting for them and highly relevant as students. Should also be useful in formulating the NPCs, as well.

Finally, one last image of a render I recently did:

Wednesday, September 9, 2009

Hast du Durst?

Since every Fußgängerzone needs a fountain, I've been busy these last couple of days modeling one in Blender in my spare time. Creating the basic shape was fairly easy, as was making an animation for the water in the fountain:



And here is the original image on which the design of my 3D model is based:

I was impressed with how easy this was and how good it looks! In the future I will work on getting the mesh textured, and then will make a final turnaround render. Maybe I can even get water to come out of the spouts? Of course, the game will not have the same level of visual quality that the render has, but I still think that we can get some basic funcionality established. I'll have to look at the Yo Frankie! open Blender game, which has water in it, to see how they did it.

Tuesday, September 8, 2009

DigiBahn Comes to the Intermediate German Conversation Course

Over the last few days I have been attempting to create a fusion of my research and teaching agendas by getting students in my intermediate German conversation class involved in the DigiBahn Project. In class we have discussed - auf Deutsch, sogar! - language as a sociocultural tool that we use to structure reality and, in turn, which ultimately shapes and informs our identities. We also broached the topic of language as a sign system that can be manipulated and experienced in a playful manner in order to construct meaning. In a way, approaching class in this manner is a huge gamble for me as it represents a dramatic break from the way I have taught similar courses in the past and I am not exactly sure how the students will react to the project. I am excited, however, to see where this fusion of new technology and classroom instruction will finally take me (and the class) and what type of 21st-century pedagogies will ultimately be developed. Initial feedback from the students seems positive and we spent the end of last class beginning to flesh ideas out on the whiteboard:

Students (left to right): Alexander Howard, Christine Mader, Elizabeth Leman, Melanie Reyer, Alexander Hudson, Christian Monson, Matthew Trucksess, and John Lesko.

John Lesko (l.) and Alexander Hudson (r.) wonder how (and if) it will all fit together.

Arndt has a problem with the bottle, Jana is a widow living in Stuttgart, and Florian grew up in the former East Germany. What will they have to say to each other and how will their respective backgrounds influence this interaction?

Unfortunately, we spent too long in class discussing other things, so I will have to revisit the design phase in the next course. The primary ideas, that I hope to visualize on the whiteboard, are that language can be seen as a sociocultural space of playful possibility and conversational opportunity, which unfolds based on a person's interaction with this space and the people who occupy its communities of practice. Over the course of the week we will also be playing an earlier text-based version of the game, Ausflug am Wochenende nach München, to get ideas on how to develop the NPC dialog for the 3D version.

Tuesday, August 25, 2009

New DigiBahn Screen Capture and New Training Resources

A new screen capture of the DigiBahn game, including a new model of the church (St. Andreas Church in Weißenburg in Bayern):


I also tweaked the camera to provide a more realistic human perspective; the point-of-view (POV) is much taller than in prior screen captures. In any case, we're making great progress on the game so far and with students returning to Elon University this week we will really be moving forward over the course of the next two semesters. The next mesh we will be importing? Well, maybe the post office...Or some apartment buidlings...

Finally, I was able to locate some excellent online Blender training videos at Lynda.com; really wish I had access to these a year ago when I was first learning my way around Blender as they would have saved me a lot of time and headaches.

Friday, August 21, 2009

Flow, Narrative, and Idealized Sociocultural Spaces

One of the features of Half-Life 2 that impresses me time and time again is the seamless sense of flow that the game narrative, virtual spaces, and ludic activity provides. Unlike many other games that front load a large amount of interface training thinly masked as plot development or avatar "education" (America's Army 3 comes to mind), one simply "knows" what to do in Half-Life 2 and with a minimal amount of instruction. The virtual landscape directs the character along the appropriate path, with an occasional nudge from a NPC or a cleverly inserted audio track that provides a further sense of narrative depth without being overbearing or preachy. One maintains a tremendous sense of operational latitude when, in fact, the game narrative is moving inexorably forward along a predetermined path.

This sense of seamless flow between space and game narrative will be something that the DigiBahn Project will have to emulate. Developing a persuasive and engaging virtual environment that instructs while simultaneously giving the impression of unlimited operational latitude will be a tall order, in any case. Already at the beginning of game development we are dealing with the tension between the apparent freedom of avatar movement and the limitations of the virtual environment: Although certain aspects of the game's pedestrian zone will resemble the one in Stuttgart (the stairs leading down to the Klett-Passage), the original openness of the real pedestrian zone cannot be simulated in the game as, well, it goes on for a really long distance and we just can't do that in a 3D game (yet).

So, the pedestrian zone in the game will be a "stereotypical" one in the sense that it will have a post office, a bioladen, a fountain, lots of trees, benches, etc. My question is this: Is this good? If the pedestrian zone does not imitate reality, and instead renders an idealized and, in a sense, scripted version of this reality, is that necessarily a bad thing for an instructional 3D language game? Will abstracted and artificial representations of real sociocultural spaces and their narratives be more amenable to learning transfer or does fidelity to the real space provide a more authentic learning experience with an increased chance of transfer when the student actually sees the space in real-life?

Just some thoughts rattling around in my mind on a Friday afternoon. Oh, and as every pedestrian zone in Germany (and other German-speaking countries) seems to have a church, here is the cleaned-up mesh of the St. Andreas Church in Weißenburg that we will be using in the game:



The render seems to be a little dark after exporting the original raw AVI into .mov format and then uploading it to YouTube. I'll have to keep that in mind for the future. And here is a recent still render, complete with skybox, bump and specularity maps, and some color thrown on the tree for good measure. A modest effort, but going in the right direction, I suppose: