Site Sections

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