Wednesday, 16 January 2013

Astronuts


Games, games, games (or silly games as my wife calls them).  For me they come and go, and usually there's a single game that occupies my attention for a while and then one day it's forgotten.  There are constants that stay longer, floating into the background (like Civilzation and Planetside) but I usually have a single game in focus.

Lately it's been Kernal Space Program .  Take control of a space program, build rockets and spacecraft, land on the moons and planets.  Currently in early alpha it's not a finished product by any means but it works and is an interesting little sandbox game.  You have to set your own goals and find your own entertainment within it but like lego it enables that pretty well.  It's impressive, and the fan support (and by extension fan mods) are extensive.  It's a game I would have been proud to make.


3..2..1.. make rocket go now !

So why didn't I ?  Why did this little gem come out of a group in (I think) Mexico City instead of Bridgwater  ?  It's not like the idea was new (Buzz Aldrins Race Into Space) and it's an idea that's ocurred to me before.  Details would have differed and I'd probably have skimped on the physics and produced something that looked nothing like this. But I produced no game at al.

I could argue that games take teams or that I dont have the time.  But the truth is I probably could have done it.  It's easier than ever these days and I've definitely got the programming experience.to pull it off.
The first Kerbal in space, the legendary Jebediah Kerbal

I think I lack perseverance in personal projects.  I've started many many and they litter my past like tiny little sins.  And lately this knowledge this is keeping me from even starting a new one.

Perhaps the easiest course is to go back to the most recently started one and try to finish it.  If I do, I'll kill two birds and post updates here.

Or perhaps this blog will get no updates for another four years.  Hello 2017 !
Have I really not updated this since 2009 ?  Yipes.

More effort required !

Thursday, 8 October 2009

Micro Men

"Micro Men" BBC4 , last night. It'll probably be repeated ad nasuem and its on the IPlayer. Watch it, if you grew up on 1980s 8 bit computing. The story of Sinclair Research vs, Acorn Computers, a battle I always thought was Sinclair vs. Commodore. But that was my view from the 3rd year comprehensive trenches.

This docu-drama (ugh) does warn that some scenes are inventive for narrative purposes, and I suspect that the potrayal of ol' Uncle Clive was exagerated. But at one point he's harangued by his advisers to concentrate on the Spectrum, not the QL. They mention the size of the game market and the docudrama Clive turns "Oh yes, Clive Sinclair, the man who gave the world Jet Set £@@!ing Willy." as he tries to push computing forward.

He may or may not have said that. He may or may not have felt that or continue to do so. But still, Sir Clive Sinclair, in the million to one chance you are reading this: be proud.

Yes, we grew up playing Jet Set Willy, Knight Lore and thousands, thousands of others. But we also learnt programming. We learnt the tricks and methods that still serve to this day. We learnt squeeze a lot out of a little ( and how many mobile app developers value that experience today ?). My parents were workers, working class down to the bone. We could never have afforded a £500 computer, they could barely afford a ZX81, or the Spectrum upgrade a year later. We had to sell that ZX81 to buy the spectrum . But they managed, and so I learnt. I played games, and I love them. I still do , but through it all I learnt as well.

Today I'm a Software Developer at a large company. There are thousands, maybe millions of us out there who cut our teeth on Sinclair tech. Without that where would we all be today? All our software would come from the states, British software would hardly exist. Sir Clive Sinclair gave the word much more, so much more than Jet Set Willy.

He gave the British Software Industry its workers.

He gave the world the British Geek.

He gave the world the man I am today.

Be proud Sir Clive, be very proud.

Tuesday, 18 August 2009

A Loud Argument

There are always casualties in war Lister. If there wasn't it would just be loud argument with lots of shoving.


So, PERCOM, the Battlestar character utility, is pretty much finished ! Thanks to unit testing I've got the Cortex trait system in place, and a nice dialog for selecting a trait with a given dice value. The skills, traits and equipment has been changed over, and the currency units have gone from credits to cubits. The only leftover is the archetypes . They wont take long, all I really need are :

  • Pilot
  • Marine
  • Commander
  • Technician
  • Medic
  • Scientist
  • Civilian


And the civilian one is going to be unbiased, all skills and attributes will have equal weighting. So aside from the archetypes, and perhaps finding a better name (I hate PERCOM) its done. Perhaps I'll call it recruiter.....

The next issue I want to face is this : Combat with more than a couple NPCs. This gets really bogged down really easily. A 10 vs 10 fight really gets a lot of dice rolling and slows down the combat a lot. Previously I've mitigated this where I can by having fewer but tougher opponents.

But the upcoming campaign I'll be running involves a party of cadets and training officers. Thats a lot of potential NPC's, and a lot of dice rolling that is out of player control. This is distracting and the GM often feels the need to rush this so the players don't feel excluded.

How am I going to fix this problem ? Well, thinking on it, I have two options.

