31 December 2011

Work-in-Progress: Courthouse (modeling continued)

I had three viable topics for this post.  Since it is he end of the year, I could do a recap of the previous year and  what I want to do with this project in the coming year.  I thought that was a much better topic for the first post of the year.  The other was some of the other engines I have looked at, but I am deciding to wait and see if I try any more and do them all in one post instead of spread out.  So this leaves me with my third topic, the Courthouse Work-in-Progress I showed last post.

To the left is the courthouse from last post but with some major additions.  The model now has 4200 faces, about twice what it had previously.  Most of my complaints were addressed since last time with a few exceptions.  The star in the circle in the eave is still made out of polygons but will eventually be made into a texture when I get that far.  For the moment it is serving a a  placeholder and may even be put back if I do not like how the textureing looks, but for the moment that is a few faces I can cut from the final project.  The flagpole is missing a flag.  The final change I wrote I would want was the base of the columns.  In the close-up version, the base just looks a little odd in comparison with the way the rest of the model flowed, but that was only the entryway, and an incomplete entryway at that.  Looking at the project as a whole, at least in terms of actual modeling, the bases seem to fit in very nicely

This images is from a much better vantage point, making it easier to see a little more of the detail.  Since last time I finished to molding and added it completely around the building as well as a special set of bricks on each side-edge of the building.  This just left the void to be filled by windows.  Originally I wrote that I wanted two different kinds of windows.  I was expecting one small and one large, but after looking at the project as it was turning out with the large windows duplicated where the smaller ones were going, I decided that the large windows looked nicer.  Tat pretty much fills out the bottom section of the building with a couple of blank planes set up to fill in the gaps between the windows.  Next came the roof, which started as a plane and then altered to give a nice size lip, but not enough to obscure any of the detail in the clock-tower.  The clock-tower was the final addition to the project to make it just a little more interesting to look at.

This is the back of the building from the opposite side the other two images were taken.  I took this mostly to show how I staggered the windows a bits.  This about shows where the project currently stands, I could have made it more intricate, but this side is not the side likely to be viewed, and that would have just increased the polygon count even higher.  For a building this size, while the count is not great, I would say I am not disappointed in how it turned out and I cannot really find a face that is unneeded.  So with the modeling basically finished, there are a few details which may get changed as the project moves forward but they are only minor details, it is time to bring the model into the next phase: texturing.  This process make take quite some time, so do not be surprised if another building is modeled in between now and when this building is textured.

If I get some free time, I am going to go through the pages and clean them up a little with recent changes to the project.  Have a happy New Year,
~gunnah

27 December 2011

Work in Progress: The Courthouse

I could easily go over what features I like about Ogre and which I like about UDK and which I would like to see and which I find annoying.  I have gone over this already pretty much as far as I want to, so unless a new contender pops up I am not going to say much more besides small status updates about what I am learning in which engine.  This week was nothing, I forgot about Friday night's post since I was real rushed with Christmas Eve being the next day.  On the up side, since I will not be talking about engines and the like for a little while, I will focus more on the game art, which at least looks like more progress than just saying this or that was programmed, I promise.Another thing I did not notice is that many 3D objects are not modeled in a sitting or two but spread out over the course of months, so I will be doing a series of work-in-progress updates.

To the left is my current piece I am making for the game, the courthouse entrance way.  Obviously I am missing most of the building, but this will be the focal point of the building so I wanted to give it my attention before moving onto the rest of the building.  My goal is to make it as low poly as possible, but since this will be a unique building, and I may want to reuse some or all of it in other projects eventually, I am giving it some extra polygons (polygon face count is currently about 2100 for just the entryway).  Now this is more of a status report than a final release and much of this model may change between now and the model which I will include in the game.

Going from top to bottom I am going to give some of my own critiques of what I would like to change or aspects which may be altered.  I am fairly happy with the scales on the top of the building and because in no game I can really think of the player could get close enough to tell me which polygons are out of position, I think it is fine.  Next is the parallelogram roof.  During texturing the circle in the middle will likely be turned into a texture to save on faces.  There is a star in the middle but the star is very hard to see since there is very little way to light it and cause shadows.  Along the bottom edge, I would like to make a molding which I could possibly reuse as the roof's molding.  The columns are fine, but base just do not seem right to me, they may look better once everything around hem gets filled in, but they just do not seem right to me.  I am fairly pleased with the decorations above the doors and the flagpole and holder on the wall, though obviously I am going to need to add a flag.  As for the doors themselves, they need handles of some form.  The stairs may need a little beveling so they are not quite as straight and a handrail in the middle to break up the long straight lines going across the stairs may also help the scene.  Finally on the base of the entry way, on both sides I want to make a high molding which I will then use throughout the base of the building to mark out the perimeter.

