Monday, 28 September 2009

First set of playtest changes made

Aah, how lovely to see you!  SPFT has been in playtest for about 4 days, and we had some good, useful feedback.  As a result, I've been polishing and fixing today, and I've got quite a lot done:


  • The game now starts with you docked at the station so you can find your bearings
  • The game also starts with a walkthrough of the computer systems.  Once you've been through this, you get your docking licence and can leave the station.  You then need to kill 5 hostiles to get your hyperspace licence.
  • NEW mission types enabled
  • The game initialisation and system generation is now multithreaded, so I can display a loading animation.  Nice!
  • The main menu is now fully SDTV-friendly.  Everything fits just nicely.
  • The direction finder arrow now fades out when your target is close to the aiming reticle.  This was a great idea from another community member and it took mere seconds to implement.  Looks great!
  • Library audio is now removed, only the music for the game is played, unless the user goes to the guide and chooses their own music, in which case the guide media player takes control.
  • When  you return to the main menu (when you either die, exit via the pause menu, or leave the handbook), the menu now responds correctly.
Not bad for a day's work.  I have a few more tweaks to make tomorrow, but for now I'm off to playtest and peer review a couple of games which I like the sound of.  There are interesting things going on over at XNA HQ just now - following the release of a few really shitty "video screen savers" which didn't have a trial mode, MS has ruled that having a trial is essential, and this kind of app is not suitable for the channel.  Joy of joys, this is a great decision by Microsoft.  It will really tighten the screw on these opportunist, lazy, unimaginative developers who seem to plague Indie Games.  People are starting to catch on to the idea that if you hate a game you can simply refuse to pass it.  If a game is in peer review for around 30 days and hasn't passed, it fails automatically.  This may be tough on people who have multi-language games in review, but the plus side is that that piles of shit we've seen get through will have a much harder time if too few reviewers look at them within the 30 day limit.  I'm all for it.

I have a deep contempt for these script kiddies who wander over to the XNA site, join up, nail a "game" together and then plot it directly into peer review, having made exactly 0 posts to the community forums.  I know I'm not the perfect community member, I don't test or review anywhere near enough and I should engage in the forums more than I do, but everyone's life is made harder by having ill-conceived, poorly executed and badly tested games getting through to release.  

Good games have a harder time getting noticed, the channel's reputation takes more hits from a bad game than it gets plus points for good ones, and people who have genuinely worked hard to create interesting, playable and RELIABLE games get thoroughly pissed off.  I don't expect this new guidance from MS regarding video apps and trial-free apps to change the world overnight, but it's certainly a step in the right direction.  Now I like the idea of having lots of freedom to write and publish all kinds of weird ideas to the Xbox marketplace,  and so do lots of other devs.  But people developing product for the channel must have awareness of the impact of their product on everyone else who's trying to ship units and make their dev costs back - never mind make enough to go full-time pro.  I'm not saying that anyone owes me anything, or that it's impossible to have a hit on Indie Games (IMAGWZ has been a runaway sucess for example) but the task is made all the more difficult by having to compete with 1,001 sex toy slide-show breakout tower defence clones.  One cause of this glut of shite is the assumption from devs that if you've got even close to writing something which looks roughly like a game, you HAVE to publish it.  I've got 6 or 7 projects which are playable, but I've not put them to market or even playtest because they're either not good enough or I didn't have the time, energy or imagination to take them to the next step of being a good, playable, enjoyable, robust gaming experience.  Some of the absolute arse which has seeped out onto the marketplace channel are cringeworthy and I just can't imagine being so immune self-criticism and pride that I could think of letting other people see them.  

So I'm going to go and playtest a few titles, and I'll tell you all about them.  See you in a bit...


Tuesday, 22 September 2009

Ooh la la, boxart!


Charlotta finished the game boxart today. We're now working on the ship handbook (well, she is anyway, I'm working on a new mission type and writing this and generally wasting time) so when this batch of work is done (tomorrow PM I expect) we'll be off to play test. So I'd better find some time to start looking at other people's work too.


Only days to go now...

