Saturday, 29 September 2012

Into the Amazon

29th September 2012

Finally the scroll engine has been updated a couple of weeks ago, with thanks to Achim's technical support. Now I have been working on the game's animation engine. Last week I got round to preparing the animation tables, but didn't get round to implementing them into a routine. So today I did exactly that. I animated the player so that it looks as if it is running.

I also added a routine in which the player shoots bullets. For some odd reason, the bullet sprite looked out of place. The player was shooting the bullet out of its head :) With a quick adjustment with Sprite Pad, I got the player to shoot the bullet at the correct height.


More work will be done on it later on this week or possibly some time next week - where I start adding the enemies in to the game.

Saturday, 15 September 2012

On today's menu - Trance Sector

15th September 2012

After sending BETA V3 to the BETA testers, no problems seemed to have occurred. So now BETA testing has passed. It's time for me to add the final touches to the disk version, while Daniel Kahlin's working on the finishing touches for the tape version.

During this week I have been working on a TS music demo, which goes with the Trance Sector game, and today I have been working on the disk menu system, and final linking to the intro. The menu is really colourful and quite attractive. The worst part to programming the menu was the raster timing. When I created the colour bars they were all over the place. After playing around with the raster bar timing tables the overall result showed perfect looking raster colour bars. I was pleased with the final result.

Once the disk menu was finished, I implemented Martin Piper's IRQ loader system (and the TS loading picture) to the menu, and set disk drive initialise at the correct point so there wasn't a pause during the IRQ loader part - and so that the music will continue playing as well. I used the tape loader tune for the disk menu system / disk loader, as I thought it would be really cool for it.

I put all the files together on to the disk, altered the load addresses of each PRG file (So that the loader can load the game to a specific address). Now the disk version of Trance Sector is finally ready for release to Psytronik Software.

All I have to do now is get the raw versions of Trance Sector and Challenger's Edition for Daniel Kahlin, and finally I shall release both DISK and TAPE versions to Psytronik Software.

Monday, 10 September 2012

A bit of polish and a few balls as well.

9th-10th September 2012

The BETA Testing of Trance Sector took place over the weekend. The game felt really good, but sadly the game required polishing. The good news is that not much work is required for the game. In fact, only a tiny bit of work was required - I actually got started on the polishing of the game this morning, two hours before I set off to work 12pm-8pm. So what were the problems that were pointed out:

First of all, one job was done yesterday. My beta testers spotted a minor bug with the high score name entry routine. The first problem was that after pressing fire on the game over screen a letter 'A' was already stored on the name for the first character. This was because of the Game Over routine forgetting to 'refresh' the fire button routine. Using fire button detection without refreshing the values to zero can make the control very sensitive. Secondly was the name entry itself. I forgot to reset the last character with the first character and vice-versa, depending on which character was detected. I quickly fixed both of those routines and tested it to ensure it worked right.

More improvements were being made today. Both BETA testers pointed out that the game can be off putting to the audience. If on each level the player lost a life, they would have to start the game all over again. I was quite reluctant to not have the player start all over again. Considering last week when I was testing the levels in cheat mode - I was really frustrated trying to complete some of the levels, although found it to be possible at the end. Since both Frank and Vinny pointed out the same issue, I updated the code to make sure the game screen didn't reset after a life was lost. It didn't require much code one bit. A simple reposition and re-spawn of all sprites per life lost. I also had to update levels 7,9 and 24 - repacked them all and - success.

I wanted to improve something else in the code, which I just had time to do. So I dug out the game character set in Cuniform and I drew 5 1x2 ball characters, with EXTRA inside each ball. Then I stripped the charset size and imported it into the game source. Then I altered the EXTRA routine so that the balls were dark blue (rather than green), but they are still white after one of the letters get picked up from the bonus ball object.


Now it was time to go to work - and maybe work on polishing the explosion sprite positions for the ending screen. Then hopefully final BETA testing this coming weekend.

Thursday, 6 September 2012

Enter the Sector

1st-6th September 2012

Over this week I have been working on preparing and building the 32 levels for Trance Sector - fixing some additional bugs, building improvements for the game and programming the intro presentation for it. Now finally, the hard work is nearly done, it is on with the BETA test phase, which I hope will get great feedback.

