Wednesday, 31 August 2011

Sheepy Goes 'A Shootin'

31st August 2011

Wow, quite a stroke of luck I had today. Winning 1st prize in a quiz at the work place (6 bottles of wine) and also getting a new Sheep sprite up and running. I converted the image of Shaun's sheep into Sprite Pad V1.8. It flippin' worked too. Awesome!! Once I got the sprite frames, etc.

I took on board some of Shaun's suggestions that the sheep can jump on to boxes and barrels too. I loaded up Arkitec and checked out which characters should be used to make the sheep jump on to the barrels. I added the characters, which represented the value of the character sets that form the boxes and barrels. I also managed to get the jump routine working slightly better. The player cannot jump too high in one go. The player can also jump outside of the game screen :)

Now the bulk of the background scrolling / collision code was virtually finished. I decided to work on getting some nice effects into the game. Well, not really effects, just explosions. This is for when the player shoots an enemy. It will then stop the enemy and let the enemies that get shot, explode. Then after the animation, remove the enemy off screen. I had to program an animation engine per enemy for this, because if I actually made the explosion animation on the player's bullet. It just wouldn't work right - plus there'd be a delay with the bullet firing. Since I was happy with the enemy blasting and the enemies are exploding quite nicely. I decided to call it a day with this game. For today. :)

The next task (Which will be some time this weekend) will be to get the enemies shooting bullets in one of 3 directions. Also I will be working on enemy movement formations, according to a random table (Depending on what the enemies will be). Stay tuned on Sunday, to see what happens. :)

Sunday, 28 August 2011

Kung Fu, POW!

27th August 2011

I was going to do a little more on Woolly Jumper today, but decided to leave that until Wednesday afternoon :). Instead I received some text and graphics for the ending of 2000 Kung Fu Maniacs. The hardest part was actually getting the actual .C64 file to save in CCS64. The best option I had was to store the all data (For the ending) and put that on to a .tap image. Load in the Sideways Scrolling SEUCK in WinVice, and then load the .tap image into it. That method worked quite nicely. I watched the example of the end. It looked interesting, and I thought to myself that it was most definitely worth a try.

Before I got into the programming side of things, I had to try import the charset from the SEUCK ending into Cuneiform. Then import the font that Alf made for 1000 Kung Fu Maniacs. We imported the files okay into the PC C64 char editor, and I copied the background chars (which formed the Master of Exposition's HQ) and put it into place with the 1x1 charset, which I used for 1000 Kung Fu Maniacs. I save the charset data, and raw data as well. Now was time for the next phase.

Because I can't really use more SEUCK background for the ending, I decided to import the character sets into the Graphic Editor by Firebird Software. It is quite an interesting piece of kit for the Commodore 64. So I loaded it up from the original .tap file that was created using the DC2N. Set Vice to warp speed so that the program loaded quicker. Then loaded the charset in. I also opened another window with VICE, and the Sideways SEUCK with the work file which Alf originally made. I then designed the background (Made it similar to the SEUCK background) although found a slight glitch in the FB Graphic Editor. The white pillars should have been hires, but they seemed to have ended up in multicolour instead. I then captured the image with the Retro Replay and used the MC monitor to transfer the screen to $2000 and colour to $2400. I then saved both files and then imported those into the ACME SEUCK Enhancements project file for 2000 Kung Fu Maniacs.

Next I copied Alf's text and I input it into the ACME cross assembler source. I saved and imported the sprite data into Spritepad 1.8, and I selected the sprites that were used for the ending. I also used the sprites of one of the enemy ninjas as well as the player - for the Get Ready and Game Over sequences. That will do for today, as I'm off out in a few minutes time :)

28th August 2011