Now onto what still needs to be designed.  Two kinds of windows.  I want a large and a small kind of window, which will be spread around the building to take up most of the wall space.  At the corners I want to make a nice decorative piece so all of the detail is not focused at one point.  The molding at the roof and around the base have already been discussed but would be the last elements to build the lower walls.  On the roof I would like to put in a clock tower.  This will involve another smaller window, the clock piece itself and a molding separating the building from the dome.  Then once all of this is modeled, texturing can begin

Until next time,
~gunnah

20 December 2011

Taking this decision slow

While I would really like to just breeze through this decision and go this or that is going to be my engine, my mind is made up and I am done with all of this discussion, that is not going to happen.  Moving from an open source to a licensed proprietary engine has both advantages and draw backs and I will probably be looking over several other engines before I decide on a final choice.  One of the big problems is with Ad Sense links listed, despite not being really generating revenue, I would be required to get a license since it is considered an alternate form of income from my product (I read and re-read most of the legal and business pages to make sure I am not going to get in trouble with anything).  Since I do not really have the money for the license at the moment, buying it and declaring the Unreal Development Kit my engine is not really an option.  Also, I would like to make sure that the UDK is exactly what I want before I spend money on it.  So I will probably check out a few other FPS and 3D engines to see what they are like and work from there.

In the meantime, I am going to keep working with the UDK.  Most because if I do choose it as my engine, to be able to jump right into programming will make the project advance quicker.  Also, while I cannot afford the license, as long as I am using the engine as an educational tool and not making any profit off of it, I can use it without a license.  One of my biggest problems with Ogre was how poorly worded some of the tutorials were.  UDK hosts hours on end of tutorial videos showing exactly how to do what.  One of the biggest problems I had with run-time errors was changing names of strings which Ogre needs in a particular format, but were not commented or explained as being necessary how they were presented.  While I would like to keep playing in code, the UDK is not distributed with its source, so I do not need to worry about these strings.  Now, UDK offers a built-in coding area, but this is nothing like what I would need access to in order to replicate the problem from Ogre.  One other plus with UDK is having a built-in level designer and not need to worry about the DotSceneParser, which gave me so much trouble a month ago.

While not a very comprehensive comparison, I am just listing some of my observations where UDK seems easier to use than Ogre.  Of course, UDK being in a GUI and not several thousand lines of code does help with coding problems, so I guess the adage you get what you pay for may have some validity.  Most likely I am just going to keep on fooling around with UDK for the next few weeks, then look for another engine to try out, or take some time and go 3D modeling to reappraise the project.
~gunnah

17 December 2011

A big decision arises

While I had more or less figured out what I was going to do for the weapon system in the tutorial I had been working on, I am not sure if I am advancing in Ogre any further.  I had been talking to a few friends whose major deals with networking and computer programming, and they told me Ogre was not the best way to go.  While I have not completely given up on Ogre, I do have a few issues.  Te biggest advantage of Ogre is it is open source, so anyone can go in and really customize any aspect of the engine.  Other things I like about Ogre are the speed of compiling, my familiarity with the conventions used in programming and the relative ease to change levels using the DotSceneParser, one it is working.  But Ogre is a 3D engine, and every other aspect of the game needs its own engine: sound, networking, physics, and GUI.

So the recommendation to me was move over to the Unreal Development Kit, the free for non-commercial use version of the Unreal Engine.  Since I have not made a cent off of this game yet I am not real worried , though if I ever make any money off of people clicking on the Ad Sense links on the side of the page or I ever get a donation page up I will definitely need to go over their legal requirements to see if I need a license, though I am thinking it is only if I am actually selling the game.  That is my only big worry right now since the UDK has the financial stipulation, another problem I have is the engine is not open source.and with the UDK I do not even have access to the engine (they allow access to the pre-built binaries for free).  Right now those are my big complaints, though I am not real worried about them.  I cannot really comment on how it is to program or design a level or anything since I am still making it through a lot of the introductory documentation.  Though having all of the aspects integrated into the engine does seem like it would be easier.

