Friday, November 23, 2012

Latest and greatest updates...

Can't believe it's been 18 days since I last posted...@_@  Been really busy with applying to jobs and what have you, and I guess I kind of forgot about updating my blog.  So I got about 10 applications out right now, since I got back home.  Been working on programming various new tools and such for a new project.  Altered a bunch of new stuff as well, which has been an excellent project to take up time.

I've been working on my GUI XML tool, and it's come a VERY long ways...I spent about 10-13 hours working on it over the course of thanksgiving, along with altering the Parser Library class to include a few more variables and methods.  The GUI tool I made before used a system where you would click on a save and display button to show your current updates, and it only saved part of the variables in the system, not all of them (which would explain some problems I had in Harper's Gate).  So I changed a lot of how it saved and loaded content, and gave it an automated system similar to my Level tool.  Over the course of the day, it was mostly testing the program, and adding in fail-safe systems into the Parser Library...In fact, I set up a system to help save space in the XML files.  It reduced the lines of XML by about 20-30 percent, and also helps with keeping track of all the default variables.  It's rather nifty.  ^_^

Also, I figure since potential employers are viewing this, I should avoid saying things like shazam bitches on here...>.>  Not very professional of me, and since there's a lot of hell being raised about things like facebook posts, I will assume the same for blog posts.  However, as a note to said potential employers...I would be an awesome and fun addition to your team!  ;-P  I'm a very high energy person, and if I got a job, I know I'd work my tail off to get everything done in a timely, and professionally executed manner.  So don't judge me by my blog language...

Anywho, I'm signing off so I can go update my wordpress...o_O  Take care!

Monday, November 5, 2012

360 input stuffz and cheat code...coding. o_O

So yesterday I decided to buy a cheap 360 controller (Only on the cost...Razr Onza Tournament Edition ftw), and test out the input in XNA 4.0.  To say the least, I got a lot of stuff done with it, and am very fond of my new controller, despite not having a 360...although now I can enjoy a good game of Borderlands 2 with a controller instead of a mouse/keyboard.  ^_^

Aside from that, I got some code in that makes the controller vibrate every 2 seconds, it's rather fun...although if you don't change the vibration back to 0, 0, it'll keep vibrating.  o.o  Only way to fix that is unplug it.

Other than that, I found more about the variables used for the controller, like how the analog sticks use a normalized vector (basically max of 1 in either x or y) for its direction, which is very logical and useful.  The triggers also use a float to determine how far pressed they are.  I notice some FPS games basically use a hair trigger for shooting, and it drives me nuts that you can basically tap the right trigger or left trigger, and it'll fire.  It seems like something that could easily be customized by the user, how far they have to press before firing. I suppose there's hardware out there that's for it, kind of like the resistors on the Onza sticks.

Anyway, as for the last thing in my title, I set up a system in my game for making cheat codes using a string...>.>  So basically what it does is use a timer, whenever you click a button, the timer is reset to 0, once it hits 60 (1 second at 60 FPS), it resets the combo text.  So basically if you can type in a combo within 1 second of each press, you can create a cheat code...I decided to use the epically amazing Konami Code as my example, so the combo text is basically "upupdowndownleftrightleftrightba", although this can easily be shortened if you really wanted to...Once the konami code is inputted, it displays a lovely little text of "SHAZAM BITCHES!" under all the other mumbo jumbo in my test.



So that's basically the display of the program.  I created a TextObject class, which basically draws a single string to the screen with a black background.  This is the basic class for the object:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace InputTesting360
{
    public class TextObject : DrawableGameComponent
    {
        public string text;
        public Vector2 pos;
        public SpriteFont font;
        protected Game1 parent;
        protected bool vibrate;
        protected int timer;
        protected const int maxTimer = 60;
        protected string combo;
        protected GamePadState prevState;
        protected string output;

        public TextObject(Game1 game, SpriteFont font) : base(game)
        {
            this.parent = game;
            this.font = font;
            vibrate = false;
            timer = 0;
            output = "";
        }

        public override void Update(GameTime gameTime)
        {
            //Might make the text follow the mouse around, or maybe the controller.
            GamePadState gps = GamePad.GetState(PlayerIndex.One);
            bool a, b, x, y, dup, ddn, dlf, drt;
            a = gps.IsButtonDown(Buttons.A) && prevState.IsButtonUp(Buttons.A);
            b = gps.IsButtonDown(Buttons.B) && prevState.IsButtonUp(Buttons.B);
            x = gps.IsButtonDown(Buttons.X) && prevState.IsButtonUp(Buttons.X);
            y = gps.IsButtonDown(Buttons.Y) && prevState.IsButtonUp(Buttons.Y);
            dup = gps.IsButtonDown(Buttons.DPadUp) && prevState.IsButtonUp(Buttons.DPadUp);
            ddn = gps.IsButtonDown(Buttons.DPadDown) && prevState.IsButtonUp(Buttons.DPadDown);
            dlf = gps.IsButtonDown(Buttons.DPadLeft) && prevState.IsButtonUp(Buttons.DPadLeft);
            drt = gps.IsButtonDown(Buttons.DPadRight) && prevState.IsButtonUp(Buttons.DPadRight);

            text = "Packet#: " + gps.PacketNumber;
            text += "\nController 1 is connected? " + gps.IsConnected.ToString();
            text += "\nLeftStick Vector: " + gps.ThumbSticks.Left.ToString();
            text += "\nRightStick Vector: " + gps.ThumbSticks.Right.ToString();
            text += "\nLeft Trigger: " + gps.Triggers.Left;
            text += "\nRight Trigger: " + gps.Triggers.Right;
            text += "\n" + output;

            if (a)
            {
                combo += "a";
                timer = 0;
            }
            if (b)
            {
                combo += "b";
                timer = 0;
            }
            if (dup)
            {
                combo += "up";
                timer = 0;
            }
            if (ddn)
            {
                combo += "down";
                timer = 0;
            }
            if (dlf)
            {
                combo += "left";
                timer = 0;
            }
            if (drt)
            {
                combo += "right";
                timer = 0;
            }

            if (combo == "upupdowndownleftrightleftrightba")
            {
                output = "SHAZAM BITCHES!";
            }

            timer++;
            if (timer >= maxTimer)
            {
                timer = 0;
                combo = "";
                //output = "";
            }

            prevState = gps;
        }

        public override void Draw(GameTime gameTime)
        {
            parent.batch.Begin();
            parent.batch.DrawString(font, text, pos, Color.White);
            parent.batch.End();
        }
    }
}


Unfortunately I don't know how to add in code snippets, if I did, I would totally do it.  -_-  But yeah, this, added onto the following Game1 class would give you everything you need to load the game, excluding the TNR14 variable.  That's just a TimesNewRoman size 14 font I use...

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace InputTesting360
{
    /// <summary>
    /// This is the main type for your game
    /// </summary>
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        public SpriteBatch batch;
        TextObject text;
        SpriteFont font;

        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
        }

        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            // TODO: Add your initialization logic here
            base.Initialize();
        }

        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            batch = new SpriteBatch(GraphicsDevice);
            font = Content.Load<SpriteFont>("TNR14");
            text = new TextObject(this, font);
            Components.Add(text);

            // TODO: use this.Content to load your game content here
        }

        /// <summary>
        /// UnloadContent will be called once per game and is the place to unload
        /// all content.
        /// </summary>
        protected override void UnloadContent()
        {
            // TODO: Unload any non ContentManager content here
        }

        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            // TODO: Add your update logic here

            base.Update(gameTime);
        }

        /// <summary>
        /// This is called when the game should draw itself.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.Black);

            // TODO: Add your drawing code here

            base.Draw(gameTime);
        }
    }
}

