29 October 2011

Two Steps forward

No pictures this time around, I did very little with my 3D modeling projects while trying to get through as much of the tutorials as possible.  With that noted, I finished the Mad Marx tutorials.  What was the biggest thing to take away from them?  try to keep your code in nice easy workable files instead of a long single file.  Each tutorial was suppose to have its own file, which would have simplified the coding a little,. but a lot of the program was reused in other tutorials, so I ended up with the tutorials split into four files.  The first was making an Ogre program from scratch and did not require their headers, so it was alone.  Then 2 through 6, 7 & 8 and 9 &10 were each split into their own executable.  None of them were that much to look at, and they did almost nothing so I am not going to upload them.  So the only tutorial left is the Advanced Framework in the In-Depth Tutorials.  I plan on making this the last tutorial I do, molding it into a base for my technical demonstration which will serve as a base for the game itself.

Now there are a series of tutorials off of the Ogre website.  I mentioned earlier the Artis series of tutorials is mostly missing, but there is a 3D shoot 'em up tutorial, which is divided into ten tutorials.  The first tutorial is setting up the application.  Nothing real new, so it went together fairly quickly.  This tutorial builds on itself so I am not going to post each tutorial, but I may, when I finish and if I feel it is acceptable, post the end-product.  That decision will come at a latter point.  So with the first tutorial done, I moved onto the second tutorial.  Tutorial 2 is level creation (add something to the blank scene seems to be the second level most of the time and this followed the trend).  The code itself was fairly small unlike most of the other level creation tutorials.  This tutorial uses DotSceneLoader header which allows for most of the scene code to go into an external XML file.I had two choices with the DotSceneLoader and since I am trying to learn as much as possible, I went with what was probably the harder option.  The tutorial uses TinyXml which is a little more bulky than the RapidXml recommended on the Wiki.  Either should behave the same to the program (and they do, same line of code would be used with either) but I am having a problem with the format of the XML level, for some reason it does not like the terrain section (the program runs fine when terrain is removed but fails to load when terrain is included.  So I did take two large steps forward finishing Mad Marx and starting the Shoot 'Em Up tutorials, but I have had to take a step back while trying to figure out how to write the XML file so the program will run instead of freezing.
~gunnah

25 October 2011

Recovery

So I spent most of the weekend recovering from the cold I had last week.  This means I did not get much done with anything.  My 3D modeling got distracted by a small part of a small part of my big project and I just did not get much else done.  That said, this gave me time to update my Progress page which I will describe below. Other additions for the near future may be an images page where I put all of the images throughout the blog into a single section, though I may hold off for a little while and split it in three sections.  3D modeling tutorials would cover images I have done for the different tutorials and modeling work which is unrelated to the game.  Concept art would include any Ogre screenshots, original 3D modeling for the game, and anything else I think should be set aside in this page.  The final page would be a game preview page which would include images from any project which will be built into the game as well as models which will be used in the game.

Okay now for the changes to the Progress page.  Tutorial completion is set properly.  A note about getting the numbers wrong has been removed since the completion has been correct for about two weeks.  Artis tutorials have been removed.  Though I did not do any tutorials this weekend, I did go through o see what was remaining.  After actually going into the Artis tutorials, I found mot were only tables of contents to be added later.  A new section has been added for small projects not handled under the tutorials.  The tank movement demonstration has been described in an earlier post and I am not going to go over that again.  Also note I moved the start date from early to mid November.  While the two technical demonstrations will become part of the game, actual work on the full game will not begin until later.  So while much of what I do in early November will be foundations for the game, I am not considering the work on the game to begin before the two projects are finished.

Now to go over what I want the Proof of Concept to entail.  Upon opening the executable, the game should initialize and then open up the log-in screen.  For the concept the log-in screen will just have a button to move on to the actual game if the right username is put in, else it displays a failed log-in screen much like I want the actual game to do.  Once in the game, I want to be able to go to at least two of the menu screens and have the bring actual information up, the rest should say under construction.  Hitting the escape key should bring up a menu after passing the log-in screen.  Here I hope to set up a few working options, put mostly this is a place holder for the future menus.  Also in the menus is am option to exit the game which should be the only way to terminate the program.  I do not want to make it impossible to leave but I also do not want it to be possible to exit the game accidentally.  The final aspect I want to add to this is when one goes to where the game should start, it brings up the aforementioned tank movement demonstration.
~gunnah

