Tuesday, April 27, 2010

Writing suffers when games are being written.

It has been a few weeks since I have written on this blog, and to be perfectly honest, its because I haven't made as much progress as I would have liked in the past few weeks on my game project. This is not as much due to encountering obstacles in the development process, but rather having issues of a more personal nature that took president over game creation.

Now I am not going to go into detail about what those personal issues were, so if you were wondering, you can read my facebook page (or more accurately my wifes). Instead I am going to happily (and yet somewhat shamefully at the same time) announce that I can now save the progress I make in my world editor.

It's not perfect by any stretch of the imagination, but it gets the job done, and allows me to test out some level design choices, and work with the art I have so far to see where there are holes, and what material types I need to create more of... or as the case may be, where I have made too much.

It is amazing to me how good something can look using only a hand full of sprites that are rotated and scaled! And with the many layers use to create the parallax effect I am using... It's a wonder I bothered to create as many sprites as I did! (It doesn't help that some of my sprites aren't nearly as good looking as others).


The way I handle the world drawing/data storing is a bit different than I was doing it before, and so I am going to share a little bit about that.

Throughout this whole process, I have been inspired by the sense of exploration that the original zelda game created with its limited world size. I have found that one of the keys to that success is separating the world into 'screens', that allow for a distinct 'feel'(look, vibe, etc) to be presented in one place, only to be changed rather significantly in the next. So, instead of creating a seamless world as I had originally thought to do, I created what I am calling 'sectors', that break the world (or in this case 'galaxy') up into smaller more digestible bits.

Each sector can be as small or as large as I desire, imitating the more recent top down zelda games, but allow me to segment the world (galaxy) into more distinct sections, each with their own 'feel', appropriate to their purpose.

It's amazing to me the ways that the limitations imposed on early game design actually improved the experience, by creating something that otherwise might not have been thought of.


So, as a form of progress summary (seeing as it has been a few weeks):
- I have implemented PATHS (basically way-points that an object can follow in a circuit [circle], patrol line [back and forth], or as a repeating path [reseting its position back to the start upon reaching the end]) that can be used for all sorts of things.
- Broken the game world into SECTORS, that help give meaning to each location.
- Added an editor for JOINTS. a PHYSICS feature of the physics engine I am using (joints help to provide limits to physics bodies, by linking them either to other bodies, or an anchor point in the world).
- Created more art (about half of which might make it into the final game in some form... maybe).

So for the week ahead of me, I plan to create more art (an intro sequence to help introduce the player to the game universe), test out some more world design ideas, and develop the 'resource zones' that the player will collect the items from...

Much of this must not make any sense what so ever... seeing as I don't know that I have ever really explained what the game is. But I will save that for another week... or perhaps a mid week update?

- fidgetwidget out.

Wednesday, April 7, 2010

A Late Blog Post, and Nothing to Show for it.

It was a week ago today that I half heartedly decided that I was going to need to set forth on my sixth re-write of my game project, due to the complexities of asynchronous content loading that my project was going to require.

Today I am very nearly back to the stage I was in before my re-write began, (with a few more head aches and a few new nice features) only 4 days later than I had hoped.
Have I mentioned that making games is difficult before?
I would say that the greatest challenges so far have been to keep motivated, stay focused, and maintain the initial vision. I have wanted to scrap the whole thing a few times (and in some ways, I have done that with each re-write) because it just wasn't progressing the way I had hoped.

I am new at this, and while I have built games using tools and simple to use game engines, I have never built something this complicated before, and I am starting to understand why developing tools in favor of using out of house options is not as popular as it once was. It's time consuming, difficult work that through the process feels like it has few rewards.

But that aside, I have learned a lot, mostly what doesn't work, but in that process a few things that do. I am determined to finish this project, and while determination alone won't guarantee success, the simple fact that I am still motivated to get this done is surprising to me.

I have decided that I will release the project in a more scaled back form for the initial release. Seeing as I have eaten up a month of content creation, and world building time with all of my learning through this tool development (of which there is a great deal more learning to be done). So I think I will release something that has the core gameplay concepts intact, but with fewer places to explore and upgrades to be discovered.