I tested the new levels myself, and I'm not that good a gamer to be honest. I struggled on some of the levels in Trance Sector in cheat mode, but found that every single level in the game is most definitely possible to complete. I feel that this could be a real addictive game as well. If there's no major issues in the game for the beta testers, I can send the final masterpiece to Daniel Kahlin for tape mastering (As he's been doing a mega cool high speed tape loader system exclusively for Trance Sector. I shall be keeping my fingers crossed. :)



My next C64 project WILL be Amazon Tales, a co-op production by Alf Yngve for RGCD's 16KB cartridge game competition - and it won't be a SEUCK game this time round ;)

Saturday, 25 August 2012

Out with a bang

24th + 25th August 2012

Yesterday and today I have been working more on the Trance Sector C64 game project. This time the end screen (As level designs will be the next phase :)). I spent most of today and yesterday programming the ending. I started off programming a routine in which displayed the screen background. A timer was added before the next scene had taken place.

After a slight pause, the explosions around the factory take place. A little man appears on screen. I added another pause before the next scenario, in which he runs to the space ship. Then yet another pause followed by the movement of the ship. Another pause, and something really cool happens - which you have to wait and see when you play the game.



I added an upward scrolling routine and added a subroutine that would do line spacing for the end text - so that it was much easier to read. I decided NOT to have just a plain black screen with nothing else happening and just a scroll text. So I decided to add some action behind the scroll text. I won't tell you what it is, you will have to wait and see when the game gets release.

I am very happy with the final result of the game's ending. It looks quite good, and hopefully it should get some good marks from C64 endings as well ;). I worked really hard on this ending, the way I wanted it to be in the first place.

Now all there is to do is work on all of the levels, make a few tweaks, beta testing and final phase fixing. Then hopefully this game should be ready in time for 29th September 2012. Stay tuned.

Monday, 20 August 2012

Into space we go

Monday 20th August 2012.

Missed us? Oh, I bet you did. I was on holiday for 2 weeks. Anyway this weekend I got started on working on the end screen for Trance Sector. Nothing has yet been programmed, but I am aiming to start on the main programming of the game ending hopefully tomorrow. So then what has been happening this time round? Well simply graphics, graphics, graphics. I came up with an idea in which was to get an apocalyptic ending for the game.

On Saturday I loaded up the Multi Screen Construction Kit on my 1541 Ultimate 2 device (Yep, I received that Monday last week and it has been a MAJOR distraction to me. Hahaha. Great piece of kit.) I loaded up the MSCK to draw the end screen (Oh I already said that), but I had to use the existing charset and I still had chars free for this exciting finale for the game. I drew a few stars then I drew a green ground using a single char (Nothing else was required). Then a factory was drawn. It took me a while to work on the factory itself. I added a little detail to the top of the factory, simply by giving it some pylons, and wires.I put the whole screen together and it looked great.

What about today? Well, I have been drawing a few more sprites, in which I felt would suit the end screen. I drew a few sprites which consist of a little man. The general idea for the little man is to simply appear from one of the doors of the factory. Then jump into a space craft and get the heck out of there, while the factory's exploding. I drew a few frames of the player's space ship which was difficult for me to draw. I took a look at a screen shot of Armalyte to give me inspiration. The space ship looks quite similar, but isn't the same as the commercial game. I didn't even rip the sprite out - that'd be bad. I added some flame animations to the sprite.


A second scenario has been planned, which has the player's ship going into deep space and escaped the planet. Then throws a mega bomb onto the hostile planet to destroy it. Since I didn't have enough chars in MSCK to draw the planet. I used 4 sprites for drawing the planet for the finale. Also a few frames for the game sprites. Starting to look quite good - I haven't even programmed the end sequence in yet - but I will start on this tomorrow. :)

Saturday, 14 July 2012

Reach the top score

13th + 14th July 2012


Now that the main game engine, has been finished. I have been busy working on enhancing the front end last week. This week I have been working on the high score name entry routine. First the player's score had to be checked after game was over. Then I had to compare values to the final score. If the score was higher than any of the top 10 scores. The player could enter their name for the high score table. If however no high score has been detected the routine jumped straight to the front end. The easiest part was programming and testing the name entry routine. Obviously most games tend to use a simple joystick option in which up/down increments / decrements a character. Pressing fire takes the player to the next column, unless a certain character has been detected. I did exactly that for this game as well if an arrow pointing left was detected, it would rub a character from the name entry. If an up arrow was detected, I used it to represent 'finished' name entry.