22 October 2011

There is a plus

I am going to start off by saying I did not get anymore more of the tutorials done. I caught a cold somehow and it has made my brain not want to do much. The plus is I think I was a little ahead of how far I thought I would be, so I do not think I am that far behind. Hopefully in the coming week I will have most of the tutorials finished, though that is on the assumption I get over this cold (it is really only drowsiness, congestion and headache, but the headache makes too much thinking a problem).

Now that I have gotten what I did not do over the week out of the way, I can get to what I have done over the week. While unable to concentrate on code, working on 3D modeling does not hurt my head as much. (It would be the errors that would hurt my head since many are written in such a way that there is no clear you missed this or that is spelled wronged, you know, useful messages.) As noted in the previous posts, one of my big problems was getting the images to actually render properly. As you can see by the hookah to the left, I think I figured my problem out. My big problem was I was missing the background image (I did not realize one was needed as either an HDRI or created through the program itself), along with a lack of practice texturing different materials. That was one reason I decided to redo the hookah (the first time did not come out as nice, plus I accidentally deleted it) which has glass, metal and ceramic.

While I did a few other tutorials, the only one I finished was the sprocket to the left. It did show how to use the bevel function, but outside of that, it was just shiny looking and complete. Besides these two finished items, I have two items waiting to be rendered - the tank from last post and an airplane which is giving me a hard time because of how I want it rendered. Additionally I have 2 or 3 items waiting to be made and one large-scale project waiting to wrapped up and rendered. When I finish this large-scale project, I will probably devote a post to it since there will be quite a few images and that will detract from anything I have to say about any other topic.

So, where does that leave me, a few 3D modeling projects to finish up before I start work on 3D models for the game. A few more tutorials before I start work on the game. I also want to make the technical demonstration mentioned in the previous post and a proof of concept type program that has most of the basic aspects of the game in place without being actually fully functional. Once all of this is done, I hope to start work on getting the game actually moving towards something playable.
~gunnah

18 October 2011

A fairly slow weekend

While I did very well in my opinion last week, over the weekend I did not do so much. This is mostly because I am working on honing my 3D modeling skills. As noted in previous posts, I am doing 3D modeling tutorials but they are not arranged in any sort of structure to number them, and even if they were numbered, I would be unlikely to do them like I am the Ogre tutorials since I am only looking to learn a small subset of modeling skills.

So I decided to make a tank model over the weekend. Probably the most noticeable difference is the higher degree of intricacy in this tank as those I have previously included in screenshots of programs. Another thing to note is this one has, though fairly poor in my opinion, coloration. So my rendering work still has quite a bit to be desired, other than that I am quite pleased with how it turned out (I am unsure, but I think it is an M48 Patton, even though it was found on a search for the M4 Sherman).

Depending how inspired I feel, I have been thinking about using the above tank as a character for a camera test (similar to the In-Depth tutorial but this one would be a little different). My plans are to include a 1st person and chase camera. I am implementing the chase camera as a way to see how the tank responds to various commands. 1st person should look down the barrel of the tank. The arrow keys should move the tank on the terrain. A and D keys should rotate the turret between -180 and 180 degrees. W and S keys should raise and lower the turret (a little experimentation will decide what angles look realistic). Note these are the same controls that will be used in the game. If I make this, I will consider it a technical demonstration for the game.

Well, I think that is enough ranting for nothing being actually done.
~gunnah

15 October 2011

The Long and Short

While I could go on for a while about all I have done over the week, my hope is to keep this post fairly short. The biggest news is I finished the penultimate In-Depth tutorial, which had to do with changing the camera. My only complaint with it is the 3rd person camera does not follow like I think it should. Also to prevent unexpected behavior, I needed to overwrite one of the example functions, not a big deal but that is not in the tutorial and is the only thing that makes the tutorial worth playing with. I am hoping to getting around to fixing it sometime over the next few weeks (should only require changing the camera to update based on character position) and I will post it online since it can be fun.