From there, I will work on the larger fuller version to be released later (if possible, as a patch to the first release), so that I can thank those who purchased early (rather than charging them for it). This is still at least a month away from even the first release being ready for peer review, let alone thinking about the second release of things.

But I look forward to being able to work on more fun and exciting games that fill a void in the marketplace, and are the kinds of game I want to see more of.

Until next time.
fidgetwidget out.

Sunday, March 28, 2010

Being faithful to the vision

This idea has been in my head for some time now, about this couple who made this famous wooden chair, and how they said that the hardest part of creating something great was simply being faithful to the original design, and having to say no to all of the other ideas and concepts that come up through the creative process...

This idea of being faithful to the original vision or design is something I have been struggling with in my game making project. I keep coming up against all of these great ideas that come about as a part of the creative process... but simply sticking to the base, simple, original idea is really the best way to ensure you have something great.

This weekend, I went over the first design document I wrote, and pulled out of it the original two key pillars I had for the game, and have been making sure that everything I have been adding to the idea is based very strongly in one or both of those two key tenants of the design.

Those two are 'Create' and 'Explore'.

I need to ensure that the foundation is set before I start building upon it, and that has been my project for the past few days (that and creating more art assets).

I admit that I have been putting off developing some of the much needed features of the game editor... but I feel the areas I am investing my time are also very important, and will start the week with finishing off the world object editors 'save' and 'load' object feature.

With much of the new art that I have made, the game is starting to feel like it has it's own unique look, and that has been encouraging me through the more difficult parts of development (the parts that don't actually produce any playable results). It's been this kind of progress that has taken up a significant part of my week. Building helper classes (a timer class that lets me set and listen for alarms, several enumeration lists that help me build menus, and a draw helper that makes it easy to build contextual help and instruction).

Now that the week is over, a new week begins, and planning out what I want to get accomplished is the first step in ensuring that there is productivity... if it weren't for these lists, I wouldn't believe I have gotten anything done (and that can just kill motivation).

Thats all for this week's post.

fidget widget out.

Monday, March 22, 2010

Game Making is Hard

This blog post being a little later than I had hoped, I decided to share a piece of concept/design art from my game project (it is WIP, and maybe a little small and hard to see).


The actual image is about 4x the size... and is a tool to help me design the world you will explore in the game I am making.

Thats all from me this time. This piece is taking some time to do (that and creating the smaller pieces of art that will be in the game based on this larger piece), and has been the majority of what I have been working on the past few days, so instead of write about it, I decided to show it.

Wish me luck
fidgetwidget

Saturday, March 13, 2010

While I could just write about the progress I've made (in both directions) with my Game Project, I felt that could get boring. So I am going to do this in a few parts, and break it up a little.

GDC (game developers conference) just happened, and I wasn't there. Not because I had planned to go and things just didn't work out... but because I didn't plan to go, I don't have the money to go, and I am in no position to pick up my life for a week and just go off to invest in the gaming industry. I am taking a rather huge risk investing the amount of time I am in working on this little game making project of mine as it is!

I did really like to see what came out of the IGF (independent games festival), with "Monaco: what's yours is mine" taking the grand prize. I love to see games that are both creative and fun winning over other projects that are more artsy, and less about being interesting and fun. I am also excited to see that something with a more retro look can take the win (seeing as what I am making has a distinctly retro feel about it).

I've been reading this series of articles being put out by the guys who made another Indie game Kaleidoscope (http://www.playmorsel.com/) about the lessons they have learned with regards to Xbox Live's Indie Game marketplace (the place I am planning on releasing my project). It is both exciting and sad to read, as the success stories of "I made a game with zombies in it" create a striking contrast to what they are experiencing. It reminds me of the comments made by some other Indie game makers (Wepon of Choice Developer, and Clover Developer).  But I am hopeful that I can make a solid run at this!

