For some time now I have been aware of the power of perspective and the choice we have each minute to focus on something good or to focus on something bad. We have the choice because we are surrounded by so much good and so much bad. I don't normally blog on this topic, but this time I couldn't resist. Most examples I've read about or personally experienced on the optimistic perspective have a small or narrow context. But here is a person who has applied optimism to our global problems. Oh, and he mentions 3d printing! Well worth a watch!
Sunday, March 18, 2012
Monday, March 5, 2012
Dogbot: Improved by someone else!
This weekend I was browsing thingiverse and found that dkobozev recently extended my Dogbot to be printable on a makerbot! Not only this, but some of his other modifications eliminate many of the needed bolts! Check it out: http://www.thingiverse.com/thing:18045
Sunday, February 26, 2012
Blog Upgrade
A lot has changed since I started blogging in 2008. Back then I didn't want to tie myself too closely to a service or technology, so I created my own blog software knowing I would have the ability to export to something else in the future. With all the rich features of blogspot.com, it's time for me to upgrade. This is me upgrading....
Wednesday, February 8, 2012
Graphics: Art is Key
I started reading The Art Of Game Design this week. I'm reading it because I want to understand a little more about why we create and play games before starting my next graphics POC. I figure the best way to really grasp graphics programming is to create playable games.
Inspired by the book I decided to make my Green Army Man POC more immersive by breaking out my best recording equipment and recording the actual sounds my soft air gun makes when it is loaded and fired. Adding these sounds into the POC, as well as adding realistic impact sounds really made a difference! I also took it one step further and added a visible gun. Thanks to TIGG I didn't have to model my own. His model was much better than I am currently capable of, so I didn't hesitate in using it.
I took a video of me messing around with the POC to give you an idea of current state.
Also, if you have a desire to play around with it yourself I am including the executable, as well as the artifacts and dependencies. You can download it here. You'll need a Windows OS. I am not currently capable of compiling for Linux or Mac. Also, you will need DirectX, if you don't already have it.
I just got some feedback that tutorials on OGRE, Bullet, OpenAL, and Blender would be useful to a few people. If you would also find this valuable, leave a comment! What subjects are most interesting to you?
Inspired by the book I decided to make my Green Army Man POC more immersive by breaking out my best recording equipment and recording the actual sounds my soft air gun makes when it is loaded and fired. Adding these sounds into the POC, as well as adding realistic impact sounds really made a difference! I also took it one step further and added a visible gun. Thanks to TIGG I didn't have to model my own. His model was much better than I am currently capable of, so I didn't hesitate in using it.
I took a video of me messing around with the POC to give you an idea of current state.
Also, if you have a desire to play around with it yourself I am including the executable, as well as the artifacts and dependencies. You can download it here. You'll need a Windows OS. I am not currently capable of compiling for Linux or Mac. Also, you will need DirectX, if you don't already have it.
I just got some feedback that tutorials on OGRE, Bullet, OpenAL, and Blender would be useful to a few people. If you would also find this valuable, leave a comment! What subjects are most interesting to you?
Monday, January 16, 2012
Graphics: Green Army Men
I find it exponentially more difficult applying myself to my hobbies the further I go in my career. Sometimes months go by without me even realizing I haven't hobbied it up in a while. The holidays are even worse. But that's why they are hobbies, right? They are what you do when you have time. This weekend I had time and decided to pick up Graphics. I'm still not sure why, but when I asked myself on my Saturday morning what I was most excited about doing I thought of Graphics. ( For context, my other in-flight hobbies are my dogbot, a quad-copter, and a smaller mill for milling circuit boards. The dogbot and the quad-copter are currently dependent on the new mill. )
Graphics is still a huge intellectual challenge for me, so maybe that's why I was excited to work on it. I don't have enough deep intellectual challenges as of late and as a result I feel my brain turning to mush. For example, it hit me this weekend while coding a c++ Graphics application that the last time the concept of Polymorphism entered my head was 4 years ago! Shame.
I made a decision this weekend that I didn't enjoy making. I decided to throw out my Code::Blocks IDE with its MinGW compiler for Visual Studio Express. I prefer to use opensource, but I don't enjoy fighting for a whole day, just to get a new project to compile. The more I get into Graphics the more I am realizing that all the opensource graphics related projects are native to Visual Studio, so I gave in.
I am currently using OGRE for rendering, Blender for art, Bullet for physics, CEGUI for user interfaces, and OpenAL for audio. I pushed off Lua scripting until I refactor clean integration of renderer, art, UI, and audio.
I'm finally getting to the point where I'm proficient enough in Blender to start having fun. Below is an image of a green army man I made in Blender for what I consider the ultimate graphics engine proof of concept.

This POC is a simple game I wrote incorporating all of my engines and tools. Through keyboard input the player is able to navigate to any position and orientation, and shoot balls at green army men. When the ball is released it triggers a local sound. When the ball makes contact with a green army man an impact sound, originating at the relative location of the green army man in a 3d space, is triggered. All object interaction is handled through Bullet Physics. Real time physics can be toggled on and off, allowing for a cool time freeze effect. The player can still move around, but the objects that make up the scene are frozen in time. Here are a few more images.


