Showing posts with label retro gaming. Show all posts
Showing posts with label retro gaming. Show all posts

Sunday 28 June 2015

Amiga 30 Amsterdam June 2015, my story...

The day finally arrived, who knew what to expect?! Well I don't think anyone went away disappointed.

It's now the day after, I'm sat in a café in central Amsterdam trying my best to recall the events of the day as well as my total experience.  As I'm looking back on photos and memories I have a big smile on my face.



Welcome to The Lighthouse

On arrival opposite the venue was a pop up tent with a few people hanging around, Amiga people.  At this point I was on my own, but quite quickly started chatting to people around me.

I had traveled from the UK and the guy next to me in line had driven from Germany.  We couldn't make sense of what looked like just a regular bar with a small marquee outside.  Was this it?!


This was it!

I'm not going to lie, at the very beginning I was starting to worry as we ALL packed in to what seemed a small bar which had a mini stage in the corner.  Without further ado the event kicked off.

With a quick introduction and a brief hello from our hosts and RJ, we got straight in to it...



We are, your friends!

Interestingly, the day started with the guys behind FriendOS.  As you can imagine the room was packed with hardcore Amiga fans and I don't think half the room was expecting something slightly off topic. So understandably some of them filtered out and chatted at the back of the room.

For me though, I was VERY interested. Literally the day before I had been sat on the train thinking about the current state of operating systems and if anyone could actually make a difference with the world with the concepts behind the original Amiga OS.  Sure there would need to be a lot of work to be done, but it's what I'd been thinking about.


It turns out others have been thinking the same.  FriendOS.  In summary they're creating an OS that is platform agnostic, modular and uses the internet to power everyone.  They are taking the best ideas and parts of existing operating systems, including several fundamental elements from the Amiga and creating a new OS.

You can find out more about their project here: friendos.com  They have also just launched a Kickstarter campaign here: https://www.kickstarter.com/projects/apblix/friend-platform-secure-own-and-unify-your-digital

They presented at the Amiga 30 event because they wanted to get feedback from the Amiga community about what they are doing.  I really liked what I saw, I was able to chat to Arne later in the day, and I'll be getting in touch over the next few days.


Amiga Forever, FOREVER EVER!

Mike from Cloanto, makers of the awesome Amiga Emulator, Amiga Forever http://www.amigaforever.com/ gave us all a free copy of the latest version.  He gave us a run down of this history and where he's taking it.


Amiga Youtubers

These guys were as passionate as anyone else in the room.  I have to admit I didn't know who they were before they started, but as soon as it started I realised I had seen their youtube clips that have become so popular in the Amiga community.


They presented a short video piece which had many many great Amiga memories in.

A-EON

Huge respect to Trevor, I hadn't realised the amount of effort that has been going in to the hardware side of the Amiga (well due to legal complications, the closest thing to an official Amiga) over the last few years.


As we all know the Amiga intellectual property and copyrights situation is a complete mess, a complex mess.  Trevor confirmed this is still the case, but he's trying damn hard to do the best he can for the Amiga, and I take my hat off to you.  http://www.a-eon.com/

David Pleasance - "we don't sell computers, we sell dreams"

I hugely respect David for coming to the event and speaking about the great times and troubles he had at Commodore.  I know a lot of guys almost blame him for the death of the Amiga, so I could sense a little bit of a funny atmosphere about.


I have to say it felt like David had a chance to get a few things off his chest.  I don't know what to believe about the whole business situations, however he came across as very genuine and passion.  It's obvious he did do great things for Commodore and Amiga, direct actions he did like create the Amiga packages is still strongly remembered and talked about today.

The one, the only DAVE HAYNIE!

This guy, THIS GUY is a true Amiga rock'n'roll star.  His stage presence draws you in and still speaks with as much passion today than ever.

The energy in the room went up multiple levels, not just from Dave, but the crowd reciprocating passion.  This wall of love suddenly hit Dave which choked him and brought a couple of tears to his eyes.


What a privileged it was to hear the words from his mouth explaining hardware decisions he made that not only made the Amiga the most amazing home computer that ever existed, but how that then has impacted every personal computer system since.

As the Commodore ship sank, he explained they were working on technology YEARS ahead of it's time which wasn't far off.

Carl Sassenrath

Again it's a joy to hear straight from the horses mouth decisions that were made, why they were made and how they were made.  The Guru Meditation and dynamically loading libraries, stuff we just take for granted toady.


I hadn't fully appreciated that the Amiga team were in the thick of Silicon Valley. I'm so grateful that Carl left Hewlett-Packard to join Amiga :)  It's interesting to hear the connection between the companies, and interaction with Apple and Cray computers.

Dave, Carl & R J take to the stage... "Will swap floppy disk for food"

At this point in the day I had stood in the same place for about 4 hours glued listening to every speaker.  I'm gutted for the bad timing of when the 3 legends all took to the stage and announce that there was only 30 mins left to get lunch.  I hadn't realised the time or the fact lunch was even available.