Now for the next sets of tutorials. I went back and started redoing the Mad Marx tutorials. I have been able to work through the original error I got and have about half of the Mad Marx tutorials finished. Unfortunately the tutorial window has reached a point where I need a fresh window to see what is going on and I have not felt like making the new file. Hopefully these will be finished in the course of the next week, but it is doubtful they will get posted online. So far the best lesson from their actual execution (I read the tutorials a while ago) is why to use header files.

Okay, last topic for this post, my work with 3D modeling. Notice no picture, means I did not finish anything worth sharing. Of course this does not mean I did not learn anything. Probably the biggest lesson is that human heads are very complex to model. The other is how to use two complimentary images at right angles to each other to make a 3-dimensional image of the object, of course also learned is he farther from been at right angles to each the harder the 3D image is to make. With that said, I will probably have a cool picture done for next post (or the one after if the image takes longer than I am thinking it should).

Being I went over what I thought I would get done when least week, I am going to end the post here. Not real short, but fairly concise. I tried,
~gunnah

11 October 2011

Just a couple more tutorials

Of course the tutorials remaining are most likely going to be fairly long, but there are only 16 more to go through. 9 of them are in the Mad Marx set of tutorials, which I am hoping to go through fairly quickly since I have read them already. But enough about the future, I will go over what I did over the weekend.

I will start with the 3D art. Notice the lack of picture, that is because I have yet to figure out how to properly render the frame. I was tempted to post the screen image from from the 3D modeling program or import it into a simple Ogre program and see if that worked, but I really just want to figure out how to properly render the image. I was working on a screwdriver which was supposed to have a translucent handle (a yellow handle for that matter, and all I got was opaque red, why I am not posting the image). Hopefully I can get that straightened out by the end of the week. I do have the logo for the log-in screen when I get around to coding it. I may release that when I get the page finished (of course no functionality, but a good technical demonstration nonetheless) but that will probably be a little ways off, right now my main focus is going through the tutorials for Ogre as quick as possible.

Now onto the actual meat of the post, what did I do in Ogre. To be honest not much. I did read through the entirety of the Practical Application tutorial, but had a hard time getting it to compile properly. While I will admit to failing with the tutorial, I did learn quite a few things from it. Probably the most important is the concept of how to construct an executable for distribution. Very few tutorials deal with what needs to be included with the executable if you want to distribute it and this tutorial was no exception. It did however go into good practices for how to manage resources needed by the executable. This involves keeping the executable in a central folder and all additional files needed for run-time in sub-directories. That and he fact that any file pointer, either hard-coded or in a configuration file should be a relative address from the executable since some people may not install or run the files from the same location that they were initially compiled.

The next tutorial was a lessen in linear algebra, a class I have not taken. It was informative, explaining how in order to prevent unexpected behavior, the best way for a camera to be stored is attached to 3 scene nodes. Each scene node handles one of the rotations (about the x, y or z). A good if not difficult read, it also went into how Ogre handles the quaternions (a four part variable holding the x, y, and z displacement of a vector from an origin and the degrees to rotate about said vector) and how some of the similar looking functions actually handle the quaternions.

Finally there was the simple first person camera tutorial. While very interesting, and I will need to implement something like it in my game, it was just a few code fragments from what I saw. Which brings us back to where the post started, what is coming down the pipeline. Probably the next post will have one more In-depth tutorial and whatever I can get done of the Mad Marx tutorials. Hopefully after a week or so the Mad Marx tutorials will be done and I can move onto the Artis tutorials. I am not sure how I am going to finish the tutorials, but it will come down to combing through the Advanced Ogre Framework and the Creating a shoot 'em up with Ogre 3D, hopefully all done by the end of the month.

This will mean that actual programming for the game should have the basic screens, though probably not most of the functionality by early to mid November. Of course that is if nothing slows down the current pace these tutorials are being finished.
~gunnah

