Site Sections

Tuesday, August 12, 2008

Update

Hello world...

Ah the great line of any good first application in a new language or with a new API. I have written you so many times I can not even begin to count. The truth is though is that you are boring, so much in fact that I despise your presence. I want more, I want to create and to develop something beautiful and imaginative.

Thus leads me here, an update on my progress into the world of NDS homebrew and my side scroller game. Actually, progress is going well. I have the basics of an engine now and I will be working on incorporating my own art soon (hopefully this weekend ill get something visible I can post screen shots of). The PALib library is very versatile and easy to work with and I believe it will make a game like mine extremely easy to develop. More updates on this soon.

As far as school goes, I am dropping out of grad school for sure. It really has been a waste of my time. The classes for an MBA are completely useless unless you have great plans of being a manager and I don't think I could handle not working with code every day. I am not a bean counter, bottom line... So anyways, this is my last week of class (lots of busy work - including a take home final exam that weighs about 10 lbs.). I am hoping that finishing off the class and going back to a normal life will give me more time to work on my game. We will see...

Thats all for now, check back soon for more info. Oh I almost forgot, I have put together a little puzzle game for the NDS, it is almost done, I will try to put that up tomorrow.

Thursday, August 7, 2008

Download - NDS : Helicopter 1.0

Retro gaming time again here at DKGameStudios. This time with another classic remake, Helicopter. Guide your heli through the treacherous cavern full of ominous green rocks... why are the rock always green???? You know every version of this game I have ever seen, the rocks are green. Well, got to stick with tradition on this one as it made collision detection super easy.

Here is a screenshot:
Features:
            • Includes original style game, press A to make your Helicopter climb, release to let gravity do its thing.
            • If you hit a wall, floor or ceiling, it's lights out for you...
This baby took me about 4-5 hrs of actual coding over a course of a week and a half. It was actually developed at a forum request over at NDSHomebrew. So SolidusRegime, I hope you see this and I hope you still care cause its all for you man! Enjoy...

Get the download here

On a side note, I have been working on some new stuff using PALib so don't expect to see anymore crappy raster ports of old games unless I am really bored, or you're really nice and ask for one specifically. Either case, it probably won't be a raster port unless it would take me less time.

I am however still considering adding some fatlib stuff to this so as to save highscores after power down. Ill keep you all posted.

Tuesday, July 29, 2008

Download - NDS : Snake 1.0

The time has come... legend has it, long ago a giant mythical snake descended from the heavens, charged by the gods with a mission to seek out the holy jewels and devourer them. In return the snake would be allowed admittance into Eden...

Ok, maybe not, but I am releasing my first version of snake for the Nintendo DS. To run it you will need a slot 1 flash card (I have been using the CycloDS) or an emulator such as Neon. You can google NDS emulators and you should be able to find them somewhere.

Here is a screen shot:
Features:
            • Two modes of play
              • Traditional (collect jewels to gain speed, length, score)
              • Time Challenge (start with a minute, collecting jewels adds time to the clock, survive as long as you can)
            • Pause is functional by hitting start button
            • Swap screens by hitting the R button
            • 4 types of jewels to collect, each modifying either your length or speed.

This game was developed in 3 days, approximately 14 hours of development strictly in Frame Buffer mode. I have just started playing with the DevKitPro API for the DS and I figured I would get some practice doing some low level drawing. All suggestions are welcome, feel free to comment.

You can download the .nds or .ds.gba files here. The only card tested on is the CycloDS. If someone needs a different version, go ahead and let me know how to compile for you and I will add it here.

Game Review - Song Summoner : IPod : SquareEnix

I know that I just reviewed a SquareEnix game yesterday on this site, but I ran across Song Summoner for the IPod that has just recently been released on ITunes. I must say that SquareEnix is really trying to expand their market. I have not actually played this title yet (as my IPod is broke... hard drive crash).

I was a bit sad to see though the limited selection of IPods that this title works with. Apparently a click wheel model is required, IPod nano w/video, IPod classic, and 5th gen IPods. Apparently the touch isn't supported.

The game play reminds me of monster rancher as the premise is to use external media (in this case songs from your ITunes library) to create units called "Tune Troopers" to fight for you in a very FFTactics like system. Listening to your music outside of the game also levels up your units, presumably using the listening count feature on the ITunes/IPod players.