Firstly, a great big birthday kiss to Elite - the game is 25 years old today. Only a stone could have failed to notice the influence Elite has had on me, and on Space Pirates in particular. One of only a handful of genuinely ground-breaking games, Elite's popularity has endured through the years, to the point where many folk download emulators just to play this one game. The controls are tough, there are bugs, and seeing what's going on can be a nightmare, but please give it a go, even if it's only to say you have.

And now on to the news. We're only days away from first play test now - the front end menu is finally looking like the front of a game rather than a tech demo, which is nice. Here are some screen shots, which also show some of the new models that are in the game. I did dun them myself!




Here's a fun little ship, called The Turtle. This is a little more nimble than the old "default" enemy ship (which is still in the game), but it's collision profile in a dogfight is slightly bigger. Looks great in deep space when you strafe it with combat lasers.


I was starting to think I wouldn't be able to make chunky ships that looked OK as well as tipping a nod to some of the older 3D games which have inspired Space Pirates, and then The Tub came along. Just a load of old trapezoids and a funky metallic, retro texture and there you have it.
Aah, The Wasp. Very vast and nimble, it can speed past you in a dogfight and is the toughest of the enemies to hit. Another great fun model, and the glowing eyes look nice in the rear-view camera as it buzzes toward you.
Watch out, it's the rozzers! I really REALLY like this model. It's simple, looks great blasting pirates away, and looks businesslike. No messing from these guys. In, bang, out. The police don't carry missiles, and you can't lock missiles on them, so if you get in trouble it's a pretty even match. They're good shots too.

So that's the main menu almost done. I've added a music management game component which interrogates all available music libraries on the players 360 as well as the in-game music, so in-game you can have any combination of available tunes - game, xbox hard drive, and media connect. This will be a configurable option by this time tomorrow which loads pre-menu so you can even choose not to have the nice, gentle looping menu chord sequence (lifted from the main theme). When you're in free space the track details are shown on-screen in top right. Even album art works if you've got it in your library!

Charlotta's working on the box art, and the logo for that will also appear on the menu screen. That aside I've got to get the how-to-play screens, ship handbook and upgrade info screens knocked together and we're good to go to test. And that means also starting the PR push for the game. Gulp.

Anyways it's twenty past one in the morning and I promised myself I wouldn't have a late one tonight, so off I go, up the wooden hill...


Tuesday, 15 September 2009

But first, the news...

Shut the door old son, you're making one hell of a draught!

First really chilly day this side of the summer, and I'm sitting down in the code dungeon with a jumper on. Bummer. On the plus side though, I've got the email-based mission engine in and running and tested, along with some tweaks to the file save mechanism, and a few new models - 4 new ships and a new cargo crate model. A bit of variety in the enemy craft is a really nice addition, and each model has it's own handling characteristics. Lovely.

Anyway this is only a quick update tonight, I'm trying to fix my body clock so I'd better get off to bed soon. I've tidied up the enemy ship AI (thank the good lord for enumerators, they make logic tracing so much easier) and re-balanced the mission reward params so you don't get 500,000 a mission any more...mind you I saved a few games before I made that change, just for testing you understand ;0)

I've got some placeholder images for the "between systems" hyperspace transitions with handy hints and tips. Going to brief Charlotta tomorrow on these items, and give her some source images and text to work up in to pretty slides. Size in this instance doesn't matter because the slides are smart-scaled for the output resolution, so they'll look the same size for SDTV, HDTV and the various VGA modes the Xbox supports. Everything does that now, and I've run numerous tests with the many monitors, TVs and projectors lying about Mistry Towers. You can happily play the game for hours, jumping around between systems and switching between trade, combat and missions. Just what we wanted.