Tuesday, October 30, 2012

Jobs jobs jobs...wherefore art thou jobs?

If you made some kind of association with Steve Jobs from the title, I smacketh thee...I'm trying to focus a bit more on the job market, however the last couple of days have involved being stolen away by my cousin for one day, and today another cousin visited.  Soooo, I've been kinda busy.  >.>

Also, happy halloween!  I made up a pumpkin today with my Grandfather today as well, although I only got to add on some nifty scars, and a blood splatter, it actually turned out really well.  Unfortunately the light he put in it doesn't work...but I'm sure he'll jury-rig something up.  o_O  That always has been his specialty.  But the amazing thing is, despite being jury rigged, everything he does works...better than most stuff too.  Although it may not be pretty, it damn well does the job.

So yeah, right now, I'm finally getting around to blogging a little bit, it's kind of nice really to relax a bit and explain my plans.  I wrote a little list of all the crap that I need to do over the next few days, so whoever is reading this, please tell me what you think!

  • Update my portfolio
    • Harper's Gate stuff.
    • Add images for each project.
    • Coding examples from each project.
    • Make downloads easier to find.
    • More personalized
    • Add this blog in there.
    • Add portfolio to Facebook and LinkedIn
  • Find jobs to apply for.
  • Make semi-generic cover letter
  • Update LinkedIn/Facebook profile a bit.
  • Update my resume.
  • Add Portfolio to blog.
Now something to note is that all of these things don't have any specific order, they're just written out as things to do.  What will actually get done, I have no clue.  :-P  We shall see yes?

I was also considering changing this blog to look a bit more like my WordPress blog.  If anyone has any opinion on that, feel free to comment, thanks!

Friday, October 26, 2012

Finally unbusy!

Harper's Gate has officially been turned in for school!  The game really was never completed, sadly enough, however it turned out far better than I could have expected.  :-)

This means I'm officially done with school through DeVry!!!  Took me long enough, right?  Hehehe.  Onward to the job market, I'm officially available for employment as a computer programmer.  Doesn't matter what field for the programming, I am willing to do just about anything really.  Game's are definitely my passion, however I know it's really difficult to get into video games and the business itself is very difficult on programmers.  Right now I would much rather get my career going as a computer programmer than hop directly into video games.  Plus, I'm sure I can get a lot of work experience and more coding experience outside of video games.  For the few readers out there, wish me luck with my endeavors!  :-D

Wednesday, October 3, 2012

Long time no see huh?

Well, it's been over 2 weeks here, sorry for taking so long to post.  Been extremely busy with school.  @_@  So much craziness with school, it's not even funny.  Absolutely tired of it, however, it'll all be over with soon...

Anyway, I got a LOT of work done on Harper's Gate over the last couple of weeks.  I made a series of context objects, which acts as things like minerals, plants, and other things that you can interact with, i.e. collect resources from.  It's still in the baby phases of actually working...I'm focusing on getting assets created right now, so that's been a bit of a hassle.

There are many great things that have come out over the last week or so, including images, and various other things...Anyway, here's a basic list of images I made via GameMaker.













Each of these strips of images were created with Game Maker, it helps having the automated strip saving system...and the transparency.  I don't have any decent programs for making these images other than Game Maker, so yeah...These are strips of images I'm using.  From top to bottom, we have a grass strip, ingot strip, magical book strip, mineral (context object!) strip, ore strip, paper, pickaxe strip, Gate strip, potion strip, E button strip, stairs, and a flower of some kind...

These strips will be useful in many ways, the ores and ingots, for instance, show the different types of ores and ingots available, the book shows the inventory image of different levels of books you can find.  The pickaxes act the same way.  The portal image may be hard to see, but it has a transparent key hole in the center, and it's meant as an animation, rather than a single image.  Same goes with the E, however it's meant to loop back and forth.so it glows red, then back.

One of the unfortunate problems with Game Maker's strip system is that it makes it just that...a strip.  It does not make a grid shape, and if you have a fairly large image, the original image can go on and on and on...I don't have the tools to help me cut it into different sequences, so I'm just stuck with this.  @_@  I shall live though...

Anyway, hope you guys have enjoyed.  I'll try to post sooner, but judging by the way school is currently going, I will probably have a rough time doing so.

Saturday, September 15, 2012

Little to no news so far...

So, I've got school going, and I think I've got an idea for the things I want to change a bit...I need to add in the sound system for my game, since I completely overlooked that before...I didn't want to have to deal with sound yet, soooooo I'm SOL on that now, I need sound.  I'll have to make all the sound effects, music, and artwork for this game too.  -_-  So you'll be seeing more updates in the art department.

Speaking of which, I hope you enjoy the next pictture.  This is meant to be a sprite with the different item icons for pickaxes, and eventually what Harper will also use, once I can animate them.  @_@  


So yeah, I still need to work on some other stuff today, tomorrow, and for the rest of my life on this program...@_@

I had some small ideas for the game that I wrote down last night.  The sound was one of them...I need to add sound ID's to the parsers, in order for objects to make sounds, and also a sound effect to the worlds, so you can have some background music.  I also need to set up a system for when the player collides with an event of sorts.  Something that can be used as a hit-box, and moves the player over to the next scene or something of that nature.

