27 September 2011

The Enigma of Mad Marx

Well, I will start off by saying I did not get around to figuring out what is needed to host the Ogre examples, for now I would say I should get that done within the next week, but that depends o how I handle some of the other things I am fooling around with.

Now I tried to go through the Mad Marx tutorials like mentioned in the previous post, but I ran into trouble. At first I thought it was how I had set the project up as I started this project from scratch to get rid of some of the bulk accumulated in the previous sets of tutorials. So I went ahead and deleted those, closed out of the program and redid everything from scratch again with the same results. After several hours of looking around the internet and finding no one had a good answer on how to handle the link error, I decided what if I put their code in and tried to compile that. For all I knew I forgot some minor line here or there that was causing the whole program to go into convulsions, it would not be the first time. That is where I figured out they had the same problems compiling as I did. So I scrapped the project a second time and remade it again. This time after getting all of the properties set I loaded up the basic tutorial from the last tutorials and they worked fine. I again wrote the program out and got the error and then copied their code and got the error. At this point I decided I would just read the tutorials.

They are a fairly interesting take on how to build an Ogre program. One of the flaws I noticed was they took place entire in one function which made for a very cumbersome read by the end of the tutorials. It is a shame I could not work them out better while going through them to pick up some of the finer details since building an Ogre program from scratch is one of the first items I am going to need to do while making my program. I will most likely go back to my Linux box and try to write and compile them there. While much of the material was not new, it was presented in a different way. Plus, the best way to learn to program is to program. So that is why, while I have gone over the tutorials, they are not marked as completed on the Progress page.

In the mean while I am going to be moving on to the In-Depth Tutorials. Depending on how these work out, I may not need to go through the Mad Marx tutorials. The first In-Depth Tutorial covers how to build your own Ogre Framework, which was in one of the earlier tutorials, but not in as much detail. If these cover what I am hoping, they very well could be some of the first few tutorials I go back to when starting my program.

Well, next time I will probably know whether I am mark Mad Marx as finished or not and will hopefully have a few of the In-Depth tutorials finished.
~gunnah

24 September 2011

Continued success

Well, I am really moving through the tutorials now. Bot sure how long I can keep at them at this rate, but at least this was a good pick up after loosing that time earlier in the month. I will start with the bad news, because of how much time I spent on the tutorials, I never got around to figuring out what I need to package with the Ogre executable to make it run, or if it can be run on other machines. That being said, I finished the four remaining Intermediate tutorials. So I will make a brief note of each of them along with any comments I have about how I can make them applicable.

So the next tutorial after last post was number four. This involved making a two-dimensional box on the screen and using the ray queries to figure out which models, if any, were inside the box. Not much but it does show off how to make a bounding box on multiple targets as well as making 2D images. This unfortunately will not greatly help my project, but it was fun nonetheless. When I get Tutorial 3 up I also hope to upload this just for fun. One thing to note is that this method checks to se
e if it hit by the bounding box which can lead to false positives and will need additional work to make sure when the program registers a hit, it is actually a hit.

The picture to the left is from the fifth tutorial. This dealt with static geometries and how to handle batches of objects that do not move. This may prove a little more useful when I get all of the scenery to add to the maps. O
verall the most interesting aspect was the tutorial was the use of RangeRandom. This little function takes two parameters a returns a number from the low to the high. Besides that, there really was not that much to say about this tutorial, which will probably not get uploaded since it does not have any real interactivity, though I was tempted to add a sky box and really finish off the effect.

Tutorial six was an odd one. I am not completely sure what use it has, other than bat signals. I had though about suing it as a cross hair for the guns, but from what it seems it is a highly inefficient system that would require a few tweaks just to get running. A simpler cross hair would be to just draw one with the GUI in the dead center of the screen. My other complaint about using it as a cross hair was how difficult it would be to see from a distance. This one is also not likely to get uploaded, but as you can see it does have an interesting effect.

