Monday, 21 April 2014

Finals Finally Finalized.

     Hello again everyone,

     I wanted to take this time to make a final address to everyone seeing as how my studies for the semester are nearing a close, and my exam for the course I discuss through these blogs will be completed tomorrow at 2 pm.

     As the exam closes in I have finished my reviewing. Deferred rendering was the final thing that I decided to go over, and although I have no thoroughly reviewed the code, I know that it is the separation of the rendering stages of geometry and lighting. It allows for lights to have their own unique attributes and each has their own region of influence (ROI). One of the hardest things to do, since their are so many lights/shadows, is antialiasing. This, as well as memory bandwidth problems, make these sort of tactics only good if you have the right tools at hand, and the right capabilities when it comes to supporting such calculations.

     Seeing as how this was stressed beyond imagination, for those of you who actually care to learn something from what I say, here is the best thing to remember:

     - Start with arrays of data (vertices)
     - Those vertices are passed through to the vertex shader
     - Primitives are then assembled (triangles)
     - Those triangles are then passed through the RASTERIZER**(very key in this process)
     - Pixel data is then passed to the fragment shader
     - The fragment shader output is tested and blended
     - This is then rendered to an FBO (Frame buffer object)

     And there you have it. Biggest, most important thing - being the graphics pipeline. If you want to know more, do some research on the pipeline in particular. If you want to know more about me, send me some questions via twitter and I will be sure to respond. Thanks for reading, thanks for a great year.

Brayden, Out.

Sunday, 20 April 2014

Exam Time

Hello Everyone!


     It's exam time now, and as you can imagine the stress is real. My concerns for my marks are fairly low at this point simply due to the facts that I am currently at a passing position for 90% of my classes. All of the classes that are required in order to move into my next year of study here at UOIT I am guaranteed to pass in at this point so long as I go and write the exams and get around a 50. Not a bad place to be, and I am quite sure that I will be fine.

     I do have to mention that one of the biggest reasons that I am sitting at a very good position in relation to computer graphics is because of the multiple in class bonus experience chances that Prof. Hogue gave us, and they are much appreciated as they boosted me from a simple passing mark, to a mark I am actually happy to be seeing on my transcript.

     When it comes to thinking about the computer graphics exam, my biggest worry is that I won't be able to remember what is going to be on it. I know that I can study the midterm and that the majority of the material is relevant will more than likely be on the final as well, BUT I think that there will be a much bigger emphasis on the latter half of the semester's material and I know for a fact that my understand of that material is average at best.

     FBOs are the biggest thing in regards to the latter half of this semester, and although I previously said that I am not the best with this material, I do believe that I have an understand of how they work as they (at the VERY base level) are a texture created from the rendering process that will look like a snapshot of what the camera will be seeing at that stage in the rendering process. From there on out, that created "texture" is manipulated with post-processing effects such as bloom. Having your entire render area being saved in a simple form like a texture just makes it THAT much easier to perform effects on it.

     Another big topic that I am expecting to be touched on on the exam is the graphics pipeline consisting of:

           -> Vertex Processor
           -> Primitive Assembly
           -> Rasterizer (Which is a big thing - and is totally magical)
           -> Fragment Processor
           -> (FBOs)
           -> Pixels

     Overall I feel confident going into these next couple days for exams. I will be spending a reasonable amount of time studying in the next couple of days simply to make sure that I haven't missed anything, but I believe it will go well.

Thanks for reading, and as always, have a great day and Happy Easter.

Brayden. Out.

Friday, 14 March 2014

Updates();