As for the progress on my game development project... I have a lot more features in my editor... unfortunately, I have encountered a number of issues (while I have solved many of them as I go, I don't really know what is causing them, and so it is making it hard to solve all of them). I am feeling like I am going to need to put a better framework underneath it all.
I keep coming up against the way memory is managed, and loosing the texture data of sprites that have been in the editor... its really frustrating.

But I press on. Working hard at implimenting some really exciting things. I hope to have some pictures and maybe even a youtube video of my work ready by the end of the month! (fingers crossed).

Wish me luck!

And congrats again to the team who made Monaco!
-Fidgetwidget

Sunday, March 7, 2010

A weaks worth of effort (spelling error intentional)

After a week of fiddling and finagling my game project, I am not much farther along than I was last time I wrote.

I have a 2D camera system that tracks the players movement, and chases after it to varying degrees depending on its distance from the center (though I still think there is a better way of doing it). I also made it so that the world zooms out the farther away from the center of the screen the player is (that part I am slightly more proud of).
But what I don't have done are the pieces that make building something more fun and playable possible. Namely the world object editor, and complex collision detection (the per pixel thing just didn't work out... but I am not giving up hope). I can place down lots of little squares, and fly the ship through the mazes I create, but until I improve the systems I use to create the mazes, the time it takes to build something is much longer than I am happy with. Also, the inability to put anything in the maze that behaves differently limits the creative potential of the level design... and while flying the ship is fun... it's fun that only lasts a short while.

I have spent some time on some of the less visible aspects of the game. Things like an inventory of items, keeping track of quantity, and in the case of limited cargo space, limits the inventory based on differing factors (simple number, or total weight/volume variables). I also spent some time making existing systems I use more modular... but again, without anything in the world to interact with, right now all of that has no practical use.

So, prioritizing based ease of development, instead of need, seems to be costing me in the types of productivity that give one a sense of accomplishment. Namely the kind that adds to the play test experience.

Something I did do this week that was somewhat thrilling however, was pushing the project to my Xbox 360, and playing what I have right now on my TV screen! I learned that I need to make sure that I keep everything within the safe area (http://creators.xna.com/en-US/sample/safearea), because a number of things I display (debug text, and the current world editor) use the outer edge of the viewport variable (its a property of the graphics device... basically it tells you the width and height of the screen. Unfortunately, when working with a TV screen, those values aren't entirely accurate).

So, head down, and fingers on keyboard, working away at the things that will make the project move more quickly are still at the top of the list. Putting more on the screen, and adding new things to interact with are key to ensuring that in the end, the game will be fun, and people will buy it.

Wishing me luck, because I don't know that anyone is reading this
- fidget widget

Monday, March 1, 2010

game development journey

I am not about to turn my blog into a developer diary of sorts, but I do want to start to do a weekly update of where I am at with the game. That way I will have something to look back on after a month or so, and learn from my experience in review better than I could otherwise.

So, state of the game:
The game has some of the more external mechanics completed (screen/state manager, title screen, options menu, pausing, and confirmation dialog boxes), but the core of the game has been giving me a number of problems.

I have spent the majority of my time on the 'exploration' portion of the game, working on getting ship control and collision detection working. And after almost two weeks of working on this in my spare time, I finally have a collision detection system in place that I am confident in, and isn't simply something ripped from someone else's game. I know how it works, and I know what it is doing at each step of the process, and I feel it's not going to be resource heavy, and minimize the number of, and complexity of collideable objects in my game.

Basically, I scoured the internets to find information on how to handle collisions, examined the Collision Manager class of Net Rumble, and using bits and pieces of understanding I gleemed from these various sources, I put something together that checks bounding box collision, and if there is a collision there, it will go a step further and do per pixel tests on the objects in question.

Its a simple way of doing it for anyone who understands geometry and vector math... but having been out of school for a long while, and never having been all that good at geometry, it was a difficult process to get working.

Something good that did come out of it was my implementing a debug system that allows me to see visually the bounding boxes of each object (and potentially be able to draw on screen the thought process of the AI components).

What I have right now could certainly be cleaned up (and I still have to get the per pixel part of things finished up), but I like how it feels when my ship collides with a solid object.
Next I will work on getting the camera to chase the player, and add in different types of collision reactions (such as the transfer of momentum from one object to another, in the case of smaller floating objects).

I hope to, by the end of the week, have my game object editor fleshed out, with the ability to select and move world objects (world objects are a collection of sprites that I plan on assigning behaviors to), as well as breaking them apart and allowing me to edit their sprites after they have been created. The per pixel thing, and chasing camera as well of course. And if I am really productive, maybe put together some sort of 'map' thing.

More on the progress at the end of the week (I hope).

fidgetwidget out.