Friday, October 29, 2010

More interactivity.

Fire now fires 5 times as many particles, with a small, random spread. This adds more volume to the flame. Still not 100% happy with it, but it will do for now. Might need more/different particle frames, etc.
Added ability to change weapons via mouse wheel. Air weapon is now split into 2 weapons: Push and Pull. The logical (intuitive?) XBox weapon buttons are Y=Push(because its the furtherest from the player), A=Pull(because its the closest), X=Ice (because its blue) and B=Fire(because its red). Makes sense to me.
Push is already coded. Pull is going to take some thought. Push pushes something 1 square away to be 2 squares, so maybe pull can have the opposite effect (pull something from 2 squares to 1 square...and/or collect collectibles one square away).
I am hoping to work on doors, trigger points (which cause events like opening doors, dialogs, and change of level.), maybe even using things (doors, terminals, switches, etc) later today.

Wednesday, October 27, 2010

The first screenshot

I have spent a few days learning and wrestling with point sprites. Amazing things. Basically, they are billboards (2D polygons that always face the camera)...and you only have to specify the 3D position of its centre and the texture. Upside is that you can have thousands of them using HLSL (processed by GPU). Downside is that all the variables like TEXCOORDn, etc get trashed by them, so you can't, say, send an UV offset to animate. I found a way around that by using multiple calls. Could just use quads, I know, but this works.
The above screenshot shows the current <b>fail</b> graphics. Just place holders, really, as I am more concerned with the interactivity/engine at the moment, than pretty graphics and level design. Anyway, it shows a simple fire effect using point sprites. I am changing the color from blue to white to yellow to red, so it looks like gas being ignited. Quite a cheap and effective effect. I may randomise the angle slightly to give a widening flame.
EDIT: Fireballs now are blocked by walls/actors and can injure/kill actors. It is starting to feel like a game, now. I am not quite sure how to handle death in the game ie Do the actors lay on the ground, do they raise up to the heavens (or sink down below) or do they flash and disappear ? For the moment, they are just being rotated to look like they are laying down.
As for my site, gameinfonline.com, well, my host (freehostia) is playing silly buggers with an upgrade. I may move this project diary to a blog or facebook (vomit) or something. Would be nice to get feedback, etc.

Thursday, October 21, 2010

The story thus far...

A few months back, I discovered Microsoft's XNA, which is a programming framework which sits on top of DirectX and .NET to facilitate the writing of games for both Windows and the XBox360. Let me just say that M$ is hereby forgiven for all past and future sins for releasing XNA (so long as they continue to support and update it). I am using XNA 3.1, at time of writing XNA4.0 is the latest, but that is geared towards Windows Phone 7.

I first started working on a 3rd person version of Wolf3D, using the same maps, textures, etc, just to learn XNA and model making, etc. It got so far along, I simply had to convert it away from iD's IP, and make a releasable game out of it.
DEMII is a single player, third person, old school dungeon crawler/shooter.
I started the project on 1-Oct-10. With the view to having a playable game by the end of Oct-10, and a releasable one by the end of Nov-10. I am hoping to release through XBoxLive-IndieGames and/or Steam. Both have a bit of an approval process. XBLIG is peer reviewed and practicaly everything gets through (there's a bunch of "games" that just turn the controller into a vibrator, FFS). Steam, on the other hand, is privatly reviewed my Steam and approval is based on quality. There are a few XNA games already out on Steam, so I am hopefull. Anyways, I have to write the bloody thing first :)
So far, I have coded:

  • 3rd person camera. I have controls to reposition until I get confortable with where I want it.
  • Map editor. Made this using VB.NET. Which is VB in name only, IMO, as most of the "good stuff" of VB1-6 has been dropped. I had to bodge control arrays which ate up some time. grrr....
  • XBox360 Controlls. Had a heck of a time trying to buy a wired controller, so I could use it with Windows :)
  • Player Movement
  • Mesh rotation. Both from map and auto rotation for objects that can be picked up.
I have only made basic models, so far, as I don't want too get bogged down in the graphics. I want to have a playable game, and then worry out the art side of things. Animation, however will be a pressing issue as XNA doesn't natively support mesh animation. there is a framework library available, but I haven't been successfull in using it. I may have to write my own.
I am using strictly nothing but freeware tools : XNAVisual Studio 2008 - Express Edition (I know 2010 is available, but XNA doesnt intigrate into 2010, yet), Deled3D CE (awesome freeware Model editor...although the UV Editor is fail and the .X exporter doesn't export animations. Yes, I am aware of Blender, but the learing curve on that is incredible!), and LithUnwrap (an excelent UV Editor).
The game itself will be aimed at younger players. More Mario64/Zelda, than GTA. Which allows for more fun/humor than realism.
DEMII is a young girl, who wakes up in a lab, with no memory of who or what she is (as she gets her memory wiped every night). She is taken through various "test" rooms. In which, she learns to use her powers to solve puzzles. I have modelled her powers off a combination of the elemental powers and the abilities of the old classic DungeonMaster (Ninja=throwing, Wizard=Magic, Priest=Healing, Fighter=Melee) and the Jedi powers in JediKnight:JediAcademy. At this point, her powers are...
  • Fire = Shoot fireballs. Weak, but ranged.
  • Air = Push and pull things.
  • Ice = Freeze things.
  • Metal = Melee. Short range, but big damage.
Fire, air and ice will be charged by crystals. Metal will be unlimited. It is set in modern day, and DEMII's ultimate goal is to escape the labs, solve the problems of the islanders who live on the same island as the lab, and then defeat the mad scientist who built her.