Updates()
{

    // Hello World!;

        //  I'm excited to say that I've made quite a bit of progress thus far in my game;
        //  Differences from the last update that was given are as follows;
               for(int i = 0; i < thisList; i++)
               {//Beginning of my updates for this week
                   i. I have created a small system that allows me to place trees anywhere in my world;
                         i. a. This is done through a red dot placed on my height map, and a vector of models;
                         i. b. I also did the model, texture, implementation, and this system in a few hours;
                         i. c. The previous made me very happy;
                    ii. Stephen has the water shader looking fantastic.
                         ii. a. The sun orbits the map and the lighting levels change; Reflections work great too;
                    iii. I made it so the our ship now fires cannonball sprites
                         iii. a. Only problem is that they rotate with glRotate() an that causes problems;
                         iii b. They rotate in an orbit around the boat as the player rotates it - PROBLEM;
                    iv. Managed to not pass out during the day this week too....which is rare. Yay.
                    v. I've been pulling laaaaattteeee nights due to the work I've been attempting;
                    vi. Stephen and I made the portals requested and MIGHT get extra exp? Maybe?;
                         vi. a. This exp would push me to, maybe past 40. :O That would be SWEET.
                   vii. Seven is a cool number and I will end here because it's 1 am and I'm tired;
               }//Ending of my updates for this week.

//I hope you enjoyed the code-styled blog this week. I believe I missed a blog, but it's a tough thing to keep //up with when you're not used to doing it and are normally against such things.
         //These things normally being socializing in general. (Sometimes...)

//My regards to anyone who reads this, and thank you.

if(end == true)
{
     //Say goodbye here
     Thank you, and Goodnight!
          -Brayden
}


***Program Terminating_
     

Saturday, 1 March 2014

Exams = Stress

     It's been a long, stressful week in the midst of exams and all of the studying that has gone on. The work never stops amidst the studying, but there have been a couple of opportunities for breaks in between and those have made it all worth while.

     I did great on my entrepreneurial finance midterm, and I'm pretty confident in my Computer Graphics midterm. I'm concerned about accounting, and a tad stressed out this week because of that and the Computer Graphics work that was expiring after the midterm. THANKFULLY I accomplished enough to get myself up to a current 25 points. I'd say that is fairly far for this far in.

     The only progressions that have been made to our game is that we now have a main menu and a HUD. We plan on making the mini map a separate camera view from above the ship's location and render it to the 2D camera in the location of the mini map. This way it will move the shown image on the mini map in relation to where the ship is.

     Our/My goals for the next week or two is to get a pause menu in and working. A help/information menu for help and information, obviously, and we will be making final adjustments to textures and animations for out main ship and some enemy models that are created and hopefully be moving around the map in the near future.

Thanks reading, let me know what you think of the progress so far, and hopefully I'll be able to get out some more interesting information out soon and maybe even a few good pictures. (it's hard when most of the work is just code :( )

-Brayden.

Thursday, 20 February 2014

Reading Week is GREAT

Hello Amazing People,

     This week has been reading week for myself and others in my program. It's been nice so far, I've been able to relax and get some more rest, but I've also spent the majority doing work.

     The funny thing is, I'm not complaining. I've enjoyed sitting at home in a chair nicer than the one I have at school, doing work that I enjoy, and learning/relearning things that I will need to know for midterms.

     In the past week and a half I've made some great progress mentally in my personal understanding of the code that is going into the game we are making. I managed to code two shaders and complete 4 assignments for computer graphics. I went to every possible office hours opportunity that I could and learned how VAOs work (in detail) and how their information is used inside of shaders.
   
     I feel much more confident being able to sit down and create a shader program on my own now. My biggest problems (that I believe everyone is struggling with at this moment) are syntax errors in shaders, but those can be solved by some good amounts of focus and a lot of re-reading on my part.

     Stephen managed to get reflections working on the water in our game. The color requires a little tweaking and some randomness needs to be added as well, but for the most part it's looking great and is working as it should!

     As you can see, the lighter color is the highlights. Yes, they do move, and yes it is a beautiful feeling to have them working now. Also, there is lighting now on the ship model itself (calculated and applied via shaders - and also what I used for an assignment).

     The ship is also being loaded and texture with VAOs as I was talking about previously. This was a struggle for me for a while, but with the help of Dan I managed to get it finished and working perfectly.

     As for me now and going into the next week after the break, I will be continuing to study, and implementing menus (main and pause) as well as hopefully getting the updated HUD back into the game because I'm simply waiting on the artist at this point. 

Thank for checking out the updates,

Brayden. 

Friday, 7 February 2014

A Title to End ALL TItles

Captains log...Week 5.
     It's been an interesting week. After working on VBOs for a good 3 weeks and pulling my hair out over not being able to figure it out, Dan gave me a good amount of assistance to finish it off and I've got to say that I knew I would never come up with that, but it's not very hard. I think I was just getting myself too frustrated. I'll work on that, but coding for a few days on the same thing and having it not work...it's a little frustrating (a little is a huge understatement).

     I've been trying to get my first homework assignment finished for Computer Graphics, but I'm having some troubles figuring out how to get the variables in my game linked with the ones in my shaders. And since Dan's hours are now busy with other people's assignments I won't be able to get in the questions, darn.

     However, that's not too big of a deal because I've been making some great progress on my computer architecture assignment, and I still have some time to finish it, plus it's fairly easy, and I have all of the calculations set up and ready to go, I just need to get the variables/information through to the shaders properly.

     On the more personal side of things, Marc LePage and I might be making a bit of a colaboration on a song. I think that's pretty awesome, and it should be really good. Stay tuned for that, unless you don't care to hear it, in which case ignore this I guess...

Thanks for the read-through, have a great weekend.

Brayden Out!

Wednesday, 29 January 2014

Smallish Update

Hello there! 

    Today has been fairly productive, I've managed to implement the necessary Fmod classes into our game (for those of you who don't know, this is what we use for sound). Surprisingly it didn't take very long. After reorganizing our ENTIRE game in order to make it more efficient and flow nicely through functions (rather than be a stupid mess in just the main) I've gained some nice experience and I find organizing code to be MUCH easier now - exponentially easier, really.

    After the last couple of Intermediate CG classes ambient, diffuse, emmissive and specular lighting terms are burned into my mind - which is not a bad thing, actually. I've been understanding these concepts much better lately, and I'm finally grasping things I didn't before.

    One thing I don't get however, is how to create a VBO.....properly. I have a couple of difficulties with the setting up of the VBO itself. I've got all of the information set and ready to go and loaded in properly, it's just a minor detail at this point that I have to figure out. 

     Once that is working again....Stephen has been working on wandering algorithms, which are ready, and the path finding that I finished recently - then we combine them and BOOM! Gameplay. Success. Etc. Ha!

