The Final Report on my Assignment--for Essay Junkies Only

The Final Report on my Assignment--for Essay Junkies Only

Postby Jennifer_P » Fri Dec 21, 2007 3:24 am

Well, I turned in my project! :D I thought probably one or two people around here might be nutty enough to want to read through three pages of dust-dry analysis on the creation of a Carboniferous forest simulation, so here you go. This is for you. But take it from the person who wrote this report from late at night to early in the morning to midafternoon the next day--it WILL cure insomnia. Don't say I didn't warn you.










Simulating a Carboniferous Swamp Forest With Real-time Graphics
Jennifer_P
Project Goals
These are my four original project goals, as reproduced from my project proposal:
1. The creation of a mostly bug-free explorable level for Uru: Complete Chronicles.
2. In terms of the models I intend to create, the level should feature at least three different plant types, a clouded sky, and water.
3. I wish to learn how to accurately model and texture objects in Blender, and possibly also to learn how to create my own textures in Photoshop for use on the forest models.
4. The overall effect of the simulation should be pleasing, if not brilliant, and real-time exploration without jerkiness or lag should be possible.

Overview
My project was the simulation of an Carboniferous swamp forest. A model of this ancient environment was created in a higher level 3D modeling program, Blender, and then exported into the computer game Uru: Complete Chronicles by means of the plug-in PyPRP, in order to achieve an explorable new game level.

Implementation
My project is divided into three areas: researching the swamp forest, modeling the swamp forest, and exporting the swamp forest into Uru. The first task, research, was relatively easy; it consisted mainly of reading about the swampy Carboniferous environment and studying artists' reconstructions of it. For my own reference and in order to obtain noncopyrighted pictures of Carboniferous plants, I also photographed the university's limited collection of plant fossils. Once I had figured out Blender, modeling the Carboniferous environment was a fairly simple, if time consuming, process. I created an irregular terrain for the ground and a perfectly flat plane for the water, added fog which served to cloud over the sky, and created three types of plants: ferns, tree ferns, and lepidodendrons. In addition, I created two original textures in Photoshop and applied them to the lepidodendrons, tree ferns, and ferns. I added collison to some of the objects. I also introduced a light source and a spawn point for the avatar. I used a variety of modeling techniques to create the environment and its accompaniments, many of which are discussed in detail in the Documentation section.
The final project task was to export the Blender geometry into Uru. To do this I installed and learned how to use a variety of software, in particular Blender, Uru Library Manager, and the plug-in PyPRP. (Further detail on the software I used is available in "Source Code.") Although this accomplishment may seem minor on the surface, it nonetheless involved the most trouble of all of the three project areas, as I will explain in detail in the next section.