I was about to pass out so thought I had better get some food inside me, I lost my spot close to the stage and had to hang back listening from afar and eating.  I didn't get to listen to the 3 legends all talking at once, but I'm hoping the video of the talks will all be available soon so that I can watch back through.

For those of us who prepaid for lunch, we were given a special lunch ticket which was actually an original floppy disk :)

Lets get some fresh air!

The sun was shining and it was about time I checked out the tent outside with a few things going on.  A few people had brought their own machines, there were companies selling games, hardware, memorabilia, all sorts!


I had a period where I was able to chat to other Amiga fans and chill out.  I'm not entirely sure what happened on the stage for the rest of the day, but I was in and out listening to different people as well as mingling with others outside.

What I loved about the format was that true legends were so open to talk about their true love, the Amiga to everyone and anyone.

That Eureka moment - This is why the Amiga is the best machine ever made...

RJ Mical - Just how does this guy keep his energy levels SO HIGH?!  I didn't bring anything to sign, I just wanted to approach him, so thank you and ask for a quick photo.  This isn't the RJ way.

As I stood in a line to get my quick moment with RJ, I realised that the Amiga had touched all of us in pretty much the same way.  All of us were saying how the Amiga just had that 'magic' about it, the perfect machine.  For some reason it was just 'different'.  And it occurred to me why the Amiga was so great, just listening to RJ talk.

The reason why it's so great, is because of the amount of love, energy and passion these guys put in to it.  They put so much in you can still feel it so strong 30 years later!!  And believe me they STILL have this amount of love, energy and passion.

RJ stopped every single person, sat them down and asked what the Amiga meant to them and wanted to listen to their story.  I mean, I've seen book signings and celebrities photo opportunities before, but I've never seen anything like this.


Someone had brought an Atari Lynx which was playing ported Amiga games and demos, RJ shouted "THIS IS THE BEST THING I'VE EVER SEEN!!! SEND ME THE ROMS!!"


The guy in front of me had brought the awesome Amiga Book by Bitmap Books to sign, a book which I backed on Kickstarter months earlier.  It was great to hear RJ say how he loved the book so much and that it was beautiful.


So I got my photo opportunity, as I was on my own, I asked for a selfie shot, which RJ thought was hilarious!  As you can see :)


Carl was a little confused with the concept of a selfie as everyone else were getting much more formal shots.


Dave just loved it, I can listen to this guy talk ALL DAY AND ALL NIGHT.

Back in the room

So I was able to catch a couple of guys on the main stage in the afternoon as well as a 20 minute preview of the up and coming film Viva Amiga.  It's an understatement to say I'm looking forward to this, the glimpse of what we saw, this looks like it'll be a very passionate, honest, sad and fun packed documentary.


Jon Hare, a great set.  And everyone was waiting for it... they didn't disappoint...


Thank you and good night - "AMIGA! AMIGA! AMIGA!"

We were left on a high as all the VIPs hit the stage, everyone packed in to say thank you and goodbye.  For those lucky few who bought the VIP extra ticket, they were treated with a ferry trip with the VIPs around Amsterdam.  From the pictures I saw on Twitter, they looked like they had a great time!


All in all and a special thank you...

This weekend has been the first time I've ever done anything like this.  I've realised that over the years I've been an isolated Amiga lover, sure I had mates who had Amigas and played a lot of games.  But seeing the passion and energy levels of all the people this weekend who STILL LOVE the Amiga has made me realise that I've missed out on many years of the Amiga community.

This weekend has now given me the drive to make more time for the Amiga, to properly get in to assembler, but also connect with the Amiga community.

Thank you to Amiga 30 for making it happen, thank you to everyone who traveled the world to be there, you made it awesome.

The Amiga 30 event in Amsterdam was truly fantastic for me, however, my weekend away would have been nothing without meeting 2 awesome guys who I shared most of the experience with.  A couple of Amiga demo sceners from Sweden, Jonas and Alex, who I can now call my friends and hopefully have more adventures in the future together.


I'm so grateful for the sharing of knowledge, experiencing different parts of Amsterdam and the fun we had, thank you guys.

Were you there? Do you wish you were there? Do you think we were insane?  Comment here or get involved on twitter: @rich_lloyd


Friday 26 June 2015

What's happening this weekend? Where am I going? Amsterdam? Why? Amiga 30 Years event?

What an amazing place to have a meet up and who can believe the Amiga is 30 years old?!


I landed in Amsterdam yesterday (Thursday), what a place!!  OK so I've arrived a couple of days early before the Amiga 30 event on Saturday, but I wanted to make the most of travelling out here, get settled in and make sure I'm all set for Saturday.

I've been to Amsterdam a few times now, mainly for business.  I have done some brief exploring around town before, this time I'm on my own and have time to spend properly exploring.

Last night I finally worked out how the Metro / public transport system works which has saved me loads of money, walking and time!

It's Friday morning, I've found a nice café to sit drink strong coffee and quickly write this brief blog post.

Amiga 30 at The Lighthouse this Saturday

Go to the event website here: http://www.amiga30.eu/