Brayden. OUUTTTT.

Saturday, 18 January 2014

Relax, Program, Study, Program....and then Program some more.

     The title says it all for me this past week. I've either been sitting in my room looking for ways to improve code and for things to add or I've been studying up and how to do things that would benefit my code. I've relaxed now and then, but have gone right back into coding and it can be quite stressful really.

     I had a great thing going when I was assigned new group members for GDW this year. I was removed from the Producer position (awesome - because now I didn't have to program, model, AND make sure everyone else was doing their programming and modelling and other stuff WHILE making sure it was all up to par and in on time). I'm now our group's 3D modeller and it feels wonderful. I'm still doing half of the programming work, which I have no problem with, and I spent the last week upgrading our game's ship model because....well take a look for yourself:


It's a big improvement from the last, believe me (and if you don't, go check out my first blog for a picture of the old one).

     Only problem so far is that my UVs aren't mapping the texture properly. For some reason, the bottom half of my ship looks perfect, but the top looks almost as if the texture slipped off to one side. Either way, it's not working properly and I plan on changing the whole system soon because I'm turning it into a VAO/VBO in the near future.

"A Vertex Buffer Object (VBO) is an OpenGL feature that provides methods for uploading vertex data (positionnormal vector, color, etc.) to the video device for non-immediate-mode rendering. VBOs offer substantial performance gains over immediate mode rendering primarily because the data resides in the video device memory rather than the system memory and so it can be rendered directly by the video device."

http://en.wikipedia.org/wiki/Vertex_Buffer_Object

In short terms: It's placing the texture data on the GPU's storage to be rendered on the GPU rather than the CPU. Simple, right?

     One cool thing that I learned this week, which I was actually not surprised about, but I was more shocked that I didn't think of it that way before is that mirrors in games are all rendered by placing a camera at the mirrors position and taking the image that would be rendered to the buffer, storing it as data, flipping it, and binding that image to the surface where the "mirror" would appear.
   
     Cool stuff, huh?

Anyways, once all that texture stuff is sorted out I will be ready to make our AI's load and function with GREAT SUCCESS!

With that said....thanks for reading!

Brayden out! :)

Wednesday, 8 January 2014

Progress - A nice feeling.

     I'm going to make this one brief. Progress has been made, and progress feels great. Pathfinding for AI's now exists in our game, the only problem we have is that it's not being USED for anything (because we don't have any AI's to move.....

     Stephen is working on that part, and hopefully within the next week or two we will have enemies that are even just boxes that follow your ship around the map and get closer and close (assuming we do it correctly).

     Goals. Important stuff people, set some, aim for them and PASSION. Learn it, love it. :D

That's all for me, just an update on our progress for today.

Brayden out!

Tuesday, 7 January 2014

A Horrible End. A New Beginning.

So here's the thing. Life can really suck sometimes, and people can't always be trusted. It's a life lesson everyone will eventually learn in their own ways. And now that we are on the same page, let's get started with a story!

     Not to long ago, in a semester recently past, Mr. Bubbles/Stephen/gamedever.blogspot.ca and I had a LOVELY group who let us do all the work because they were so kind. In turn, on one of our projects, they decided not to do an important part of every document known as a "citation page" by most non-GameDev people (because we use other lingo, duh). This page fell into an abyss, never to be seen by the likes of teachers and Game Gurus alike.

     After consulting these "Gurus" and professors/teachers, our only options were take an arrow to the knee (get an F in the course) or be torn apart limb from limb....(going to a meeting with the academic board - mostly likely kicked out of the program).

     Needless to say we took an arrow to the knee today....YAY!

     Story over....OR IS IT?!

