About this blog
Ramblings of programmyness, tech, and other crap.
Entries in this blog
Nothing much to say to day besides I am fighting with Gimp trying to make some art. I have done about 50 different attempts to make a orb :P. Fun fun fun I suck at art so bad wish me luck.
Edit: Here is the orb I like best so far what do you guys think.
As I promised I come with the Orbis overview. For me this is a very important step I learned in my years of trying to write games. The purpose of this style design doc is flexibility. It is a very agile approach as unit testing is. Basically it lays out a general overview of the game and nothing more. I find that it helps keep the mind focused and from wondering out of creative control. A lot of game developers/designers are very creative people and once the ideas start coming it is hard to stop them to a halt. By making a overview design doc it allows focus to the core of the game without a lot of detail, allowing to stay focused on one task at a time.. As the game starts to take shape so does the detail feature by feature. When all said and done you have a playable game that may just need some tweaking. So here is the general overview. Remember it does not need to contain everything just a general overview of things.
Orbis Design Document
Orbis is a arcade style shoot em up game. In many ways like Asteroids, however, it will have some twists. The overall goal of the game is to earn as many points as possible until all your lives are depleted. To help accomplish this goal there will be different types of power ups for you to obtain. The player will start with 3 lives and can obtain up to a maximum of 6 lives. The extra lives will be obtain through a power up which will randomly appear. When a player collides with a orb the player will lose a life. The player will be represented as a ship and the targets are Orbs of course. Each orb will be of a color and each color will contain a point value. Ie. Blue = 5, Green = 10, Yellow = 15, Orange = 20 and Red = 25. On a slightly more technical note there will be a opening splash screen containing a menu to select options from like single player, head to head, help, and exit. There will also be audio represented in game to give a nice energetic feeling to the fast paced gameplay.
Ok so I am getting ready to start on Orbis. I did not finish the RockRain Enhanced because it was simple enough of changes the rest of the way to learn by just reading the rest of the chapter so I am going to start on Orbis. The first task I have at hand is going to be laying out the simple design doc of the game. This will just contain a overview of the game and what it is suppose to do. From this is where the game will evolve. Once that is done I will know about the assets I will need such as the art and audio. Finally after that stuff is done I will start working on the game. Wish I could give more but I have yet to start the overview. I will write up the overview and post it here tomorrow sometime.
So this is a short entry but I did find a ultimate use for XNA. When I do move away from XNA to either C++/DX or C#/SlimDX I realized I don't really have to abandon XNA. Why you may ask well the features of XNA and the rapid development you can do with XNA make it ideal for prototyping. From gameplay to shaders and other game related algorithms and what not XNA can really make life easier in a game dev world. You can even use XNA to put together tools for the game in question rather easily. Yup I finally see the light.
A little off topic today. Turns out I really miss my Linux install. I have been using Linux for a very long time it turns out. I learned a real lot about computers in my time using Linux. I officially abandoned Linux a few months ago because all my hopes of seeing commercial quality games come to it were very far fetched. So I switched to vista just to play games. Then I discovered XNA and I kinda stuck to Vista for those very reasons. I am passionate about games and come to think of it since I started learning XNA I haven't really been playing games at all. My passion for gaming escalated when I was learning how to make them myself. I have always been a techie guy since I used my first computer in second grade. Turns out I really developed a strong passion not only for games but for computers in general. So I have 2 techie loves in my life Games and Linux sadly the two don't meld together very well. I would really love the day I can see them both intertwine.
Yea I possibly could change the future by starting my own game company and putting games out there for Linux however, It seems a lot harder then that. I know by experience the user base is there but it would take more then one small dev company to change the face of gaming. So here I am yet again at a cross roads use the OS I love to make games or use a decent OS to make games and play games. Oh the woes of choices.
There are a few reasons why Linux is not really a target platform for game companies. One simply is the massive amount of distros out there. Another one is no common package management system for all distros. Not to mention some support earlier versions of required libs for game dev then others. These are things that need to be solved to bring mainstream gaming to Linux.
I have thought of a possible solution not only to help the developers and save them money when wanting to cross release a game but also a way to help linux appeal to the game devs.
However, would it be worth trying to implement such a solution and hope it takes hold?
Would all the time and effort be worth it just to see it flop?
Would it be worth stopping my progress in XNA or game dev all together to try and solve a long standing problem?
In all honesty I really do not know.
Maybe some of you have the answer.
Well I am almost done with RockRain Enhanced. I am slightly disapointed with the XNA book I have specifically because of RockRain Enhanced. When entering the chapter I thought sweet I get to add features to the game. Boy was I wrong. Turns out the way they designed the original RockRain was bad because in RockRain Enhanced you have to re create the game from scratch while adding new features. What I noticed is that the original RockRain game was designed in a non extensible way. So when the Enhanced version decides to add a menu, a help screen, and a 2 player mode on top of the 1 player mode the only way to do so is overhaul the entire game from the ground up to implement a scene basis. The only thing that this taught me was to be careful on how I design my game in case I want to add features to it later on.
On another note I been doing some thinking about my first game I am going to make using what I learned in XNA. The game name is Orbis if you can remember from my last entry. The basis of the game is a 2d arcade style shooter. The concept of the game is to destroy the invading orbs. Each orb will be colored and worth a different amount of points. There is a catch however, to add some uniqueness and challenge you will be told what color orbs to shoot. If you shoot the wrong color orb you lose points by the amount of the orb you shoot. If you the player gets struck by a orb you also lose points in the amount of the orb that hits you. Granted this is just a general overview and game play may be subject to change if it is too frustrating hopefully it will be a blast.
So I finished the RockRain project in my book by adding audio and a score component. So it does not look really any different from the screenshot in my last post. Now I am moving onto my final 2D project in the book which enhances RockRain to make it feel more like a game. I will be skipping chapter 5 of the book which makes a xbox live version of RockRain because 1 I don't have a XBox 360 and 2 I really don't see the point in paying for a CC membership to use the XNA Networking Framework alone. If I had a 360 it would be a different story. I do plan on picking one up in the future but I don't know when precisely.
On another note once I finish RockRain Enhanced I will be starting my very first 2D project titled Orbis. More on this in my next and subsequent journal updates till it is complete.
BTW I am looking to spice up my journal a little bit anyone know how to go about doing that. And does anyone know how to delete a archive. In my archives there is a date that contains nothing lol.
So excited on my progress so far. Right now I am working on my first 2D game in XNA called RockRain. It comes from the book Beginning XNA 2.0 Game Programming From Novice to Professional; published by APress. The reason I am so excited is because firstly it is my first 2D game and secondly I solved 2 issues with it already on my own because I could not get the ship sprite to render and then second I was only getting part of the asteroid sprite rendering. So I looked in the code I wrote up and found the issues and fixed them. Yey. So here is a screenshot of the game because everyone loves screenshots.
A little late on the jump had other stuff running through my mind as per my last journal entry. I am so Psyched up about this game I have been waiting for it for 8 years. The ideas that Blizzard can put into game is just pure genious. From the looks of it this will be another genra statement in the action rpg relm. Once again blizz will set the standard. For one the new boss multiplayer loot system is simple but very new. The fact that each person taking place in the kill gets his own loot generated is great. Also, new new health loot orbs allowing the front line to heal the back line is a great concept as well. Lets hope for the best to see it soon in action. Hurry Blizzard I need this game.
On another note my new book on xna is much better then my last one. The previous books was Professional XNA Game Programming for XNA2.0 published by wrox. Horrible book just plain horrid. The fact that the auther changes a key part of the code and fails to tell you hey you got to modify this too is just horrible style of writing. Now with my new book Beginning XNA 2.0 Game Programming (from novice to professional) is just great. It really takes the time to explain everything before making your first 2d game and even 3d game. It starts with game dev concepts that all game developers should know. Then it explains a bit about the way xna works. Next it walks you through the steps of rendering a sprite and some simple collision detection, input and sound. Once that is done you make your first 2d game Rock Rain. I am on the part where I get to make the 2d game and I already understand alot more about game dev than I have ever did. Once I get through that section I think I am going to take a break from the book and make some 2d games to make sure I understand the concepts better. Then I will move to the 3d sections of the book.
Why could their not be a book written this good for C++ and OpenGL. If it was the case I would have been making games a long time ago instead of stupid little tech demos of rendering triangles and cubes.
If you are looking to learn XNA get this book it will really help out.
The Xna Programming Professional book by wrox is just horrible. The author fails to mention to the reader when important changes to the source are nessesary. I spent 20 minutes today hacking my way through his sample code trying to find the piece of code that was missing to get the damn pong menu to show up. Worst book I have bought in years. So down to the books store for me in a few hours to try and find a different book to learn from.
In my last journal entry I mentioned I was going to give XNA a shot. So I did and I started learning XNA. As I am going through the book XNA feels kind of clunky and overly simplified. Not sure if it is the authors doing or the frameworks doing atm. But right now all I can say is I was more comfortable in C++ and OpenGL a few years ago. C++ and OpenGL made more sence to me I guess. This comes as a shocker because I do like C# as a whole. Maybe it is because I have used C++ longer then C# as it was one of my first languages I learned but have not yet totally mastered even after 7+ years of using it. Not sure what to do atm.
[Warning long Entry]
Hello GDNet. I know I am known on this site as the person who can never make up his mind. There are many reasons for this but the main one was previous microsoft anti sentiments. I use to have a rep over the base 1000 on this site for helping numerous people out on their path to game development. Sadly one thing I did that I will always regret bringing to gamedev was expressing my opinion about windows vista based on a /dot article without ever having tried out the operating system myself. The GDNet community was always here to try and help clear up my confusion why would I even do such a thing.
I must say GDNet tought me the bigest lession of my life. Don't express false information based on something you haven't experienced yourself. I am now 22 years old woot and after much reflection I feel I have matured much more thanks to GDNet and I can now return with all microsoft anti sentiments gone.
Why are they gone well when I built my new PC I decided to try it out for myself and I must say it is the best operating system I have ever used distpite some small annoyances. With that said I decided to go back and re-evaluate my decisions on what language to use of the many I know for game development.
I sat back and said what is my favorite language to program in. The first thing that came to my mind was C#. Very elegant and very powerful. So there were a few options for me to choose from SDL.Net/Tao, SlimDX, and of course XNA.
So first thing I decided was should I go cross platform. The answer was a big No. One thing I did realize while I was away was that Linux is going to go nowhere with its additude about everything not open source. Open source is a great concept to help people learn and get involved but it goes horibly wrong when it is a religion. So with THE LESSON I learned from my big mistake here on gamedev I said I don't know enough about XNA to make a decision here. I have heard mixed opinions everywhere and alot of which are negative in nature. I decided to go and find out from the people that know the capabilities of XNA best Microsoft.
So I went to the creators website and asked my questions and had a solid discussion with a XNA MVP, and even 2 XNA users and The ZMan himself stepped in. I learned that XNA is indeed very powerful and not limited really whatsoever besides being bound to DX9c. Yes there are some limitations to the XBOX but the only real major one is no 3rd party dlls allowed with a few exceptions for instance like the XSI dll. I was greated with very open arms and all my questions were answered seriously. So I chose XNA. From the information I gathered without too much detail I learned it is very powerful and quicker to develop with. C++ has always had my head spining with bugs.
On another note I did some thought on why I never really finished any projects in general. Turns out that I would have one good idea for a game and then I would just snowball it out of control till it became overwhelming. I hear this is a common mistake especially among creative people. With that said I decided to get some help. I learned about Agile development and I am going to use this aproach with the guide of my XNA book and it looks like it will really keep me on track.
Once again I greatly apologize to all of GDNet for my major misgiving to the community and just want to let you know I am back on track and ready to earn my rep back.
No game design update for today however, I went out on the first day of trout and caught me a fish of a lifetime. I caught a 19 inch palamino trout. These fish are basically concidered a albino rainbow trout. The reason it is a fish of a life time is because they are notorious for not wanting to bite. Well this baby will be on my wall now for sure.
I do have a project in the works. Can't really say too much about it atm however, it is going to be using C# and XNA. I really hope this project will be once of the first non simple games i have made. Grantid the game is not overly complex however, this is a nice step for me from pong clones, tic tac toe clones, connect four clones, and other simple games I have done in the past. Hopefully I made the correct choice in lang and api for writing this nifty 3d game. Originally I was going to use java and JOGL till a friend of mine said dude use XNA your game would be perfect for it. So here it goes. I will keep you updated.
Ok after much thought about what I want to do game development wise my final decision is to use Java and JOGL. I made this decision for a few reasons.
1. Ease of cross platform distrobution via Web start.
2. I am extreamily more fluent in Java then any other language basically because it was one of my first languages and I studied it in college.
3. I already have books for reference on Java and OpenGL incase I need to look something up.
It is amazing what contemplation can do especially with a goal in mind.
Currently I am pondering just learning DX right off the bat or to start out with SDL do some 2d and then jump to DX. Right now it seems SDL and 2d might be a good start off.
After much contemplation and dispite what I said on the forums just recently I made my decision on my path. I am going to be using DX and C++ for my learning game dev endeavor. Before you say EWE C++ I have been using C++ for about 6 years total now. Grantid there is always something to learn with C++ and that is exactly why I chose it. I love to learn something new every time I stumble on a problem I am having while coding. With that said i will be picking up this book.
Back to GDNet+ and journal up and running again. Wish me luck on my path to game development. It appears I have archives but none of the post are there is there a way to remove that?
Rolling back on the design a little bit for the project. Nitrogen3D will still be a 3D engine. However, we are debating on the language to use. We are in a toss up between C++ and C#. When we decide you will hear.
Well it is about that time which I should announce my current project. Currently a friend and I are embarking on our 3D engine project, which we have been planning on doing for years. Nitrogen3D is a 3D rendering engine which is designed around ease of use and performance. I know this entry is flame bait for people to try to talk us out of the project but just don't waist your time on it. It is just the two of us and this is something we are prepaired for. We will be taking things one step at a time so to say. Piece by piece the engine will slowly come together.
As I said before the main purpose of the engine is to be very easy to use and performant at the same time. We feel that if someone is to use a engine they should be able to use it without having to read endless tutorials and documentations on the engine, and still get the performance that they would expect. (Depending on their hardware of course)
The engine is being written in C++ and the core rendering API currently is confined to OpenGL. However, there are later plans to add DirectX Support. Currently the engine will be only for windows however, linux support is being concidered.
The engine is designed for easy extensibility throughout all the code so that when we do decide to add for instance directx support it will not harm the stability in the engine.
That is all! The engine is in very early stages of development so don't get your hopes up yet.
You know I really really really hate Microsoft sometimes. I am sitting there for hours seeing if there is anything wrong with project settings and code. After all I was not getting a exe file. Well it turns out microsoft puts the exe file in a different directory from the object code generated. So instead of being in the debug directory of the source it turns out the exe is in the debug directory off of the solution file. What idiots. Problem solved tho and everything in my dll worked as expected. That is a huge step twards my advancement in C++. I have been using the language for around 4 years now and never touched DLL's other than linking to them. I am so proud my first written DLL works like a charm.
Well a friend and I are in the mist of starting a new project for the summer and maybe many summers after. So in the process I am learning how to write DLL's with C++. Right now I am sticking to learning static linked DLL's because hopefully we will need nothing other than that. If the time arises tho we will make it Dynamically Linked. Currently in the process of learning I have run across a problem. Every thing is compiling fine with the dll and test app. However with the test app the exe is never getting created. I am in the process of figuring out why this is happening. But I am not quite shure. Maybe it is a issue with the lib being linked. However I don't think this is the case because The Microsoft compiler should complain about a issue like that. Darn you Visual C++ 2005 express edition.