Graphics is still a huge intellectual challenge for me, so maybe that's why I was excited to work on it. I don't have enough deep intellectual challenges as of late and as a result I feel my brain turning to mush. For example, it hit me this weekend while coding a c++ Graphics application that the last time the concept of Polymorphism entered my head was 4 years ago! Shame.
I made a decision this weekend that I didn't enjoy making. I decided to throw out my Code::Blocks IDE with its MinGW compiler for Visual Studio Express. I prefer to use opensource, but I don't enjoy fighting for a whole day, just to get a new project to compile. The more I get into Graphics the more I am realizing that all the opensource graphics related projects are native to Visual Studio, so I gave in.
I am currently using OGRE for rendering, Blender for art, Bullet for physics, CEGUI for user interfaces, and OpenAL for audio. I pushed off Lua scripting until I refactor clean integration of renderer, art, UI, and audio.
I'm finally getting to the point where I'm proficient enough in Blender to start having fun. Below is an image of a green army man I made in Blender for what I consider the ultimate graphics engine proof of concept.
This POC is a simple game I wrote incorporating all of my engines and tools. Through keyboard input the player is able to navigate to any position and orientation, and shoot balls at green army men. When the ball is released it triggers a local sound. When the ball makes contact with a green army man an impact sound, originating at the relative location of the green army man in a 3d space, is triggered. All object interaction is handled through Bullet Physics. Real time physics can be toggled on and off, allowing for a cool time freeze effect. The player can still move around, but the objects that make up the scene are frozen in time. Here are a few more images.
Sunday, August 14, 2011
Graphics: Materials
I'm still not sure what I want to do with my new found graphics hobby, but the previous brick wall proof of concept was a bit boring visually, so I decided to learn how to declare materials in OGRE. Basically, all you have to do is put your images in the [/media/materials/textures] directory and create a materials script in the [/media/materials/scripts] directory. There are a bunch of scripts already in that directory, so you have a lot of examples to work from. When watching the next video keep in mind that OGRE is a real time rendering engine, and yet I'm getting close to photo realism in real time!
The cool thing about materials in OGRE is that they are declared by scripts. This means that you don't need to recompile your application to change materials. Wouldn't it be cool if you could declare scene objects through scripts too? According to a buddy much better at this stuff than I am, that's what Lua is for. Lua is a scripting language that integrates effortlessly with C++, and is almost just as fast as compiled C++.
The latest games that are being developed, including my current inspiration (Overgrowth), use scripts for almost everything. The rendering engine and physics engines are in compiled C++ or C#, but the artificial intelligence, behavior, animation, etc. are all scripted, and apparently Lua is the best. Thus, my next challenge is to integrate Lua into my existing rendering and physics engines. I am having wayyy too much fun!
The cool thing about materials in OGRE is that they are declared by scripts. This means that you don't need to recompile your application to change materials. Wouldn't it be cool if you could declare scene objects through scripts too? According to a buddy much better at this stuff than I am, that's what Lua is for. Lua is a scripting language that integrates effortlessly with C++, and is almost just as fast as compiled C++.
The latest games that are being developed, including my current inspiration (Overgrowth), use scripts for almost everything. The rendering engine and physics engines are in compiled C++ or C#, but the artificial intelligence, behavior, animation, etc. are all scripted, and apparently Lua is the best. Thus, my next challenge is to integrate Lua into my existing rendering and physics engines. I am having wayyy too much fun!
Saturday, August 13, 2011
Graphics: Way too much progress!
I don't understand what makes me get excited about certain things. I don't understand why I lose interest or gain interest in things. However, I have learned to just accept it and to follow my gut. I'm not intentionally setting my DobBot project aside. I will finish it. But right now my gut is telling me that I need to poor myself into real time graphics.
I got a book on Blender called Blender for Dummies. It's actually quite good. I learned that the reason you right click to select objects in Blender (instead of left click in EVERY OTHER application!) is to get you to use the right and left mouse buttons equally. In theory this minimizes fatigue and keeps you modeling for longer. I guess it makes sense. Blender is going to be something I pick up over a longggg time. I know I'll be proficient eventually, but I'm not in a hurry.
I have decided to use Code::Blocks as my IDE for writing c++ code. OGRE, the rendering engine I have decided to use, is coming naturally, so I decided to also start picking up the Bullet Physics Library. After getting them to compile and play nicely together it was MUCH easier than I expected to create a wall of cubes and shoot a ball into them! Here's a screen capture:
Keep in mind that this is real time rendering and real time physics! I'm blown away!
I got a book on Blender called Blender for Dummies. It's actually quite good. I learned that the reason you right click to select objects in Blender (instead of left click in EVERY OTHER application!) is to get you to use the right and left mouse buttons equally. In theory this minimizes fatigue and keeps you modeling for longer. I guess it makes sense. Blender is going to be something I pick up over a longggg time. I know I'll be proficient eventually, but I'm not in a hurry.
I have decided to use Code::Blocks as my IDE for writing c++ code. OGRE, the rendering engine I have decided to use, is coming naturally, so I decided to also start picking up the Bullet Physics Library. After getting them to compile and play nicely together it was MUCH easier than I expected to create a wall of cubes and shoot a ball into them! Here's a screen capture:
Keep in mind that this is real time rendering and real time physics! I'm blown away!
Subscribe to:
Posts (Atom)