So, I do not have much to show for the previous week, and probably will not have much for the weekend since I think most of my free-time will be spent reading the UDK documentation.  I will probably make the decision n whether to switch or not once I have read most of the documentation, made a level and imported a mesh or two.  My guess is in about I week I will decide if using the UDK would be advantageous for my project, because this is big and something I do not want to rush.
~gunnah

13 December 2011

A little bit of a stall

So I was working on the next tutorial which is adding a weapon system.  The basics are fairly simple, a database class to hold all of the pointers weapons and the individual weapon classes (all extending the Weapon base class).  This looked to be an easy tutorial finished in an afternoon, until I got to the end of the tutorial where the lists and arrays are actually implemented.  At that point none of the generic classes the tutorial used worked properly and instead of reading like they were suppose to making life easy, they all came up as an error-type.  Now it was not the way I made them, I actually at one point copied the code straight from the tutorial source (the tutorial itself does not give the generic types, I had a similar problem during one of the earlier tutorials also) and it still did not work.  So right now I am deciding how best to handle this section of code and if it is worth while to actually implement my own list type.

Not much was done from a planning or art perspective on the game, I was fairly tired and the coding problems just made it difficult to think of what to do next on anything else related to the project.  The one thing I did manage to do was run the Intermediate Tutorial 3 as a stress test for client side program.  I took the number of tens of thousands of faces and plotted that versus the number of frames per second I was getting and found that I got the equation: faces in thousands equals the constant 2027.7 divided by the frame rate to the power of 0.809.  The r-squared value, which is an indicator for how closely the points match-up with the line was 0.9939 on a scale from 0 to 1, with most real world experiments lucky to get a reading of about a 0.9.  What this means is that I can say with a decent confidence the game should run decently on a decent computer with between 100 and 125 thousand faces on the screen (for me that was between 30 and 40 frames per second, PAL frame rate is only 24 fps, with animation being either 12 or 6 fps; most games are targeted to run at about 20 fps).  This will give a little leeway for computers which are not as good as mine while still giving me an overall target to plan with.

So, for next time I am hoping to have the Weapon system all reworked and be ready to move onward through the tutorials.
~gunnah

10 December 2011

Finally made some progress

While the last month and a half may seem like I have little to show for it, I have learned a great deal about 3D modeling.  Not that I really want that as my excuse, but it is how I explain it to myself, so that is about all I can say about it.  Life really has been harsh the last month and a half, so hopefully it starts to ease up a bit.  As far as programming goes, the last month or so has been a complete washout, basically being stuck at the same point for he entire time, but that has now changed!

Tutorial 2: Loading a Scene has caused me nothing but pains sine I started it.  As I commented last post, I had almost finished it for that post, at that point my errors laid outside the coding.  As it turns out, having required files in the same folder as the other project files is not good enough for Visual Studios, you actually need to bring the files into the project inside the program.  It took a bunch of thinking to get that one, so this is as much a note to myself as a warning to others.  Once I solved that trick, I was almost home free.  As it turns out, the strings of names given in the program need to match the XML file, but that was nothing to correct.  So I am done with that, unfortunately, all it does is display a corner of the static map, so it is really nothing to look at.

Now onto the next tutorial, Adding the Player.  The part of this one which took the longest was adding all of the minor changes to the parser allowing items to be parsed right into the game engine instead of a secondary scene manager.  Overall this tutorial went very smoothly without too much new material learner.  Though I did find out what kind of shooter this tutorial was making: a fixed shooter - think Space Invaders or Centipede - with a little better graphics than those old arcade games.  I know it is not the perfect match for what I am doing, but it covers most of the basics, which can then just be applied to three dimensions from the two already programmed.

The final tutorial I finished was more of a bathroom reading material type of exercise than an actual tutorial.  It was called Populating the Level but was really just a collection of links to sites which offer free or cheap low polygon count models.  I am most likely just going to use the models the tutorial does to finish the tutorial as quick as possible, being a month and a half late already from where I wanted to be, and then make my own low polygon models for the game.  To be honest, besides the pains of making sure the Credits page is one of the first done, I would also feel a little weird using someone else's materials.

