StudioX64 main logo Multimedia Music & Video Production
Video Game Software
Retro Computer Software
Main Menu
Latest News
Profile
History

Our Music
    -Chemical Rock
Our Games
    -X-Scape (PC)
    -FlipitZ
    -MorphitZ
Our Software
    -C64 Ripper
    -BlitzAvi.DLL
Our Photographs
    -Back In Time 2003
    -Back In Time Live
    -Retro C64 Feature

Hot Stuff
Our Favourite Sites
Link To Us
Contact Us
Chemical Rock
The Definitive Sid-8580 collection,
by Paul Kubiszyn.


Purchase ON-LINE NOW!
NEW UK payment methods


I accept payment through PayPal!, the #1 online payment service!
Paypal and NoChex now in UK £
Download the 30 day trial of Xara X now!
http://www.c64.sk/
www.c64.sk for all the
latest scene news
Advertisement
XScape - An iPhone / iPad / Apple TV game remake of the Commodore 64 classic Square Scape 2
XScape - An iPhone / iPad / Apple TV game remake of the Commodore 64 classic Square Scape 2

X-Scape (StudioX64 game feature)

- Click on the "Download" icon to jump directly to the download

Welcome to this game feature for X-Scape, StudioX64's latest PC game. I thought because of the nature of this games creation it might be interesting to do a mini feature, so here we are. Feel free to jump directly to the bottom of all this text and download the game. Remember it's a full game, and totally free of charge!

Introduction

So where to start then... I was sitting browsing the internet one night, I think it was about October 2nd 2002 if memory serves me correct. For some reason I decided to visit www.BlitzCoder.com For those not in the know, BlitzCoder is a support site for the great Blitz Basic package. If you don't know what that is then visit their website first by clicking HERE! In short it's a PC based application programming language to aid in the creation of good looking, fast running games! - gratuitous plug out of the way :) Anyway, so there I was visiting the BlitzCoder website... I was browsing through the site, having not visited it for quite some time, about 8 months I think :( when suddenly I came across a competition notice. I started to read and found they were asking for games written in an 8-bit retro style (obviously fully coded in Blitz Basic). I sat and thought about entering for quite some time, about 10 minutes :) then decided against it. It was really the fact that the deadline was set at just under 2 months time. I went to bed and slept on it, then the next night thought, arhh what the heck let's give it a go! - I thought that maybe the fact the deadline was so near might inspire me to try harder :)

The Idea

With the deadline in mind I set about thinking of a game idea. I think I knew from the onset that it wasn't going to be possible to come up with an original idea AND code it in the 2 months. Instead I decided to re-make an old C64 game which I wrote 6 years ago, called "Square Scape 2" You can download my original C64 version as a PRG file for most Commodore 64 emulators by clicking HERE! Square Scape 2 for the C64 was originally featured on Commodore Format magazines covertape in 1996/7. The game was later re-published for the German market by C.P. Verlag GmbH. My choice of remake was obvious to me as Square Scape 2 was by far the easiest game I ever wrote on the C64, and certainly the quickest to write in terms of programming. It was time to delve into my loft....

I managed to find my humble C64 and 1581 disk drive. I also located a copy of Square Scape 2 on a disk which still actually worked! I loaded the game up and did some preliminary notes on what the conversion from C64 to PC would entail. My immediate thoughts were to the level designs. What would really be handy would be to convert the levels directly onto the PC, saving me the very laborious task of re-designing them all. After searching and searching many disks I gave up looking for the source code, and decided that porting the levels would simply not be possible. The level data was actually compressed in order to fit it all into the C64, and I'd be damned if I could remember how I compressed them :)

From Pen To Screen

I didn't have a great deal of time to do much planning, so this was kept to an all time minimum. The first thing to do was to "grab" some of the original C64 graphics and convert them to the PC. I started to wonder.... wouldn't it be great if there was a tool for the PC which could somehow extract graphics (sprites & charsets) from C64 games... hurm.... "oh yeah I wrote that application!" Suddenly remembering my flag ship tool, the C64 Sprite / Charset Ripper. I set upon ripping the original character set from SS2, along with the sprites and main game blocks. It wasn't as easy as I had hoped, the game blocks had to be built up from smaller 8x8 pixel blocks. There was quite a bit of pixel editing in Paint Shop Pro done, along with converting the bitmaps to the C64 palette supplied for the competition. The pixel editing actually continued all the way through the project. As I would play the C64 levels and design them on the PC I would suddenly find more and more graphics which I had not yet converted / painted, I would have to keep breaking from level designing to draw them.

On The Level

After I had thought about how I was to display the levels on the PC, I set about copying the first level from the C64. Initially this was all done by hand using plain old Data statements. I actually sat looking at my C64 and counted the blocks on the screen and hand entered the data onto the PC like thus; Data 000,000,001,002,003 etc etc. I then wrote some code to actually load the graphics, read from the data statements and draw the first level. It certainly looked fairly accurate :) With the level displayed on screen and a copy writen to an array table, the next step was to get the basics working. By this I mean, get a square moving round the screen under player control. Piece of cake! - or so I thought...