I was also considering my resource manager...it only holds resources right now, i.e. textures, and fonts, but I could make it hold the parsers as well.  I think this would help condense things a bit more, but also reduce the coupling of objects, and the visibility of all the parsers, except the settings parser, that one I need to have direct access to.  So basically you would have indirect access to each of the parsers, with the resource manager being the inbetween.  Reduces coupling and visibility, but keeps the same abilities.

But then the question comes, is it worth the change?  I would probably have to change a lot of code for that to work, and would it really be all that much more useful?  I have no fucking clue...so instead of creating a bunch of crap that i may or may not be able to use better, I'm just going to leave it as a to-do later...post-school type edits.  @_@  Anyway, take care my very few readers...

Friday, September 7, 2012

So much to do, so little time...

Well, it looks like I've got my final coming up.  I'm glad I've gotten my program this far to be used for it, and hopefully by the end of the session I'll have a usable and displayable program to put on here.  So far, I've got my new character model, and that's about it.

The game's title is now Harper's Gate.  The name is a bit tentative but it works for now.  The idea still remains as a 2D variation of Monster Hunter with RPG elements...I'm going to be working on developing sprites over the next several weeks I'm sure, and I'll keep you guys (my very limited readers) up to date!

Also, here's Harper in all his pixelated glory...He currently has no arms, but those will be added in programmatically as separate sprites.  These are all of his progressions from a simple idea of a character with a red mask on his face.  o_O  There are two sections in there that are going to be his animation.  To be honest, they're rather meh, but I don't have to make something amazing in the graphical department.

This is the look I want him to have for his final coalesced look.  But the arms are basically going to be separate from his body so I can animate them separately.

Tuesday, August 28, 2012

Train trips and mind boggling teachers!

So, tomorrow I'm gonna be heading down to LA to see my buddy Eric, looks like it'll be a very fun trip, full of...two 14 hour trips on 4 trains, and 2 busses.  o.o  And what's definitely sounding like a good time.

I would also like to note that I have an awful teacher in class this session...I had an exam today that was about Networking alright, so we went over a lot of basic programming in networking...So I expected we would go over the same information as we did in class.  I think the only thing we really went over was the last 5 questions out of 26...I had to google everything else.

He also had a question like this in it...

What is true for network protocols:
TCP is used for streaming.
UDP is used for streaming.
and a couple other ones that were blatantly false.

So...funny thing, TCP and UDP can be used for streaming data...I know this isn't a good example for school, but wiki is usually right, since you have tons of people who edit it...but you also get trolls, and they suck ass. But anyway, it says that UDP can be used for streaming, and same with TCP.  TCP is more common, but UDP can still fucking do it.  So why am I given such ambiguous questions on an exam, which is meant to test your knowledge of a subject?
http://en.wikipedia.org/wiki/Streaming_media

And I also got one like this:

Which protocol is more popular:
TCP
UDP
SSL
IMAP

So...first off SSL is out, cause that's the Secure Socket Layer, not a protocol, aaaaand...IMAP is used for mail...>.>  I have no clue which one is more popular, cause I like TCP over UDP any day...This is a multiple fucking choice question with one answer.  Subjective questions have MORE than 1 answer, because the answer is different with everyone.  My guess was TCP, since it's easier to use, but to be honest, it could have easily been UDP for all I know...how am I supposed to know what's popular and what's not when it comes to Internet Protocols...Maybe I like using UDP, because you don't need a connection to the server?  I don't understand it one bit, personally.

This was a very disappointing networking class that I paid a lot of money for.  And if there are any DeVry teachers or managers listening, you need to fucking fire whoever made the curriculum for the GSP 465 class, and picked out that awful book...it works for Linux, don't get me wrong, but I'm not using Linux, and probably a good portion of your students don't use Linux because you have a free Windows 7 download...Brains are here for a reason, and it's not nomming.

Monday, August 27, 2012

Programming ideas.

Alright, so I've been thinking about things, and discussing them with my new friend Gaming Gryphon.  I'm going to have a bit of a rough time with the mobs, trying to find ways to create a series of behaviors to tack on to the mob based on what they are.  I'm thinking I can make a section in the mob XML file something like Behavior
   XYZ
/Behavior

Where XYZ is just a string value of one behavior to add.  If there are multiple behaviors you add them into a list, then in the update method loop through all the behavior classes, and execute them.  Although I'm thinking an FSM would work best...but it would be a bit too complex for mobs with multiple behaviors.

However, if I could make a list of behaviors that work together that would be nice to get done finally.  The problem ends up being time restraints, and asking myself what i really want in the program, rather than all the weird quarkiness that i want to add for the complexities.

Anyway, watching Doctor Who Season 4 episode 15.  :-D  I will post some more later tonight.

Thursday, August 16, 2012

Updated Level Editor!

Alright, so today's update is with the level editor.  I'm going to be doing some more updates, and posting more pics.  The update I made recently is with the collision data, and how it shows the edges, and vertices for the collision polygon.

The picture below shows a simple image of the editor.  the right hand side is the image that XNA loads for the level, and if you look at the second square from the left, it's kinda got a series of blue lines, and red dots around it.  The lines represent edges (of course), and the dots represent vertices.  I got the algorithm to work right so it just draws a series of single pixel images I made (blue ones!) in a line based on whether the X or the Y distance is greater, so it creates a more accurate line...>.>


I got other updates coming soon, this is just one of many, stay tuned!

Oh, and I also set up a word press account, so I'll be updating that too later.  Before bed, methinks...

Tuesday, August 14, 2012

Well, this is the longest I've gone without posting...o_O  10 days.  New record I would say.  Although there really hasn't been anything to update on.  I've been doing homework, being stressed about crap, and trying not to go crazy.  :-P  Life's been good at least, no nasty surprises, and finances have been kinda washy, but not bad.  Got to see one of my old buddies from Round Table today, we hung out for a few hours, was really nice.  Didn't get to show him my program, but we were talking the whole damn time, so we were pretty busy, hehehe.

Anyway, with concern to the program, I've been mostly working on internal stuff.  I set up the options state to have a previous state to go back to, which currently is either the game state, or the main menu state.  So you basically return to the old state, reload the GUI, and be done.  I found that if you just go back to the previous state, the old GUI stays, so...that's a bit of a problem.  :-P  But, I also found the amazing "is" function in C# as well.  The function checks to see if a specific expression can be cast into the given class.  I.E. it acts like instanceof in java.

