I just watched this amazing video . . . and found something in myself that I forgot was there for a long time. . .
http://www.youtube.com/watch?v=kJoMDq4AyLc
What I found was my sense of wonder and respect for incredibly improbable anomaly called life. The most rarest of rare occurrences in our Universe.
In the face of the vastness of Space and the fragility of Earth and the incredible odds against it existing at all. . . it does give one pause and the opportunity to put things in perspective somewhat. We are all incredibly lucky to be alive and to exist, and we should live life to it's fullest. :)
Tuesday, June 23, 2009
Thursday, February 19, 2009
Brand New Ordered Chaos!
I've been experimenting with different collision detection methods and waypoint pathing techniques over the past few days. This is an area that will need to be very smooth and bullet proof if our RTS is every going to have challenging opponents and NPC characters.
Right now all our worker ants can do is follow the queen or follow the path of boxes that she can lay down for them.
I've got a lot to learn about AI programming as well as collision detection!
Here's a movie showing all the ants avoiding each other as they try to follow the path the queen lays down for them. Then I hit the button that tells them to chase her instead. Njoy! :)
Right now all our worker ants can do is follow the queen or follow the path of boxes that she can lay down for them.
I've got a lot to learn about AI programming as well as collision detection!
Here's a movie showing all the ants avoiding each other as they try to follow the path the queen lays down for them. Then I hit the button that tells them to chase her instead. Njoy! :)
Thursday, February 12, 2009
Brand New Waypoints
Tonight I've implemented an off the cuff waypoint system. I've naively designed from scratch without looking up any tutorials.
Basically, the ants that aren't a queen, have a List which stores a number of vectors. Each Vector represents a way point. Then we have a bit of logic to point the ant at the current way point (wayPoints[0]) and then move in the direction of the way point 1.0f units per frame. Another bit of logic checks to see if the ant is within a certain distance of its goal and if it is we pop that way point off it's list and set the next way point on the list to be the new goal. If the ant makes it to the final way point in the list we simply re-initialize the way points list basically resetting it back to the same initial vectors we started with and it all repeats itself until we end the game.
I've also left in the collision detection with the queen so she can interrupt any ant she likes. I.E. if the player moves the queen into the path of any of the worker ants they will stop until she is no longer blocking their path.
This will obviously be far too primitive of a solution for the "real" game but I'm pleased with how it works and that I was able to implement it in just over an hour.
In this video there are only 3 way points that the workers are trying to get to. The queen now has a crown to denote that her Royal Highness is special.
Njoy!

