• entries
17
9
• views
12173

Will I ever finish a project?

## Work work work...

My 3D renderer is coming along very well and I'm starting to think up some simple game ideas to begin testing it out. So far, a space combat (think 3D asteroids) sounds the best. I would have to worry about the absence of animation because everything would be nice and rigid. If you happen to have a decent idea for a simple-ish game they want to see, feel free to throw a suggestion out.

On to work though, I have been working this summer doing some Embedded software development (plus some C# Gui tools). This has mostly been bug fixes and LOTS of copy/pasting. However, the last few days I started working on something that (I feel) is pretty cool. I am creating an embedded web server that should allow any user to connect to by an IP address. This would mainly be used to monitor the lighting system my company produces.

I have been spending the last few days just setting up a .NET GUI that will allow me to create a very rudimentary file structure and select files off the PC. It then sets up a directory and sequentially stores all the files into an S19 file (for download onto the device). The device needs to be set up with minimal code to respond to GET requests, find a file in the directory, then upload the file through the Ethernet link. Should be a decent time, especially that I have basically been given free reign over any design decision, since this will be a primarily in-house tool (the web files themselves will ship on the product).

## It lives...

I can only imagine that many are going to see this and think "who the hell is that guy", but alas, Gamedev's goodness was too good for me to stay away for too long.

With my last post on a forum over a year ago (and last journal article exactly 2 long years ago today), the longing finally took over when I went on break from school. First came the boredom, then the realization that I was still (very) interested in making games. A couple mini-projects to jog my memory in DirectX, plus some adventures into XNA got me hooked once again.

Then the lurking began, and the main page RSS feed, and finally it has come to this.

Anyways, figure I'd get my GDNet+ worth, and try and start frequenting the forums once again. I return to game development with 3 years of Computer Science and Computer Engineering pounded into my head for better or worse. In that time I have finally worked on some large scale team projects, worked 2 summers writing embedded code with a team of 20+ other gents, and finally have a new perspective on coding and especially, documentation.

Documentation and Planning is actually where I feel I have always been lacking. I had always seemed to start projects with lofty goals, but no concrete plan, and my code suffered until it was virtually unusable/unreadable. Well, with a course in Software Design and Documentation fresh on my mind, I set out once again on the road to game development.

I decided that I wanted to make a basic rendering framework, nothing spectacular, just something to use, modify, and expand for my own personal projects. I looked at all of my old, dusty coding projects trying to decide where to start. Then, like a true CS nerd, I turned to UML. Hate me if you must, but I have always been the kind of person that needs structure and a nice neat chart to be productive. UML, it its more basic forms, was exactly what I needed. Just last Friday, I came up with this gem:

It is still a work in progress, but every class outlined already has at least minimal functionality and my test app works flawlessly. It may not seem like much, but I accomplished this in about 8 hours total of coding time. Most of my previous attempts at a simple, flexible renderer have not even touched this much functionality, and the ones that did took me weeks to implement. This framework allowed me to seamlessly hide DirectX from the client, while still making it very easy to use. I set up a spinning, Vertex/Pixel shaded mesh, with less than 60 lines of code. The engine itself is very neat and I feel like there are probably more comments than lines of code.

Hopefully I will be able to have enough implemented to start working on a simple game by the end of the week. And to all my buds on gamedev, you will definitely be the first to beta test... err... play it.

## Random thought

OK, I think I have some semi-finalized plans for my 4E5 entry. It ook the maze game idea and tweaked it a bit to make a (as far as I know) unique game, that will hopefully be fun and more importantly, satisfies all 4 elements. I am trying to go more for humor than graphics really, though graphics hopefully will be decent... Here it goes:

You and you girlfriend are on an american reality/game show. You are "dropped" in random European cities and forced to navigate to various landmarks. Your girlfriend is honestly quite the b*tch and hates walking and spending time with you. Therefore you must keep her happy by buying various items (chocolate, flowers, etc.) while navigating the city, or she will refuse to move.

Europe: Yes, all the levels will be in well known European cities
Emotion: Your girlfriend will easily get bored an begin whining. If you ignore her too much she will get angry and refuse to move. Her current emotional level will be viewable (possibly in some GUI element).

Emblem is still a bit open. My best idea was to make a symbol for a fake network running the show and have it appear in the levels at certain points. It could also be all over the loading screens and such.

This seems like a fairly simple concept that can be quickly implemented (in 2D or 3D actually) and polished for the remaining time. Of course, I suck at modelling and texturing, so I may need help at some point. Voice actors may also become necessary at some point...

I still am working out some implementation details. A first person camera would be easy, but a 3rd person view could creaate the illusion of "cameramen" and would provide a better view of the map. Of course, then I need models for the people... Also, I am not sure if I should make some premade maps, or do them procedurally. Of course, maze creation algorythms are fairly easy, so i may do both...

If you have any insights into possible game mechanics or how to make it more fun, chip in. If you think the game idea totally sucks, feel free to post alternatives, of course remembering my skill level. Then again, I honestly do not plan on winning (or coming close), I am doing it to finally have a completed 3D game (hell, a completed anything for that matter).

Anyway, enough about 4E5. I finally got the details for a job I applied for back east. It looks like I am going to be an RA for a high school summer camp for game development. I basically make sure no campers kill each other or run away at night and get the daytime off (since they have "classes" to attend). It seems like a fairly easy and fun job; more importantly, I'm out of my parents house and back on my own!

## More 4E5 planning...

OK, after some further thought into my previous ideas for the 4 elements contest, I'm noticing some issues. War games, and specifically First person shooters require some decent AI. I suck at AI and I really don't want to make this project into a learning experiment.

So back to the drawing board. I have a new strategy toi designing the game. If I could write out a list of game types that I am sure I am capable of, I may be able to morph them into something useable around the elements. Here's a quick list:

-Racing game
-Space flight
-Puzzle game
-Maze

I actually like the maze idea a lot. I could easily make a 3D maze type game where dumb american tourists are forced to navigate an old windy European town. Obviously the europe part is covered. Add some functionality for buyting a map and finding money, and economy is set. Emotion could be tied to the fact that you are ina strange country where no one speaks english, possible isolation or lonliness. Emblem may be a bit difficult to implement, but it should be workable.

This game idea could easily lend itself to my ability. Lots of simple textured quads for the walls. Add a skybox with famous landmarks to make the setting. Simple collision detection with the walls - either bounding boxes or just look up from the maze array. Add in some angry NPCs and it would be set. Time to start designing...

## The 4 E's of game design

Yay, its time again for the 4 elements contest! I really want to get together a submission this year. I have missed out the last few years due to inexperience, apathy, and just being too busy. This summer, I'm not working (for another month, then just part time), I have learned quite a bit about game programming and theory, and I have hopefully conquered the laziness.

The elements from this contest really caught me off guard. Previous contests were just 4 small things that could easily be incorporated. This contest uses much more advanced concepts that will greatly affect the gameplay.

Unfortunately, my current engine is not mature enough to even be considered for such a project. I want to spend most of this time working on the gameplay, rather than tweaking DirectX to get decent font rendering... Therefore, I'm going to be using a free graphics/game engine. Currently I am looking at Ogre3D. It has pretty much all the graphics features I would need and I have a bit of experience with it. Of course, depending on the game I design, other engines may prove more useable.

Right now, I am trying to come up with various game ideas that could incorporate these elements. I guess I can list some for people to criticize/expand upon.

1. A kind of survival game based in a small european town. You must learn to survive in a quaint european town. You can find a job, buy food/other goods, rent hotel rooms, etc. Of course, unless I can expand further, this won't be too exciting. And how to incorporate emotions and some emblem without being to hackish...

2. Invasion of Europe. Some country declares war on some European country and decides to invade its capitol. I could go either way (you invade or defend), but the city would have to be fairly recognizable (like Paris or Rome). This could be more exciting than the previous idea. The Europe, and emblem parts would be set, but not alot of room for economy and emotion...

3. An underground militia type group trying to gain control of a country. Perhaps the government has become too totalitarian and you must regain democracy. The emblem could either be your faction or the government. The setting could convey a very frightened/depressing environment. Obviously it could be based in some recognizable european city. Finally, the economy can be of the weapons/supplies you will need to fuel the uprising.

Number 3 is currently my personal favorite. It looks like I would be able to incorporate all the elements fairly fuidly and could still be quite fun. Whether I can actually implement the gameplay and such is not certain. Of course, I'm going to need to expand on whatever idea I choose and get a good design doc going to have any chance.

My modelling/composing skills suck pretty bad, so I may need help there at some point. I am planning on using free/crappy models/textures of my own creation until I can get some good gameplay going. Then I may consider looking for a 3D modeller to make it a bit prettier.

If you have any suggestions for ideas or expansions/complaints with my ideas, feel free to post!

## New semester

I'm in the second week of the spring semester. I am taking an Embedded control class right now. We are using C cmpiled for the C8051 microprocessor. Our lab manuals examples of code are absoultely attrocious. It has a chapter introducing C. This is the first program:

/* begin program here */
main(){ /* begin code block here */
printf("Hello World!\n");
/*Output text to console */

} /* end code block

I realize the assumed "void" on main is legal in C, but isn't it still considered bad practice? Every comment in the code uses the multiline comment no matter how many lines. The manual specifically says not to use // comments because they can cause strange errors... I would think /**/ comments are worse, since many students will be tempted to nest them and such.

Anyway, the class still looks fun. We are writing code for a "smart car" to follow a white line, as well as a self-controlled blimp.

I haven't done much with the Scene graph engine lately. I keep thinking of new ways to implement it. I think I will just go for a nice easy, unoptimized approach and just try to finish it for now. If I have time, I can always clean it up and rewrite portions.

I did manage to fix the memory leak. It was aparently due to a bad copy/paste job on my part. I was actaullty making two copies of each texture thsat I loaded,but only deleting one of the pointers. It was an easy fix, just delete the offending line...

## I hate pointers

OK, I just reorganized a large part of the scene graph engine. I made simple wrapper classes for all the resources (mesh and texture so far) to add an extra layer of abstraction. After doing all of this and fixing hundreds of other bugs I inadvertantly created, I now have a memory leak problem. DirectX is throwing allocIDs for every single object i use (the d3d obj, the device, etc.), so that doesn't help much.

I also tried a separate memory leak tracker, but that doesn't report any leaks. I'll just leave it for now any go through everything again tomorrow if I have a chance (I have an 8 hour block of classes 10-6). Maybe something miraculous will happen... Otherwise I'm going to have to rewrite quite a bit of it.

I am still making progress on the Scene Graph Engine. I have a base class "SceneNode" as well as a derived GeometryNode class so far. The way I have the geometry class set up with a "Model" object, which is a fairly simple class containing a pointer to the mesh and texture data. It still seems really messy (though it does work), so I may try to clean that up a bit.

I also implemented an extremely basic resource manager. All it does is load the mesh/texture data from an X-file file and store it in a map of resources. When the resource manager goes out of scope, it iterates through all the resources and destroys them.

The interface is not very user friendly (You basically have to deal with all the node pointers and such). After I get a bit more functionality, I will probably try to add another level of abstraction to make it a bit more user-friendly.

## Back to work

OK, its been a while...

Anyways, I'm back to game programming. I took a bit of a break to keep up with schoolwork. I managed to do a couple projects (a heightmap viewer, a couple model loaders), but not much. I decided I wanted to seriously try to write a functional 3D engine.

After a couple more CS courses, I'm getting more competant in c++. I'm definately understanding pointers, inheritance, polymorphism, and various structures (lists, vectors, trees, etc).

Anyways, I got the basics of the scene graph set up. I created a derived geometry class, whi holdsa static model (loaded from an X-file). I also have a simple DX renderer that creates a window and the DirectX device.

The renderer also traverses the scene graph and adds all renderable nodes to a list of nodes, which are then rendered.

Up next, I'm hoping to implement some sort of spacial culling syatem (most likely an octree). I have a good idea about how to go about it, so hopefully it won't be too difficult (...).

I also want to try looking into some modeling packages. I downloaded the maya PLE, which I found nice, but obviously it doesn't support any exports or scripting. I may just try out blender or milkshape if I cannot find a decent priced copy of Maya or 3D studio (through my school).

Hopefully I will be able to update the journal a bit more often than every year...

## Monday-like days

Ever noticed those days after a long weekend (labor day) that aren't mondays, but they feel just as bad. Maybe it was the fact that I was obsesively reading until about 3:00 AM, but it was a looooooooooooooong day. I fell asleep when I got home forgetting that I had a lab at the unversity at 6:30, thank god my mom got home at 6:00, or I would have likely slept through it.

Anyway, I am making a good amount of progress through my C# studies via C# Programming, by Jesse Liberty - excellent book. It has everything you could ever need to know about C# in it (Basic variable types, OOP, delegates/events, ASP.NET, WinForms, ADO.NET, Threading, Networking, etc.). It was definatly worth the $30 on amazon. Not much happening at school now, though we do have Monday off (labor day), so I will get an extra day to sleep in. Sadly enough, Spanish IV is my most difficult class, mainly due to the evil Costa Rican lady who teaches it. As you can see, my life is pretty borig right now. I hope it picks up soon. I really hate not doing anything... ## Yay I have lots of good news for once. The body shop called this afternoon to tell me that my car was finally done! Of course, they called at 4:55 PM (they close at 5:00 PM), so I will have to wait until tomorrow, but it is all cool. The bill is$700, and my parents are only going to make me pay $500 of since that was the original estimate. Also, our new insurance bill has come, and another shocker. It only went up$200 a year (
Anyway, nothing new in the programming world. I got the C# book by Jesse liberty last week and I have been messing around with that. C# is alot of fun to use. As soon as I finish the book and have a good grap of the language, I may start to use MDX through it, shouldn't be too much of a switch from VB.

My job has been going great. I did find that there is one "manager from hell", but she only works sundays (thank god), so I don't see her much. My first paycheck should be ready today, so I will get that the next time I work (Friday). It should be around 100 - 120 dollars depending on taxes. I am going to have to get a checking account at some point also.

## sigh...

OK, its been a while. School started last wednesday, so my time to post has gone way down. I also started my job last friday, and that has been pretty intensive. I worked closing last night, so I didn't get home until 12:30 AM. It was a pain in the a. I will be getting a good paycheck though ($6.00/Hr 8 27.5 hours until my first paycheck =$165).

Anyway, I have had no time to program in the last week or so, but I'm hoping to get a little in this week. Coron IV is still on life support, but I have no idea when I will able to work on it again.

I am taking a course at OSU this semester (instead of one high school class). That will start this week. I chose to take chem 1515 (5 hours). It should be a tough course and I expect it will take quite a bit of my time for work, but I hope it won't be too bad. I took CS 1 last semester and I think I may take CS 2 next semester, just to see if that is what I really want to do.

Right now, I am leaning toward Computer engineering, but I am also partial to Chemical engineering, computer science, and math/physics. My choice of college is still open. I am leaning heavily towards the University of Illinois at Urbana/Champaigne, but MIT and Renssaelar Polytech are also on my short list.

That's about all that is going on now... I have some more standardized tests coming up soon, inclusing the ACT and SAT I and IIs. I have an 800 in chem and Math IIc, but now I need a good english score (hopefully better than 750). I also want to get my SAT I score up another 50 points (I am at 1430 right now). I am hoping to get my ACT above 33 (I am at 31). Shouldn't be too bad, I have at least two more chances at each test before applications are due.

## Long Day...

I did not get any programming done today. I went on a BSA trip to a water park... I did bring a pad of paper and pen so I did get a little game design worked out. I am trying to write a storyline for the game currently.

C# has been giving me a plethora of problems. While not insanely different from VB (I do know a little c++, also), It has some quirks that are messing me up. Mainly events, globals, and static classes. I decided to buy a book. See my thread if you would like to suggest one.

I have some good non-programming news, though. I just got my first job today. I had an interview and I will be starting next week! I will be working at Braums (Every Oklahoman knows what these are). I haven't figured my shift out yet, they will wait until after I turn in my W4s and everything, but I am hoping for over 10 hours a week at more than \$6.00 an hour (They supposedly pay well). It should be fun, I know quite a few people who work there.

Speaking of W4s, is it just me or are they insanely cryptic. I have been attempting to figure out if I am tax excemt for over an hour. I guess my parents are gonna have to help out...

## Input issues

Turns out the input class is going to take a couple more days. I didn't relize how different C# is to VB in respect to events. In VB I could do this:

'// define it:
Public Event Mouse_Move(ByVal x As Integer, ByVal y As Integer)

'// Then call it:
RaiseEvent Mouse_Move(a, b)

'// Then handle it:
Private Sub MouseMove(ByVal x As Integer, ByVal y As Integer) Handles Input.Mouse_Move
'// Do stuff
End Sub
'// Simple!

With C#, I am going to need to use a bunch of delegates and other crap I don't fully understand. I will spend a while in MSDN tonight, and if that doesn't work, I may resort to buying a book...

Other than that, the basic framework is functional. I have a basic "object" class that handles static objects in the world. I have a "Graphics" class that will oversee the creation of the D3D device and handle the rendering, GUI, text, and a couple of other random things. As soon as the input class is done, I can start on a basic terrain system. I think I will go for heightmaps, they are clean, simple, and if I want to upgrade later, I will.

That's about it... The game is progressing nicely. If I can make it another week, I will be happy. That is about how long it takes until I usually lose interest.

## Myself

I figured I should introduce myself any of you that care...

My name is Sean Henley. I am a 16 year old high school student in Stillwater, Oklahoma. I was introduced to programming in 5th grade by my father, who knew a bit of BASIC. In 6th grade, he and myself made my first game: Battleship. I got a copy of VB6 learning edition for christmas and self-taught myself enough to write some very basic games. That is about when I discovered DX and my programming took off. I have not "finished" a 3D game yet, but it is my life's goal. The languages I currently know are VB6, VB.NET, C++, C#, java, and python.

Oh about my avatar... I have never been an artistic person. I wanted some cool pic that said somrthing about me, but alas, I hate ripping other's art off the internet. I saw a pic similar to this on a pic site (though I am pretty sure there was a joint next to it...) and I decided to make something similar in paint.

That's about it. Just thought I would give a little background of myself to anyone who cares.

## New journal...

OK, got my GDNet+ signup done this morning. I figured I should actually use some of the features it gave me.

I have just started a new game project. I think I will try my luck at a futuristic 3D first person shooter. I haven't decided on a name yet, it needs to be either a cool sounding synonym of "escape" or some sort of futury planet name. I have temporarily decided on "Coron IV", but that lends itself to problems, mainly pronounciation.

I have decided to program the game in C# using Managed DirectX 9. I have traditionally been a fan of VB, but I figure I should adopt another language. The game won't be very cmplex, so I doubt I will have any performance issues. Depending on how the development goes, I may decide to try and get a couple of other people involved. I will probably need an artist (2D and 3D), and possibly another programmer, mainly AI, but with some other talents as well.

I got a very basic framework of the game running. Basically, it will set up the DX window to a specified sized and color depth and arrange all the matrices. I am currently working on the DInput, that shouldn't take too long. Hopefully I will be able to begin programming some actual game stuff tomorrow.

That's about it. I will try and keep the journal semi-up-to date. It all depends on how school goes (August 18th) and how busy I am with other stuff. Sr_Guapo out.