One basic idea I used it for was with the options state.  The previous state it's given is a BaseState class.  You don't know what kind of class it is, just BaseState, so you use the "is" function to find out if it's a specific state or not.  So...you have a statement like if (prevState is GameState), or if (prevState is MainMenuState). And then you do stuff based off of that.  :-D

I really liked the instanceof function in java, it's absolutely amazing, and once I found this I really just had to share it.  ^_^

And of course, since you can use an expression on the left side of is, that opens up opportunities for other things.  Many many other things...bwahahaha!

Also, I'll be posting some images from the game soon.  No real ETA on that though, cause I'm starting to get into the player mechanics of the program, and that's going to be a bit of a long drawn out process.  Eventually collision checking and handling once I get the player moving, and functioning when it needs to.  Once that's all done, I can start on creating levels, but it's going to be a while before that happens.  I would say a few more weeks right now.  @_@  And of course, I have to re-do my PiP algorithm for this, and find a way to make it function a bit differently.

After I get collisions working, I need to start adding mobs.  Mobs will need behaviors, and each mob will be unique.  I will also need spawners, and the appropriate algorithms for working with the spawners, like if the spawner is on screen you can't spawn mobs, otherwise you can work, but only every so often, and such...

Once the mobs work, I can start working with the player some more, adding an inventory, equipment, and items.  After the items are created, I'll need to add the droppable items, which are actually completely different objects than the items themselves.  Once the droppable items are made, I think I can work on creation.  This would be like...when you go to your shop, you can load up the GUI for creating crap.  :-P

I can also create the item dropping system on mobs, and how to identify what items they drop.  That last part's going to be a biggy, cause it's a bit of a pain in the neck to do.  Loot tables ought to be interesting to work with.  :-D

I still have so much to do, and a rather short period of time to do it in.  I'm going to use this program as my final project.

So yeah, that's my life right now, onward to more coding!  *grabs pen, pencil, and paper and runs around with scissors in hand*  >:-D

Saturday, August 4, 2012

Good news everyone!

Yes, yes that's a reference to Prof. Farnsworth from Futurama...But aside from that, there really is good news right now.  Looks like my program is loading the xml files, and saving them in the proper format that it needs.  :-)  I also set it up to delete objects, create new levels, delete levels, and change the name of levels.  This makes things pretty freaking awesome in my opinion.  I also set up a moveable camera as well that when you right click (right now it's set up for anywhere on the screen.  o_O), it moves the camera around in an inverted direction.  So you move down, the camera moves up, move left, it moves right, that sort of thing...:-)

So that knocks a bunch of stuff off my list of things to do.  Now I need to start creating the classes for each unique object.  I also found a work around for a few things, which is excellent.  Things like setting up extra objects within objects, and drawing them...for instance, on the camera, I added a GUIText object from the GUI editor, and made it draw the position on the screen with a draw method for the camera.  Gives me some good ideas for how to set the game up further.

Also, the camera moves strictly within the limits of the level.  It doesn't go outside, which is good for side scrolling platformers.  :-)

Anyway, I think I'm gonna go play Katamari Forever now...bwahaha!  JUST KEEP ROLLIN ROLLIN ROLLIN YEAH!

Thursday, August 2, 2012

Cause this is Thriller!

I must have a thriller steampunk zombie in my game...o.o  I finally got around to watching the thriller music video, and laughed so hard when I saw the zombie part.  Such great choreography went into that...So, I'm hoping I can take some still shots of thriller, and add in a random and very rare thriller zombie...think he's going to simply be called thriller.

That would be a great easter egg to add in.  Any ideas for future easter eggs would be great.  :-D

Here's my link to thriller btw.  :-P
http://www.youtube.com/watch?v=sOnqjkJTMaA

In other news, the level editor is coming along slowly...I've got it able to load up a level, and show the information on the screen, so that's one milestone hit.  It automatically updates the level scene, which is nice.  I need to work on jury rigging a moving camera when you right click on the screen.

I also set up the add button, which adds in a new item to the list, but I need to update the list whenever the class is changed.  The problem with adding it to the auto update is that whenever it updates the list it blinks...it gets really obnoxious, specially when you're doing it really fast...o.o  No epileptic seizures from my level editor please.

I also have another milestone I need to add, which is a saving function that saves the edited level files.  Would be nice to keep the changes, right?  :-P

Welp, that's all for now, sleep well, and stay safe!

Monday, July 30, 2012

Level editor update!

Had a nice few hours to work on updating the level editor some more.  It now works similar to the GUI Editor, however I haven't quite gotten it to load up the images and such for the level.  It's taking a bit longer to get that done, but the information is all present and accounted for.  Apparently I somehow messed up and don't have an origin for my scene objects...I guess I assumed upper left hand corner works.  We shall see...