Well I have no idea what to expect, honestly, I have no idea.  Sure I love the Amiga, the best machine ever made, but I'm worried I'm not quite as knowledgeable or up to speed with all the history and ins + outs of it's history and functionality.

I'm still very much in the early days of getting my head around and learning Assembler 68k, which I NEED more time for.  I have a lot of awesome memories of a lot of the games, and it amazes me to this day that I'm discovering amazing games that came out that I've never heard of or had an opportunity to play.

Why get flights and hotel for THIS event? Good question.

I guess I just love talking about the Amiga, sharing memories, but also learning new facts and things that happened.  I can't think of a better way to celebrate the 30 year anniversary of the Amiga than to meet up with other Amiga geeks in one of the world's craziest cities! To actually potentially meet and listen to some of the amazing people behind the magic of the Amiga will be worth every penny.

I'm also very excited to meet someone who's been amazing to me, helping me out with assembler, Jonas.  You can find his blog here: http://www.retrocode.se/

So I will try and tweet the day via @rich_lloyd, I'll also aim to write a summary blog post of this weekend.

I'm going with a completely open mind, I don't know who I'm going to meet and don't know what I'll be talking about.  Can't wait!

Comment here or get involved on twitter: @rich_lloyd

Wednesday 28 May 2014

Memories of considering the Commodore Amiga 500...

Back in 1991 our well used Spectrum +2 was fully loved, however it didn't know it would soon be replaced... by the Amiga 500!

International Amiga Day is approaching us so just wanted to share some of my memories of the exciting time of upgrading our family computer.  Comment here or get involved on twitter: @rich_lloyd


We had always been a ZX Spectrum household.  First it was the rubber keys, then the +2.  Long loading times and 16 colours was the norm. A lot of my friends had speccys, so sharing games was frequent, the world of the ZX Spectrum was more than enough. Even the BBC Micro was exciting, mainly exposed to at school this tank like machine was great!

After joining secondary school there was a shake up in my world of computers. The Acorn Archimedes!  This was a machine from the future...

  • It had colours, bright clear screen which displayed crisp clean graphics. 
  • A MOUSE, wow this was science fiction right here. 
  • Disks, the quickest thing I'd ever witnessed
...this era of computing was about to change.  If you'd asked me right there if I wanted an Archimedes I would have said YES... but where are the games?  This amazing machine had the stigma of being an educational beast, not really your full all round home entertainment machine.

The Amiga 500 has entered the building

It was now becoming clear that the well loved ZX Spectrum was starting to fall behind and a new machine was about to replace it.  I remember very clearly going in to Dixons, Salisbury with my Dad to inspect the latest home computers and there it was the Amiga 500.  We asked for a demo of what the machine could do, and I will never forget what we experienced.  

Shadow of the Beast 2




First up was Shadow of the Beast 2.  After seeing the most amazing animation intro to any game of my life, the title screen appeared with the most beautiful music and stunning visuals.  We were instantly sold.  To this day the music is still stuck in my head.

Amiga Workbench




We were then shown the power of a multitasking computer when booting up the Amiga Workbench.  A clock in one window, some classical music being played in another.  There was also the power of desktop publishing (DTP), something we massively take for granted.  Produce documents which could be printed in your own home.  I could see this was ticking all of my Dad's boxes.

Deluxe Paint




Not to forget Deluxe Paint, Photoshop of it's day, this powerful art program was ground breaking.

Touch Me


The novelty of using a mouse was extremely exciting, a completely new way to interact with a computer.  The concept of Drawers (Folders) and Windows of icons was just pure wizardry.  Using the mouse for games was also a crazy thing, it wasn't a joystick!

I remember touching the keys was a joy, how they felt on the finger tips, solid.  This was a REAL keyboard it had Function keys and Amiga keys, WOW.

So it ticked all the boxes, games + art programs for me, desktop publishing + spreadsheets for my Dad. Everyone's a winner!

But before we handed over all our money we visited a friend with an Amiga just to double check it was all it was cracked up to be.  The main demo I remember is...

Puggs In Space




Again, seeing a full on animation on a home computer was mind blowing.  Watching a 'cartoon' on a computer and not a TV.

The Amiga 500 really was something special.  The quality of sound and visuals really were something new and exciting to experience.  The general feeling of power was felt every time you inserted a new disk for the first time.  When playing a game you never new what it was going to be like, but you knew it would be engaging.  You'd always be reassuringly hugged by the Amiga, no matter what.

The Amiga.  Friends forever.

Comment here or get involved on twitter: @rich_lloyd

Mario Twins Shiggity Shiggity Shwa...

A little bit off topic, but recently remembered this Flash animation from quite a number of years ago now.

Didn't matter where you were or who you are, back in the day Nintendo ruled and there was no avoiding Super Mario Bros.  There have been many parodies and jokes over the years, and this one has stuck with me.

Ahh the Mario Twins.  This tickles me



Comment here or get involved on twitter: @rich_lloyd


Friday 7 March 2014

What I really wanted in October 1991... Amiga Computing issue 41 reveals all...

That's right, I recently sat down and browsed through an old Amiga Computing magazine I had... 