It's really a novel idea and I hope that it is a good game and does well for SquareEnix. I would love to see some other major developers do likewise. Simple games that are sold for cheap using hand held devices functionality is really something that we have not seen much of yet. Most games for hand held are between 40-50 dollars. Which, understandably is a much more desired market, also require end users to purchase specific devices used solely for gaming.

I think that with systems like the IPod and the Zune, there is a much larger market for developers to target, as these devices are purchased by anyone for their music and video playback capabilities and not only by hardcore gamers. Also, at 4.99 from the ITunes store, this is something that I think many people may buy just because it is cheap and really one of the only larger titles out there (other than your traditional Sudoku/Bejeweled style puzzle games).

Monday, July 28, 2008

Game Review - The World Ends With You : NDS : SquareEnix

Review time...

I've been playing The World Ends With You by SquareEnix as of late. It's a beautiful game and very well implemented for a new IP from a company notorious for re-hashing game play concepts. I was very excited when I first saw this one come out and have recently had a chance to pick it up. I was not disappointed.

At first, I was kind of expecting an emo version of kingdom hearts. Yet, when I first started playing, I had to double check to make sure I wasn't playing a new version of Jet Grind Radio. Although expected from SquareEnix, the game is down right beautiful as far as the art is concerned, and as expected, the music is brilliant. However, music in this game takes a much different approach than the standard SqaureEnix symphonic scores. Very hip, I can even stand to let the sound play at higher than a whisper on my DS, which is probably a first for me on that console.

Even as pretty as it is, the thing that surprised me the most was the innovative game play. The game is really quite unique to the SquareEnix library, and the effective use of both screens makes for quite an exciting fast pace RPG/Adventure game.

The only thing that I would have to say bad about this title is, be prepared to read a lot at the beginning. It does take a while to get into the actual game play of the title, there is a bit of convoluted back story they try to throw at you before you are allowed to fight things. But, it works for this title as the game mechanics are quite complex and the beginning is a fairly painless tutorial that may take a while but at least exposes you to mechanics one at a time.

Bravo SquareEnix, you have won me over yet again as a fanboy. I know we have had our differences in the past (FF7 Crisis Core), but you win. Keep making games like this and I will be devoted for life. Overall rating 9.5 out of 10.

Stance on Homebrew

For a while now I have been debating on how to approach the issue of homebrew. For many companies such as Nintendo and Sony, the concept of homebrew has been a black spot that has been fought viciously and lost by the worlds largest console developers. The lack of embrace and down right rejection to nearly a legal standpoint has discouraged me in my pursuit of implementation of homebrew applications for any console that I own.

It is strange how these companies, without accepting homebrew are competing with Microsoft, whom, although expensive, have allowed users to develop for their console through a supported API designed with the hobbiest in mind. Although, I have stated my opinion of the XNA platform in the past, decent as it is, lacks some more complex functionality without extensive rework. It is useful for smaller scale projects. I am of the opinion that if Microsoft were to make a hand held system that ran XNA based development projects and supported the community who uses the development platform, homebrew would have a much better place in the legal hand held market.

However, the companies that do have their hand helds, restrict the developement of homebrew so much that it makes it almost impossible to develop for the systems unless you are a licensed developer and have proven yourself in the industry as a mult-title releaser. How does one go about proving this without the ability to develop for the system in the first place? How does one go about making demo games to show off to companies who would potentially hire developers if they do not have a platform to build these demos on?

Fortunately, there are dedicated groups out there who have developed homebrew APIs for the leading hand held consoles. Buggy as they may be and questionably legal, they do allow for developers to build applications for release, and although homebrew communities have been notorious for piracy, they have also shown an avenue to developing applications to fill a niche that large scale developers have found non-cost effective to develop. I don't believe in stealing from programmers, I am one myself, but I do believe in open source, and I do believe in open platforms. So homebrewers out there, keep at it. The PC community has already embraced this ideal, so should console developers. The only way to show them that they should is to show them how impressive it can be.

( Hint Hint... look for some homebrew apps for the DS here VERY VERY soon ;) )

Thursday, July 17, 2008

Update - New Project