Anyway, it's coming along really well.  I got LOTS done today, along with a few major updates to the level editor.  Despite being major updates, the format hasn't changed, which is great.  But I finally found a way to get an ordered pair together from xml, and it was one of those *facepalm* moments, when it's like "that would work much better than this..."  I kind of set it up like the saving of ordered pairs...which yes, it's obvious that's the best thing to do, but originally I was dealing with individual ordered pairs, rather than vectors.  Now, since I'm working directly with a vector class (which has an x and a y for those of you who don't know) I basically just return a vector once I hit the base case, which is the end element for the given value, like Position, or Scale...

This little move saved me about 100+ lines of code, which is great, but it also allowed for reusable code which is awesome for oop languages.  :-D

Also, I pulled another trick out of my sleeve by extending the parsers to save, as well as load.  I know that's not too different, but this helped me out, because I could override other functions to make them more efficient without directly changing the parser library.  Once I found a good build that works, I just copy pasta back into the library, build it, then move the dll.  ^_^  Worked wonders.

Saturday, July 28, 2012

Good news, today I'm beginning work on the level editor.  The GUI Editor is pretty much complete, and the operations and objects function properly in the program.  I'll be working on creating sliders, and value bars as well, eventually.  It should be interesting to see how this turns out after a while.

I'm also doing my sleep study on monday...quite nervous about that, especially since it's from 9 pm to 6 am, and for most people that know me, that's about...5 hours after i wake up.  So right now I'm going to try and work on my sleep schedule.  Today I'm going to wait until 4 pm or so before I go sleep, and then the next day 9 pm, and hopefully after that I'll sleep around 9.  We shall see...No promises right now.

Wednesday, July 25, 2012

Arguing with myself, but not Jeff Dunham...

Updated my "Song of the day" list to have my spotify playlist that I'm listening to.  Right now it's LIES GREED MISERY by Linkin Park in their latest album.  It's definitely not my favorite album, but still good song.  That song sounds a bit like something AWOLNATION would do...

Anyway, the program's been slightly updated...I'm working on documentation right now, trying not to go too crazy.  I ended up changing a lot from my visio file, but it's still pretty similar.  I'm not sure if I can post the visio file on here...if I can I will, otherwise, I'll probably it into a PDF/.png file and post it.  It's quite complicated right now, however there's SO much more I need to do...I need to find a way to make the player information, and the sprite, and a few other things...I need to find a way to separate the sprite from the player information class, but still keep them connected.  It's a fucking mess.  Hell, I might as well make the player sprite something completely different.  But then there's the problem of collisions, and how objects react to the player, stuff like that.

I'm thinking one possible idea would be to completely separate the player, enemies, and the scene...that might work.  I already have the scene manager, which can contain all the scene objects.  Then the player manager, then an enemy manager.  That would probably work really well.  Gotta figure out if it's going to be threaded with the game, or if it's going to be separate though, like the Scene Manager...I'm thinking separate, because of my camera class, which is used to translate objects to the right place based on where the camera is.

I was also thinking about making a nifty background, probably something automated like Mario.  Make it basically a cutscene that acts like a game.

Speaking of cutscenes, I also need to figure out how to do the cutscenes as well.  I'm thinking something like a bit of code that executes commands after specific times or events, such as hitting enter, escape etc.  Then I could just make some xml that dictates different events...something like moveTo with the x, y  position, object id, speed, and a few other things...Then that would need another tool.  -_-  Eventually I'll have an entire game as a tool.  *le sigh*  But that provides an interesting twist at least.  The program will be editable from a player stand point, which allows for very limited modding.

Also, been watching Battlestar Galactica, the newer version, and it's VERY good so far...I'm really hoping to get into the old BSG once I'm done watching the new one.  ^_^  I'm just starting to really get into sci fi's so wish me luck.

Monday, July 23, 2012

Herpa Derp! I have no title for now...

After almost 6 days now, I've come back to say...I'm playing Terraria, leave me alones!  :-O  I've been playing a lot lately, unfortunately it's about as much fun as minecraft, if not more, because of the large amount of content in the game.  I've also been looking at different ways to make a GUI for the program through Terraria, because my idea for the game is similar...not the same at all, but similar to Terraria, gameplay wise, and a few other things...but it's definitely not another world builder type game.  I'm not quite talented enough for that yet.

Also, I will be creating a wordpress blog eventually to ummm...well...make life a little lazier I suppose.  My nook has a wordpress app, so I can make a wordpress blog, and blog from my nook, which would be awesome.

I will need to focus some more on The Secret World as well, because apparently I'm now officially a douche nugget according to K, which is really sad, so I need to focus on that as well.  Terraria, TSW, Dead Island, Plants Vs. Zombies, Assassins Creed 2, Ratchet and Clank All 4 One, Vessel, Borderlands, and Diablo 3...Those are all the games I need to play...@_@  Vessel is rather meh...I think the concept was cool, but the execution is rather boring.  Borderlands is just fun as hell.  Ratchet and clank I've had for like...6 months, and have yet to beat, AC2 I need to return to Summer.  PVZ I still need to get achieves, and complete the second playthrough...Diablo 3...well...hard to say right now, but I still play it sometimes.  Dead Island I just got from Jossi, thanks dood!!!  And Terraria is fucking amazing.  TSW is good, very well made for a just starting MMORPG, I'm just not in the heavy story mood I suppose.

Anyway, I'm going to try and make a list of things that need to be completed in my program, try to organize it, and break it down into smaller sections, then even smaller if I need to.  Then start working on the tasks...cause there's still lots to do...I'm also going to go for something that looks a bit (not as low detail) like Terraria.  Something with like...36x36 being small sprites, and 128x128 being large sprites.  Going by powers of 2 is rather convenient imho.  But I need to make most of the images as well, so that's going to be a pain.  I'll be bugging Eric too...*rubs hands together and laughs evilly*

Large ideas for my project...I need to get the Objects system running, and a Level Editor of sorts.  I have the list of all the objects I want to make, however, something I learned with the GUI is that I essentially have to do double the work if I want to have a level editor.  At the same time, I also need the level editor...period.  There's just too much information I would put into the XML files without breaking my finger tips.

Tuesday, July 17, 2012

More excellent news!

I just got the game system set up to have an options menu!  ^_^  First successfully created options menu that actually changes important stuff!  I had to change a few things in order to get it to work, so I'll have to add those to my Visio file and word file now.  @_@  It's nice keeping notes, but my god, having pages and pages of notes is so difficult to read through, and change things, add things, remove things etc...It's just a pain in the ass...despite being very important to my system of organization.

Speaking of my system of organization, I like to have Visio, Word, and 2 applications open in Visual Studio 2010 when I'm working on my program...along with chrome, msn messenger, skype, google talk, steam, and Spotify.  (Wish I could get that damn spotify button thingy, so I can add music to my blogger automatically...If anyone knows how to do that tell me!  I must know NAO!)  o.o  Anyway, aside from that, things are going well on the program.

Oh, and one little tidbit to my readers...Did you guys know that Terraria was built with XNA 4.0?  And same with Bastion.  It's apparently a very powerful tool to learn.  ^_^

Also...Eric was on a CBS video.  ^______^  Was pretty awesome.

Editor Update!

Alright, so I've gotten my GUI editor working mostly.  Unfortunately the last couple of days have been devoted to other subjects, like cleaning the house, and homework, however I'm glad to say that the GUI Editor now saves all the data, adds new objects to a specific GUI, can create new GUI's, and can change the name of the GUI!  So kudos for me, but there's still much more to be done on it.

Also, I now have the code in for a checkbox.  Still working on getting it right, but for now it works like a charm.  The checkbox will be used for things like vertical sync, full screen, or other things...really simple on/off stuff that I'll add to the game.  I just need to get the GUI's made, which should now be MUCH easier.

One little thing I've run into though that I need to fix...I need to run multiple GUI's at the same time.  If I do this, I think I can just have a gui.add() function that adds another GUI on top of the one I already have, as a list, or stack...stack would probably be more efficient, because then I can just pop the last one, and it goes back to the original GUI.  The problem that may come in though is the layering...cause most of these objects work on a very limited amount of layers.  i.e. 0.8-1.0...where 1 is the very front, and 0 is the very back.

Anyway, so that means I'll probably have a few more methods in the GUI Manager, and remove the LoadGUI method, prolly just use gui.Push, gui.Pop, and gui.Clear methods.  Would make things a bit easier, and if I need to I can do some coding behind that.  This might also imply I have a stack of lists of GUI Objects...o.o  which is going to get confusing.  The update method will look something like this...

foreach(List<GUIObject> glst in guis){
foreach(GUIObject gobj in glst){
glst.update();
}
}

Where guis is the stack of lists.  Doesn't seem like it'll be much of a pain at least...I'm glad that C# containers, including arrays, allow foreach loops...makes things far easier to work with than having to use a regular loop.

Anyway, enjoy the music of the day, it's from one of my many favorite video games, Borderlands.  ^_^

Thursday, July 12, 2012

Another excellent update.  I have the system set up to now temporarily save data and dynamically (by use of a button atm...) update the GUI!  So I can basically set the data I want, and it will actually update to the GUI editor!!  ^__^  It makes me very happy.  Once I can permanently save the GUI files, I'll have my very first game tool.  It's not very versatile, because it needs to have the folders and files hard coded into it, but it's not bad for my first one.  I'm hoping tomorrow will be my first day with the tool finished, but no promises there.  School's going to be a bitch this session, so I have to focus on that (whether I like it or not.  -_-)

Allan! Why hast thou forsaken gaming?!

I blame Eric for this...But, the beauty of it is, it's a testament to my skills with programming.  ^_^  I now have a working system for displaying my GUI, and showing all the information about it.  Now I need to work on saving new, edited, and old information all in one.


Why Eric...Why did you have to tell me about Allan???

Wednesday, July 11, 2012

Picture updates ftw!!!

As the title states, there are pictures in order tonight!  I got the GUI Editor set up, it's not displaying the GUI, but it's properly displaying all the information I need it to.  I have 3 GUI files, it displays 3 GUI files...each file has about 3-4 items, and it displays the appropriate amounts!  I'm excited to present to you, my GUI Maker 3000!!!  Kidding, it's still in the super pre-alpha stage.  :-P  But soon my minion--er...readers, soon.

Alright, so pics, as promised...I wonder if it will make them small, or clog up the screen, cause my screenshots are 1080p...>.>  WHO KNOWS!  Let's try this out!


So this one is meant to show the basic startup, which allows you to select the GUI you want to work with, and gives you various buttons and stuff that makes no sense...


This is for showing the objects that load up on the left after selecting your GUI, and how it updates all the appropriate info.


Just showing off font options from the combo menu. 


And lastly texture options from a combo box.  The last two are custom data that's added to the form from the game you see in the background (Giant cyan blue thingy of doom on the right that looks super boring atm).


Anywho, it took me a while to get this up.  The beauty of this is that it uses a combination parser DLL file I made.  I say combination because it holds the level parser, settings parser, and the GUI parser, so I can access any of that through other programs, and just send it the appropriate files needed, and BAM!  It has all the data I need without having to recreate the parsers...It's beautiful.  ^_^  Once I get all the information passed to the Game client, it should be able to display and update dynamically with the data on the form.

Once I start getting more advanced GUI objects, it will be quite a bit more complicated...but for now this works.  Eventually I'd like it to work on dual screens, and have a few extra drop down menus.  Right now the drop down menus just contain a few things...

Monday, July 9, 2012

I won't stop believin'!

I love today's song of the day...it's a good version.  I still absolutely love the original Journey song though...Journey was amazing.  Anyway, I have some organizational road blocks that I've got to figure out.  Fortunately I can wait a bit before actually needing to worry about them.  I'm focusing on getting the GUI to work, along with a series of test states that are changed based on GUI buttons, check boxes, and what have you...

I'm really trying to get this to work, I'd like to get an options menu that changes the preferred width/height of the screen, as well as adjusts full screen.  And then based on whether you cancel or apply/accept, it will change the screen.  :-)  Once I get that down, I'll need to be able to switch to the main game mode and load up the main level.

