About this blog
Sprawling text for ocular consumption written by a hobbyist game developer.
Entries in this blog
The ASP or Automated Security Program is the most common of network securities. It is both versatile and ruthless in its hunt to expell network intruders.
In case you didn't notice when you first got here, I've cleaned things up a bit. I cut down the size of a lot of screen shots for the bandwidth and hi res monitor impaired. Hope you like the new logo at the top.
The game is starting to really come into a windfall as far as progress goes. Yes, I am still working on the level editor, but we are nearing a state where I can actually create the alpha level I want. And make it playable. I should have some pics of some actual in game models for you shortly.
While you are waiting, here's an extended sample of one of the games battle music tracks.
Shadow of the Colossus kicks ass. This game is all about why we love to play games, and why we love to make games. At least as far as I believe, Shadow of the Colossus embodies everything that I think the indie development community should embrace: Simple design, complex implementation, artistic cinematography, unique stylistic presentation, atmospheric...and pure beauty.
I really recommend anyone with a ps2 rent or buy it. It's released at 40$ which is 20% less than what most retail games go for. The main gameplay is only 10-15 hours, but trust me, you'll want to play this game again. The puzzle solving is gone, but the thrills are all still there. Renting is a good choice if this doesn't seem like your game and you don't want to make the 40$ investment. But everyone should at least TRY this game.
Tuss Toss is now the currently featured game at gamesareart.com. Feel free to swing by there and check it out. I really love what they are trying to accomplish at gamesareart.com and hope that Tuss Toss finds an audience there.
Been slugging away through the level editor still. You can now add just about every scenic element to a level and even adjust lighting properties. Here's a little screenshot, because I love you.
I haven't updated in a while because I took a couple days to step away from the project. I've been contemplating where I've been and how I got to this point in my indie development path. I started learning C++ only 2 and a half years ago. It's kind of hard to believe all thats happened occured in that time, and how I've grown. I've become a good programmer, not great but certainly good. I've become a good game designer, and an adequate team leader. These are two things I am trying diligently to become better at. My knowledge grows everyday and I know that I have a long way to go still. However, I really have come a long ways from the day when I was scripting a mod for Neverwinter Nights and said to myself: "I don't really want to make mods, I want to make games, and beautiful ones."
Since then though there is one thing that I haven't been able to shake, and its the lack of interest in my team's first graphical game Tuss Toss. It currently has a measly 53 downloads on the GDNet showcase. It really is a good game. I know it has its flaws and I am doing the best I can to learn from them. The game is completely full featured. You'll be hard pressed to find a more vivid and lively color scheme and high quality 2d art. It has great sound and music. Cool custom level design and an endless free play mode. The gameplay is simple yet addictive. Is it fun? I thought so, and so did a lot of people. Not everyone did though, and there were some pretty glaring shortcomings.
My first review on the showcase was not a good one. The reviewer is entitled to his opinions and I truly believe they meant well. However I really think it stopped a lot of people from trying the game out. I ask myself constantly how I could have prevented that review, and I know one simple way: by speeding up the gameplay.
How could I have done this? A couple ways come to mind. I could add an autodrop button as suggested. It would do wonders to speed up the game, and assist the player. Having to wait for a block that you don't need to land is boring and dumb. Another thing I could do is go back and tweak some of the levels. A couple of them were just plain tedious and could be redone. One that I made personally was from world one where I made the level appear like the Suck's world these were from. Waiting to get that many blue tusses is just awful. Speeding up the gameplay in these ways also favors the player, which makes the game easier and more enjoyable. A block drop game isn't a brain buster, it's a test of quick wits and reflexes.
I really don't want to turn this entry into a post mortem, but suffice it to say all these thoughts have brought me to a single question. Should I try to fix Tuss Toss? Is it worth it? I know what gameplay decisions I would change, but what also would I do? I've been toying around with the idea of even rewriting it in java and a different graphics API to make it incredibly portable. I've even thought about rewriting it to run only in a window. The one thing that stops me from doing these things is this question: Is it worth the effort to try and rebuild this game the way it should be, or should I cut my losses, acknowledge my mistakes and learn from them by not repeating them in my future (and current) projects?
Work on the level editor is comming along at a great pace. I'm really pleased at the progress I'm making. You can now add tiles and scenery objects to the map. The next step will be to add other entites I think, as well as adding "Security Zones." Security zones will be specially marked tiles that either give bonuses or most likely negatives to a players stats based if they are on the particulare space.
I've been back at school fora week now. Doesn't really feel like I've skipped a beat to be honest. Things seem to be going ok, but who know what could happen in a short time? I'm slightly scared that I might have gotten myself in too deep taken a beginning and advanced course at the same time for Java. I know I can make it through though. The first couple weeks will be the most difficult, then once I'm comfortable with the syntax and commonly used classes I should be able to belt stuff out pretty painlessly. REgardless, I'm already gaining a lot of knowledge by learning programming theories in a disciplined environment in a class, rather than just on my own. Nothin' to do but to keep on truckin' along I guess.
Lately I've been working on the level editor toolset. Building tools is a breeze with C#, and I highly recommend using the language and resources to anyone, regardless of what language/platform/API you are working on. Take a looksee at what I've accomplished in just a short time:
I've still got a ways to go here, but the tools are definitely comming along great. In a very positive mood right now :). I also know you fear my elite icon art.
I've switched gears over the past two days back to the basics. I'm working on getting the actual board rendered on screen again. Why am I doing this gain? Well the original code was just a very quick demo. Now that I'm in a full blown alpha stage, I am potentially creating code that will be in the release version of the project, and that means creating a solid foundation.
Everything was going smoothly until I realized I had a problem. In the original demo I was calling drawprimitive() for every tile I was rendering on the board. I can't even imagine the performance hit I was creating with 1024 possible calls to drawprimitive() per frame. Yeck. So I decided I'd throw an entire map into a single vertexbuffer, thus reducing my overall calls to one. However bells imediately went off in my head. My largest map size will be 128x128 tiles. That's a crap load of tiles, with 2 polys per tile. Wasting 20,0000 unnecessary polygon draws makes me cry so now my next step is to create a simple octree of sorts. My plan is to split every map into 16x16 tile sectors. This will give me 512 polys per sector max (some tiles will be empty, containing no polys, or will be obscured). Then I will render a max of 9 sectors at once based on the camera's position. That would be a max of 4608 polys spread over 9 drawprimitive calls. I could cut my sectors down to a 8x8, Thus reducing my calls to 64 polys, but I will have draw more sectors, calling drawprimitive() more times. Yeesh. Ahh well, nothing to do but to try it. Back to the grind after I snoop around my fellow devs' journals.
Yeah I know I've been delinquent with the entries. Selling rocks all day was taking a lot of my time. But luckily my last day was Tuesday, so I know have some good chunks of time to get some stuff done on the game before school starts. I'm going to do my best to update on a regular basis from now on in order to motivate myself into progressing more and more.
Now for those of you who are curious, my position was as a Masonry Salesman for a retail building supply company. Hence, I sold rocks. I can honestly say that what I've learned from my experience is that retail sucks, especially when you don't work on commission. Ahh well, that's all behind me now (hopefully).
So far today I've been focusing on adding combat abilities to the entities of the game. I got through a few before I realized that I needed to at least stub out other objects in order to make my logic work right. Ahh the Love/Hate relationship I hold with OO programming. After a short break, I'm going to dive back in and fix the mess I've created.
So yeah, still working on creating my entity objects and their associated data and functions. Holy crap, I never realized how many classes, structs, and enum's I would need to pull this off. Since this is my first time writing something this big...and first time using a pure OO language I'm questioning my program designs desicions at every turn.
I thought OO was supposed to make things easy :-p
Once again like I predicted my implementation of the Effect class was waaaay overblown than necessary. I've trimmed it down to only cover status effects. Most bruntal damage dealing will be done by the actual "programs" (spells) that I'll implement later. Keep it simple, stupid.
I've also ordered my laptop. Went with the Dell Inspiron 6000D and I think I'll be happy with it.
Oh yeah, one more thing. Since I haven't provided any content, check out the following music snippet from Project: Delphi's soundtrack
I'm looking to get a notebook that I can do school programming and game programming on. It's gotta be able to run the game's I'm programming so I'll need a halfway decent video solutionl Anyone out there got any suggestions? I'm going as cheap as possible, and HP's laptops with ATI Radeon Mobility 200m might be the way I go.
Today at work I got horribly lost trying to pick up product for a customer. The supplier that I was getting then material from was in a town called Podunk...I found this midly humerous as I was in an angered state from being lost. So after 5 hours on the road today the morale of the story is this: "Retail sucks, get your damn degree in comp sci so you don't have to sell rocks anymore."
In Delphi news I am currnetly programming an Effects class. This class is slightly complicated and will be used to apply any type of offensive or defensive effect. From dealing a simple amount of damage to creating graduated attribute buffs, this class is going to describe it all. No doubt this will take me a considerable amount of time to implement right, only to find that I've done it all wrong.
Yes, I sell rocks.
So I restart school come September to get my B.A. in comp sci from URI to go along with my English degree. In order to complete this degree in 3 semesters I have to take a begenning and intermediate programming comcepts class at the same time. The language being used is Java (sigh). My work in C# convinced the department head that I had a chance in hell of pulling this off, mainly because he feels Java and C# are similar, and they share the concepts that are being taught in the advanced class. So when I'm making hello world in one class, I'll be designing a linked list in the other with the same language. The department head wasted no time telling me how he has little confidence that I will make it past this semester. I think he underestimates my programming chops. Needless to say I need to get the Java syntax down before heading back to school. Something I have no time for, but shouldn't be too difficult.
Delphi has been going at a decent pace lately. We've recruited a new artist who is working for a professional game studio in Washington. He's an old friend from the town I live in and I'm looking forward to working with him.
Basic things I'm working on now are the renderer and game entities. Hopefully I'll get some more visual stuff for people to take a look at soon. Peace.
Just wanted to wish my fellow Americans a happy Independence Day!
Added some meshes to the game's alpha version. The larger meshes represent computer systems on the network the player is invading and the smaller meshes represent actual files on the network. The blue square is just the "picked" tile that the mouse picking ray has found.
I'm pretty happy overall. I just wish MS would release VS.NET 2k5 real soon so I can really get down and dirty. Sharpdevelop just doesn't cut it for me as an IDE.
Updates have come painstakingly slow lately. I added some simple picking to the alpha I'm making which worked perfectly without too much of a hitch. It detects what tiles are being clicked on using a ray-triangle simple intersect formula. I want to add a couple more basic things to the alpha, like meshes and maybe lighting. Other than that There's really not much more to do than jump in and start getting into the thick of things. Several things are really keeping development slow. Those being my 10 hour workdays 5-6 days a week.
Stupid little things also keep my team held up, not to mention a lack of enthusiasm and help on their part. Can't help but to feel that these are really my fault as a team leader who doesn't really have time to "lead." Ahh well maybe that's just the long workweek talking...I should get back to something productive.
The following is an IN GAME RENDERED SCREENSHOT! (wewt).
Basically what you are seeing is a test level randomly generated. Below the tile mapped spaces are two layers: one has those crazy words/symbols and the other is the cloud layer. I also added some alpha blending into the tiles and symbol layer for a really "dream-like" appearance. Let's just hope my artist doesn't flip. The neat-O thing you can't see is that the cloud and symbol layers are scrolling independently of one another.
I know it's a relatively simple thing, but I'm pretty proud that I was able to accomplish what I set out to do for once, and solve all my problems on my own along the way. Can't wait to add some models to this sucker!
The latest work I have completed on Project Delphi is the camera. It's really nothing special, but it can do all the normal things a camera could. It can travel along axes and rotate for pans, zooms and cranes, tilts and whatever. Should be all we need for the game.
On friday I got to go see 'Dear Friends.' For those that don't know what it is, it's a touring concert that plays orchestrated music from the Final Fantasy series. It was a lot of fun, and a great notion that I got to see a concert date from the very first video game music tour in North America. I hope it's not the last because it was a great experience. There were a few things that could have been better, such as more CG visuals from the games on the big screens or an opening act. It seems as though Square Enix already has another tour planned called 'More Friends.' Would be killer if that time around I got to see the Black Mages perform. So if you are a fan of orchestrated game music, I'd recommend trying to hit up a show if there's a stop near you.
Guild Wars has made me quite unproductive lately. Usually after the initial thrill of a new game settles down, I'm able to get some work done. Despite that though, I'm really enjoying the game. I won't go into a rant about why I like the game, but if you've got any interest in the game it's worth checking out.
I've finished my font writer wrapper and I'm mostly happy. It uses the Direct3D font interface to do most of the dirty work. The upside to this is the ease of use of the class, but the one thing that kinda dissapoints me is that I become limited in the fonts I can use. I really wish there was a way I could load a custom font from a file, but as far as I can tell there weren't any constructor overloads in either the Microsoft.Direct3D.Font or System.DRawing.Font namespaces that had a load from file parameter. Although I couldn't add this one feature, I was able to create a neat linked list feature that allows the user to make as many font objects as necessary. Creation of a font yeilds an integer handle back to the user in order to reference the font. This handle works almost like a pointer. I was pretty happy about doing this because it allowed me to keep the actual font objects hidden from the user and safe from any unwated changes that can occur to unprotected data. Not to mention the flexibility and scalability it gave me. Yeah I know it's just a font writer class, but at least I'll have something that can be reused with relative ease.
This is NOT an in game shot, still conceptual.
Just some basic concept art for what the boards look on the overworld and combat areas of the game.
Overworld Map view
and this is a theoretical combat board:
All the pics above are provided by my artist Kelsey Doherty and are his property.
I'm currently working on a font engine and I'll have some some screens when its done.
Some concept art for anyone interested.
I'm currently working on getting in depth work done on game's mechanics: I.E. combat system, rules, etc. with some real math behind it. Hopefully it won't take me too much longer because I'm itching to start coding and get something up on the screen to show you all.
In other news, a college friend of mine has moved back here and is helping out with business/marketing and probably a whole bunch of other junk with Project: Delphi. This makes me happy.
In personal news, I got a full time position at my old job, so I will have money again (and hopefully will be much more productive as such). I have also completely decided to return to college and get my B.A. in Computer Science. I'd like the B.S., but I just don't have the time and money for 3 full years. I'm looking forward to returning and getting this degree, and I have started the readmission process. But enough with this personal crap, this journal is supposed to be about games!
I've finished the story/script for Project: Delphi. I have a short version of the script you can read at Here. Most likely all of the information kept in there will be in the shareware demo version of the game. Feel free to read an comment on what's in there.
Next up is to flesh out game mechanics.