Mathematical Option
Use some maths so the NPC combat boils down to 1 or two dice rolls. Ideally two, with the PC friendly lot get one roll that the PCs can make and the hostiles one roll that GM makes. A little table (probably a spreadsheet) will distribute wounds to the losing roll, depending on the roll difference.

The Software Option
All the NPCs (even Cylon skin jobs) are held in data files from PERCOM. I could write another program that reads all those characters in and runs the NPC side of combat. Each character would be player or hostile flagged, and have a selection mechanism for picking their immediate target. It would track wounds, stun and have and handle initiative ordering. You would need to be able to add the players but mark them as players.

You hit a "start round" button and each NPC makes an attack or the action lined up by the GM in the software. When a player takes an action it can pause and ask for the dice roll. It would need to let the GM just skip the action if something was happening beyond its ability to track. It would also need adjustments to wounds and characters on the fly. Player attacks would have to be entered manually, of course.

Essentially it would just be a character spreadsheet, with macros. The disadvantage is that the NPC actions would just become the GM reading "Fred aims at the third cylon, fires, and scores a glancing blow." before clicking next.

So Which One?
I favour the software solution, but then it sounds something cool to write. I can't see how to realisticly shorten the combat with the mathematical solution without ending up with arbitrary values and results that seem beyond control.

Its more than a Loud Argument isn't it ?

Tuesday, 11 August 2009

Hooray for Unit Testing - Part Two

Following on from my last post about refactoring my character program from Serenity RGP to Galactica, I can now report that last night I finished fixing all the unit tests. So when I ran the program did it work or crash out badly? How comprehensive was my unit test coverage?



In theory , with all the tests fixed it should start. I should see Traits appearing as Dice values rather than Major or Minor. I timidly started the app, bracing myself for the biggest stack trace I'd ever seen.....



And it worked. Just like that, started up and displayed a character, with two complications (a D4 and a D2) and one D6 Asset. Wow, I hadn't expected that . Hoped for, but not expected.



Then I tried to add a new Trait and it bombed. Oh well, close enough to be pleased with. I was planning to refactor the GUI anyway, listing a bunch of Traits to choose from as a straight list , with each dice version of a trait as a seperate choice. I want a list of traits with each dice in a column to the right. Click on the dice for the trait you want.



Also on the boned list were the archetypes. This was a system where you could set up certain types of character (Fighter, Politician, Toilet Cleaner) and each archetype had weightings to favour or disfavour attributes and skills. Since the skills set and trait list were changed between systems I've dumped the old archetypes for now, I'll either retranslate them from Serenity or just write them again.



Now, should I look at the non-rectangular windows effects in java 6 and see if I can get the app to work with cut off corners?

Tuesday, 4 August 2009

Hooray for Unit Testing

I'm faced with doing asome NPC's for a Battlestar Galactica campaign thats coming up in my local RPG group. Now the systems pretty similar to the Serenity one, both being different versions of the Cortex RPG system. The big difference is in Traits, which in serenity can be Minor or Major in Serenity now can be a Dice from D2 to D20.

For example :

"Allure (minor)" becomes "Allure (D2/D4)"
"Dead Broke (minor or major)" becomes "Broke (D4-D12)"


I've got an NPC program for Serenity which I wrote and evolved over two campaigns and I'm reworking that to work with Galactica. My Trait object's go from being having an enum of Major Minor and Both, to having a list of dice types. This just means removing a field and replacing it with a List, and correcting all the ensuing errors that occur, followed by some UI work. Nothing major.

But can I be sure that something subtle isn't broke, some small corner of the app that shall remain forever buggered? No, you never can be. But the unit testing coverage gives me a lot more confidence that I would have had without it. I'm not even through fixing all the errors but I know that the three major parts of the app that touch traits now work with the the dice list, and I haven't even run it yet.

Unit testing lowers refactoring time. Hooray for unit testing !

Tuesday, 28 July 2009

Juiced Louse About This House

Juiced2 on the xbox360, another one of those racing games where you get to put stickers, extra plastic and funny lights on your car. It was a Christmas present from a friend, and sadly I've not played it for a while , other games getting in the way.

But last night I got the racing itch, so having applied so powder and fired up the xbox I started again. It's usual racing game fare, start with some low-end car that you've just taken the L plates off and work your way up. But surprise surprise the second level cars include.... MR2 GTS. Red, and looking just like the one in my driveway, albeit with better paint and less polygons.

Its a strange feeling, driving something on screen like a maniac that I drive steadily and carefully to work everyday. I'm pretty sure the real MR2 doesn't slide that easily but I'm not prepared to find out. I'm also pretty sure the K&N induction system isn't £350, its closer to £75. Maybe the virtual mechanics charge an extra £250?

It all makes me think - how do you afford buy and kit out a sports car when you're under 25 (probably under 21) and not old enough to grow a beard? Wheres the juiced3 where all the men are fat balding and driving mid life crises cars and all the "babes" have 3 kids in tow?

Ah, the unforanate colision of games and reality. Lets hope it never gets here !