So, once I get the high level GUI objects working and the state switching, I'll start working on mid level to high level object design.  I already have the diagram of all the scene object classes drawn up, just need to implement them and their methods.  I have some kind of organization to this, which is nice, and I'm sure that once everything's written down, it'll be a bit easier to know what to do, and how to do it.  Anyway, that's it for now, later!

Saturday, July 7, 2012

5 Days later...@_@

Alright, so a bit late on the update but, there's really nothing new to say...the program is still in development, and is currently organized better now, and it seems to be fairly efficient.  I'm sure it's got its flaws here and there, but it works for now.

I got the GUI parser working, along with interactive GUI objects.  I need to make their children, like buttons, and various other things...Thinking about making slide bars, should be interesting...using a slide bar for things like volume for instance is rather convenient.  I would also like to make some drop down menus later, but i'm sure that will be a lot more complicated...

Anyway, I'm working on developing the GUI parser some more.  Once I get that working, I can get a start menu made.  Will be awesomely epic.  ^_^  Once I can get the program to switch states, I can set up the player and a few other things as well.  I think if I can get the game to switch states correctly, and display all the images needed, that will give me a good idea if this organization is working, because that requires a lot of inter-code dependencies between several managers and the main.  This will help me understand a bit more of how I could improve the game and expose less in code.

As for parsers, I still have a few more to do...I know I need the level parser, and I want to update that to allow for multiple files, not just one, like the GUI Parser is set up now.  This would help me out by organizing the level info a bit better.  I also (later once the game is all awesomified) need to make a save game/load game parser as well.  That's fairly simple, plenty of resources out there on how to create .sav files in XNA.  I also need to work on a background parser, which gets the info for all the background images, and various other things that are never interacted with.

Monday, July 2, 2012

Good news!

Alright, so the good news is...I finally have a direction with my program!  It's very exciting for me, and looks to be a very unique idea.  A steampunk platformer RPG with custom weapon creation!  :-D  Very very very very distant from the original idea, but I want to use this as my final project, so it will need to be different.  And I think that as Eric noted before, it would probably be best if we lived nearby to actually get a game rolling...we just don't have the right type of communication online for a group project, and we get easily distracted with video games.