Issue 41 to be exact, why issue 41 I hear you not ask?  Well I've kept all the Amiga Format, Amiga Power and Amiga Computing magazines we ever had.  Recently in conversation the game Mega Lo Mania for the Amiga came up.  Turns out issue 41 of Amiga Computing had a review of that very game, and a great review too 93%.
Amiga Computing - Issue 41 - October 1991

As I was browsing... 

I came across one of those ads that advertised every game under the sun, there's plenty of them, this one was for 'Special Reserve'. Before I flicked the page over I realised, as a 12 year old kid, scribbled next to the things I wanted.  So I thought I'd share with you these things...

My wish list October 1991

The Amiga games/software I wanted in alphabetical order:
  • AMOS (Games Creator) - £32.99
    Yes as a 12 year old I was desperate to be a games programmer, I was so naive, but Google didn't exist so didn't know what was out there, this seemed to be the obvious choice.  I owe a lot to AMOS, it spring boarded my programming career! 
  • ELF - £16.49
    I remember now, for some reason the advertising for this game really appealed to me. To this day I've never played it, I must fire it up on my Amiga 1200.  I've got a feeling it had bad reviews.
  • HOLLYWOOD COLLECTION (Robocop, Ghostbusters 2, Indy Jones, Batman Movie) - 19.99
    Of course I wanted this, how awesome are these bunch of games! Never had this collection. Remember playing Robocop and being slightly disappointed. I'm assuming that was Indiana Jones and the last crusade, I played it on other platforms and loved it.  Never played Ghostbusters 2 or Batman Movie.
  • RAINBOW COLLECTION (Bubble Bobble, Rainbow Islands, New Zealand Story) - £13.99
    Bubble Bobble and Rainbow Islands were a MASSIVE favourite on our ZX Spectrum. Remember seeing the vibrant colours on the Amiga version and really wanted to be in those worlds. I did play New Zealand Story in the end, but I don't think it had the same energy as the other 2 games.
OK so there were a couple of accessories I wanted too...

Many joystick options available back in the day, but the Quickshot Maverick was the one I wanted

  • Quickshot 138F Maverick 1 - £12.99
  • Roctec External Drive - £54.99
So I was after an awesome joystick and external floppy drive, never did get a joystick better than a standard Competition Pro, but did get the 2nd floppy drive about a year later.

And then there was the Nintendo Gameboy...

OK so I LOVED my Amiga, it was great then, and it still is today. At the time I never had a Nintendo product, they were top of their game and the Gameboy was so amazing.  This is what I wanted.  After months of my Mum pretending to not understand what a gamethingy was she secretly got me one for Xmas that year.


The Gameboy games I desperately wanted was Formula 1 Race (with four player adaptor) £29.49 and Super Mario Land £19.49.  What I find funny about this selection is that I didn't know ANYONE else with a Gameboy at the time, so no idea why I chose the four way adaptor.  Super Mario Land became a massive favourite of mine, but I never did get or play Formula 1 Race.

Yup they were the top things I wanted.  Nothing too exciting I know, but it's just funny looking back on things that a 12 year old me wanted.  When I look at all the other things on offer at the time, makes me chuckle.

Right I must get back to coding in Amiga Assembler...

Comment here or get involved on twitter: @rich_lloyd


Monday 20 January 2014

Creating an Amiga boot sequence for WHDLoad... MY way!

Slow/cumbersome typing to maximise memory via WHDLoad? Sod that! Time for my OWN quick menu...

All of the following is probably basic stuff for regular Amiga fans, but as it was all new to me I thought maybe I'll share my experience in case it helps others.

Recently realised after regularly typing lots to launch games via WHDLoad and Shell prompt, why I don't I write my own boot sequence?! With my OWN short cut buttons!  Is this even possible?

YES and I've written how I achieved it!

I'll point out now that even though I grew up with the Amiga, and yes tinkered around with coding/Workbench/Shell etc... it has now dawned on me, actually I just touched the surface of how the whole Amiga worked.

Lets get a Hard Drive... oh hello WHDLoad?

Always having had an Amiga 500, when I saw a cheap Amiga 1200 on ebay I couldn't resist getting it. OK it had a bust floppy drive, but that was easily sorted by buying one from Amiga Kit (http://www.amigakit.eu).

No memory extension with just 2Mb RAM and no hard drive.  After a bit of hunting around I purchased a Compact Flash card + connector from ebay to finally hook up my Amiga 1200 with a hard drive.

Took Amiga apart, fitted the Compact Flash connector, turned it on, BAM job done.  It was at this point I was introduced to WHDLoad.  Always having an Amiga 500, floppy disks were THE only way, (sure I bet you can by a CF connector today).  I'm still not sure what a hard drive would have done back in the day, just one big floppy disk? to save games? backups?   But now it turns out games and programs can be stored on the harddrive and launched via WHDLoad.

As my Amiga 1200 has minimal RAM, I can't launch WHDLoad games in Workbench itself, clearly not enough memory, so there is an option when I reboot my machine holding down the left mouse button launches a Shell window prompt.  From here I have to locate the directory on the hard drive of the game I wish to launch then type out a command to launch it.  As Workbench hasn't loaded yet, the memory is ready and waiting to load+launch the game.