On a programming side note, I also wrote my first pair of server/client programs.  I know all they do is send the string "Hello, World!" from one panel to another on my Linux-box, but I under stood 80% of the code use to make them.  There was a few functions which I did not quite grasp but the text outside of the program said that what I did not understand was okay since the author had not gone over the code previously.

The last thing I would like to discuss is a redefined timetable (I know I go over this every post, but this one should hold unless something really goes wrong with my program of Life).  For now I would like to say that the Shooter tutorial should be finished for the post just before Christmas.  The Advanced Framework should be done for the last post of this year.  Once those are done, I can begin actually coding on the game, which I am going to say early to mid January on the Progress page (I know that was originally early November, but I hit a speed bump), possibly using some of the starting coding to make the proof of concept I want to do.  Well this post is too long now, so I will stop here, hopefully more good results for the end of the weekend,
~gunnah

06 December 2011

Short and Sweet

I guess the best way to sum up the weekend was average.  I did get some done, have a lot which I should be getting done.  So let us start off with the programming.  I went through and redid the first tutorial, got it to compile and that means I was back to where I was before in terms of what I had that would function.  Unfortunately the first tutorial is how to make a black screen, not the most impressive piece.  Next up was retrying the second tutorial, again.  This time I decided I would stick with the tutorial and use the TinyXML files.  I got the entire code finished, ironed out all of the coding problems, but there is a little snag.  When trying to make the object file (not really sure why Visual Studios makes that file but it does and it gets cranky when everything is not lined up right) I am getting a hand full of linking errors which I need to work through.  Hopefully once these errors are solved, the program will load up the XML file and I can move on with the tutorial.

That about sums up the programming end, now onto the 3D modeling.  My primary goal is eventually to make all five of the original tanks and then alter them beyond recognition.  Okay, maybe not that much, but I do wish to use them as a base for my tanks.  Working from a set of images, I did start that.  I decided to work on one of the odder looking tanks, the Mag Rider.  While I still need to tweak the proportions so they align with what I am looking for in my game, I have the basic shape mapped out in a surprisingly few number of faces.  Of course, once I get the proportions, I can start making changes, though the changes will probably wait until I have all five of the bases finished.  I will probably use the more traditional bodied Vanguard and Devastator as the base for multiple tanks and the more uniquely bodied tanks as the base for just a singular tank.

I also will probably need to do a stress test or two to find out what kind of polygon count I am looking for in a scene.  From what I have been reading it is almost down to the program what kind of polygon limits are required.  My hope is to just get a base line and move from there.
~gunnah

03 December 2011

A new month

Since this is the first post of a new month, I figured I would use it to plan what I would like done during the month.  While the last two months had some high points, I feel the programming end has been stalled for some time now.  So my top priority is to get the 3D shooter tutorial back to where it was before I destroyed it, then continue to build.  If all goes well, I will have that project done fairly quickly.  Once that is done, I want to piece through the Advanced Framework tutorial at which point I will be done with tutorials.

My secondary concern is getting some models ready to use in the game.  I have decided I will begin with the five original tanks from Tanarus and build them into something new.  After looking at the models carefully, I realized the majority of the detailing was in the texturing - a neat trick to make fairly detailed tanks using only 50 or so polygons.  Right now I just want a base model to use as a place-keeper.  Once the tanks are ready, which should not take that long, I will finish up the level map.  Neither the tanks nor level map have that big of a rush since neither will be utilized before I finish the Advanced Framework tutorial.  Once I finish the level map, I can start working on itemizing all of the building and objects I will need for the map, but this is still some distance off in the future.

Finally are my goals with my 3D modeling.  The biggest goal is learning how to texture my models.  While a decent model is a great place to start, even a mediocre model can be saved with a good texturing job.  After all, almost all of the detail in the original tanks were in the texturing.  I would also like to start finishing some of my open projects, but there is almost no rush on that happening.

Just a little note: after working on a few models and seeing where difficult portions lie, like getting the right roundness while preserving a poly count, you do begin to see it in video games.  Not so much in CG scenes or movies since those are entirely rendered and do not have poly constraints like games.  Well, until next time,
~gunnah