Either way, I've been working on the project documents, got a few class diagrams done, and a decent GDD.  If you don't have the link you're SOL, cause I'm not posting it on a very public area.  Thhbbbbbbbt!  Now...as for any updates on the program...It's still alive and mostly kicking.  Currently just sitting there staring at the user and drooling, but alive.  Comatose perhaps, but alive.  I just have to add on some flesh, and perhaps a few organs here and there.  I don't want it to reproduce though, so it will be immediately neutered, boy or girl...Yes this may stunt its growth and give it a fairly high pitched voice, but it'll do the function it's supposed to do dammit!

Saturday, June 30, 2012

Crossroads

Oh the interesting qualities of programming...o_O  I've decided to scrap my XNA project and remake it, because the organization is so bad on the old one.  It would be best to have something more organized first.  Fortunately I have a better idea of what I want to do now, and I have been working on some documentation now, instead of just going all over the place, and having no set idea of what i want for the program.

Now, to be honest, I'm at a bit of a cross roads between making an RPG or making a platformer...the RPG would be a bit less mathematically challenging...and I would use a fairly simple system for the program, think old school FF style system.  Probably with the visual qualities of FF1, and potentially a system like 6...although that's still up in the air.

However, something like that requires a lot more organization, and far less spaghetti code...>.>  I've been known to have small sections of spaghetti code.  My main problem is that I don't want to go back and forth between program ideas, and organizations, because I don't want to get stuck with 50 unfinished projects.  Any advice from my few readers out there?

Wednesday, June 27, 2012

Kind of update?

No new news, just updating because my comics apparently just came out...>.>  I don't have a lot of plans tonight, although i'm drinking some alcohol with my dad tonight.  Tis a rare happening, and it's always nice.  :-)  So yeah, no updates on the program, just booze...

Sunday, June 24, 2012

Updated collision detection with ray casting that actually functions but needs more testing!

Alright, so there might be good news...From what I can tell my ray casting algorithm is working so far, however the movement is still very umm....bad.  But, I'm quite glad to see my ray casting algorithm works.  I'll be working on it some more for initial circle collision, then the ray casting detection for more accurate collision detection.  At the moment I'm watching Psych...I'm on season 2 so far so good.  Rather silly, as always, but I never can focus on my programming...I went ahead and posted a few lines of code from my work.  If any readers want to comment on the code, shoot me a comment, I'll read over it and reply.  I'd be glad to hear about things i can do to improve.  :-)