Irritatingly (for me), I'd forgotten all about awardments. These are like Achievements in AAA and LIVE! Arcade games, but don't reflect on the players Gamerscore or anything (due to the limitations on the XNA framework - we don't have access to those areas of the Xbox API). I'll add an engine tomorrow which awards "medals" for kills, missions, system visits, rank advances and so on, and you'll be able to see your achievements on the status and (soon-to-be-added) peer-to-peer scoreboard. The network code is solidifying in my mind as we speak and will be in and working for the weekend. Honest guv'nor!

Anyway as I said this is just a quick post, no images tonight. I'll post some of the new ships tomorrow when I take a break.

Pip pip!

Saturday, 5 September 2009

Inattantive dev says sorry for lack of updates

Yea, I'm sorry. I've been up to my nostrils here, and struggling against some coder's block which struck for a few days. I think I'm more or less over it now though, and we've made some amazing progress. Considering the dev time so far, this is insane. The feature list now runs as follows:

AI ships (including police and racers) working correctly, enemy weapons balanced to allow a chance of a good fight player vs AI, and AI vs AI;

Market dynamics working correctly according to system tech and shipping levels;

The generated starsystems are totally stable, and once they are created on first execution they're saved to a file. Subsequent runs use the file rather than regenerating the whole sector;

The player has 5 save and load slots which work beautifuly (thanks to Nick Gravlyn's EasyStorage, available on CodePlex);

Taxi, courier and hit missions now work well (execpt that the time limits get screwed on file load but this is a short fix which should be done tonight);

Maps all working well, including a new map mode showing the destination on missions;

Collision detection getting better - still needs a little tweak but almost there;

Upgrades 90% complete - just the cloaking device to do but that's easy as pie;

Flight controls now bedded in and easy to get to grips with.

There's only 2 elements left to code - additional email based missions and network play. Most of the hard work for netplay has been done by choosing the right structures and behaviours early on. The missions are going to be a bit more of a challenge, since they form such an important part of the game. Actually dropping the code in is maybe 2 days work, but getting the variables right so that the game flows right will take a bit longer. Once these two features are in, we're off to peer review for a few weeks to see what people think of it so far. Here's a little sneaky-do at the game as it stands...


Aaaah, homing missiles. They look great with the blue plasma particle system. Something you can't see in this shot is the extensive colour interpolation on the panel icons and crosshair - they now crossfade gently between colours rather than hard switching. Looks great.
This is a test of a new space station model we're working on. It's a little more elegant than the old version, but still needs more work and texturing. This is all coming later, during playtest though, along with other ship models.
Here's the mission map. As your ranking increases, so does the distance involved with the taxi and courier missions. Pretty soon the standard nav map is too small to see where you're going, and the long-range map doesn't have system names on it. This screen shows your current system (yellow) and target system (red) for the selected job. I'll put in trip distance and fuel costs in the lower panel tomorrow or monday.
This is the mission screen, with Char's new icon(s). They need slight realignment but they layout of all the windows is very nearly done now.
Save and load baby, save and load! The date and time will be centered up in the next polish session. Nice and fast, and she hasn't crashed despite my best efforts.

So, things are moving on at the normal breakneck speed and we're getting closer and closer to a game that's ready for playtesting. I really want to be crashproof before we go that far, so that I can focus on gameplay tweaks rather than code revisions and bug chases and thus far we're going OK. All the list management is "IndexOutOfRange"-proofed, we're running at a pretty constant 30 frames/sec during spaceflight, hyperspace is working very very nicely, and now we just need to tie up all the upgrades and menus with really tasty missions and add "awardments" for kills (shield and engine boosts, extra cash rewards and so on).

Something else that's going to come with the lull during playtest is music, more sound effects and the space station radio stations. A few years ago I wrote and performed 4 hours of radio comedy, which included quite a few parody adverts so I'm going to write maybe 30 or 40 of them to drop between tunes when you're docked. During testing I spend about 4 or 5 minutes docked in a system, so you'll only hear maybe one or two per system. Really looking forward to doing those and getting away from the code for a little while!

Friday, 14 August 2009

A short intermission...

I did say I would have to write a general introduction to Space Pirates, and here we go with it now.

In some far-distant future, in some far-distant part of the galaxy, life bumbles along and makes a mess of things, just like it does here and now. But through progress, development and carefully nurtured rage, lifekind is now equipped with spaceships, orbital trading outposts, and enough weaponary to vaporize the sector 4 times over. You find youself thrust into this exotic and dangerous life when your Great Uncle dies during "trade negotiations" and leaves you a new ship, 1,000 Credits and the oppertunity to spend it as you will. The game begins as you're beamed aboard your new ship in your home star system.

So what are you to do? Well, there are lots of things you can do to earn a little cash for life's finder things. You can become a trader by visiting space stations, buying and selling commodities and zooming off to other systems to buy and sell more, taking advantage of different prices in different systems. You can also engage in combat, and for three reasons: You get bounty for every "hostile" ship you destroy which can add up to thousands of credits in each system. You also get "reputation" points and additions to your legal record for kills. For killing hostiles the law will support you - giving you awards for bumping off a number of pirates - but for destroying other traders or police ships you get punished but you also gain the oppertunity to work for the criminal underworld. Finally, when you destroy a ship, it's cargo is released into space and you can scoop it up in your ship, fly off, and sell it. Nice!

Besides trading and fighting, there are other profitable activities. You can buy a pack of 4 mining droids, and deploy them in space. They'll fly to the nearest asteroid and mine it, ejecting pre-packed crates of ore or heavy elements which you then capture in your ship and sell on. This is profitable but risky - you'll almost certainly be attacked, and other ships will try to grab your crates. Being a fun part of the universe, each star system also features a challenging race around the system against other ships, with 1,000 credits to the winner - with a bonus of 250 credits for each competitor you dispatch on your way round!

There are also a large number (well, an infinite amount in fact) of jobs and missions to try. You can taxi people between star systems, act as a courier for "special" cargo, or turn hitman for the local law enforcement or criminal underground. There are other more complex missions too, such as kidnapping specific people from specific ships and delivering them somewhere, stealing cargo from ships in flight without destroying their ships (using a short-range teleport upgrade, onyl 35,000 credits!), sabotaging shipyards and space stations, and all sorts of other nonsense. Completing missions also boosts your rep. The higher your rep, the bigger and richer the missions available to you.

Finally, there's a military and political element to the game. Each star system is either neutral, or part of one of the three political groups in the sector - The Empire, The Commonwealth and The Collective. These three forces occupy large, contiguous areas of the galaxy and there are numourous battles on the frontiers between them. You can fight as a mercenary in these actions, for huge reward (including a cut of spacestation profit at specific systems, which you collect when you dock at the right station). These battles will be huge, with dreadnaughts and battleships broadsiding eachother, small fighters scrapping in squadrens, and you flitting around with some tasty weaponary (a railgun, proximity mines, and an awe-inspiring Plasma Shroud which spreads over a huge distance, destroying everything in it's path) taking out the enemy. Your influence could lead to one side gaining dominance over the sector, which would mean riches and power beyound your wildest dreams. Or you could encourage chaos in the sector, keeping prices high while war rages on.

Throughout the game, you develop relationships and contacts with other characters, who can help you if you help them - go a good job for the local mobster, and he'll give you information about valuable shipments which may be worth "investigating". Deliver a package for your Great Uncle's laywers and they'll see that you legal status is just the way you want it. This is acheived using you on-board computer which includes an email system, as well as navigation, trading, upgrading and mission functions.

All of this happens in a huge area, featuring more than 4,000 star systems. Your final objective is to gain the highest reputation - and highest or lowest legal status. When this mighty challenge is met, you get 1,000,000 of your finest credits, which opens up the possibility of buying a bigger ship, and warping into an entirely new sector to start all over again...

As things stand at the moment, I think we're about a month away from the first full beta test, which will be carried out on the XNA Creator's Club website. I've got all of the free-space functions up and running solidly (enemy ships, mining, races, hyperspace, combat) and I'm working on the last of the shipboard upgrades (a rail gun, cloaking device and the plasma shroud) and then we're on to the mission engine. That'll be followed by the "war engine" which will manage the tactical swings and battlegrounds. At that point we enable network play, iron out any problems with it, add the options screen and music, and we're good for testing. Doesn't sound like much when I put it like that ;0)