Finally tutorial seven was handling textures and using a mini map. The mini map may be an interesting idea, but it would not a lot of work to be useful. They use it as something more for a single player game where you are trying to break in or out of somewhere and they want to show you the guard moving in the bottom corner of the screen. All this tutorial had was a green plane twirling, so it was not even worthy of a picture and is highly unlikely to get uploaded with the other few.

I think the reason these tutorials went so fast is they were introducing an advanced topic but there was only so much they could present on the topic before getting too highly detailed the tutorial would loose its value. Most were just a few functions and fairly quick to make. This leaves me in an odd spot. I have to decide if I am going to go with the Mad Marx or the In-Depth topics. My guess is Mad Marx, but it will probably depend on the amount of set up required.

Well, I think that about covers everything for this week. I added a progress page just to keep track of the different tutorials finished and left to be done. That is also where I am likely to put the spot for the tutorial executable links.
~gunnah

20 September 2011

Progress!


Well it has been slow going the first half of September, but hopefully things will start moving again at a normal pace. As you can see to the left, I have managed to finish the preliminary satellite design. The overall look still needs a little work to smooth out some of the edges, but overall I am happy with this. In game, I would use a particle effect of some kind out of the four thrusters (all are visible, but only the very edge of the fourth) to give the illusion of it being held up and the effect increased during movement. Additionally I would like to add motion to two of the thrusters. The two side thrusters need to be able to tilt both forward and back, as well as in opposite directions for forward, backward, turn left and turn right. Also the gun needs to be able to rotate 360 degrees as well as point downward. A particle effect for the flash of the muzzle may be interesting to program in also. Finally, when this is colored, on the base of the gun you may notice an odd protrusion. This is a charging bar which will fire when fully green, setting the bar to red until the cool-down is finished. Most like the only main difference between satellites for the teams will be a logo displayed above the gun (not in the picture, just guessing).

The main goal of Tutorial 7 is to have CEGUI interface wit OGRE and go over some very basic controls in the GUI library. The biggest difficulties should have been compiling CEGUI and getting all of the linkers to point to the right spots. So last post, I explained how I got through Beginner Exercise 7 but was running into a few problems here and there. I found out that it was not loading the GUI because for some reason the dll files which I copied into the OGRE project folder were deleted (I may have done this when I was cleaning out the plugins since I started adding these before realizing the plugins.cfg file needed to be changed a little). After that the program worked like a charm and so that wraps up all of the OGRE Beginner tutorials, now onto the intermediate stuff.

I have already done Tutorial 1, check the 31st of last month for that summary, so it was on to the second tutorial. What held me up previously is that the main controls of these tutorials are handled by a GUI engine and not OGRE. Since I have only quite recently gotten the GUI engine and Ogre to interface, I have been unable to continue my tutorials until recently. Tutorial 2 handles finding a location in three dimensional space of a mouse click. A pre-made world is added at the start of the tutorial and then the GUI overlay is add on top of the OGRE layer. Finally a ray query is used it figure out following the ray from the camera if the click was over the ground and at what location it occurred. Another interesting feature added in the tutorial was a collision detection for the camera so the user can no longer go beneath the terrain. Tutorial 3 was a continuation (part 2 of 2) of the previous tutorial. The main goal in this tutorial was determining if there was something where the mouse was clicked. If there was nothing there, then a model is added to the map, if there was an object already present, then the user can move that object. The tutorial finished with an explanation of how masks work, explaining that masks up to 32 bits are supported by the CEGUI and OGRE combination, as well as a few bit functions.

Since pictures seem a little inadequate at this point, since it is no longer a landscape and objects, but actual user interaction which is now the goal, I am thinking of the best way to handle the sample. Most likely in the next post I will include a download link for the tutorial 3 executable. I am not including it in this post mostly because I am not completely sure that I know everything I need to pack with the executable. Hopefully I will have that figured out by next post.
~gunnah

17 September 2011

Another short post