Today was probably the most important of the day with 2000 Kung Fu Maniacs, where it comes to the end part. I have decided to program it in today. Mainly because the end part will probably be one of the longest parts to make in assembly before the Front End, Get Ready, Game Over and High Score entry parts :). So I programmed each frame, checked the ending out. Had a few problems at first, but they were resolved. The ending features the Master of Awesome and the Master of Exposition. But I will not tell you what it's all about though. It's a big secret and pretty much a funny ending :) There's still something that needs sorting out with this ending. Getting the background's pillars the correct colour. That should hopefully be no problem. :). On to Woolly Jumper on Wednesday. :)

Friday, 26 August 2011

Let's Shoot!

Thursday 25th August 2011

Okay, so I got the Sheep to jump, got the background to scroll. So what now? Well, this phase was quite a short phase for yesterday, but it was worth the effort. Since I last worked on Woolly Jumper, I got the player to jump, and also shoot, but there was still something missing. Yes, that's right. No collision or animation.

The first thing I worked on was the collision detection. A simple software Collision routine which uses the box-type collision (Sometimes that cannot be reliable, but if adjusted correctly the box collision should work okay. That's the method that I used for Sub Hunter :). The first thing I did was to write a subroutine that would read the player's virtual/ghost position and store it into a table of four bytes. I did this for the player's collision, and I also did that for the player bullet collision.

Now for the most interesting part. To get the collision working, I had to type in a string of code (quite a long string to be honest) for the player/enemy collision and enemy/bullet collision. Mainly by simply comparing whether or not the player, the bullet or the enemy collides into the target range of each other. If that happens, then something happens. At the moment I got it where the player crashes into an enemy, the border flashes (a temporary indicator to show the player dead). Also if the player bullet's sprite hits the enemy, both bullet and enemy disappears.

I got the aliens to move at different speed, but that was just a temporary thing. I also added temporary animation frames for the enemies and their bullet as well.

I received an email from Shaun about the jumping, it still does not seem to be right yet. Also the player stops at the very top border when jumping. It has been suggested that the player should be able to leave the screen if jumping at a high position, otherwise it would make the game unfair. I have a possible solution, but it could probably affect other sprites (after being shot). Basically open the top border, which the player can jump over.

He also suggested to me that the sheep should also jump on to the barrels (and possible crates as well). Which I originally thought was just simple background. Also the player seems to sink in part of the background by a few pixels. Well, those should hopefully be no problem for me to fix. As on Saturday (Because I'm taking a programming break tomorrow) I will be fixing this, and also (if I have the time) make the enemies trigger happy. Then it's the random movements for the enemies - some bouncing ones too) . This should then turn into a game to play :)

Tuesday, 23 August 2011

Prepare for more awesome!

23rd August 2011

Heeyaaaaah! (Smack!). Another new project. Well, it's not really that new as I had it earlier on this year. Yes, it's 2000 Kung Fu Maniacs - Way of the Exploding Fish. Yet another game for the Shoot Em Up Destruction Set. I was originally having a laugh working on 1000 Kung Fu Maniacs, but 2000 KFM promises to be more silly and hilarious compared to the first one.

Today was my day off work, so I decided to work a little on this game. Well, actually the majority part of the in game enhancements was done to be honest. First of all I explored the sprites and discovered some sprites which were not used. I also replaced a sprite of the Van Damne type of character with a 2 - way Poodle boss - which requires 5 hits before it's defeated. The idea was to have the big dog guard

ing the tinned fish while the master of awesome was at the Moose Mart. I also copied some of the power up sprites and mirrored those so that the player will be able to have power ups when it comes to the enhancements.

The next task was to do the enhancements of the SEUCK game. Just like with Super Tau Zeta, the player gets a new weapon/surprise. This will only happen if the player picks up a scroll. I programmed a small routine that cycles through the 7 power ups in which the player could have. If the player picks up a scroll, the power up gets randomly picked. So either the player could have something useful, or probably useless, or even something very daft. I will not let you know what the actual power ups are. You will have to wait until the full game's finished and released on SEUDS 2 :).