Its been a while since I posted last time, lots have happened, and not so much at the same time. I got a PS3 (the major reason I haven't posted). This has resulted in me not working on my programming so much. I also started a new class for track B, this is an excel class... BORING!

Linear Programming is the main topic for the excel course, which I am extremely good at. I feel like it is a waste of my time. Oh well, work is paying for it (hopefully). Finals went well last semester, I got an AB (3.5 GPA), not bad for accounting.

I also started a new project. I would like to make a side-scrolling engine in Direct X. I have decided that as a single person, a 3D editor is quite a bit out of my feasable scope, unless I quit my job, which is not going to happen unless I can find a job in the Game Industry.

My game? An East meets West, ninja vs. cowboy (at least for the first level ;) ). Ill post some more stuff on this later, such as some sample art and a screen shot once I get the engine up and running. See you soon!

Sunday, June 15, 2008

Some Random Stuff

I figured I should post some of the stuff that has been kicking around my hard drive for the past couple of months. Just a few things I have worked on...


This is an image that I created in Maya 8.5, it was going to be a robot character for a game I was designing in XNA but I dropped this project. He is kinda cool looking though. Maybe Ill use the concept in the future.








The Dragon here is an experiment in shading and cell painting in Photoshop. The dragon outline is from a book called Fantasy Clip Art from Andrews McMeel Publishing. The image was drawn by the books author Kevin Crossley. I did the coloring and shading following some of the techniques described in the book. Its not bad for a first attempt. This was done probably 8 months ago. I have gotten a bit better with Photoshop since and I think I would do better if i gave it another crack. I do however like how I did the shading on this image. It gives it more of a hand shaded effect.

Thats all I have found sitting around worth posting at the moment. I know there is more stuff sitting around here that I would want to post up here. Perhaps there will be a "Some Random Stuff 2" post in the near future.

Friday, June 6, 2008

Timers and Direct X

Does anyone know how to get timers to work with Direct X? I have been having one heck of a time getting it to work. Strangest thing:

This is what I got so far... I have a Non-Modal MFC dialog, this is my main dialog. It is using Direct X to draw to the CWnd object of the dialog to control my Editor View. It also launches another Non-Modal MFC dialog that is my properties window. This has nested dialogs associated with tabs on an MFC Tab Control.

Now, I want some CEdit controls attached to these custom dialogs to update every x number of milliseconds. To do this I was going to use a timer. However, it seems that I am doing something wrong. I set up the ON_WM_TIMER handler and create the void OnTimer(UINT_PTR nIDValue) function to handle my timer event. I called SetTimer(1, 100, NULL) to set the timer in the OnInit() function and call it again in my OnTimer function. However, it doesn't seem to ever call the OnTimer function. I can get this to work in a new project on a single dialog. I have also tried to get this to work on all the other dialog classes in the project to no avail.

Is there a conflict with timers and the Direct X loop? Please feel free to comment on this if you think you might know what the problem is... I will love you forever if you can help :)

Friday, May 30, 2008

Moving Time Again

I will be moving this weekend (woo hoo...). I hate moving, it reminds me how much stuff I have. About how much stuff I don't need, and about all the stuff I don't have that would make moving my stuff I don't need easier. It's not like I am moving that far though, I am moving from Houghton, MI. to Hancock, MI. and for anyone who doesn't know where they are, they are across a small body of water from each other. My work actually is right between the two next to the bridge.

The best part about moving is that I will not have internet right away (note the sarcasm). My roommate and I have not yet decided what type of internet to get, DSL or Cable. Neither of us want television since we watch most of our stuff online (I watch a lot of anime and he watches comedy sitcoms which most of air on the net for free). Also, the great thing about moving this weekend is that my car is overheating again. It is going to be a joy trying to get to my new house without my car dieing on me.

Needless to say, my development is going to come to a crawl with my internet down. No looking up good reference material or sdk documentation. Oh well, I'll just have to borrow the interweb from friends on my laptop in the meantime. My girlfriends new place has internet so I suppose I'll have to work there.

Tuesday, May 20, 2008

Coolest find ever... at least as far as fonts go

Cruiz'n around the net today, looking for a nice font for my scoring system and I ran across the best free font site I have ever seen.

Its here : 1001 Free Fonts

Check it out... most are free for personal and commercial use. Expect to see one I selected in my IceJeweled game very soon.

Sunday, May 18, 2008

IceJeweled - Screenshots