The hardest part was to get 10 high scores checked, and moving the names to the CORRECT ranks. I used probably one of the most easiest, but longest approaches of them all, which was repeating each routine checking the player's score per high score. Then jump to a subroutine to allow the player to enter his/her name for the high score table. I found a green high score name entry to be pretty boring, so I jazzed things up and flashed the character sets of the well done message (and the character being used to enter the player's name). Then moved the names and scores down a row so that the player's name and score is in the correct position.

The front end required a lot of tweaking, so I fixed the sprites that were covering the last row of characters of upward scroll, so that the upwards scroll masked correctly. I also worked on a new help screen. Captured the screen in MSCK then I imported it directly into the project source code, and did a little more programming. So that the front end will flip to the next page and then after a short period of time, it switches back to the main page again.

The front end's virtually finished now. I think an end sequence will be the next on my list - then redesign all of the game levels.


Sunday, 8 July 2012

Onward and upwards.


8th July 2012
It took me a few hours just for me to try and figure out how I could get the upward scrolling correct for the front end. I came up with a few experiments, which sadly didn't work. Then I tried changing the AND value to #$06. The upscroll moved upwards smoothly. I created a fake multiplexor for the sprite scroll and also to mask the top part of the upward scrolling message - which thankfully did the trick nicely. A couple of things I need to add to the front end, are routines to change interrupts and display the help screen for a short period of time. Then back to the up scroll interrupts again. There's also the high score name entry to work on (carefully) as well.


Saturday, 7 July 2012

Push it up

7th July 2012
Now the main game engine seems to be out of the way (I hope). It was time for me to do some more work on the front end. Well for a start off, I could do with recreating the raster interrupts by making some more. Now I updated the rough delayed up scroll to move upwards in a smooth scroll. For some strange reason, the up scroll seems to jitter a lot. I tried many times today to try and get that blighter working, but it seems as if the upwards scroll still won't work properly. Troubleshooting time :)





Friday, 6 July 2012

It's time to grab that ball.

6th July 2012
I have been doing more work on the bonus ball today. Nothing too big. It has been suggested that I should allow the player to collect the bonus ball while it is bouncing around the screen. So I changed the routine to allow the player to collect it. I also noticed that the smart bomb feature (last item in the ball cycle) wasn't available. So I altered the code so that it can cycle to the last object before de-spawning again.

There were some issues with the E-X-T-R-A highlighting routine. It seems I had missed out some important operators to allow the player to highlight ONE of the above. Where before when the player collected the 'T' on its own. The bug displayed T-R-A in white, when it shouldn't have. I fixed this issue by updating the code slightly. I also made the E-X-T-R-A (after highlighting) reward the player an extra life.

While playing the game in cheat mode, I also discovered a silly tile bug, where a tile appeared in the incorrect place after the player moves on to it. This was only taking effect on the Panic Switches. I should have made the switch tiles turn to standard tiles - before any other operations/subroutines were called, otherwise some strange effect happened. After moving the subroutines, the panic switch worked 100%. I was pleased with the result so far.

I think literally the main game code's finished, my next task (possibly tomorrow) will be to do a high score/name entry routine. Then update the title screen slightly, followed by ending, followed by redesigning all 64 levels using Delight by Color7.


Here's a test video I made to ensure everything was working how I hoped it would, after the modifications to parts of the game code :)





Saturday, 30 June 2012

Lucky strike

30th June 2012

Slightly late than never :). Today more work has been done to the Trance Sector bouncing bonus ball. A few days ago, I got the ball to bounce around the screen. Today I did some more work on it. I created some subroutines which sets the counter of the ball to appear. Then it spawns in. After a full cycle of some of the features, I made it spawn out again. 

As well as this feature, I added a subroutine to test the collision of a rocket and the bouncing ball. If the rocket hit the ball (depending on what the ball has) the player gets rewarded either 100 points, 200 points, 500 points, Lighting of letters E,X,T,R,A (To indicate and extra life) or a smart bomb, which will destroy all rockets on screen. I also made it that if a rocket hits the ball, the ball disappears and the rockets explode. Here's a video of the work done so far. I still have the E,X,T,R,A  routine to bug fix - and award extra lives properly. That can wait some other time later on this week ;)




Thursday, 28 June 2012

... And the bonus ball is ...