Great!
My Amiga 1200 in action! (Chaos Engine)

OK... my poor fingers!

Yes I do miss the Amiga keyboard, yes keyboards have come a long way since.  When I want to simply launch a game, there's actually a lot of typing.  Sometimes I have to double check the folder structure spelling, then locate the directory with the game in it. Then launch it.  Yes, this IS straight forwards stuff, but feels like there's so much typing for such a simple task, especially for games I play over and over again.

A script has got to be quicker than this each time!!

Let me introduce you to S:Startup-Sequence ...

When I reboot my machine and hold down the left mouse button, it interrupts the boot sequence and loads a bare minimum option menu so that memory is available to launch stuff.  Being pretty naive, I thought this was something special with having WHDLoad installed.  It's not.

When I realised there MUST be a script somewhere that controls the boot sequence I started to ask questions on Twitter.  As usual I was kindly pointed in to the right direction, and this is where I met S:Startup-sequence for the first time.

If you open the Shell in WorkBench you can type:

ed S:Startip-sequence

This opens the file in a basic text editor, here you can see each step in the boot up.  After having a quick look around, I found this:

C:Bblank

C:GetMouseInput LOCAL

IF $MouseInput EQ 1
  Unset MouseInput
  C:SetPatch QUIET
  C:Assign >NILL: ENV: RAM:
  C:Assign >NIL: T: RAM:
  C:Execute S:Maxmem-Sequence
  EndCLI >NIL:
EndIF


From this small section of the whole script I could see that there's a check for the left mouse button, if it's pressed then it clears the memory, then executes another script called S:Maxmem-sequence.

Firing up Maxmem-sequence in the text editor, I could see the quick menu that I see when I reboot.  Excellent, I can now see the commands to launch a window with quick options.

LAB Start

C:Requestchoice >ENV:Choice "Maxmem-Sequence""Choose:""RADboot""KGLoad""Reboot""Prompt"

IF $Choice EQ "1"
  Skip RADboot
ENDIF

IF $Choice EQ "2"
  Skip KGLoad
ENDIF

IF $Choice EQ "3"
  Skip Reboot
ENDIF

IF $Choice EQ "0"
  Skip Prompt
ENDIF


Above you can see the script pops up a window with 4 options, there are then some basic IF statements to work out what the user selected. Interestingly the last button has the ID of 0.

Lets make our own script

I had to do some googling regarding Shell commands and running scripts on the Amiga.

This link is a great reference for AmigaDos:
http://winuaehelp.back2roots.org/background/amigados.htm

Scripts can be created by creating an empty text file using the regular text editor, then on each line use the AmigaDos commands just the same as if you were typing in a Shell window.

FACT: After 20+ years of using the command, I've only just realised the the Shell command CD means Change Directory.

Once you have created your script file and saved it, you have to change the protection settings of the file to be able to run it as a script.

So if you have created a new script file called "myscript" in the S: director, then open the Shell window and type:
protect S:myscript RWES
(For info: r=read, w=write, e=execute, d=delete, s=script, p=pure)

From a shell prompt you can now type: myscript and it will run. Great!

I created my own script called RichMenu which prompts the user with a window with options of quick shortcuts to games.  Using what I had just learnt this was easy, then for each option in my script all I have to do is change directory to the games' folder then call WHDLoad, as a quick example this is my script:

LAB Start

C:Requestchoice >ENV:Choice "RichMenu""Choose:""Zool""Chaos Engine"

IF $Choice EQ "1"
  Skip Zool
ENDIF

IF $Choice EQ "0"
  Skip Chaos
ENDIF
LAB Zool
  CD Games1:A500_A600_ETOZGames/Z/Zool
  WHDLoad Zool.slave
  EndCLI >NIL:

LAB Chaos
  CD Games:A500_A600/c/ChaosEngine
  WHDLoad ChaosEngine.slave
  EndCLI >NIL:
Editing the RichMenu script


Great this fires up a window with the options Zool and Chaos Engine, user selects and instantly launches the selected game.   The script works!

IT WORKS!
Now I just need to go back to the original Maxmem-sequence script and add an extra option.  When selected this option just runs RichMenu.  BINGO!

Here's a snippet of the new change:

LAB Start

C:Requestchoice >ENV:Choice "Maxmem-Sequence""Choose:""RADboot""KGLoad""Reboot""Prompt""Rich Menu"

IF $Choice EQ "1"
  Skip RADboot
ENDIF

IF $Choice EQ "2"
  Skip KGLoad
ENDIF

IF $Choice EQ "3"
  Skip Reboot
ENDIF

IF $Choice EQ "4"
  Skip Prompt
ENDIF

IF $Choice EQ "0"
  Skip RichMenu
ENDIF

...

LAB RichMenu
  C:Execute >NIL: S:RichMenu
  EndCLI >NIL:

To summarise

  • S:Startup-sequence checks to see if left mouse button is down.
  • If it's down then clears memory and calls, S:Maxmem-sequence
  • S:Maxmem-sequence has been updated with an extra option called "Rich Menu"
  • When "Rich Menu" is selected it calls the script called RichMenu
  • RichMenu contains shortcut options to popular games I play, when a game is selected, it changes directory to the selected game, then game is launched with WHDLoad
  • Lots of fun had

And that's it!  I hope this makes sense, and someone one day might find it useful!

Comment here or get involved on twitter: @rich_lloyd



Monday 6 January 2014

Porting Nimble Jim over to the OUYA, easy enough? Of course it is!

So last November I got involved with the #SpeccyJam event and entered my game Nimble Jim for Windows, now it's time for the OUYA...

Comment here or get involved on twitter: @rich_lloyd

As you'll know we only had a week to produce a game in the style of a ZX Spectrum game which could run on any platform. Because it's my favourite language I wrote my game in C# and the easiest platform to get up to speed quickly is Windows. Even though it was rushed, I actually designed my code structure to be as generic as possible with the mindset of porting to other platforms. This meant I could actually choose different game engines to display and my main game code wouldn't need to change.

Because of speed and the opportunity to port to multiple platforms I chose XNA/Monogame to render my game. Actually the game I finally submitted was just XNA for Windows. As time was tight I just didn't get a chance to test or submit the game on Android/Linux/OUYA, so stuck with Windows.

That was a few weeks ago now and it's been bugging me that I didn't get a chance to produce for different platforms. So I managed to get a small bit of time over the winter break to have a bit of a play with MonoGame and the different platform options.

Port the game to mobile devices?

From past experience I know it actually takes a bit of time to get the controls just right for mobile devices playing games. People like Orange Pixel have really nailed it with their mobile games, (http://www.orangepixel.net/). Yes I managed to create an Android project and it ran my code on my phone (Samsung Galaxy S4), however at the moment in my code I've only got checks for key presses for the Windows version.

The OUYA

I was one of the original backers for the OUYA KickStarter project, hoping I'd have the console months/weeks ahead of launch to get familiar and start coding for it. OK there were delays and only received it a couple of days before launch day which has left a bitter taste in my mouth. STILL, it's a console, and a console I can easily port code to!!

So I have mixed feelings about the OUYA, but essentially would love to produce a game for the OUYA console. In MonoGame they have a project template for the OUYA, oh wait, I wrote my code using MonoGame :) Just create an OUYA project just like the Android project I thought and away I go... no... there's a few hoops to jump through first!

Hoops?! What hoops?

I'm just going to give you a brief run down of the steps I took to get working on the OUYA, but please visit here: https://devs.ouya.tv/developers/docs/mono-game for more details and will probably be kept up to date with changes.

First of all you need to sign up to be an OUYA Developer on the website: https://devs.ouya.tv/ this registers you and lets you download the latest OUYA Development Kit ODK.

Make sure you download the latest MonoGame build. There are more up to date branches of the code, but I used the latest stable release (MonoGame 3.0.1 for Visual Studio 2010). I can't remember if it's included with MonoGame or part of the ODK, there is a more up to date OUYA library to use with MonoGame, you just open the solution, build, then copy the output to a safe location and reference your project to the new library.

Connect your OUYA to your PC via USB cable, I've seen online a few people have had problems with windows not installing the driver straight away. I'm using Windows 7 and it updated drivers as soon as I plugged it and didn't have any problems.

I did have to update Google USB drivers .inf file with some OUYA information. I also had to add a line of text to the ADB USB .ini file so that the ADB manager could see the OUYA console. I wont go in to detail here, but all the details you need can be found right here: https://devs.ouya.tv/developers/docs/setup

Lastly make sure your OUYA is setup for developer mode in the Advanced Options, this will allow for it to communicate to your PC and deploy apps etc...

Those are the setup steps I took. Back to my Visual Studio project, I found I have to Rebuild my project and then Deploy which sends all the files over to the OUYA and installs them. Then I can hit the Play button and my game almost instantly starts playing on the OUYA!! At the moment this only seems to work in Debug mode, when I try Release mode, it deploys but won't run from Visual Studio. I have to go to my Play menu on the OUYA and I can see my game in the menu options where I can run it.

I hope this has all been useful for you?! I made a quick video giving the overview here:

Comment here or get involved on twitter: @rich_lloyd

Monday 2 December 2013

#SpeccyJam is over - Nimble Jim submitted!

Finally got my #SpeccyJam game packaged up and submitted. What a week!

Took me a while, but finally came up with a name, Nimble Jim. I think the name fits perfectly for a tongue in cheek ZX Spectrum platformer. I also took some time out from coding to knock up a cheesy loading screen:

I thought some of you might be interested in how I put this together so here's some screen grabs of my steps. As you can see I'm no pixel artist, I'm just a coder. Instead of asking one of my talented artist friends to collaborate, I wanted to keep as authentic as possible as so many Spectrum games where made by 1 man bands.