08 October 2011

Picture unrelated

Okay, tutorials completed during the week: 2. Not that impressive, but it is at my initial predicted rate, of course there is no coding in either of the two tutorials which is why it does not seem that impressive. But that is another story.

The first tutorial was another tutorial on resources and resource managers. This did not go over much new information but had a decent layout for how the resources actually flowed in a program from the declaration of the resource manager to the unloading at the termination of the program. It also handled how to create a new resource manager for data types not currently covered by Ogre like how to handle a text file. The second covered was near useless. Besides giving a little overview of the different buffers, it was just 4 C++ files. There is no real explanation or walk-through of what does what or why different lines are added, just a lot of code to go through.

While I could spoil the next post with a preview of the coming tutorials since I started the next two, but I will wait until I get through them to go over them. So I will go over good news instead, I finally got around to figuring out what had to be changed to get the tutorials to run, so the links should be added to the Progress page when I update it with how many tutorials are done.

Is this picture unrelated? I would say yes for the most part. Why am I showing it? I like how it turned out, but besides that, I also started to work on my 3D model skills by going through a tutorials I find online. I do have a site, but since it is mostly just links to other people's work, I am not going to follow it as I have those listed on the Ogre Wiki. So that is good news, I am only going to wait until I finish the tutorial on the Ogre wiki and not add another series of tutorials. Of course, I will probably be showing more and more of that work off, especially as more and more of the tutorials are just reading or when I first start coding since there will probably be little else to show off. So far I have learned quite a few tricks, as before I only knew vertex manipulation, like extrude and revolve on top of the animation and materials used in coloration.

So was it a productive week? More or less I think so. What is next? Hopefully a few more of the In-Depth tutorials.
~gunnah

04 October 2011

A little bit of a slow weekend

I should clarify this a bit. It is not for a lack of effort the weekend was a little slow. The In-Depth tutorials take a lot of time to go through since they tend to be very dense with information. With that said I did manage to get through 2 of the In-Depth tutorials over the weekend, one on manual resource loading and the other on how Ogre manages resources. The management was interesting since it explained why the tutorials gloss over the fact that even on the simplest of tutorials, the whole resource configuration file is loaded into the program. Apparently, as long as the resource is not called to load, it is only a pointer to a space on the hard drive (at least how I more or less understand it). While neither of these are extremely useful, I plan on mostly using models rendered on a 3D modeling program and not making the objects by scratch, they did provide some insight into how Ogre works with the meshes and textures not previously covered.

Not to disappoint too much but the tutorials for next post look to be of a similar type, interesting, though not extremely useful. Of course, I say that now before I set out to do the program, I may find that I will need to refer to these when actually loading a custom resource type.

As for the file for some of the previous tutorials, I kind of forgot them. For me they are less important than moving on with the next set of tutorials. Hopefully I will remember them sometime in the next week.
~gunnah

01 October 2011

Moving forward

Well, I managed to find a way to compile the programs which were giving me errors. So I went back and did the first Mad Marx tutorial. Finding the fix was more accidental while working on another project than it was trying to rework the Mad Marx tutorials, but I guess I will get around to them in the near future.

I also started the In-Depth tutorials, with my own version of the framework. My goal is to go over each of the other tutorials and try to find ways to add them to my current framework rather than making new cpp files for each tutorial and not have them be related. My hope is that by the end of these tutorials to have a framework which will handle almost everything I need. For starters, I was going through the Advanced Framework (the next In-Depth tutorial) and found a section of game-state coding which will be very useful (state 1 is the log-in screen, 2 is the main menu, 3-n are the different menu screens, and n+1 is the actual game once loaded). Besides this I need to go through, figure out what each item added deals with and whether the element would be relative to my project, in which case I will add it to my framework.

Once I finish all tutorial I will start the main work on the program but the framework I have been creating will likely serve as a platform from which I can build up the different elements of the game.

I did not forget about the uploads, I am hoping to get to them in the next post as I have been busy getting through this one.
~gunnah