Hi all, I figured I would post some screenshots of the IceJeweled game in its current state. It's still rough and no where near completion. Much of the game mechanics are there, but polish and scoring are coming. When it is done, you better believe there will be a download link.

Here is a shot of the game in its normal mode: cursor unselected, just moving around.

Here is a shot after a row has been made, notice the refraction shader at work...

Finally, the result of an exploding bomb... if only my artwork was better.

Hopefully you like it so far, I am always open to suggestions.

Vocabulary Trainer - Download

Its download time!!!

I have made a little app for vocabulary training. I have been trying to teach myself Japanese the last month or so and I made this to help quiz myself on my Japanese Vocabulary.

Download location is here: Vocabulary Trainer

Go ahead and play with it. You can make your own vocab lists (either for different languages, or for other vocabulary, either course topics, programming vocabulary, whatever). It is a very simple format, just a text file with the word to display at the top, ie: Japanese word. Then on the next line, its answer equivalent. Continue adding entries like this to make a list.

Here is a screen shot of the applet.

Should you build your own engine??

Surfing around this morning and ran across this article from Gamasutra:

Build, Don't Buy Engines

It is interesting to see a large scale developer talk about building your own engines vs. using the pre-packaged engines that everyone in the industry talks about. I think that there is a real truth about what he is saying though. Look at it this way, either you could be learning someone else's technology, which will allow you to be more diverse in the industry, as you can move around in the industry and not have to worry as much about retraining. Also, as a company owner, you can hire those with backgrounds in the common engine tools and save money this way. However, it is true that if you use someone else's technology, you are going to pay for it. Yet, if you spend the time to develop your own engine, this comes with two major benefits: one, its totally customizable however you see fit, allowing you to create the type of game that you want to create. You are not limited to the same FPS shooters that everyone else is building. And two, it's your technology, you can license it yourself and make the same kind of money that companies like Epic and Valve are making for their technology, assuming it is useful for others in the industry.

I am curious what others think about this so feel free to comment and give your two cents.

Thursday, May 15, 2008

Week #1 End

Ah... First week of grad school finished, only... (counts to himself under his breath) too many left. At least Accounting will be over in 6 weeks.

Moving to a new department of GE Aviation soon temporarily. More than likely till the end of summer. Unfortunately I will be working in Java again. I had really thought I had finished with that in college. Its too bad really, I really can use the C++ experience more and in all actuality I don't even think I remember Java all that well anymore. I am confident that I will be able to pick it up again very quickly but that is not the point.

Fortunately, I will be working with a SQL database, something I have had little experience with as of yet in my professional career. I can't imagine it will be difficult though, and who knows, perhaps it will help me understand large scale MMO game database management.

So, here is to next week... Exam number 1 of Accounting, and the rest of my summer. Woo hoo...

And Life Goes On...

I did it, I broke down and got Visual Studios 2008 professional edition. I can continue now with my original plan for my editor.

A thing of note: Using a dialog in an application of its own - easy. Using dialogs in combination, when you want more than one dialog on the screen and active at the same time - eh... not so easy. The key is to use Modaless dialog boxes (those created with the .Create(IID, hwnd) function instead of the DoModal() function), be sure to keep a reference to these dialog boxes outside of the InitInstance() funciton of your main app class otherwise, when the function ends, so will the app. Then map the OnClose message handler to the window (or windows) that you want to be the "Main Window" of the application. This handler should then post the PostQuitMessage() function to kill the application in the even that the window is closed.