You can see that initially I just flushed out roughly the elements I wanted and the composition. When it came to drawing Jim I wanted him to be full of action, so I Googled a cartoon character running, dropped on to a layer in Photoshop and roughly traced the shape. It actually came together surprisingly well. With the text I used a couple fonts and turned off anti-alias settings to get a true pixelated look. I did still have to go in at pixel level and tidy up any dodgy letters.

It felt very odd to put a domain name on the splash screen, I almost didn't, but if domain names were about in the old days I'm pretty sure they would have had them on the loading screen so I kept it in.

I left the colouring towards the end of the process, you'll see that I used many guides to block out 8x8 pixels. As we all know the limitations, only 2 colours were allowed per 8x8 block. If I had more time I probably would have moved/redrawn some of the items to take advantage of the colour blocks. I also would have improved the ghosts, but hey.

Cramming in features like there was no tomorrow

As I got closer to the deadline, my brain was exploding with new ideas to add to the game. Knowing the time limits I had to be strict! Stuff I HAD to nail:
  • Finish full game flow, and make sure it was water tight.
  • You can see from above that I managed to get a cheesy loading screen in to the game.
  • The ZX Spectrum border, yes I got this in, even flashed with game play events.
  • Sounds! OK so I started with a native computer BEEP sound, but this wasn't compatible with platforms other than Windows. So I downloaded a BEEP wav, put it in to Audacity and made some simple sound effects. These were dropped in to the game and played on events, e.g. enemy spawn, killed, pick up item...

Anything else is a bonus

Having got in the above anything else was a bonus, here are some other features I managed to get in:
  • More maps! I was able to knock out 5 basic maps, my code just reads a text file, so it's so easy to produce new maps.
  • Enemies, I wanted to expand the enemy types and make each level interesting, even though the ghosts are cool enough for a basic game ;) So I added:
    • Spikes which are static items, but over time the spikes raise and lower to make the player think about their timing.
    • Bats were also added which just have a simple horizontal path, they seem simple, but they do catch you out!
    • A BOSS! Yup I managed to squeeze in a basic boss level, he's big and all he does is jump in your direction. Sounds easy enough to beat, but you have to time your running and jumping!
  • Scrolling text, yup I went there.
  • ELEVATORS!! I was so happy I crammed this in, ability to add elevators to maps. Not only does it change how the player navigates the map, but also the ghosts!

Lets take a quick look

Here's a video of what I submitted. To make it more watchable, I used cheats to move through the levels quicker ;)



DOWNLOAD IT NOW

Here's a link to download the game I submitted to the #SpeccyJam:

DOWNLOAD GAME

Only available on Windows, extract the 2 files then launch the EXE file.

Conclusion

WHAT A GREAT WEEK! THANK YOU #SPECCYJAM!

Please check out all the other entries here: http://www.speccyjam.com/games/, there really are some great games here.

... and you can check out Nimble Jim's very own page here: http://www.speccyjam.com/games/nimble-jim/

OK Nimble Jim isn't the greatest game in the world, it's just a tongue in cheek effort, however I've been really inspired making it. It's been great working with limitations, and seeing all the other efforts for #SpeccyJam. Looking through Google + YouTube for ZX Spectrum games has brought back so many amazing memories, and I'm sure it has for everyone else.

30 years on, I spent a lot of my childhood playing games on the ZX Sepctrum, it was only until this week that I realised the Spectrum only used 15 fixed colours. I think this is proof that the games created back in the day had so much fun, engagement and creativeness.

What's next??

There's some unfinished business here... I had so many ideas I wanted to get in the game, now the jam is over I really want to try them out. That's right you haven't heard the last of Nimble Jim! My aim is to put together 50-100 levels, and then launch the game on Android, iOS, Windows Phone and the OUYA.

Something I would love to do is actually port Nimble Jim to a true ZX Spectrum, yup learn machine code for the awesome machine and get Nimble Jim running where he belongs! Then... maybe produce Nimble Jim 2 in the style of an Amiga game?! Watch this space!!

Please download my game and let me know your thoughts, be honest! Comment here or get involved on twitter: @rich_lloyd

Monday 18 November 2013

#SpeccyJam progress after day 2/3

The game is well under way now, and it feels good

Been too busy coding for #SpeccyJam so I didn't get a chance to blog end of day 2, this will be a day 2+3 super combo. Right lets get to it...

Day 2

After day 1 I had a very simple game mechanic and render engine, I had to now get to the nitty gritty and start getting the whole game structured.

Short video of Day 2 progress:


The areas I covered:
  • Basic states to the game manager, menu, level start, playing, end of life.
  • Points scored for items collected.
  • Started to manage the HUD, top bar and also 'press key'/'level00'.
  • Improved collision detection and introduced lives.

Day 3

Absolutely buzzing and raring to go, I've managed to squeeze time in my lunch break and after work keen to get this game nailed!