Basic method for checking if a point intersects a segment.  Edge class contains 2 Vector2's, p1 and p2, which act as a 2D point in electronic nether-space.


        protected bool RayIntersectsSegment(Vector2 p, Edge edge, Vector2 world)
        {
            //This method is strictly used for checking if the specific point p intersects the edges points.
            //First we need to find the 2 vector values a and b.  a must be below b on the y axis.
            Vector2 a;
            Vector2 b;
            float red;
            float blue;

            //Check which one's above and which one's below.  And then increment them by the world translation.  It's very important that we do that...
            if (edge.p1.Y >= edge.p2.Y)
            {
                a = edge.p2 + world;
                b = edge.p1 + world;
            }
            else
            {
                a = edge.p1 + world;
                b = edge.p2 + world;
            }

            if (p.Y == a.Y || p.Y == b.Y)
            {
                p.Y += 2;   //Magic number used to increment y just a little bit to get it out of the path of the vertex itself.
            }
            if (p.Y < a.Y || p.Y > b.Y)
            {
                return false;
            }
            else if (p.X > Math.Max(a.X, b.X))
            {
                return false;
            }
            else
            {
                if (p.X < Math.Min(a.X, b.X))
                {
                    return true;
                }
                else
                {
                    if (a.X != b.X)
                    {
                        red = (b.Y - a.Y) / (b.X - a.X);
                    }
                    else
                    {
                        red = float.PositiveInfinity;
                    }
                    if (p.X != a.X)
                    {
                        blue = (p.Y - a.Y) / (p.X - a.X);
                    }
                    else
                    {
                        blue = float.PositiveInfinity;
                    }

                    if (blue >= red)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
        }

This method is called in this series of loops here.  The object vertices is a List of vertices, and the object boEdges contains the list of Edge objects in the other polygonal object.


                    foreach (Vector2 cp in vertices)
                    {
                        int bcounter = 0;
                        Vector2 cpw = cp + parent.position + parent.origin + offset;    //Translated to the world.
                        Vector2 oWorld = other.position + other.origin + box.offset;

                        //then check for every edge in oe.
                        foreach (Edge oe in boEdges)
                        {
                            if (RayIntersectsSegment(cpw, oe, oWorld))
                            {
                                bcounter++;
                            }
                        }

                        if (bcounter % 2 > 0)
                        {
                            //If the counter turns out to be odd, return true.
                            return true;
                        }
                    }

If I got anything seems wrong, give me a holler, I'm all ears.  :-D  Also, this was created in C# using the XNA Framework.

Saturday, June 23, 2012

Latest update.

Alright!  I have good and bad news for the day.  I set up a basic raycasting system for my XNA engine project.  It works, however I'm getting a lot of errors with it.  -_-  So, I'm mostly back to square one, but I have a working system up that I just need to figure out what's wrong...essentially.  I'm guessing it has a few other problems going on right now, but I'm working on it.

The problem I'm having is that I can't visualize the segments very well.  I can visually mark the vertices, however I can't make the edges.  For now, vertices work though.

The Player object is also animating well...I have a series of sprites that are very basic, but work fine for now.  The animation also has different beginning and end sections as well, so the animation will run to a specific point, and then when it's done there, it starts back up at a specific point.  It runs from left to right, then back to left on a new row, once it's exhausted that first row.  So you can't have little sections of animation, like a square in the corner dedicated to running, a square in the corner dedicated to jogging, and a square between dedicated to something else...essentially.  Here, I'll draw a diagram, hope it helps, cause it took me a while to make.

[run ][----][----][----][----][----]
[/run][jog-][----][----][----][/jog]
[fall][jump][----][----][----][----]

That diagram would work.  The last 4 tiles in the lower right hand corner can be whatever the fuck you want, idc...but, you can actually make one frame specific to one thing, and it will "animate", essentially.

Run will last until /run, same with jog, fall and jump are individual single frames for the action.  Eric should understand this pretty well...Anyway, there's no limit on size, so far as I know, but it's best to keep it small and simple I would imagine.

As for things that won't work, here's a good example.

[run][run][run][jog][jog][jog]
[run][run][run][jog][jog][jog]

This will not work, because it runs sequentially through this process from left to right in a row, then down a row back to the left, like I said.  :-)

Anyway, enough said, I will be back in a few days with a new update!  :-D

Thursday, June 21, 2012

Game Engine finally done...but not for Impulse Strike 2. :-(

Alright, just finalized my GSP420 class, and that included making a demo with a game engine we developed as a team.  The team included everyone in the GSP 420 class, which is awesome.  I would say I wrote my own game engine, but that would be a complete and utter lie, sadly.  I just wrote the configuration xml parser, and a variety of small code sections.

Oh I have found my next new love...XML.  Apparently C# has a decent XML parser class, which is pretty badass.  I utilized that parser to create levels from an XML document.  I'll be working on creating a nifty level editor with it, so I can update and adjust the level document outside of the class.  :-D  Will be epic.

As for IS2, there's really no updates, this engine class has taken over most of my mornings, and my nights are filled with watching anime lately...>.>  And Monk...I love that show.  I've also been watching South Park every so often.  It's a very unique show...not as bad as Drawn Together, but still killing off brain cells slowly...

Anyway, gonna go find my song of the day, post that, and see you all later.  Take care.

Wednesday, June 20, 2012

AGH! No posts lately! The horrors!

:-O  I haven't posted in ages.  Of course, I haven't made any updates in ages either.  I can blame Eric for that :-P  He got me started on SC2 again...check out my facebook if you want to see some pics of our crazy adventures on there.  We were playing a Terran survival match with only marines...was quite entertaining to say the least.  Lots of blood gore and "You want a piece of me, boy?" :-P

Oh fun times...anyway, as far as updates go, I haven't gotten anything new lately, it's been rather boring on that front.  I've been very busy with finishing up a game engine for class, I'll post that once we're all finished up with it, and people can fiddle around with it as they see fit.  It's really simple (very...very...very...simple.) and probably has more memory leaks and unused code than I'd like to admit, but that's just because it was a team effort where people couldn't agree on how things would work.  And a few people on the AI team seemed to be very green at programming C++.

Of course, I'm still pretty green myself.  I can made the XML Parser in C++ using TinyXML2, which is fairly simple and easy to use.  However, that was basically my introduction to advanced C++ programming...after 5 years of programming in various other languages like Java, C#, and Visual Basic.  I've grown very fond of C# though...and XNA.  Once I got the O'Reilly book about XNA, I'm so happy to see I can do a lot with it.  I just need to learn more math and physics.  I feel like despite nearing my Bachelors degree, I still have yet to touch on a full understanding of the mathematical functions I use.  I just use them, and if they work great, if they don't, I beat it with a stick and do everything I can to understand why it's not working.  And if all else fails, I continue the beatings, and then give up.

So yeah, no new updates, just me babbling about stuff going on.  :-)  Take care.

Thursday, June 14, 2012

Hello my readers of awesome...Sorry for the 6 day delay between updates...I've been quite busy trying not to die on Diablo 3.  Finally made it to Inferno and I went from being somewhat squishy to super squishy...-_-  Even with 56% damage decrease in defense, I take like...40k damage from really annoying rares, or champions, and bosses.  I was one shotted by a mob, and yet I could take down Diablo on Hell in one go...how the fuck does that happen?  When did Diablo's minions become more powerful than him...o.o

Anyway, enough with my rant on Diablo 3...I'm looking forward to the next couple of days.  Eric and I have redirected our game idea a little bit.  I'd rather not get into that too much, but it's still a platformer.  Personally, I've been a big fan of platformers since I played the original Spyro game.  I'm quite happy with the direction we're going, I would just like to get some work done on it.  We're definitely sticking with Torque for the new direction as well, so hopefully we can get something simple out soon on the website.

The reason behind the redirection/change was primarily because of art assets.  Eric's artwork is good, but he's pretty busy with school and work, and various other life...things...anyway, he's busy, so he can't work on the program if he's doing art all the time, and Impulse Strike has always had very complicated artwork associated with it.  If we can get the art pumped out of the way, we'll be fine...Was the original idea behind asking Summer to help, however that has gone nowhere so far.  -_-  Very disappointed with that, but I didn't expect it to go very far originally, was just hoping she would want to have a side project or something she could add to her portfolio.

Friday, June 8, 2012

Ok, so good news...Updated the project a little bit.  Bad news...There's still input issues that I'm unable to resolve.  If this was a polling language it would be easier, but since it's not a polling language, it's a bit more frustrating, and more difficult to find a workaround or something of a similar nature.

In the project, I've added a grenade object, which breaks into multiple shrapnel bits.  These bits have a random frame to choose from when created, and it works very well.  Whenever the shrapnel hits a wall, or the player now, it will stick to the object.  One of the awesome things with Torque is the mount feature, which mounts one object onto another and makes it follow the other object, so when the player gets hit with shrapnel, it essentially mounts to the player, and follows him around for a little while, then it's deleted.  I also want to get the explosion created as well, which some day or another, I'll get a decent explosion animation.  I'm still on the fence about XNA, because I really want to have some 2D physics in this game, and right now Torque is just showing off...>.>

The physics in Torque still need some fine tuning though, it's rather difficult to get correct for me, because it's a bit confusing for me right now.  I understand how they all work, I just don't understand why there's absolutely no friction, even though it's set to a value of 3000 on both objects that are moving.  @_@  So confusing...

On a side note, I also set up a wall class, which was initially required for the shrapnel, but now it's a bit obsolete, since it sticks to everything now...I also need to use that to set up the jumping to not allow constant jumping.  It would essentially use the collision callback to check if it's colliding with a wall on the players feet...that's going to be interesting.  Thankfully, torque has the points where the collision is occurring, I'll take a look into how to check which points they are, or where they are, etc...and see if i can find a good way to verify that the player is on the ground.  I could also use that moment to set the constant Y force to 0...and then when you jump set it to gravity.  :-)  Less work on the system, at least I think...we shall see how it works out.

Anyway, gotta go, sorry for the long post, but I hope I can get some insights from anyone that's reading this. Thanks!