Posts

Project Purpose

Game development technology and virtual space hold the potential to recreate history in an immersive medium.  Using archaeological research as their basis, artists can replicate historical environments in informative, game-like software by using existing game development tools.  Interaction with this environment can inspire users to further exploration and research. Well-designed video games are powerful learning tools, placing players in complex systems and prompting engagement ( Gee, 2005 ).  Kurt Squire, a researcher in games and education, often cites his experience teaching at-risk students world history with Civilization III ; students learned geography, economics, and politics through the game and were motivated to study on their own to gain a competitive edge ( Squire, 2006 ).  Coupled with educational potential, game-like interactive software rooted in historical and archaeological research can immerse and help the public learn about unique historical environments. Wi

Screenshot Friday! May 11th

Image
This piece attaches to the rudder, giving leverage to rotate it.  Although the color has faded from the original, it has traces of red, yellow, and black paint!

Screenshot Friday! April 6th

Image
Assets are going into Unreal!  Textures are still a work in progress, but I am having a lot of fun with Substance Painter. Sometimes my expectations of object scale turn out much different than they actually are. Some lovely buckets! A common theory is that chests were used as benches for rowers.  I based the dimensions on the Mästermyr tool chest, and took some decoration ideas from the Oseberg sledge.

Screenshot Friday! March 2nd

Image
The Gokstad ship model is coming close to completion!  The most significant parts are modeled and in the process of UV unwrapping.  It took about five different iterations to decide on a hull topology to match the planks, and I’ve currently settled on a separate, rectangular mesh for each plank for now.  The lower resolution LOD will likely be a single curved piece projected and textured to imitate the higher resolution version. After making this model, I am significantly more confident in working with NURBS! The Gokstad Ship, work in progress Wireframe Deck view, work in progress Wireframe

Topology - A Continuous Learning Experience

Image
To avoid a spooky ghost crew, I modeled a man and woman with the same topology optimized for animation.  After initial studies in muscular structure and proportion, I dove into ZBrush.  I blocked out the body with ZSpheres and refined it with Dynamesh.  Between ZRemesher and classic arm-wrestling with Maya LT, I reduced the poly count down to about 10K quads for one character.  Depending on performance, I might reduce it further in the future. Because I approached modeling with the end goal of real-time animation, I wanted to create the best topology possible for smooth and clean deformation.  Each model since my first has been an experiment in topology, and I have used that experience with prior characters to create the current body. Body Topology The knees and elbows both have an extra edge loop on the outside corner of the joint.  Since these areas deform intensely, the extra geometry distributes weighting across the area and retains volume during deformation. The

Row, Row, Row Your Cube!

Image
When it comes to game development, the precursor of a sailboat is a sailcube! For buoyancy, I place a series of ‘test buoys’ around an object.  Each frame the object checks if those points are above or below water.  If significantly above, it applies gravity, and if significantly below, it applies upwards buoyancy.  If somewhat above or somewhat below, it applies a smaller force.  The result is an object that bobs and tilts with the water. Simple buoyancy When I implement the full ships, I will need to optimize each for the right balance of weight and ‘floatiness’.  This ultimately depends on the shape, mass, test buoy positions, and dampening.  I currently have an issue where the buoys do not account for horizontal displacement of the waves when determining if they are above or below water on steep waves, resulting in a momentarily floating ship or a ship that takes a little too long to rise with a wave.  I will test how significant this issue is on the full-size Vik

Ocean Simulation- or, Thank Goodness I Took Computer Graphics

Image
OceanConstructor Developer controlled settings As I dove into ocean simulation, I remembered a joke we used to tell in undergrad computer science classes.  “We’re just coming up with increasingly complicated ways of being lazy.”  To avoid the tedium of manually animating water, I coded a model based on Gerstner waves.  Detailed in Mark Finch’s Nvidia’s GPU Gems chapter ( linked here and below ), Gerstner waves determine the horizontal and vertical shift of a point in space as a wave passes.  Summing the displacement of several varied waves produces a naturalistic undulation. My current system in the Unreal Engine consists of three elements—a Blueprints ‘OceanConstructor’, a shader, and a C++ ‘OceanManager.’ The OceanConstructor class generates a dynamic material instance of the ocean shader, allowing for definition of parameters at runtime.  The developer chooses the number of waves to sum, the general wind direction, wave steepness, variation, and color of the o

Let's Sail!

Chilled and drenched in rain after scrambling over rocks and stumbling through mud, I looked out over a rocky outcrop to the ruins of Dunscaith Castle on Scotland’s Isle of Skye.  Despite the impressive site, disappointment gripped me.  Centuries of history sat before my eyes, reduced to rubble by the elements and time.  What would someone standing in that same spot several centuries ago have seen?  Who lived there?  What did they do each day?  I walked away with unsatisfied curiosity and a desire to explore the now ruined castle.  In the back of my mind I thought, “Man, wouldn’t it be so cool to have a 3D model of that castle I could explore?” Fast forward several months, and here I am in Oslo with the Gokstad and Oseberg ships, the task of developing engaging virtual environments before me.  After several weeks spent up to my nose in articles and books about the burials, their context, and broader Viking Age society, I wondered how I could feasibly represent an environment that