Last time I mentioned I got CEGUI and Ogre compiled and was hoping to get them to play nice in my last beginner's tutorial. While I am not getting the errors that most of the people seem to have had a problem with, since I compile both from source instead of, as a lot of people seem to do, use both SDKs. My problem is for some reason nothing is being generated. I know the project compiled fine before I started since I compiled the blank Ogre project, and everything was rewritten fine since I am getting a mouse pointer and no Ogre FPS box. But that is as far as I can get the project to go.

I thought everything was working fine, though I did notice the mouse pointer was the Window's default pointer. But after trying to add a button that says quit (not even the functionality, just the button), all I get is the black screen and pointer. After a small search I found out a file for a CEGUI log was suppose to be made which was not. So my guess is that something very early in the program is not behaving properly. Since this will involve making sure that every line added is doing what it is meant to do, this will probably be a fairly long and drawn out process. Since it make take a few days to solve, I decided to stop there for the moment to update this before stopping for the night.

If all goes well, the model for the satellite and this tutorial will be finished for the next post.
~gunnah

13 September 2011

Good and Bad

Well, I am going to start out with the bad, no picture. Restoring everything after the reformat is taking a little longer then I had hoped, and I have not really gotten around to playing with my 3D modeler again. As for the techniques, they are still as much a mystery as last post since I did not have any time to see how to accomplish those goals (movement and painting). The model is almost done, I had been working on some ideas before I reformatted, but it does need a final touch or two before I feel it is how I want it, at least fr now. Hopefully in the future I get better at adding little parts to it to make it look that much better.

Now, on to the good news: in some ways I am further along then before I reformatted. After a bit of work, I got OGRE back up and running. Of course I got all the way to the end, when to compile the Tutorial Framework just to make sure it all worked and realized I forgot to compile the final OGRE project. So OGRE is back up and ready to use. Additionally, I managed to get CEGUI not only installed but compiled as well. I found out that last time when trying to get CEGUI to compile, I downloaded the wrong dependencies file. There are apparently two on the page for Visual Studios, and I overlooked the first link only seeing the second. Problem is the second only has one of the dependencies. So now I should be back on track and hopefully I have a few more tutorials done by the time I post next.

I could go into further additions to the game, but I am thinking I will talk more about the screen after log-in but before entering the game. In a much earlier post I have already described most of the functions that I want included into the page, these are summarized in the Game Overview page I created a week or so back. I believe in the earlier post I described the page as being two-dimensional. This description is what I remember the screen being like, which was nice, but while I want to make a similar game, the goal is only for similar, so this could be an area for change. So, this original layout is not what I am going to use, but how the new layout will function. After a bit of thought, a three-dimensional screen may be a different look, and after going beyond a certain point on the map, the desired screen would pop up with the options. The user would start in a depression in the center of the map. Each part of the page originally described would have its own ramp, with the areas between the ramps being fenced in. Above each ramp would be a sign for what screen the ramp will bring up, like Game, User, Friends, Options, News, et c. The two-dimensional screen for most of the will still be the same, though those that were initially built into the overview page now need their own pages, but that is a small task.

~gunnah

10 September 2011

Warned it would be slow

Still in the process of getting everything back up and running after reformatting. I may have a new picture or two for the next post, but for now I did not really have time. While reformatting only takes a few seconds (the actual formatting of the disc), an hour if you count re-installing Windows, four if you count re-installing and updating; the process of getting everything back to where it was before it was so sadly removed takes a bit more time. None of the those times includes prepping the computer for the reboot (moving everything off the primary partition which is about to be wiped) or putting all the programs back into place. To be honest, if I were not applying for work, I would have not bothered reformatting yet since the only trace after I removed it was it diverted my google searches; but dealing with personal information is not worth the risk.

As for the project, Visual Studios and DirectX SDK are both in, OGRE is downloaded but not compiled, CMake and whichever GUI I choose is not downloaded. The 3D modeling program is up and running as well as the OGRE converter. The project will likely be moving again by the post after the next post.