I covered:
  • The player now has to collect a number of items to progress to the next level, 10 feels like a good number, but kept it at 5 for now to speed up test time.
  • I introduced the different game states on Day 2, and today I implemented using them to feedback to the user. When the player collects all the level items, or if they collide with the enemy, I now flash the screen to inform the user.
  • NEW LEVEL MAP! Day 1 I wrote a routine to load in map data from a text file, today I was able to quickly slap in a new level map. Not the most exciting of levels I know, but the level maps alternate as the player progresses through each level.
  • Refined the scoring, 10 points per item collected, then the player gets the remaining time on the clock as points when they complete a level. They also lose 50 points for losing a life.
  • Probably the thing that I'm chuffed about the most is that I introduced a new enemy with simple AI. Same as the old enemy except that it now makes a decision to jump when they reach a drop, or if they've been walking for too long. I introduce them from level 3, and it really takes the game up a step.
  • Added 2 frame sprite animations to the player and enemy. I also flip the pixels depending on if they are moving left or right.
  • Finally I migrated my code to use XNA/MonoGame with the vision of hopefully deploying to Android, OUYA and Silverlight later in the week to make it easier for others to play.


Where am I? Lets sum it up

It's only end of day 3 and I'm very happy indeed. I started off not knowing if I would have time to enter the #speccyjam, and it's turning out great. I genuinely find the game fun and playable. I sometimes catch myself playing it trying to beat the levels when I'm supposed to be testing a feature. It probably just shows how sad I am, but hey, retro gaming is in my blood.

Not sure if I'll be able to get any time tomorrow for progress, but here's some stuff on my mind I want to get done soon:
  • I need to add more maps for other levels.
  • I would like to add a tongue in cheek splash screen.
  • Add the classic ZX Spectrum borders.
  • Add additional enemies, ones that travel horizontally like a bullet or a bat. And maybe one that travels vertically like lava dripping down the map.
  • SOUND! I would like to add sound, I've started to add classic BEEP sounds, but they wont work on anything but a PC so I need to find myself a wav clip to use.
  • If I get time I would like to make an Android version which will require adding touch screen controls.
  • OH... AND I NEED TO THINK OF A NAME!!
Thank you #SpeccyJam, so far you've made my week!

Comment here or get involved on twitter: @rich_lloyd

Sunday 17 November 2013

I'm having a go at... #SpeccyJam !!

Making a game in the style of a ZX Spectrum game. Can't wait!

That's right, I'm taking a step back from the Amiga dev briefly and I'm making a game for the #SpeccyJam, my first ever jam! The game can be written on any platform, but must be as close to a ZXSpectrum game as possible.

So where do I start?! The jam is only a week long, fitting it around my family and day job, time is tight! Here are the rules: http://www.speccyjam.com/rules/.

Choose a platform... any platform...

My platform of choice is simply a Windows Form application written in C#. I would normally use Unity3D which I highly rate for developing pro games, however, the ZX Spectrum has a unique graphics display. The screen is made up of 32 x 24 attribute blocks, each block is 8x8 pixels. The tricky part is that each block can only display 2 colours at a time from a fixed palette of 15 colours.

If you're not familiar with ZX Spectrum games, then you'll not be aware of the crazyness that happens when sprites clash colours. Personally, unless you can implement these GFX rules, then I don't think it's a true ZX Spectrum replica game. This is why I stepped away from Unity3D and went down the Windows Form route, I felt I would have more control over rendering the screen. Also if I get time, I can just migrate my code to use MonoGame (XNA using Mono), and deploy to multiple platforms like Android, iOS, Linux etc...

Now for the game itself

I don't have a lot of time so it has to be simple. Many hours/days of my youth were spent playing Chuckie Egg and Manic Miner, these are true classics so will use these as my insperation. Not entirely sure where I'll take the game yet, but will be a simple player with a static level(s), collecting things, whilst bad things chase the player.

Day 1:

And we're OFF! First things first, I needed to nail an engine for displaying all the sprites on the screen as a base then build the game upon it. The way I achieved this was to draw the sprites in Photoshop using 2 colours, white + black. These are loaded in and I read the pixels storing them in my own data structure as rows of bytes for each attribute block. Each block has 2 colours, for Paper and Ink. This means I can chuck pixels around my data structure, and my engine will draw the pixels with the correct colours.

Next I built a map engine to read a text file describing a list of 8x8 pixel sprites to use, their colours and their position on the screen. Now this is in place, it will allow me to load multiple maps/levels with ease.

ZX Spectrum has a distinct font, so I drew each character as 8x8 sprites, using the same data structure I was easily able to chuck text on to the screen.

Finally on day 1, I needed a basic character I could move around the screen using the keys. As the map information was already implemented, I was able to quickly add very basic gravity and physics collisions with the scene. As I was on a roll I was able to duplicate the player code to use as a bad guy which ignored the user input. For good measure I quickly put in a collectable sprite, which I rotated through the limited colour palette ever frame, to try and make it look like it was flashing.

Quick screen shot:


Here's a quick video to demo my day 1 progress:


So that was day 1, really really happy with progress. I have the basis of my game, so I can just spend the rest of the week beefing it up, and hopefully make a game not only in the ZX Spectrum style, but actually FUN!

As I write this, I'm actually on day 2, but I've run out of time, so I will blog my progress tomorrow and through out the week.

Comment here or get involved on twitter: @rich_lloyd