Power ups have been sorted out now. So next was to add the linked explosions for whenever the boss gets hit. Well, I had one slight snag with the boss death. If the boss died, other enemies would explode as well. I then came up with a solution to that problem. The bosses could carry a smart bomb with them, so the enemies will explode if the boss has been defeated. This can be a reward. Of course that will not happen to the little dog boss, guarding the tin of Exploding Fish.

There's a stage that features a gallery. I've added some interesting twists to exhibits in the gallery. Some are good, but some are bad. Again the player should pick up the scrolls. Inside the gallery are two other collectables, but I have added two surprises there. One item triggers a smart bomb, while another triggers a punishment, where the player loses 1000 points due to collecting the object. There is also another twist involved as well. You will have to wait and see :)

The enhancements seem to be shaping up quite nicely. I shall send Alf the work that has been done so far to this game - and see if he can give me tips on bullet speed and duration for the power ups. :)

Monday, 22 August 2011

The squadron invades the loading screen

21st August - 22nd August 2011

Yesterday as well as doing some work for Woolly Jumper, I also have been a busy man (As Sundays are indeed boring TV wise) and I worked on some loading music for the Super Tau Zeta tape loader. It was composed using DMC V5.0+ and is basically a rendition of my composition, which I originally did using Madtracker for the Super Tau Zeta promo video on YouTube. I thought the music sounded quite good for one reason or another.

Later on I stumbled across a loading picture which was made for this game drawn by STE'86. The loader pic was uploaded on to the CSDB and I was very impressed with the work he made with the pic, so I downloaded it (As I know that it'll be exactly the same loader pic for the game) and saved the image to koalapaint format, ready for the next tape master.

Alf Yngve got back to me with a text for me to put down for after the game has been complete to replace the original ending which hardly fit one screen - and that was all I had left memory wise. Manually typed in the end text finding it to be quite a sad ending, but would suit the game nicely, although the ending is a remix of the Super Tau Zeta video tune (again). Once I tested everything the game's working fine, the ending works - no crashing. So I mastered the whole thing to tape using the same loader as I did for Bloodwheels (All of those games except for the bonus game by Alf, himself will be using the

Ocean style loader colour cycle scheme). Finally it's done :)

My next project for SEUDS 2 will be 2000 Kung Fu Maniacs. Alf Yngve has given me ideas for the new power ups (Which I will be implementing into the game this week) but I shall not tell you what they are anywhere in the blog ... They're really a big surprise and guaranteed to have you gamers laughing as well :).

Sunday, 21 August 2011

Through old pastures new

21st August 2011

I received some nice new graphics from Shaun this week and imported the data into the source code for Woolly Jumper. The graphics were nicely drawn in Arkitec (For those of you who want it, it was on the Cabana User Tool Disk CSDB ID 42413). However, I had hit a slight snag after importing the graphics data into the source code. It was nothing too serious of course. Just a little thing where I was required to update the platform land routine corresponding to the characters which the player's sprite landed on. So I called up a few subroutines which will manually check for which characters (which result as the top platforms) will stop the player from falling. I even set some of the characters for where the player will die if it hits a deadly character. I have a video here of the new map. Enjoy :)

Now that I am quite happy with the platform chars which the player can land on, or die when touched, I can move on later on this week by programming the main game attack waves engine, which will be executed according to a sequence of numbers through a data table. Once happy with all of those, it'll be time for the animation engine. I shall also get the player to do some shooting as well. :)

Sunday, 14 August 2011

Get ready for some real carnage

14th August 2011