As far as game mechanics goes, I think I am reaching a point where I need to advance both my knowledge or 3D modeling and OGRE before I can really add much to the game. I could go on about planned modules to add, which will probably be the next two posts if I get nothing else done. The need for OGRE is obvious, if I do not learn, it will not advance the project. What I am looking for now with the 3D modeler is a few aspects. Primarily, I would like to get a few items painted, even if the objects are only preliminary sketches. The other more interesting aspect of 3D modelling I would like to pick up in the next week or so is how to animate and then export that animation to OGRE. Getting both of those aspects of 3D programming down will leave the only task, that I know right now, as getting more insightful about how I want different items to look.

I know there was not much content, but hopefully more next time.
~gunnah

06 September 2011

Slow Next Week or Two

There will be little programming work done in the next week or two as I prepare to reformat my computer. Yesterday it caught something nasty; so instead of finishing my satellite, I was trying to get rid of the virus in safe mode. This is one of the drawbacks to working on a Windows machine, but it is the only one I have that could do this programming.

Just as a side note to all that, I did add a Game Overview page to the blog detailing who the game should work once I get around to actually miking it. I may break it up further when I get around to it, having a page for the tanks and another page for modules, but that is another time.
~gunnah

03 September 2011

A little rest

I know I have not done much with Ogre in a little better than a week, but I decided that I would take a small break. While I have no programming news to tell everyone, I did do a little bit of work on what the reconnaissance point would look like. The picture to the left is not set in stone, but should give an idea of what I am expecting it to look. The defining aspect of this building is that it needs to be tall enough to be seen from a bit of distance away. Each entry way should fit about a tank and a half across to give an idea of the large scale of the point. Secondly, since this is suppose to be a quick refueling station in many ways, access needs to be addressed. The four ramps should make the platform easy enough to get to while still balancing the final concern. Lastly, this is suppose to be almost a safe spot for the controlling team. Originally all I had going up the sides were very thin posts holding up the roof (which is necessary for condition 1). After a bit of thought, It seemed silly to let people drive to a raised position where they would be vulnerable to almost any form of attack.

With these considerations in mind, I have made this first release idea. The post shield the user from most enemy attacks while still keeping it open enough to allow easy access. The picture to the left is another angle of the same structure. Inside of a friendly reconnaissance point, the user may open a menu to swap or add equipment as well as recharging all spent munitions. This menu is also available at the base (so when you die or spawn for the first time) but with an option to change tank types which is not available in the field. This design is subject to change based on future inspiration or comments received.

Well, enough about that for a while, on to something a little different. How kills are decided is fairly easy, whatever damage was the damage to reduce the target's armor to less than or equal to 0 get awarded the kill. I have decided this would be a good post to better define who gets an assist. If the killer did greater than or equal to 75% of the damage, then no assist is awarded. If the killer did greater than or equal to 50% of the damage, then the player with the second most damage gets an assist. If a killer did the most damage and greater than or equal to 25% of the damage, then assists are awarded to the second and third place totals. If the killer was second, then first and third get assists while if the killer was third or lower, then the top two get assists. If the killer fails to get to 25% of the total damage then three assists are award two the top three players who did not get the kill. Note that offline players are skipped. Damage is recorded from the time since the armor was last at its full value (or since the last return to base or reconnaissance point, though the armor is more slowly repaired out of the base). While not a lot of points earned, assists get roughly 33% or the killers bounty, divided among the player with assists by the amount of damage done. (So a solo assist gets 33%; two or more assists get 33% * (damage of player) / (total damage dealt by all players earning an assist).) Hopefully this will decrease the harm done to people who keep have the targets stolen (you dealt a lot of damage and someone comes in a finishes them before you do, most likely you will get a decent amount of the assist points). That is about all for now, hopefully I will be more motivated in the coming week.

~gunnah