Documentation
As mentioned earlier, the easiest part of the project was the research. Much had already been completed in this area as a result of previous two research papers on the Carboniferous which I had worked on. In addition, I had a good idea of what the swamp forest should look like since I had already amassed a large collection of artists' reproductions of it for the first research project. The only matter requiring real research was related specifically to the plants I was planning to model; for these, I needed accurate, detailed, noncopyrighted photographs or pictures to use as concept art. Since such pictures are not as easy to find as one might expect, I took close-up digital photographs of the university's plant fossils, in particular of Lepidodendron bark, Sphenophyllum, and ferns. The rest of the plant fossils were too fragmented to be of much use.
When I began to model, I quickly discovered that most of my detailed research and photography was unnecessary for the task at hand. The simple fact of the matter was that I had neither the time nor yet the skill to create detailed, exacting reproductions of the Carboniferous foliage, let alone the terrain upon which it stood. In fact, I would be fortunate enough simply to have some half-decent geometry and mediocre textures completed by the deadline. As a result, cuts were made, both in terms of product (see "Summary") and in terms of the modeling process. What follows is an in-depth look at the processes involved in the modeling and the logic behind some of the choices I made.
The first and simplest model I created was of the land surface upon which I planned to place the vegetation. Although it may seem like I generated an arbitrary landscape simply for my own convenience, in fact the geology underlying my level was carefully chosen to enhance my simulation. The landscape I picked out is called "cockpit country," the result of the creation of so many sinkholes that the floor upon which one walks consists mainly of the bottoms of the holes. Only semi-isolated towers are left, their tops representing what is left of the original ground surface before the sinkholes attacked it. The use of this terrain conferred three gameplay advantages upon my simulation. First, since it is easy to get lost in cockpit country, the player is forced to be thorough in exploring the simulation lest they miss part of it. Thus they will have to retrace ground they've already covered and explore various perspectives off the path of direct travel, which increases the time that they enjoy the scenery and still feel like they are doing something productive rather than just sightseeing over old ground. Secondly, the hills poking up out of the flat swampy ground are ideal natural barriers and create a subtle winding effect, so that the player follows a twisted, curvaceous, long path rather than a simple straight line path from point A to point B. This in turn lengthens the amount of gameplay possible and gives the illusion of a larger world. Finally, the hills are excellent for hiding large amounts of vegetation vertices, thereby preventing the choppiness and jerkiness associated with having too much to render at once in real-time. The techniques that I used to model the cockpit country were quite simple, consisting of mesh subdivision (to create more vertices with which to manipulate and smooth the landscape), fractal randomization (to make the landscape randomly bumpy on a minor scale), and vertex translation used with proportional falloff (used to create hills and depressions). I set collision, friction and lighting properties for the landscape, and for a time it even had mass and elasticity. As it turned out, however, the latter two properties were meant to be applied only to movable objects such as kickable balls, and applying them to my terrain had the effect that when I opened the level in Uru, the terrain would go plummeting down into the bottomless abyss of surrounding "sky." It should be noted that collision and friction were associated in the same property, and to have one you automatically generated the other. My terrain's friction was set on low, so that an avatar walking on it would slide forward slightly when it stopped. I believe from earlier observations of the level that friction was disabled at some point so that there was no sliding, but that then something occurred to reenable it, although I am uncertain what. Lastly, although I never applied a texture to my terrain, I did apply a vertex painting; unfortunately for some reason it never showed up, so I simply left the terrrain's material set at a dark green color.
In comparison to the terrain, modeling the water was simplicity itself. The water consisted of a giant flat plane with only four vertices, which I lined up parallel with and intersecting the lower lying parts of the terrain. I did not enable collision for the plane, so that the avatar would look like it was wading through the water as it walked through the plane (see screenshot 5, "Collisionless Water"). I set the material color to a chocolate-milk brown to simulate a muddy look, but no lighting or other properties were applied to the plane.
The lepidodendrons were my introduction to serious modeling. To create them I used two main techniques: extrusion, and the vertex translation transformation. Since any particular branch of a lepidodendron splits into two smaller branches, and then each of those splits again into two yet smaller branches, I applied much the same technique to the modeling. Beginning with a sphere, I extruded it to make a long tube, rounded at both ends, for the trunk. Next I selected half the vertices on the top of the trunk and extruded those outward, then used the vertex translation command to situate the branch at an appropriate angle. I did the same to the other half of the vertices on the opposite side of the trunk. I repeated this process multiple times to produce the branches and roots of the lepidodendron. Later on, I added a bark texture (process described later in this section) and added lighting and collision properties. Plans to add grass-like leaves to the branches had to be scrapped due to time constraints.
The ferns and the tree ferns were created in a very simple matter, which to some extent reflects an improvement in my understanding of how to create 3D models. The ferns were composed of a small mesh with only about 20 vertices per frond; each fern had about 7 fronds, each an exact duplicate of one original frond in terms of both texture and geometry. To create a tree fern, I simply placed two slightly-rotated ferns on top of each other on (if I recall correctly) an extruded circle which served as the trunk. I aligned the fronds that were out of place so that they would come out of the trunk instead of hovering in the air, and that was all I had to do. Since the ferns were ubiquitous throughout part of the simulation and the avatar must walk through them to get anywhere, I did not enable collision for them. I also did not enable lighting; indeed, the fern texture I used had already incorporated an excessively specular-heavy reflection on the fern frond surface which I tried to no avail to eliminate in Photoshop. In comparison to my first complicated lepidodendrons, which used between 500 and 2000 vertices apiece depending on how many mesh subdivisions I smoothed them with, the ferns were the epitomy of simplicity. The only major fault they have is that they are somewhat difficult to place vertically, resulting in clumps of ferns that float a foot or two above the ground, or in one particularly extreme case, a few meters off the ground.
In order to light the scene with a light type other than the ambient light which was automatically provided for the level, I had to create a light source. The plug-in didn't support specular light, and I already had plenty of ambient light, so I used the light type that remained, diffuse light. There were a number of lighting options available, including omnidirectional light and spotlights; however, as I wanted my light to act like the sun I chose a directional light. I added this in, set its intensity and color, and pointed it in the right direction (down on the scene from above). In retrospect, after adding fog I should have turned down the intensity and made the light source's color gray, since my current light source simulates a bright sunny day rather than a gray dreary one. One final fact to note about lighting is that before the light source can have any effect on an object, the object must have its properties set to accept light from the light source; otherwise, the object will only be lit by the standard ambient light provided. This effect can be observed on the trunks of the tree ferns.
To access a level in Uru, the game's avatar travels to the level via teleportation. The spawn point at which the avatar materializes can be easily placed and manipulated in the same Blender model as the terrain, light source, and other models are. The only difficulty was placing it where I wanted, since my geometry was stored on layer 1 whereas the spawn point was automatically placed in layer 2, and this problem was solved when I learned that I could select and view multiple layers at the same time. I chose to put the spawn point on top of one of the raised hills, in order to give the player a chance to get a scenic view of the area, orient themselves, and also so that I could test if the avatar was spawning in the correct area during the problem in which I mistakenly gave the terrain mass and elasticity.
The only other effect I applied to the environment was fog. This was simple enough, involving only the modification of the fog variables in some provided code (located in the .fni file, see "Source Code"). I set the fog to begin a few feet in front of the camera and to end in maximum opacity several hundred feet away from the camera. I also modified the color and density variables.
To add realism to my models, I created two textures, one of lepidodendron bark and one of a modern fern frond. Each texture provided a unique challenge. In the case of the lepidodendron bark, I worked from one of my fossil photos and did a reconstruction based on what features I could see and the reconstructions other people had done of various lepidodendron barks. First I tried tracing the scale pattern in Photoshop; however, the resulting texture was not seamless because the scales were dissimilar and did not match up around the edges, which is essential for tiling. I next tried tracing the scales in Illustrator with vector graphics and created an M. C. Escher style tesselation of the scales of the bark. This was proved somewhat successful, although I was unable to achieve 100% seamlessness. The resulting texture involves only the scale tesselation and a green flat background, the combined effect giving the lepidodendrons a cartoony appearance which I didn't have time to correct. After applying the texture to a lepidodendron, the next step was to place the texture in its correct orientation on the tree instead of skewed at a wrong angle. I let Blender take care of that using Smart Unwrap, and did a minimal correction to make the bark on the trunk face the right direction (more or less--some of the trees still have bark which points in the wrong direction). Otherwise, I left the texture to its own devices, which were mostly wrong, and which I didn't have time to right. At any rate, the part of the tree with the worst texture application--i.e., the branches--was mostly hidden by the fog.
The process of creating and applying the fern frond texture was much different from the method I used for the lepidodendron bark. First, I needed to find the perfect image: a noncopyrighted, high resolution, flat, whole fern frond with flat light shining evenly over it. Unfortunately, this perfection proved to be unobtainable after much searching, so I settled for the fern image shown in the screenshots. Having found a decent photo, I edited it in Photoshop to remove the background, leaving only the isolated frond. I then added an alpha channel to the image to save the transparency around the frond, and saved the resulting image as a .png file, which is the only type of image file that the plug-in will accept for alpha textures. Finally, in Blender I stretched the faces of a fern frond object over the texture so that the frond picture lined up with the frond grid without stretching or tiling.
Once I had finished modeling an object, I would export it into Uru to see how it looked. Was it sized correctly? Was it planted in the ground or floating in midair? What color was the model under the lighting? Would the software like the object or reject it? What do the details of the textures look like up close? The chances were that at least one of these things would go wrong after or during the export of the model into Uru. The choice to export one's models into Uru was implemented via a menu option in Blender, and once the option had been selected and the proper location to export to (located within the Uru game files) had been chosen, the exporting would begin automatically. During this process, PyPRP, the plug-in doing the exportation, would display what object and properties it was currently working on in the console window which comes is part of Blender's GUI. At first this process took only a few seconds, but by time I had completed the project it took around two hours.
Much of the work that related to the area of exporting dealt with either installing the software or ironing out problems involving said software. Installation was an uncomplicated and easy task, if somewhat time consuming. By contrast, ironing out the problems of the software was neither uncomplicated nor easy. Thus it was fortunate that I didn't have to solve many of the problems and errors by myself. Instead, I relied the excellent technical support available, consisting of the developers of the plug-in and the other people who were modeling Uru levels in Blender. I wrote up detailed explanations of the errors I was seeing, provided screenshots of the Blender window, and retrieved the contents of the error file and the Blender console window for them to study. They in turn gave me suggestions to try so that I could hopefully correct the issues. In order to help you better understand the challenges I faced in the process of making my level play on Uru, the following descriptions detail some of some of the errors I encountered, and how they were solved.
One of the first errors I encountered involved the number of vertices my terrain mesh utilized. Unbeknownst to me, there was a limit on how many vertices could be used in a single object, a fact which PyPRP informed me of via an incomprehensible message in the Blender console window. I reported this message to the group of people who provided my only technical support, and they interpreted it for me and suggested that I cut my terrain into smaller bite-sized pieces. I split it in two so that it fell under the vertex limit, and the problem was solved. Another problem occurred when Uru would simply stop responding to commands after I pulled out the book which allowed me to teleport to my level. This problem was occurring because my level had somehow been disconnected from that book in Uru Library Manager (ULM). I reattached my level to the book in the ULM and everything worked correctly again. At another point, Uru would crash whenever I tried to teleport to my level. I ran the ULM installation program again without uninstalling the original (I couldn't find the option), and also deleted my geometry and started over with a simple grid. I exported this, and apparently one of the actions I took corrected the problem, because the avatar materialized in the level again without causing a crash. Although I encountered other errors and problems in addition to the ones listed here, these errors provide a good representation of some of the more tricky problems I encounted with the software and how they were overcome in order to achieve a playable level. Some of the errors were easily solvable by more experienced people than I, and some of them were of uncertain cause and uncertain solution.

Source Code
I attempted to get as much information on the coding of my level as possible for you to look at, but there wasn't that much which was useful. You mentioned that you would like to see the .prp files created by the plug-in; but as it turns out, these are human unreadable. (As can be seen in the screenshot referenced below. [Which turns out to be an Uru scenery screenshot, argh!]) You can get more information of the objects described by them via PRPExplorer, a program I downloaded to open the .prp files, but this is not really code; it's more like the pop-up you would get when you examine the Properties of a file or folder in Windows.
Besides the .prp files created by the plug-in, there are also the .sum, .age, and .fni files which I was able to open and sometimes interpret using a program called UruFun. I don't know what the .sum and .age files are for, although I know that the .fni file involves the production of fog. Below is the content of the .sum file, all very unintelligible unless one is playing Bingo with one's computer.

05 00 00 00 00 00 00 00 0D F0 9B 9E 8B A3 9C 9E ................ 00000000
8D 9D 90 D1 9E 98 9A CD 56 B1 AE 9A 9C D3 C0 18 ........V....... 00000010
42 68 66 B2 1A D1 92 FE C2 68 47 00 00 00 00 1F Bhf......hG..... 00000020
F0 9B 9E 8B A3 9C 9E 8D 9D 90 A0 BB 96 8C 8B 8D ................ 00000030
96 9C 8B A0 AB 9A 87 8B 8A 8D 9A 8C D1 8F 8D 8F ................ 00000040
18 18 98 B6 0D E4 BB 2E 19 4B 0D 2A 16 18 9C BD .........K.*.... 00000050
73 DD 68 47 00 00 00 00 1E F0 9B 9E 8B A3 9C 9E s.hG............ 00000060
8D 9D 90 A0 BB 96 8C 8B 8D 96 9C 8B A0 BD 8A 96 ................ 00000070
93 8B B6 91 D1 8F 8D 8F 9E A7 97 D8 15 02 A6 85 ................ 00000080
51 8E D1 99 DF BB 6C BC 75 DD 68 47 00 00 00 00 Q.....l.u.hG.... 00000090
1F F0 9B 9E 8B A3 9C 9E 8D 9D 90 A0 BB 96 8C 8B ................ 000000a0
8D 96 9C 8B A0 92 9E 96 91 AD 90 90 92 D1 8F 8D ................ 000000b0
8F 30 DA 17 C9 5E FD B6 79 4B D2 C5 FA F0 53 BA .0...^..yK....S. 000000c0
4F AA DE 68 47 00 00 00 00 0D F0 9B 9E 8B A3 9C O..hG........... 000000d0
9E 8D 9D 90 D1 99 91 96 B8 E8 70 E9 B6 24 0A F4 ..........p..$.. 000000e0
EF 72 4E 76 C3 ED 04 C5 AC DE 68 47 00 00 00 00 .rNv......hG.... 000000f0

The .age file contains some information about the the level you are creating. Mine contains the following data:

StartDateTime=0000000000
DayLength=24.0
MaxCapacity=150
LingerTime=180
SequencePrefix=4502
AgeSDLHook=0
Page=mainRoom,0

I only know what two of these lines are describing, SequencePrefix = 4502 and Page = mainRoom, 0. SequencePrefix refers to the number given to a particular level, such as the Carboniferous forest level I created. Each individual level must have a different sequence prefix number, or else the software which makes it possible to view the level in Uru will not be happy. 4502 is the sequence prefix for my level. I am only vaguely familiar with the significance of Page = mainRoom, 0. In Blender, some property of all the models is related to the mainRoom box. If your objects somehow become disassociated from the mainRoom, various things will not be happy.
Lastly, there is the .fni file. I don't know what other uses this file may have; all I am aware of is that it controls how much fog a level has. I modified this file to produce a fog of the desired density, color, and starting and ending distance from the camera. Here is what my .fni file currently contains:

#Fog settings

#Graphics.Renderer.SetYon float yon
Graphics.Renderer.SetYon 100000

#Graphics.Renderer.Fog.SetDefLinear float start, float end, float density
Graphics.Renderer.Fog.SetDefLinear -5 500 1

#Graphics.Renderer.Fog.SetDefExp2 float end, float density
#Graphics.Renderer.Fog.SetDefExp2 100000 20

#Graphics.Renderer.Fog.SetDefColor float r, float g, float b
Graphics.Renderer.Fog.SetDefColor .9 .9 .9

#Graphics.Renderer.SetClearColor float r, float g, float b
Graphics.Renderer.SetClearColor .9 .9 .9

If you're curious as to what the PyPRP output on the Blender console window says, here's a sample. I believe the objects with 551 vertices and 2206 vertices are a lepidodendron and a more complex lepidodendron. Sunny is the name of my light source. You can also see that my level uses several hundred thousand vertices, and that the exporting process took 7109.02 seconds to complete.

[Visual Object Sphere.129]
Object's material has 1 texture layers
Drawable object has 551 vertices
[ShadowCaster]

[Visual Object Sphere.130]
Object's material has 1 texture layers
Drawable object has 551 vertices
Appending DirectionalLight Sunny as lightobject 0 to object Sphere.130
[ShadowCaster]

[Visual Object Sphere.131]
Object's material has 1 texture layers
Drawable object has 2206 vertices
Appending DirectionalLight Sunny as lightobject 0 to object Sphere.131
[ShadowCaster]

@ Saving page Textures -1
@ Saving page BuiltIn -2
@ Saving page mainRoom 0
=> Storing 16834 vertices of geometry...
=> Storing 32767 vertices of geometry...
=> Storing 32760 vertices of geometry...
=> Storing 32760 vertices of geometry...
=> Storing 23304 vertices of geometry...
=> Storing 50010 vertices of geometry...
=> Storing 58012 vertices of geometry...
=> Storing 34038 vertices of geometry...
=> Storing 34011 vertices of geometry...
=> Storing 36029 vertices of geometry...
=> Storing 34000 vertices of geometry...
=> Storing 34038 vertices of geometry...
=> Storing 34060 vertices of geometry...
=> Storing 34082 vertices of geometry...
=> Storing 34022 vertices of geometry...
=> Storing 34038 vertices of geometry...
=> Storing 34038 vertices of geometry...
=> Storing 34000 vertices of geometry...
\/ Unloading page Textures -1
\/ Unloading page BuiltIn -2
\/ Unloading page mainRoom 0
Writing carbo.fni
Writing carbo.xml
Writing carbo.sum
done in 7109.02 seconds

One other thing you might be interested in is the .blend file, which contains the model of my level. With just a basic knowledge of Blender's navigation (check out the Wikibook "Blender: From Noob to Pro" for the navigation guide) you ought to be able to view the basic model from all sides. To get the .blend file to run, you'll need to download Blender, and possibly Blender 2.44 at that. I don't know what a newer version of Blender would think of a file written in Blender 2.44, so better safe than sorry. This might be the link you're looking for if you want to download Blender 2.44 for your Mac: http://www.techspot.com/downloads/3072- ... r-mac.html The .blend file should have been sent to your e-mail address via YouSendIt, an internet service which handles large downloads (36.45 megabytes in this case). Or you can download it directly here: http://download.yousendit.com/106DC7D664953E44 Let me know if the .blend file doesn't work out for you; I'm not used to sending files this way, and I've never loaded a .blend file in Blender myself, so I may have done something wrong.
Finally, here is a list of every significant program that I used for this project and a site where you can find information about them or download them:

Blender: http://www.blender.org/
Photoshop: http://www.adobe.com/products/photoshop/index.html
Illustrator: http://www.adobe.com/products/illustrator/
Python: http://www.python.org/
Uru: Complete Chronicles: http://mystworlds.ubi.com/us/completech ... /index.php
Uru Library Manager, PyPRP and associated software: http://alcugs.almlys.org/wiki/index.php/Main_Page
PRPExplorer: http://www.cobbs.ca/bbs/showthread.php?t=1219
UruFun: http://www.cobbs.ca/bbs/showthread.php?t=515

Usage and Compile/Build Instructions
To open the .blend file, I believe you simply need to place it in the Blender Foundation folder, in the Blender subfolder, in the .blender subsubfolder. Then open Blender and try to open the file carbo.blend. Alternately, it might be as simple as just clicking the .blend file--with any luck Blender will open it for you automatically. I'm not exactly sure how opening it might work on a Mac, so let me know if you can't open it and we can try to figure it out together. If you would like to render the model, there's a menu option "Render" to the right of "File." Under that, you would select "Render current frame." Hopefully the camera is pointed at something interesting; I never used that feature for my project so I'm not sure what the camera might be looking at.

Screenshot References
1. "The Canopy"
Image

2. "Poor Quality Graphics"
Image

3. "Good Quality Graphics"
Image

4. "Third Person POV"
Image

5. "Collisionless Water"
Image

6. "Still No Choppiness"
Image

Summary/Conclusions
I met most of my original project goals, although as I expected I fell somewhat short of the standard I had hoped to achieve when I began the project. For my first goal, "1. The creation of a mostly bug-free explorable level for Uru: Complete Chronicles," I achieved complete success in terms creating a level that does not crash my computer, corrupt Uru, or generate error messages. I only partially met my second goal, "2. In terms of the models I intend to create, the level should feature at least three different plant types, a clouded sky, and water." My model features lepidodendrons, ferns, and tree ferns, a sky that is socked in with fog, and muddy brown water; however, I never added leaves or completed adding collision properties to all of the lepidodendrons, and the tree ferns lack both lighting and collison. In addition, the historical accuracy of my models leaves much to be desired. I used modern plant forms as the only source of concept art for the ferns and tree ferns, completely neglecting fossil sources, and basically produced a "stick figure" lepidodendron instead of a naturally curvaceous tree. The third goal for my project is rather difficult to quantify, but I feel that it has been fulfilled satisfactorily: "3. I wish to learn how to accurately model and texture objects in Blender, and possibly also to learn how to create my own textures in Photoshop for use on the forest models." Although I didn't have enough time to "accurately" model everything that I made, I feel that I have learned enough about modeling and texturing that I could do so, if given sufficient time. I also achieved the optional goal of learning how to create textures in Photoshop. The final goal, goal four, is an area in which I feel I have fallen short of my original expectations: "4. The overall effect of the simulation should be pleasing, if not brilliant, and real-time exploration without jerkiness or lag should be possible." While I would agree certainly that my simulation is not brilliant, I wouldn't say that I find it terribly pleasing either. Satisfactory, yes, but not truly pleasing. Specific problems include the floating ferns, the poorly lit neon green lepidodendrons, the exposed fault between the two planes that make up the terrain, the lack of leaves on the lepidodendrons, the too-dark green on the terrain, and the objects which clearly should not be embedded in each other, such as the leaves of one tree coming out the side of the trunk of its neighbor (see screenshot 2, "Poor Quality Graphics"). If these problems were corrected, then I believe my level would be "pleasing." On the other hand, other people (not including immediate family members) have made positive comments about the appearance of the level, so perhaps I am being overly critical. Real-time exploration is possible at least, with no signs of jerkiness or lag in even the most heavily vegetated areas (see screenshot 6, "Still No Choppiness").
I learned a great deal from this project. My knowledge of 3D modeling and 3D modeling software has increased greatly, as has my awareness of how much geometry an actual computer game can handle without trouble--which turns out to be a lot. I also gained a greater understanding of the Carboniferous time period and the flora and fauna associated it, as well as a better knowledge of cockpit country. I learned about aspects of computer game creation and gameplay such as increasing the playing time of a level and how game objects such as collision meshes, spawn points, swimming regions, and lighting are applied.
There are of course numerous things I would do differently if given another chance. Starting from the beginning at research, I would have focused on and pursued the specific details of the plants I was planning to model instead of reading more generalized information about Carboniferous plantlife. In terms of the model's terrain, I wouldn't have applied vertex randomization to the floor where the avatar walks, as it causes the avatar's camera to bump up and down in a somewhat sickening fashion as the avatar moves across the bumpy terrain. For the plant life, I would have followed a totally different approach than the one I used, which was to create numerous models with properties that varied from model to model as I improved the "final version" model which I used as a template to clone further models. This resulted in various objects with lacked one feature or another: a texture perhaps, or collision, as in the case of the lepidodendrons. Instead, I would perfect one single model, complete all the details to my satisfaction, and then and only then would I clone the plant model and spread it across the map. I would also have created each type of plant life on a different layer, as it was at times very difficult to accurately place or select models with other objects constantly obstructing my view and preventing vertex selection. In addition, I would have investigated grouping, a method of categorization which allows a group of objects to be treated as one whole; this would have saved much time and trouble for me in the area of object selection. For example, it was often difficult to try to select all the fronds of a fern when some of them were obscured by other plants; it would have been much better to merely select a single frond, press a key combination, and then to automatically have the entire fern selected for me.
If I had another month to work on this project, I would extensively improve the graphics quality and gameplay abilities. In terms of graphics quality, I would redo everything and start from scratch, this time using fewer vertices and putting more time into doing things the best they could be done. I would add features like fallen logs that let a player reach the tops of the raised hills, footstep regions, and swimming regions--all things which allow a player to explore the level more deeply and to be more immersed in a more realistic experience. I would also inject more naturalistic detail and imperfection into the simulation, adding features such as mutant trees, spiderwebs, broken branches, dead leaves, and improved geological features related to swamps and cockpit country. I would texture everything with the best textures I could obtain or create. In short, I would totally redo the half-decent models and textures which I've made so far, add in the more easily implemented gameplay features such as footstep sounds and swimming, and with these tasks completed I would devote the remainder of my time to expanding the project with new types of plant objects and additional areas to explore.
Jennifer_P
 
Posts: 729
Joined: Fri Sep 28, 2007 10:54 pm

Re: The Final Report on my Assignment--for Essay Junkies Only

Postby Robert The Rebuilder » Fri Dec 21, 2007 10:10 am

Up until now, when viewing your screenshots, I had no idea of the scale of your plants. But once you provided the 3rd person POV shot, it hit me, and it now seems much more realistic. I like your fern texture, although you don't sound too pleased with it. It looks like a fun age to run around in, especially with friends willing to play hide and seek. Well done!

One question: why are the "Poor quality graphics" and the "Good quality graphics" shots identical? [Or is that a joke that I'm too dense to get?]
Can we rebuild it? Yes, we can - here's how.

MOULagain KI# 1299

Myst Movie coming soon - spread the word!
User avatar
Robert The Rebuilder
 
Posts: 1383
Joined: Sat Sep 29, 2007 7:24 am
Location: Virginia, US

Re: The Final Report on my Assignment--for Essay Junkies Only

Postby Jennifer_P » Fri Dec 21, 2007 1:43 pm

Hm, 3rd person more realistic than 1st person? I'll admit that the size of plants is definitely different in each mode, but I hadn't thought of 3rd person as being more realistic... Just out of curiosity, why do you think that is? And I'm glad you liked how the Age turned out. :) But I'm starting over from scratch now, as I had to cut so many corners to get this done on time that my Age ended up circular! Now let me fix that screenshot--looks like I mixed up the links when I was creating them. I'll need to send the correct link to my instructor too, so good catch! :)
Jennifer_P
 
Posts: 729
Joined: Fri Sep 28, 2007 10:54 pm

Re: The Final Report on my Assignment--for Essay Junkies Only

Postby Whilyam » Fri Dec 21, 2007 2:11 pm

I think it seems more realistic because you can get a sense of scale 1st person lacks.
User avatar
Whilyam
 
Posts: 1023
Joined: Sat Sep 29, 2007 5:55 pm

Re: The Final Report on my Assignment--for Essay Junkies Only

Postby Chacal » Fri Dec 21, 2007 4:55 pm

Great work and clear and objective analysis.
Congrats, young padawan.
Chacal


"The weak can never forgive. Forgiveness is an attribute of the strong."
-- Mahatma Gandhi
User avatar
Chacal
 
Posts: 2508
Joined: Tue Nov 06, 2007 2:45 pm
Location: Quebec, Canada

Re: The Final Report on my Assignment--for Essay Junkies Only

Postby Jennifer_P » Sat Dec 22, 2007 12:56 pm

I think it seems more realistic because you can get a sense of scale 1st person lacks.

Hm, I think you're right. As a "photograph" it makes more sense to have a figure in the picture too.

Congrats, young padawan.

Thank you, Master Chacal...
Jennifer_P
 
Posts: 729
Joined: Fri Sep 28, 2007 10:54 pm


Return to Jennifer's Journal

Who is online

Users browsing this forum: No registered users and 0 guests

cron