I ran into this issue because I have two dialogs, an editor window, and a properties window (which seems to stay on top of the editor window all the time - this is a different issue though), and these windows, when closed do not by default kill the application when set up in a Modal fashion. So now I have my editor set up as my "Main Window" (by keeping a reference outside of the InitInstance() function and setting the m_pMainWnd pointer equal to my Editor dialog, and when ever this window is closed, the Editor posts the quit message so the app will close.

I didn't really want to use a Window Frame here or an MDI style application as I want my editor to have a Gimp like feel, with all the tools/properties windows being a movable separate entity from the viewport I am working on.

As such as this post is so well entitled, Life does go on... and so does development.

Monday, May 12, 2008

Its a Little Big Planet

Taking a break from studying and thought I would share a little link I encountered.

I had heard of Little Big Planet at the GDC last year. There was a presentation with actual game play footage and I must say that I was amazed. I found this trailer today and thought that they have definitely improved on the initial content.

Little Big Planet Trailer

I am still not sure what the "Game" in Little Big Planet is, but I like the concept. The question is: How long will you be able to play it before getting bored of creating levels over and over again? I think it will be cool to share your levels and such online (the functionality which was already demonstrated at the GDC). Yet, without any real storyline concept/single player mode, it might get old very quickly. I personally play many games for their storyline. I have never been much of a counterstrike fan, and those who know me know that I despise WOW on the principle that it consumes your soul.

Now, if they place mini-game mechanisms in the editor that will allow players to create their own level objectives, scoring systems and the such, then this I could see becoming something of interests to wannabe game developers with little or no programming knowledge. As far as I can tell the game does not have these aspects though and is giving me the impression of a very interactive paint application.

I guess I will just have to wait to see.

Sunday, May 11, 2008

Devistation

Sometimes life isn't fair...

Let me explain: I have been working on my editor in unmanaged Direct X, in Visual Studios 2008 Express Edition. I have it displaying as I want it to. Now I want to create a separate window that shows parameters of selected objects in the Editor.

Now there are two problems:
  1. Windows Forms are managed, and they can not be mixed with unmanaged code *Easily*.
  2. Standard windows controls (MFC) can not be edited in the express edition of Visual Studios.
Now I have three options:
  1. Spring the cash for the Professional edition of visual studios 2008, port my project over.
  2. Start my project over again in Managed Direct X.
  3. Do some funky file mapped memory stuff and create the parameter window as a separate project and pass messages between the two applications.
This one is going to take me a while to figure out...

Back To School

Oh the joys of summer... Nice weather, pretty flowers, clean air, and the first Grad class towards my MBA...

Ok, everything in that list is good, except the last one. I am excited to be pursuing my MBA as I would really love to run my own software development company some day (preferably in game development - obviously), but in truth I am not really looking forward to going to class 4 days a week on top of working 40 hours a week. Not to mention it is a class on accounting.

Obviously there is nothing wrong with accounting (or business classes in general) in fact, I think that it will give me an opportunity to work in a more interesting field, as I should be able to do Software Architecture for large scale projects. For this type of work you need to be able to manage a team of engineers in performing smaller parts of the big picture. No one creates large scale applications on their own these days, its all done using team management. Software needs to be designed with this in mind, it is the basis of OOP (Object Oriented Programming). Also, with the dream of owning and running your own software development firm, it might be a good idea to know how to do some accounting.

However, this does not leave me much time for socializing, traveling (which I have been trying to plan this summer without much luck), video game playing (which I have a few on my list that I would like to play), or most importantly, work on my level editor, let alone the other projects that I have started. Also it is important to get a good nights rest (if I get the opportunity).

Bottom line... to succeed in life, you can never sleep.

Friday, May 9, 2008

Joys of Life

So I have an amusing story to share. Last night, I was working on my Direct X Editor, trying to get the initial polygons on the screen to test my viewport/learn a little about vertex buffers in direct x. Needless to say I learned something about Vertex Buffers.

So the plan was to create a grid of verticies for the purpose of creating a reference grid on the xz plane about the y axis. Simple enough right? I thought so. Anyways, I get my verticies set up and I create my Vertex Buffer (so I thought) and set up the function to do the drawing. Nothing appears...

Well shoot! What did I do wrong? Am I drawing the Polys in the wrong direction (Counter clock wise instead of clock wise). So I try a simple test, I rotate the grid using an x transformation of 180 degrees. Still nothing.

Hmmm... I think to myself, that is strange. Time for some debugging. So I step through my vertex declaration and convince myself that my location of verticies are correct. I check my viewport declaration, its correct. And now I am frustrated.

I get out some sample code, add it to the project, and give it a try. Sure enough, the sample code appears on the screen as two annoying little spinning squares right where my grid is suppose to be. So there is obviously something wrong with my code. I compare and compare to no avail. I try to insert my vertex buffer into the sample drawing code, no luck. I even try to redefine my vertex points exactly as the sample code, no luck. Now I am really confused.

Finally! I figured it out, apparently when you create the vertex buffer. Normally you have to create a void pointer object for use in referencing the memory that the vertex buffer will use to hold our vertex information. Then we use this pointer to lock the vertex buffer, copy the memory and unlock the vertex buffer and all is good.

Well... let me tell you, sometimes life has a way of playing small games with your head.
Frustratingly enough, the memcpy function used in this procedure doesn't care much what type of pointer you place in its parameters. We want this definition: memcpy(void*, Verts, sizeof(Verts)); where Verts is the array of vertex structs that we want to put in the buffer. Yet it turns out that I was using this: memcpy(void*, VertexBufferObject, sizeof(Verts));

What this means, I really do not have a clue, but once I fixed the memcpy, life was good again, except for the mess I made in my editor code trying to debug... Oh well.

Wednesday, May 7, 2008

Switching To Direct X

I have finally decided to drop XNA. I do not feel there is the control and access, or support from the industry as a whole, that I am looking for in a game development API. Although I love C# as a language and I do hate so the naming conventions of objects in Direct X, I think that learning Direct 3D will be more applicable in all industries and be much more respected in the game industry when I plan on switching over.

This site as a result will shift its direction towards Direct X. I am still working on some minor stuff that I have already started in XNA: such as the IceJeweled game, which should be complete in the next month or so. Finding time to work on it has been difficult as of late so once it is finished I will post a link to the download here.

As for the rest of the stuff, I will be converting most of it over to Direct 3D, and adding additional toolsets, some of which may end up here. My plan is to start developing a 3D level editor. I have been working with .x file formats as of late and it seems like it might be easy to develop an editor based on loaded mesh models (more on this to come).

Monday, May 5, 2008

Something I Would Like To See In Visual Studios

So today I was informed as I was working in National Insturments Lab Windows, that there was this nifty little button at the bottom of each editing window. It kinda looks like a calendar, turns out however that it is designed to change your highlighting mode.

What does that mean, you ask???

Well, what it does is change how highlighting/selecting of text behaves in the editor. One option is your standard highlighting, word wrap around the lines. Another option allows you to highlight entire rows based on your vertical drag, useful for deleting whole lines of code quickly or for grabbing text lines to tab when formatting code.

The final, and I think is the coolest, is the box selection. This allows you to grab any box of code, no line wrapping, and do as you will with it, copy, paste, even pressing tab has the effect you think it would, tabbing the highlighted code over 4 spaces! Its genius, very useful for lining up comment blocks on the right side of code, moving comment blocks without having to disturb your code.

Microsoft "borrows" most of their ideas, I think they should borrow this one.

Saturday, May 3, 2008

Final Fantasy: Crisis Core - Definitely A Crisis

Crisis Core came out finally last month. I was really excited of course being the Square Enix fan boy that I am. 10 years of waiting for another Final Fantasy 7 game that would promise to live up to the original without being a remake. I mean Dirge of Cerberus was alright, but not what I was hoping for. Square has never made first person/third person shooters of note and it was no exception. The story was decent but it felt more a movie than a game. (Mostly a work of having a lot of movie assets that didn't want to go to waste from Advent Children)

I was very disappointed with the Crisis Core though, and it wasn't a lack of story (actually that was part of it), but the repetitiveness and overall lack of content that the game provided. I feel like I am doing the same thing for hours on end, and thats because I am. I feel the ability to avoid 90% of battles is a blessing instead of a cheap bug. Missions are highly predictable because they are all the same.

For the most part, the story of Crisis Core is already known to the player, if they have ever played FF7, and why you would pick up Crisis Core if you haven't played FF7 I don't know; as you would find the story choppy and full of missing information that is implied from the first game. Thus, you would think that mechanics and game play would be top priority to sell the game since you are not really selling a "New Story".

Now for the most part the game is not "Terrible", it does have some beautifully rendered movie sequences, but these are few and far between, and the DMV system I find very annoying when I have no control over its movement. I think I would rather have an experience system so I can know how much longer before I level up. The Materia system isn't, dare I say, Bad? It is quite customizable, but with limited options, I feel as if I am simply buying experience and ability. This is not to mention that you basically need the high end materia later on in the missions to even survive the many one hit deaths that the enemies do to make the game "challenging".

I think that if more time was put into the missions and more mechanics were added to give them a bit of individuality, it would have made the game much better. I hate to say it though, I think this is the first time I have been very disappointed in a Final Fantasy game... and sadly it might be another 10 years before we see any more light shed on this great story.
Overall rating 6/10

Monday, April 14, 2008

Book Review - 3D Math Primer for Graphics and Game Dev

In this edition of Book Review... ahem... sorry for the intro: For real though, "3D Math Primer for Graphics and Game Development" by Fletcher Dunn and Ian Parberry is quite a good buy. I have been working through the examples and as a Math Minor that hasn't done much Vector math in a few years, this is a great refresher course.

The first couple of chapters on coordinate systems is great for anyone who has never passed junior high algebra, it is a little light on the content but the examples are easy to understand. Don't expect any sort of Real analysis involved, purely discrete math here. Later chapters go into Vector based math (Dot product, cross product... etc) and actually gives some real world examples of when they might be handy to use in graphics programming.

Continuing from there, source code is provided for a basic vector class (not that you will really need this as most APIs provide an optimized version for your use automatically, but it never hurts to have an understanding of what the API is actually doing under the hood). Also there is quite a bit of information on Matrix math, linear algebra definitions for the math geeks out there as well as explanations for why you need to know how to do all of those complex transformations that your linear algebra teacher never had an explanation for (especially if you went to a non-tech school).

Finally, the last chapters include displacements in 3D, as well as good coverage on Geometric collision detection and algorithms for lighting and shading. Don't expect the book to cover advanced HLSL shaders or any sort of high end effects modeling, but this gives a great place to start for those looking to understand 3D graphics whom have only worked in 2D using Trig functions. Also, good reference for any 3D developers bookshelf. - 5 Stars

Thursday, March 27, 2008

Long Time... No Post

So its been a while since my last post. I've been busy with work and stuff.

Lately I have been planning on going back to grad school. Going for my MBA, and I am starting this summer. That means less time to work on my game engine. Oh well, I will do what I can when I can I suppose.

I have been working on a remake of BeJeweled with bombs and nifty other stuff, so I will post a link to the download of the game when I am done with it. I do not plan on charging for it, especially when it is super easy to program. Visiting the site should be enough for that, so come back often.

Thanks to those who have visited, Almost to 250 hits now, crazy... I don't even advertise the site.

Some of the source for the BeJeweled game may be blog worthy, so when I am done I will try to post some of it.

See you soon!

Thursday, January 3, 2008

More Fun With VB and Visual Studios

So, its been a while since my last post. Holidays and such keeping me busy (not to mention Zelda, Twilight Princess for my new Wii and Final Fantasy Tactics, War of the Lions remake for the PSP. Both are awesome games and you should play them if you haven't!).

ANYWHO, no huge changes to my engine yet. I've been working with a friend of mine at work on how to handle the level design portion of the engine (editors, state machines, good stuff like that) and hopefully we will be getting something together soon. It might just end up here some day (hint hint).

For now here are some neat/not so neat things I've learned about Visual Studios in the past couple of days while working in VB at work...

  1. Pressing Ctrl and the dash '-' key will move the cursor to the previous place you have edited, like undo (Ctrl Z) except it doesn't undo your changes. Ctrl Shift dash will go forward if you have already traversed backwards in your change list.
  2. Linking files to a project is a super handy way to add functionality from a different project without having to copy the file. To link a file, right click the project, go to add existing item, browse for the file to link and select the drop down arrow next to the open button, this will give you the option to link. It doesn't copy the file, it simply creates a link to the file in the project for the purposes of building.
  3. Using multiple solutions/project combinations allows for easier manageability without having to clutter a single project for large scale projects. Be careful though if you have more than one project in a solution that link the same file. Visual Studio will not allow two classes of the same name (even if it is the same file) within the same namespace. To fix this, right click on your projects and go to properties and provide the project a unique root namespace.
  4. In VB, if you set your tabbing to be replaced with spaces, and you press space 4 times (or the number of spaces your tabs are set to, mine is 4 which is default), then press backspace to delete a space (say you only want 3 spaces), Visual Studios will delete all 4 spaces as if it were a tab. I don't know about all of you but I find this very frustrating when I didn't even press tab in the first place. If any of you knows of a registry hack or something to fix this, please let me know.
Just a few tips and tricks and quirky behaviors of Visual Studios for all of you to take a look at and play with. Let me know if you learn anything else interesting that might be beneficial to add to this list.