C64 version (Square Scape 2) level 1

PC version (X-Scape) level 1

And So The Problems Begin

Ok picture the scene, there is my little square in the top left corner of the screen. If I press down it moves down, if I press right it moves right etc etc. Movement is 1 pixel at a time and is smooth though incredibly slow (unuseably slow). I take the movement speed upto 2 pixels at one time, and it goes faster, looks ok but judders slightly every now and then. I take it to 4 pixels and it looks much nicer so I settle on this for the time being. At this point I remember some of the articles I read regarding speed dependant programming in Blitz Basic (or any PC language for that matter). In short if you move an image from one point to another on a Pentium 500, and you update it's position every frame refresh. The time it takes to reach point B from point A will be different if you run the same code on a Pentium 1.4 gig machine. Initially I didn't realise this would be such a problem, until I started running the game so far on slower computers. On a fast machine it didn't really matter that the square moved from one side to the other quite quickly, however on a slow computer you would be sat there waiting.... wondering if the square would ever actually make it to the other side of the screen. I knew from the start this was going to be a problem but it wasn't for a while that I realised it would govern the majority of problems I would find when programming this remake.

Life was so simple back in the good old days :) when I wrote the C64 version. I remember my block checking routine was a piece of cake. If the player pushed the joystick right then you would check 1 block to your right, act accordingly and start a move count. The move count would increment upto 16 pixels then you would loop back to your block checking code. This was all very easy and painless, oh why are PC's the way they are!!! I had to forget everything I ever learnt on the C64 and instead work out a super duper block checking routine. Picture this if you will.. Your main square has to get from point A to point B (simple eh?) - your player move code has to be speed dependant, meaning you must check each time your square moves a pixel (or 4 in our case), the amount of elapsed time since the last 4 pixels it moved. This means that if the game is running at full speed on a nice fast PC, you will only ever move at the fastest rate which I set (eg, 4 pixels). In order to fix the limit this means it's possible for the square to move fractionally, though in reality your square won't actually move until the count hits 1 at the least. What it does mean is that if you run the game on a slow computer, if the computer can not update the screen quick enough the game knows and moves your square any number of pixels in one jump. In theory the time it takes to go from A to B is constant no matter what speed machine the game is run on.

And So The Problems Continue

On it's own this was difficult enough to get fully working, then came the further problems... I now had to think about collectable items on the screen. I initially coded the routine checking the block under the players current position as it moved along. This worked fine on my computer, until... I decided to download something big whilst I was in the middle of programming. This in turn slowed my computer down soooo much, that as I moved around the screen it was actually possible to jump clear over collectable tokens, rendering the game useless! I had to think, and fast! - I set about re-writing the collectable routines, which took about a week to fully finish and bug fix. I ended up with a fairly complex piece of code which as you move around the screen, not only checks blocks under your current position, but also checks every position you ever pass. This means that no matter how slow the machine running the game is, you ALWAYS collect tokens when passing over them. I have a confession to make at this point, I very nearly gave up on the whole competition at this point. I am not even sure what made me go on, but somehow I managed to finish the movement code and after many hours testing got it bug free.

C64 version (Square Scape 2) level 18

PC version (X-Scape) level 18

Finally Some Progress

I decided to have a break from the game at this point and wrote the level editor. I guess it only took a few nights coding before it really became useful, I think I was still adding features to it only 2 days before completing all the level designs. The level editor allowed me to hand convert all of the original C64 levels over to the PC in the quickest possible time. Without the editor I would surely not be finished even now. The way I converted the levels was to have my C64 version sitting next to me, and to simply play out all of the levels. Yes I really did manage to remember how to complete them all, even after 5 years or more :) I added the additional graphics for the game as each individual level required them. Editing them all by hand in Paint Shop Pro. With the level data all complete I decided to get away from programming for a few nights, and turned my hand to writing some music for the game. After some promising conversations with a chap called "Tracer" on IRC I thought that maybe I could use the original Sid tunes from my C64 game, and simply play them through a DLL extension on BlitzBasic. Sadly this never came to be as the DLL still required some work. So what was my next choice? - Well I toyed with converting all the tunes to MP3 then realised how big a download it would make the game (remember I wanted to include about 10 tunes). I also remembered MP3 wasn't free for use in commercial games etc, so decided to give this a miss. I then remembered having written a few tunes in ScreamTracker and the like using ModPlug, and so began project "Nightmare Music!"

The faithfull level editor

Composing the music in ModPlug
In And Out Of Tune

I must have been crazy to attempt what I did next! - I decided to rip the music from my SS2 game on the C64 and found the original music editor I wrote the tunes in (Demo Music Creator 4.0b for those interested :) With the music in editable form, I sampled all of the individual instruments from the C64 to my PC as Wav files. Using these instruments and copying the notes by hand from one screen and package to another, I was able to re-create the tunes in ModPlug on the PC as .XM files. Using this method I converted 6 in game tunes, along with the get ready music from the original SS2 game. I decided out of boredom really to re-write my own game completion music, keeping it in the C64 Sid stylee ("Complete.XM" in the game zip). I still needed a title screen tune and ripping this from the C64 was not possible, once again I had to create a new piece of music in the Sid stylee ("TitleScr.XM" in the game zip). Finally there was one further piece of music written and this was for the intro screen. All in all I think the music took about a week to compose.

