Friday, 4 September 2009

20 years to be an accomplished programmer... I still have a chance!

Hiya peepz, and welcome to my new blog.

To be honest, I've never been a major fan of blogs, in fact, I've never truely liked bobe, spacebook or myface social sites, and I've never experienced the new phenomenon called Twatter, and can honestly say I've never been twatted online! :)

Crap old jokes aside, I thought I'd give the blogging a whirl, as you may of seen in my 'about me' section, I like a drop of programming, more notably, game programming.

A bit of background

I've been programming computers for as long as I can remember, I started on the Amstrad CPC 464 when I was about 9, using Locomotive BASIC. First up when I got the machine was to crank up the Amsoft games (Fruit Machine, Harrier Attack and Oh Mummy!), though, after a while, I started to delve into the CPC manual and my thirst of logic began!

I programmed using the Amstrad up until the early 90's, I also used to do a drop on the Archimedes at school and fumbled with the odd BBC Micro. Though, I was becoming of age and inevitably, I discovered Merrydowne Cider and the magical effects of alcohol (ie, wobbling about like an idiot, being sick and overwhelming thirsts in the mornings), sadly, programming and logic took a backseat for me and till I was 18, it was knocky about the streets time and 8 cans of Carling on a Friday/Saturday down by the river.. 18+, it was the pub! ;)

When I was 23, my younger brother Neil came into the house with a shiney new notebook, being a bit of an auld hand with computers, I took an immediate interest in it, I was pretty impressed with Windows XP, watched a few DVD's and had a quick play on some games... I couldnt get off the thing... But there was something missing... I couldnt really place it, but even though the whole shebang was great, it was still lacking.

Then, I bought a copy of PC Format and noted in the contents a review of a programming language called BlitzBasic, so I installed it from the cover disc and had a rummage.

Like a sonic boom, waves of old programming logic came flooding back from the depths of my mind and before I knew it, I had MS Paint open making graphics, coding my head off, looking on the interwebnetty on how to go about something and at around 4am in the morning, I had a game up on the screen... It was called Smoker Choker and was loosely based on the fact that I used to get whined at off my above younger brother about smoking in the bedroom, so, initally, the game revolved around shooting ciggies at him... I felt a great sense of achievement when I eventually hit the hay and from then on, just under nine years later, programming has been a very big part of my life... And I'll never let myself lose it again.

So, after all these years, what have I done... Well, initially, I was very much into game development, not great titles, but little bits of games, based around ones I played on my dear old Amstrad. My downfall was graphics, I couldnt draw an egg on a computer, any images I did muster where a bit pants and as such, it was very dishearting on my part as I'd have all these great ideas for a game, and I couldnt realise them. I eventually turned to taking them from other released games, obviously, due to licensing and copyright, I couldnt release any to the public, I have a lot of respect for other authors/publishers and their intellectual property, it wouldnt of been right... But for my own projects, little tit-bits of games or delving into new programming avenues, I dont think I harmed anyone in that respect... One of my biggest private projects was Sonic The Hedgehog running around in Mario Bros, it was a blast! :D

I eventually decided to explore the world of MS Windows and look into the Win32 API, I used a BlitzBasic language called BlitzPlus for this, using its userlibs feature... But, even though BlitzPlus is quite a capable language for what it does (game dev), it lacks in certian features to actually explore Win32 properly, I decided to pick up the C++ baton and use that...