Well, the troublesome software install I was doing on my main dev machine is finished, so I suppose I'd better crack on with this rail gun! I'm looking forward to blowing up some asteroids with it, should be a laugh! mmmmWahaha!

Wednesday, 12 August 2009

Oh my my my, now we're getting pretty close to something like a game old man...

An excellent few days, yet again, and rock solid progress is being made. Where to begin? I'll go in the order that the uploader put my photos - back to front, which is nice.
This bizarre looking screen is the player going into hyperspace. Yep, you heard it right, you can now hyperspace between systems. All 4,000 of them. Enemy ships can also hyperspace out, once they've docked and fueled up. They also sell and buy when they're docked. It's ace. The market moves as they buy and sell, which is just the way we like it. Speaking of trading, the markets are now procedurally adjusted to reflect the technical capability of the system.
Here goes some fella off into hyperspace. Just about kept pace with him. The "warp bubble" effect isn't quite bang on in this image, because I was fiddling with scale matrices trying to get the bubble to deform, like a drifting large soap bubble. I decided I wanted to keep that effect for the plasma shroud effect, so I just need to reset the scale factor to...ohh, I'd say 40ish.
This might look like a dull shot at first, but let me explain. The green arrow in the middle of the screen is pointing directly at the space station. If it were behind me rather than in front, the arrow would be red. Also, if I don't have a station license it won't show up at all, unless I'm in race mode. Not only that but you can toggle it by clicking the left thumbstick. This funky little addition has made flying about 75% simpler and more enjoyable. Good tweak that. I'd been planning to do the colourswap for a while, but I was getting sick of the damned thing getting in the way myself, so I just chucked a simple toggle into the controls code.
Again you may not be too impressed with this screen. But note the new background style. That there skybox, full of galaxies, nebulae and stars is rendered IN GAME from a library of astronomical images, some from my own observatory and some from the Hubble archive. The smaller areas of colour, and more regular small "signpost" images makes complex moves in dogfights much less tough. Now you can really get a grip on how fast and far you've looped round looking for the attacking enemy, or cargo, or whatever.
Finally, the navigation screen. Tomorrow I'm plopping the code in for System Data (a proc-gen potted history of the system), Large Map (showing the entire sector, where you are, where you're going and where you've been before. When this goes live we'll really start to see the scale of the game. I know already how big it is, but I've only seen areas about 20 LY square, which is 1/10,000th of the game, or something around there. And there's every chance that we'll increase the number of systems to around 10,000 in the final build. Blammo! Not sure about that background image - I may use that for the large map and just have a grid system for the main map. The position of any tracking limpets you've deployed will also appear on this screen, telling you what system the enemy is in, how much swag and cash they have and other mission specific details.