Testing Times

Shortly after finishing the music I set about tidying up some of the game looping, and set about writing the mundane things like life counters and score etc. After this was done I was able to produce a working test exe file of the game. I passed the test game onto my wife and asked her kindly to begin testing it. The good news was that it ran on her computer - did I ever think it wouldn't? :) The only game change which came about as a result of the testing was being able to fast quit and start the level again. The way I originally had the game meant you had to wait each time you died for the get ready message to scroll onto the screen, before you could press "enter". I changed the game so if you pressed "enter" before the scroll reached the middle it immediately went back to the current level. For those who wondered why there was no level counter in the game, I think the logic behind this originally was to make it harder to remember the level layouts. I am not sure if this really ever worked, and to be honest I think I simply forgot to add it into the remake version :) ce la vie!

Another Introduction?

The introduction screen was next on the list, and it didn't take very long to make at all. The longest part (aside from the music) was probably the logo. I designed the logo all in one colour but it was quite difficult to read when I added all the background colours. I had to hand edit the image in Paint Shop Pro and manually draw the outline, believe me it took ages! The final look of the logo paid off as it looked much better having the outline. I drew on inspiration from the C64 version for the title screen, if you have seen SS2 then you will know what I mean. Did you realise that even the rotating squares were the original C64 sprites? ripped straight out of SS2 using, you know who's sprite and charset ripper :) Next came any coders most hated part, you guessed it the documentation. Although it's probably the most important part of any game, it is also usually the most overlooked. I think I made the instructions from the title screen fairly good and concise. As the project drew near to an end, I later wrote some additional documentation in the form of a readme.txt included in the game zip file. With the introduction finished I now turned my efforts to the game completion screen (GCS). As I mentioned earlier I wrote a special never before heard piece of music for the GCS. I thought the GCS turned out quite good in the end, and it didn't take all that long to program either (for obvious reasons I have not included screen shots of the GCS!)

C64 version (Square Scape 2) title screen

PC version (X-Scape) title screen
The End In Sight....

So there I was, about seven weeks later and the game was almost finished. I still had a week to play with and only a few odds and ends left. I had a great idea to link a crackers intro screen onto the front of the game, to add to the retro feel of the game. If you haven't seen one of these screens before I shall explain. A game would be published and available to buy in shops, most of use would buy these games :), some of us would not :( The people who didn't buy them were generally the people who would instead copy the games freely amongst their friends (kinda like mp3 swapping now-a-days). These people later started getting competitive about who was first to copy the games, so they decided to place their handles on intro screens before the game would start. These intro's all the time becoming bigger and better. Later, these groups of people decided to add cheats to the games and various improvements (or so they thought!). Cracking games soon caught on like wild fire, especially in the UK! - Anyway where were we? Oh yeah, so that's why I thought the intro screen would look cool. I managed to knock something half decent up in a couple of evenings, then added the obligatory C64 colour bars onto a fake decompressing routine :) After a couple more nights tidying up the game was just about finished.

The retro cracktro intro! (X-Scape)

Decompressing colour bars on the PC version (X-Scape)
Musings

I was incredibly pleased with how the final game turned out, and even more amazed at how well it's run on such a broad range of computers (unless you know better). If I had to make one single change then it would be to add a level counter :) I even managed to finish the game with 4 days remaining until the competition ended, or at least that's what I thought. The competition has since been extended until January 6th 2003. Will it win? - truth is I haven't the foggiest! - I know I worked my socks off on this game, and I certainly feel it was worth every moment. I would like to take this opportunity to thank my dear wife Victoria, for putting up with me during the production of X-Scape. She was most helpful in testing the game and surely bias in complimenting me on the game music :) - Thanks Vikki!

I hope you have enjoyed this special game feature, and be sure to tune in again next time. By the way there maybe, just maybe a cheat screen in X-Scape. Who knows? .......

Thanks,

Paul Kubiszyn.





Example screen shot of later level


Download:

-> X-Scape.ZIP
Before downloading we would be very grateful if you would click on the advertising banner at the top of this page, it will open in a new window. Thank you.


Technical Specs Minimum:

Pentium 200mmx
16 bit display graphics adapter
320 x 240 full screen resolution / 640 x 480 windowed screen resolution
Sound blaster compatible sound card
Windows 95/98/ME/2000/XP, this game doesn't run on NT.

Technical Specs Recommended:

Pentium III 500mhz
GeForce II graphics adapter @ 16/24 bit colour depth
Sound blaster compatible sound card
Windows 98/ME/2000/XP


Credits:

All programming, graphics and design by: Paul Kubiszyn
Game testing by: Victoria Kubiszyn / Paul Kubiszyn
Copyright StudioX64 Software 2002