Four years passed in C++ land, obviously, I still programmed using Blitz, but what a trip, I explored Win32 to such an extent that Windows programming is second nature in that respect... Looking for other places to visit, I decided to delve into the world of DirectX, naturally, game/graphical programming was in my blood, but, DirectX is a very complex bit of API (Application Programming Interface), and I didnt know if I was up for the job... I had a pop anyway, and after a couple months, I came out of the other side with my very own DirectX 9 2D library, called DX9 Plus (, I currently converted it to a Blitz userlib (As previous Blitz programming languages are stuck at DirectX 7, which is technically still a DLL (Dynamic-link library), but there are a few features missing since my original code (e.g. OpenAL and Ogg-Vorbis). This took a hell of a lot out of me, though, I'm glad I explored that specific API as it taught me a great deal of what happens at a lower-level, in respect of using languages that come pre-bundled with DirectX/OpenGL and all the problems authors of said languages have to contend with when designing their graphic commands.

That was pure coding, no images or anything and I was in heaven, it really pushed me coding wise, but, games was where I was at and I still needed a game where I would be happy programming it, as well as coping with media... Toughy when you've got the artistic skill of a pissed bat! ;)

I've also played around with C# and will admit, its probably the greatest language in the world ever... Well, not just C# on its own, but, when you have the monster .NET Framework alongside it, and XNA... its just sheer awesome... A real programmers wet dream, I have real plans with future game dev with C# and XNA, though, that'll be blogged in the future! :)

Back to the dev

Last year, I had an idea of a game, well, a game based on two games combined, Scrabble and Columns... Nice mix you may think, but, it was one of them idea's that just blew up in my head and I quickly fired up BlitzMax and proceeded to bang out a little prototype to see how it worked. It felt like it was okay, I wasnt overly keen on knocking a spelling game out, but after doing a little bit of research, it was one of them "one of a kind'ers" so it may be worth it. I sorta planned the game out in my head, how it was going to feel theme wise and Word(ish) was born:-

I give myself an option with this... Either learn how to draw images, or wrap the whole lot in. So, with a little help and a nudge from they now gone SyntaxBomb community, I ventured into Photoshop and tweaked and, erm, twibbled to come up with Word(ish) as you see above.

Sadly, I never actually got to finish the game, due to losing the source in a cruel way... First up, my Toshiba laptop died, which wasnt really the problem as I backed up the source to an external harddrive, but, me being a complete tool, when I went to plonk the backup onto my desktop, I accidently plugged in the 20v laptop adaptor into the 12v external HD adaptor socket and in a blink of an eye, it died!!!

That too was a lot of work, and I was really proud on how it was going, yes, the images above may look a little 'woodern', but all I had to do was add player profiles and a little bit of polish and I was laughing, yet, it turned out I wasnt laughing and was bloody furious with myself! :D

Still, I have an old binary if you would like a play, remember, it isnt complete, but should show you what I was after and what not!

Keys and Joypads are redefinable, so I'll not go into the controls, but, I hope you enjoy a quick spin on Word(ish), it was actually a fun project, again, I learnt a lot from it, but, it was a good chunk of programming wasted... Never mind though... Onwards and upwards, as they say when your driving towards Towlaw! :)

2009, and all is... going well actually

After I blew Word(ish) up, I decided to have a little break, do something else, that 'else' was having a crack at PHP. I didnt really enjoy using Notepad for coding, I like a nice IDE (Intergrated Development Enviroment) when I'm programming, I like syntax highlighting (Formatting to you and me), quickly pressing a 'build and run' button etc etc... So I made my own custom PHP editor, codenamed it... wait for it... Sanitry Pad! :D

I eventually changed the name to WIDE, it was a cool little project, but, it wasnt really interesting enough to keep me going an after I enabled formatting on a handful of web based languages such as Javascript and what not, and after I proclaimed it to be version 1.0, it just, fizzled out!

On another note, I had a bit of a midlife crisis and bought myself a dartboard, screwed it to the wall in the garage and for a few weeks, practiced nothing but darts. I was a happy little bunny but I still needed to do some programming, so, I decided to combine my new found hobby with my old one and build myself a little counting application I could use in the garage on my laptop, well, I actually ran out of chalk and couldnt be bothered to go to the shops for more! :)

Anyway, I knocked this out, basically, at the time, you moved the cursor (Here, its a dart), click your beds and it would tally your score etc etc

Note: Dartboard image was kindly provided by Dave Kirk

It was cool, but I decided it was getting a bit crap playing on my Jack Jones, I could chuck some computer players into the pan too, which I did, and though and behold, my newest game was born... Nags Heed Darts:-

Those screenies are a little old now, theres some subtle changes, more notably, I've changed the GUI in the menu screen from those god awful brown(ish) things I made for quickness, to a set provided by TaskMasters ifsoGUI BlitzMax module:

The newest screenie I have (Which will show the new GUI) is the game select screen:-

As you can see, theres a few options there... nothing has been done regarding Two Players, but at this moment, Player One wise... The tournament section is there, but I need to build a few screens to knit it all together. The 'Practice' section is done, it basically is just there so you can learn to throw a dart in the game, the 'PC Match' game does work, but I still need to build a screen regarding computer opponent selection and the 'Real Match' section does indeed work, because that was the basis of the game, but it needs a little bit of a tinker and I havent linked to that just yet from the button there.

Bonuses are going to be unlocked as you progress through the tournament, these are dart based mini games, these should be easily coded within the engine, so they will probably be the last thing I'll wrap up! :)

So, there we are... My first blog, its a bloody long one, others will be shorter than this, as they are going to be based around improvements, news and additional info on Nags Heed Darts...

Happy times! ;)


No comments:

Post a Comment