Today has largely been a day of tidying up code, improving AI behaviour, cleaning up the nav screen and making sure it all fits on a standard def TV. It does. I've also changed the "blip" colours to make them stand out a little better, although this still needs a little work to make sure we get the right colours. The system name generator is working admirably, as is every other aspect of the sector/system generators. A new type was added to the particle system today too - a nice blue plasma ball effect. I'll add another (green) one for the railgun I'm going to code this week too, which means running collision detection on asteroids because you'll be able to blow the living pooh out of 'em with a railgun. Tasty.

The basic "fly, fight and trade" stuff is pretty much there except the more advanced powerups. Once they're done it's on to the mission engine, which means also adding the following:

"Reply" to an email, asking for work or help;
Military powers distributed through the systems, with frontier systems being very active and violent and having shifting "rulers";

Large-scale battles in frontier systems, which of course you'll be involved with once your ranking is high enough.

Semi-permanent enemy ships, which "stay alive" in other systems;

Once those are in, then the missions can begin. Taxi, courier, hit, meet, hijack, kidnap, harrier, incursion and battle are the main mission types, some of which will be random, some character-driven and some market and battle driven.

I think I might have to implement the game save and load stuff tomorrow too, but that's no great hardship. The same display code as the markets and upgrades will be used to show saved games and free slots (limit of 8 I think), you can mark one as "autosave and load" so that your current game-in-progress file is loaded at game start if you like.

Away from the coding work, Char's making great progress with the alien character graphics and I've written another 2 tunes - one for a gameplay trailer (a weird, 1980s take on The Impossible Dream with a vocoder) and a "Pirate Theme" which is another Kraftwerk pastiche which might replace the existing theme tune, "Fortitude" - but that'll be used somewhere anyway. The idea of a programmatic sound engine is on hold at the moment, mainly because I have to draw the line somewhere ;0)

I must get round to writing a proper intro to the game...