June 11, 2008

more aiming

I came up with a better way to do weapon aiming. In order to implement it I had to rewrite some parts of the editor to make it work more like Maya. All of the objects in the editor (Joints, IKHandles, and Quads) are now derived from the same base class, called a TransformNode, which has translation and rotation values. They are all contained in the same hierarchy, with a single root node. Here is an example of how this system can be used for aiming:



In this example, the aim animation rotates the node that the IK handles are grouped to. The shooting/recoil animation moves the IK handles.

It seems so obvious now that this is the correct way to do it; I'm not sure why I didn't think to do it this way earlier. This system uses the IK handles directly, so the hands are always placed correctly. It's also more flexible and consistent than what I had in my previous post.

June 04, 2008

game project



I figured I should start documenting the development of my game more thoroughly. I've avoided posting my plans because I don't feel certain about them, but there are some things that are not likely to change so I can at least talk about that.

As you can probably tell from previous posts about this project, it's a side-scrolling game inspired by Soldat. I was motivated to start it by the demand from the Soldat community for more modding possibilities in Soldat. I'm borrowing heavily from Soldat in several aspects (2D skeletal animation, terrain made of textured polygons, combat with projectile weapons, mouse aiming) but the similarities mostly end there.

My game is going to be a single-player Metroidvania-style platformer with a focus on exploration and the use of a variety of weapons and items to defeat monsters and progress through the world. I plan to incorporate elements inspired by the Zelda series, especially Wind Waker, into the gameplay and visual style. Like Zelda, it will have a fantasy theme, with possibly some steampunk thrown in (see Chrono Trigger). Features include vehicles, water, and dynamic lighting.

One of my main goals with this project is to make content creation relatively easy and fast. To that end, I'm developing powerful tools for use with the engine (the character editor and the map/general editor that I will start re-writing soon). I'm aiming to have the tools and engine ready to use by September 2009, with a demo ready by May 2010 for use in my portfolio. At that point, assuming I get there, I will decide if it is worth turning into a full game (possibly with online play). However this schedule is not fixed.

I'm using C# with MDX, and I intend to port it to XNA 3.0 eventually.

In upcoming posts I will go into more detail on the internal workings of the game and character editor and on my plans for the game itself.

May 25, 2008

box2dx

I've decided to use Box2DX, a C# port of Box2D, for physics.



It was easy to integrate into my program and start using it, and it should save me a lot of trouble. Writing my own code for rigid body dynamics would have taken me forever. It also opens up more potential for physics-based gameplay.

May 18, 2008

newest addiction

Kryzta. TIGSource describes it as:
an “anti-shooter” where you defeat your enemies with their own bullets. Collect the power-ups they drop to shield yourself (or press “Z” to unleash a devastating attack with them).

It was made in only 6 hours - a great example of rapid game prototyping/development.



Last weekend it was Portal: The Flash Version. Portal is one of the few commercial games that I actually kind of want to play, but can't be bothered to, so this was a good way for me to get some portal action.

May 13, 2008

weapon aiming

I got my aiming animation stuff working, sort of. The editor now allows one animation to be added on top of another. This allows me to blend a shooting animation with an aim animation, like this crude example shows:



However it doesn't always give good results. My test animation looks alright when aiming upwards and straight ahead, but not so well when aiming downwards:



As you can see, the support hand doesn't stay where it's supposed to. This could be solved by changing the shooting animation or by using IK for the support hand. In the game, the aim animation would be controlled by the crosshair position.

May 09, 2008

what's taking so long?



You may be wondering why the progress on my project has been so slow. The main reason for this is that as usual, I bit off more than I can chew. It's a much larger project than anything I've done before, and it's somewhat beyond my abilities - that's what makes it such a good learning experience.

I'm not making just a game, but a game engine and a set of tools to go with it. This means that for every feature I want to implement, I have to generalize it. For example, with the weapon aiming system I've been working on, it's necessary to allow any character made in the character editor to be able to aim, and each character will have a different set of weapons that they are able to use. This makes the problem much more difficult to solve than if it only applied to the main character, for example - then it could all be hard coded. I also try to implement each feature that is exposed in the interface in a way that's easy to use when creating content.

When it comes to programming, I look for solutions that are simple and keep the level of complexity low so that it doesn't turn into a maintenance nightmare in the future. In fact I have a hard time getting any code written if I'm not satisfied with the plan I've come up with. This means that I spend a lot of time working stuff out on paper, but it also means that when I do get around to coding, it often works the first time and cuts down on the time I spend debugging.

All of this, plus difficulty concentrating, results in really slow progress. I'm enjoying the process though, and I'll keep chewing on it as long as it's fun.


P.S. I now have access to a camera, so expect more unrelated photos with my posts.

May 05, 2008

update

According to the earliest timestamp I could find on my game-related files, I started working on it in May of 2006 - it's been two years. I've learned a lot, even though much of the work I've put into it hasn't produced tangible results.

All I have to show for now is a rough implementation of the graph editor:



Currently I'm working on having joints be controlled by the crosshair position, to make it possible for characters to aim their weapons in a convincing way.

May 04, 2008

sketch dump

A composite of some random sketches.

May 03, 2008

self-portrait

Self portrait for drawing class. I did the initial drawing in an hour, so it's kind of sloppy and the proportions are off. About another hour was spent adding some shading.

May 01, 2008

another redesign

As you can see, things have changed. Here is a list.
  • Template - It's green! This theme was inspired by the GDNet classic theme. Hopefully I didn't break anything with my lack of CSS skills. Also, no more bunnies.
  • Display name - I've ended my half-assed attempt at anonymity. The blog is now on my main Google account, which is more convenient for me.
  • Title - I still suck at coming up with names for things. Might as well call it what it is.
  • URL - I wanted something related to what this blog is about. It's hard to come up with decent sounding names that aren't already taken.
  • Stat counter - Now I can keep track of my readers. All three of them.