Basically, the ants that aren't a queen, have a List
I've also left in the collision detection with the queen so she can interrupt any ant she likes. I.E. if the player moves the queen into the path of any of the worker ants they will stop until she is no longer blocking their path.
This will obviously be far too primitive of a solution for the "real" game but I'm pleased with how it works and that I was able to implement it in just over an hour.
In this video there are only 3 way points that the workers are trying to get to. The queen now has a crown to denote that her Royal Highness is special.
Njoy!
Tuesday, February 10, 2009
Brand New Collision System
Last night I implemented a bare bones collision detection system using BoundingSpheres. BoundingSpheres are basically an object that only consists of a radius and a position and a set of methods to test if 2 BoundingSpheres intersect or contain one another. . . They work but not really very well.
Here in this movie you can see that I've created a 3d model that looks kinda like an ant. I've made a system where one ant is the leader (queen), she is controlled by the user. Then I created another kind of ant the follower (worker) ants and they are being controlled by the computer. The worker ants only know how to do two things walkToTheQueen dontTouchTheQueen. walkToTheQueen is accomplished by first finding the 3D vector that describes the direction from the worker ant to the queen and then using that to determine the angle that the ant needs to be facing. Once we have that angle we can simply move forward along that angle until we reach the Queen. Which brings us to doNotTouchTheQueen which is determined by testing the BoundingSphere of the worker ant with the queens royal BoundingSphere if they intersect then the worker must take a step back and stop walking immediately.
Well that's what the theory was and looking at the code that's what SHOULD be happening, but as you can see from the video there's a lot of work that needs to be done. The path finding to the queen for one thing is rudimentary and not very believable. Worse, the collision detection causes some unfavorable results, namely there's an uncontrollable jitter and flipping that occurs with far too much frequency.
However, Rome wasn't built in a day and progress is being made! I'll jump back into this tonight, for now here's a lil movie of the ants doing their thing.
Here in this movie you can see that I've created a 3d model that looks kinda like an ant. I've made a system where one ant is the leader (queen), she is controlled by the user. Then I created another kind of ant the follower (worker) ants and they are being controlled by the computer. The worker ants only know how to do two things walkToTheQueen dontTouchTheQueen. walkToTheQueen is accomplished by first finding the 3D vector that describes the direction from the worker ant to the queen and then using that to determine the angle that the ant needs to be facing. Once we have that angle we can simply move forward along that angle until we reach the Queen. Which brings us to doNotTouchTheQueen which is determined by testing the BoundingSphere of the worker ant with the queens royal BoundingSphere if they intersect then the worker must take a step back and stop walking immediately.
Well that's what the theory was and looking at the code that's what SHOULD be happening, but as you can see from the video there's a lot of work that needs to be done. The path finding to the queen for one thing is rudimentary and not very believable. Worse, the collision detection causes some unfavorable results, namely there's an uncontrollable jitter and flipping that occurs with far too much frequency.
However, Rome wasn't built in a day and progress is being made! I'll jump back into this tonight, for now here's a lil movie of the ants doing their thing.
Monday, February 09, 2009
Brand New Matrix
So, After my initial successfull foray into XNA it was time to really roll up my sleeves and start learning to code in 3D.
The first thing I learned was that XNA, while it does a lot for you out of the box does not do EVERYTHING for you. There is a ton that the developer will have to "roll on their own". This is good news to me because the whole point of this exercise was not merely to create a game using XNA but rather to teach myself the core concepts of Game Development in 3D. Unfortunately, XNA DOES do some of it for you and the first thing I had to learn was what DOES it do and what DOESN'T it do.
So far I'm still not sure. [ED I'll NEED TO RESEARCH AND THEN UPDATE WHAT IT DOES AND DOESN'T DO]
After digging around in the base XNA solution for a while I stumbled across a number of internet forums that were debating the relative gains vs risks of implementing a game engine on top of the XNA framework. But wait, you may be thinking, I thought the XNA framework was already basically a game engine, wouldn't it be redundant to create an engine on top of it? ? That's what I thought too, but after reading further a few points started to emerge and I was reluctantly swayed over to the "Let's build our own engine on top of XNA's framework" side of the argument. The main reason is this, if I spend the time to create this custom engine then in theory I should develop a keen understanding of all the in's and outs of each of the classes and methods that make up this completely custom engine. At the same time, I'll be forced to learn about the concepts of what it takes to create a successful game engine and each of it's components.
This task of learning to develop a 3D game engine was never supposed to be fast, and now it's going to be even slower. However, the knowledge gained is so interesting and fun that I'm really excited to keep going.
I've already implemented a base engine with most of the core functionality:
camera and fps style cameras
Arbitrary amount of GameScreens (like pause, main, level 1 , level 2 , etc)
components that support 2d and 3d types.
the ability to control the loading, unloading, drawing , updating, moving etc of said components
Height Map generated terrain
3d models with textures attached to my 3d component actor type and controllable via vector and matrix math.
I've got a long way to go and in the coming weeks I'm sure the lessons learned here will all seem easy by comparison but for now we're out of the starting gates and off to the races. I'll post another short clip tonight to demonstrate the current state of the game engine.
The first thing I learned was that XNA, while it does a lot for you out of the box does not do EVERYTHING for you. There is a ton that the developer will have to "roll on their own". This is good news to me because the whole point of this exercise was not merely to create a game using XNA but rather to teach myself the core concepts of Game Development in 3D. Unfortunately, XNA DOES do some of it for you and the first thing I had to learn was what DOES it do and what DOESN'T it do.
So far I'm still not sure. [ED I'll NEED TO RESEARCH AND THEN UPDATE WHAT IT DOES AND DOESN'T DO]
After digging around in the base XNA solution for a while I stumbled across a number of internet forums that were debating the relative gains vs risks of implementing a game engine on top of the XNA framework. But wait, you may be thinking, I thought the XNA framework was already basically a game engine, wouldn't it be redundant to create an engine on top of it? ? That's what I thought too, but after reading further a few points started to emerge and I was reluctantly swayed over to the "Let's build our own engine on top of XNA's framework" side of the argument. The main reason is this, if I spend the time to create this custom engine then in theory I should develop a keen understanding of all the in's and outs of each of the classes and methods that make up this completely custom engine. At the same time, I'll be forced to learn about the concepts of what it takes to create a successful game engine and each of it's components.
This task of learning to develop a 3D game engine was never supposed to be fast, and now it's going to be even slower. However, the knowledge gained is so interesting and fun that I'm really excited to keep going.
I've already implemented a base engine with most of the core functionality:
camera and fps style cameras
Arbitrary amount of GameScreens (like pause, main, level 1 , level 2 , etc)
components that support 2d and 3d types.
the ability to control the loading, unloading, drawing , updating, moving etc of said components
Height Map generated terrain
3d models with textures attached to my 3d component actor type and controllable via vector and matrix math.
I've got a long way to go and in the coming weeks I'm sure the lessons learned here will all seem easy by comparison but for now we're out of the starting gates and off to the races. I'll post another short clip tonight to demonstrate the current state of the game engine.
Wednesday, February 04, 2009
Brand New Baby Steps!
This is just a quick post to show what I've been up to over the past week or so.
XNA Studio is Microsoft's Game Developers Kit for Independent Game Developers who are interested in Developing games for the Xbox and PC's running windows. . . and it ROCKS!!! Check it out by going here XNA Creators Club
I can't believe how good kids have it these days, this environment makes getting started in indie game dev really much less painful than it has been in the past.
Just a week, and a few tutorials in, and I've managed to create a basic extensible framework (i.e. game engine) and here's what I've done with it so far:
It's really not impressive at the moment I know, but the underlying tech really is. There's a 3D world with a controllable camera, a terrain generation system that works off of height-maps as well as a Physics system and a FPS like cannon that shoots physics based cubes from the players position!!!!
Like I said, this is mostly the product of following tutorials, but with the knowledge learned here I can start to expand into much more impressive areas of Game Development. I'm so excited to be heading down this road of Game Dev. It's a truly great time, one when there are never before seen amounts of resources to help the n00bs like me!
XNA Studio is Microsoft's Game Developers Kit for Independent Game Developers who are interested in Developing games for the Xbox and PC's running windows. . . and it ROCKS!!! Check it out by going here XNA Creators Club
I can't believe how good kids have it these days, this environment makes getting started in indie game dev really much less painful than it has been in the past.
Just a week, and a few tutorials in, and I've managed to create a basic extensible framework (i.e. game engine) and here's what I've done with it so far:
It's really not impressive at the moment I know, but the underlying tech really is. There's a 3D world with a controllable camera, a terrain generation system that works off of height-maps as well as a Physics system and a FPS like cannon that shoots physics based cubes from the players position!!!!
Like I said, this is mostly the product of following tutorials, but with the knowledge learned here I can start to expand into much more impressive areas of Game Development. I'm so excited to be heading down this road of Game Dev. It's a truly great time, one when there are never before seen amounts of resources to help the n00bs like me!
Thursday, January 29, 2009
Brand New Hobby!
Well to be more correct I've decided to dive back into Independent Game Development in my Free Time. This is something I've been doing since I was about 12 years old working on Commodore Vic 20's and later Apple IIg's but With the advent of new technologies the world of Independent Games is just crazy cool right now.
This couldn't come at a better time either because I was getting really complacent in my life and always feel better when I have a challenge!
So stay tuned for updates on my progress, the first game I'm going to make is going to utilize XNA for the xbox live community for two main reasons. First it's a great collection of libraries that help you get started really really quickly. 2. I need an excuse to by and Xbox and this is as good a one as I can think of. :)
Hurray for fun, art, story and code! :)
This couldn't come at a better time either because I was getting really complacent in my life and always feel better when I have a challenge!
So stay tuned for updates on my progress, the first game I'm going to make is going to utilize XNA for the xbox live community for two main reasons. First it's a great collection of libraries that help you get started really really quickly. 2. I need an excuse to by and Xbox and this is as good a one as I can think of. :)
Hurray for fun, art, story and code! :)
Subscribe to:
Posts (Atom)