No, it's definitely over...

     TIME FOR NEW BEGINNINGS!!!! WOO! (This is the good part)

    SO this means good stuff....right? That's what it says above so I guess I should say good/happy things....
     .
     .
     .
     .
     .
     Rainbows?

On a more serious note, we have new group members who (so far) don't seem to have the intention of screwing us over completely! HURRAY!

     We merged the two groups (all three were working together last semester) and have now gone from ShadowInk (our old name) + CounterMarch (theirs...obviously) to: ShadowMarch.

     It seemed fitting to combine the two group names...so we did.

Anyways, here's to a new semester, new classes, new group members, new profs (some) and a new attitude ....Plus nobody TRYING to screw us over! (yet...)

Best of luck to the rest of you in school!

Brayden. OUT!

The Fun Begins...

Well hello there...

     It has been an interesting start to the new year in the magic land of GameDev so far. First things first, classes are looking awesome. I'm excited for less math and more programming techniques when it comes to graphics. I'm happy that our Finance class is going to be hands on (AND we might get a chance to sit in on an investment meeting! YES!)  and that this professor is an investor himself. Field experience from a professor is the best teacher you can have in my opinion. I've only had two classes thus far, but it's only the second day of the week...not a big deal there is plenty more GameDev stuff to come. 

     My name is Brayden. I am a GameDev/GameDevelopment student @UOIT and I'm a gamer and creater at heart. This blog is created for myself, to express what I enjoy, what I dislike, and whatever the heck I feel like talking about. It's for you, the reader to hopefully find some insight into the GameDev world and processes, and it's for my professor(s) who read these because they're to be "marked" or used as an idea of where myself and my classmates are at in our progression in this program.

     Enough boring intro there, time for talky stuff:

     The interesting part about the start to GameDev this year is that we (My Project Group/GDW from here on out) have had a big hit to our team. Last year/semester we were 5.....we are now 2...Stephen (gamedever.blogspot.ca) and I.

     I know, this is going to be a hectic amount of work to accomplish - seeing as how the majority of the groups still have 3+ people (at least - most still have their start 4 or 5) and the expectations will most likely NOT be lowered for us. However, I think we will be able to pull of a game that is still enjoyable. I think that between the two of us, and considering that what we passed last semester with was just our code, we will have enough manpower to finish this sucker.

     I mean...it already LOOKS pretty good (if you discount the temporary HUD and ship model)


*Picture from last semesters' submitted prototype 

     We've got moving waves...that's a thing, right? 

     I'd love to say that GameDev is ALL going smoothly so far, but I've been having some troubles with creating Pathfinding for our AI. I seem to be able to set up a grid system, I drew the centers of each tile I had created and they scaled to 4x the spacing they should have....which was fine because that can be changed, but the tiles themselves....they didn't draw over the centers like they should have. In fact, they were doing quite the opposite and drawing 1/4 of what they should have been....a tad confusing. 

     Since that stuff last week, I've changed my implementation quite drastically...I have yet to fully implement these changes but I'm almost certain I can get it to work. It just requires a few more tweaks.

An example of the Algorithm I'm trying to implement 
(for those interested - it's called the A* Algorithm (or A-Star)):

     Image:
     Explanation:

     Other than this issue I think second year GameDev is going to go swell. I would highly recommend GameDev programs to people who are capable in the areas of programming and intermediate level math because it can be loads of fun, and it's a challenge, that's for sure. 

     I would like to abolish the idea that GameDev is a "fun time" or a "simple/cop-out" choice for anyone who likes playing games to go into because "Oh, I play games, why not make them!".

     NO. Bad idea, reevaluate WHY you want to do this. Go up to anyone in my program and tell them that, second year or up and they will laugh at you and walk away because they know they won't see you after your first year. It's something you have to realize needs to be taken quite seriously. First year alone can be difficult to grasp. The concepts are easy, but the application is what will get you. You are constantly pushed into MAKING and CREATING rather than just IMAGINING and thinking you can create the world....when the reality is you might be able to make a box...if you're lucky. And even a simple box confuses people...just ask Stephen! HA! (I make all his boxes still)

     I'll stop with the attempt to scare people off though because GameDev is a wonderful thing, but the simple truth is that you have to be passionate about it, and you have to put in a strong effort. Otherwise you doom yourself to fail.

Thank you for checking out my first blog, there will be more to come - at least one per week as I am required to do for a class - but I think I could get used to this...perhaps I will do more and simply link my professor one per week (the "good" ones of course).

Brayden out!