Sundays are boring, I have to admit. Well, only one thing for it. MORE PROGRAMMING. Well, that's what's been happening today? I have been very busy on a project for Psytronik Software. Since Super Tau Zeta has been finished (Only awaiting Kenz or Ste's loading pic) I decided to work on another game. In fact a very long awaited title, which appeared in Games That Weren't. What game am I talking about? Well does Bloodwheels ring a bell? This game was written back in 1994 originally for Psytronik Software. Perhaps Alf was waiting for someone (before I got involved with SEUCK enhancements at the time) . Sadly it never got enhanced for a commercial release back in the day.

Yesterday, Kenz contacted me via Email asking me if I could implement the logo which he painted for this game on to the front end. Well, I gave it a go, but when I checked out the old title screen I originally did for it back in 2010, I felt that the front end was just too plain. So I decided to make a brand new front end for this game today, and feature some amazing animations and add some extra stuff to the game as well.

The first thing was preparing the files to import into the source code. Those of which were the SEUCK files, music, new charset (which I used from the Pour Le Merite SEUCK game - my charset of course) and also edited the charset to make some frames for the title screen animation. Once all preparing was done, I worked on the programming side of the project. First I programmed a few routines which will hack SEUCK to do amazing things and play music during play. Then I programmed routines that could animate the water (2 chars rolling downwards continuously) and also fixed the score routine, so in 2 player mode, the correct player gets the points per hostage rescued.

As soon as I was happy with all of the in game features, I programmed a new front end, which featured Kenz's cool Bloodwheels logo (from the loading picture) and also got the front end animating and playing music, flashing the "Press fire to start" text. I also added the ability for the players to press fire in either joystick port. Joystick port 2 allowed the player to start a game for 1 players only. Joystick port 1 allowed both players to participate in the action. I also added GET READY, GAME OVER and MISSION COMPLETE scenes. I was really happy with what was done so far.

To end the session, I decided to work on the tape master. I decided not to play around with the loading stripes this time round. An Ocean style loader would be perfect for this compilation, but I used the tape loader source by Martin Piper. Nice loader system, displaying a neat loading picture, based on Alf Yngve's original artwork.

Saturday, 13 August 2011

Let's bounce

Saturday 13th August 2011

I am feeling afresh from my 2 week break in Somerset. Now I am ready for some more programming and music composing. On Thursday (Although I didn't mention it in the blog) I have been drawing some test graphics and sprites for the "Horizontal scrolling platform framework" for the 16KB cartridge game for the RGCD competition, which is currently in progress (And I am aiming to get it released down there in November). I also designed a map for the framework. Looks very basic and sort of rubbish graphics, but well, it's not the actual game graphics for Woolly Jumper. As Shaun's working on those :)

Today I felt like doing some more programming on the platform scroll engine. Although on Thursday I did add the new map to the project, I decided to update the scroll engine slightly. It appeared that I was using the KERNAL IRQ vectors, using #$37 as the $01 value. Because this was limited. I decided to switch off the basic KERNAL vectors, by simply changing the value of $01 to #$35 and then I changed all $0314 and $0315 vectors to $fffe and $ffff. I also add pointers to $fffa and $fffb to disable the RESTORE key from crashing the program. As soon as I was happy with the interrupts, I added an extra interrupt in which uses a standard multicolour for the water, and also a different colour scheme for the platforms. I made the default map colour to use a red scheme. Okay, not really bad. :) I tested the scroll and the scroll seems to work well.

There appears to be something missing. Those of which are SPRITES :). I imported the test sprites into the source code, as raw sprites. Then I got the sprites to display on to the screen. Well, just the player sprite for now that is :). Next I worked on the joystick read routine, so that the player can move up/down left or right (no shooting yet). Once I did that, the next job was to program in the self-modifying Sprite to background collision detection. So I check the value of the character sets which were being used for the top of the platform. The basic idea is to test to see if the player touches any part of the upper charset that represents the platform (anywhere on screen). If the player touches it, the sheep will flash until it is off the background.

After testing the routine was working, I programmed some additional routines that will make the sheep jump continuously. So that I could get the jumping slightly more at an accurate level. After a lot of tweaking with the jumping routine, I altered the joystick routine even more and got the player jumping and falling perfectly. Finally I added the moving aliens (Which still require a variety of movements, which will be implemented later on this week.) I also enabled the player to be able to fire bullets as well. After assembly of the framework so far, things are starting to take shape quite nicely. Enjoy the video! :)