27th June 2012
I only had 2 hours spare, which gave me some time to work a little more on Trance Sector, since finishing Escape from Zaphod  using the 3D construction kit last week (Hard work).. I took a look at the sprite data to work out what the ball's value should be, and created a frame table in which would indicate the colour for the particular bonus object. I created a few values to check the direction of which direction the ball should be bouncing. A few subroutines were also programmed in to get that ball moving according to direction. Yep, it bounced around the screen how I hoped, but was a bit too fast. So I slowed it down by adding a speed delay to it. I also created a sub routine that could cycle the colour of the bonus ball. The same was done for the frame type. Since I didn't want the ball colour and frame cycle to go too fast, I just had to sort something out to stop this. So I created a delay. Now the objects and colours are cycling to how I hoped they would. 

... and here's the result so far. :)


As you can see, I have a ball bouncing around the screen, but what use is it where there's no way of being able to touch the object to destroy it? Well, because of being short of time I had because of work. This will be resolved hopefully some time this Friday, if I don't get called or text into work that is :) The plan in general will be to get the bouncing ball to disappear if one of the seekers/missiles hits the ball. Whatever frame the ball last had will result 100 points, 200 points, 500 points, an automatic bomb to destroy all seekers or a lit up E-X-T-R-A (In which, when fully lit will award the player an extra life). I better work on the collision and checks for what's resulted from the ball.

Monday, 11 June 2012

Let's make some noise

11th June 2012

I don't tend to get much free time on a weekday, but I got up early to make up the free time, because of working a 12pm-8pm work shift at a 24 hour Distribution Centre. Anyway, glad to have found time to get sound effects in action. On Saturday, I was thinking about using the Sub Hunter unused in game sound effects for this game. The sound effects were originally created by me using the Maniacs of Noise SFX Editor by Roland Hermans. On Saturday I had problems getting the sounds to work correctly, and yesterday I almost reprogrammed sound effects - but was fed up and gave up at the end.

Anyway this morning I got back to the source code, to work out why (on Saturday) the SFX was playing with buzzing noises in the background. It turned out to be the case that in game music was also trying to play as well. So to fix this problem, I created a little switch routine, to switch between music and sound effects. If the music option = 0 then the music could play, otherwise if it was = 1 then play only sfx until after a level's complete. This trick worked quite well. After testing the SFX, they worked out pretty well. Love the explosion sounds of the seekers, and also the player collect sound works quite well. So far so good.

Just one more thing to do quickly before I had to set off and catch the bus to work. This was a small thing to do. I drew two extra sprites - one for the music (a music note icon was drawn for that one) and also a sprite for sfx (a speaker with waves coming out). I imported the sprites into the source code and also added a pointer which can detect whether music or sfx is selected, according to whether the player pushes left or right on the joystick in port 2. 

Here's a video of the game with Sound Effects for you ;)


Sunday, 3 June 2012

A disappearing act

3rd June 2012


I thought I'd be losing some free time today, but I have one way or another. Today I felt like doing more work on Trance Sector, as last week I sort of missed out on it, for some reason. So then, what has happened today then? Well, let's continue yakking away ;)

First of all, I loaded up the SpritePad editor, because my next task is to do a spawn and disappearance of all game sprites. So I drew another 4 frames for the sprites. Then I worked on some sound effects to make a similar sound to Bulldog (Where the player appears and disappears). It worked out quite well, and I was pretty much pleased with it. I also made a sound for another idea I had (level complete explosion effect). Then I imported both updated sounds and sprites into the source code. I had to relocate the game sprites to $3000 and change the value of the animation / sprite type values. This was because of the sound effects/music taking over the memory at $2000. I also had to alter the variables that were pointed to $3xxx and make them point to $2xxx instead.

Now I programmed a few additional routines. The first of which was to spawn all of the sprites on to the game screen. I made them appear by using an expanding '+' type of sprite. I set the frames and pointers for the animation, and added the 'ding' style sound to make the player appear. Well, it turned out quite well. Then in the Level Complete routine, I got all of the sprites to disappear by using the same '+' sprite, but disappearing in reverse.

Next I wanted to add some effect to the level screen. So I decided to make the level's background multicolour colours, use the panic colours in high speed mode. I added a sound effect to this as well. Then I added a simple exploding screen and used the player's death sound for the quick explosion. Then the main Level Complete message + jingle comes on. Feels quite great. Check out the video:


Fredrik the Ball is Back: Spider Maze 2 in progress

  11th January 2026 First of all, a belated Happy New Year to all C64 and retro kind.   At last, a new blog update and a new C64 project is ...