Jump to content
IGNORED

"Spooks 'N' Spectres" work in progress


Retrospect

Recommended Posts

This post has been edited to better reflect the subject of the thread, as it has shifted from a space invader game to a new shooter game with the working title of "Spooks 'n' Spectres".

 

Spooks 'n' Spectres is going to be along the lines of Eric in Monsterland with the ability to shoot things.

 

It's in development now but is nowhere near ready.

Edited by Retrospect
  • Like 4
Link to comment
Share on other sites

From my failed "Tanks" game, I always thought the explosion routine was the best part. I extracted it and made it into a sub. Use it or abuse it. :)

 

The chardefs and other setup code should be relocated from the SUB so it doesn't reload each time the SUB is called. You can see it uses speech to add a little something "extra" to the explosion at the end. I just experimented with the gibberish I placed in C$ at line 10200. Lines 100 and 110 just call the sub over and over. Enjoy!

-Ed


100 CALL BOOM
110 GOTO 100
10000 SUB BOOM
10010 CALL CLEAR :: CALL SCREEN(2)
10020 CALL MAGNIFY(3)
10030 CALL CHAR(136,"0000000000392A2A3A2222210000000000000000003AAAAABAA2A022")
10040 CALL CHAR(132,"0020100804020102AA01020408102000000408102040806A40804020100804")
10050 A$(1)="004020110E0810111110080E11204000000204887010088888081070880402"
10060 A$(2)="031C20225C4780CCB082426444340E01C03816224A81014131094502220C30C"
10070 A$(3)="000248000022000101001000000420000400001000000980800010000042"
10080 A$(4)="000000000000020001040000000000000000000000000040000040"
10090 CALL POSITION(#4,ROW4,COL4)
10100 CALL DELSPRITE(#4)
10110 IF ROW4=0 THEN ROW4,COL4=10
10120 CALL SPRITE(#12,132,16,ROW4,COL4)
10130 CALL SOUND(-1200,-5,9)
10140 FOR I=1 TO 4
10150 CALL CHAR(132,A$(I))
10160 CALL DELSPRITE(#1)
10170 CALL SOUND(-540,-7,12+(I*2))
10180 NEXT I
10190 CALL SPRITE(#13,136,14,ROW4,COL4)
10200 C$="`GJG/T/4/WGO3979=09LPKAW"
10210 CALL DELSPRITE(#12)
10220 CALL SAY(,C$)
10230 CALL DELSPRITE(#13)
10240 SUBEND

Here's the program in TIFILES. Remove the ".txt" extension to use.

BOOM.TXT

Edited by Ed in SoDak
  • Like 1
Link to comment
Share on other sites

Detecting collisions in XB is an adventure. In Tanks, I got it working but it wasn't too accurate. Narrowing the detection zone just made it miss too often. I guess that's about when I just turned it into a mess of silly. I wanted to add barriers and make it challenging but it never got that far. It does at least keep score! :lol:

 

I'll attach a text listing if you want to have a peek. It's two players, each with a Bomb to let loose. Your bombs will only explode on your opponent, not yourself, and the same goes for the second player.

-Ed

TANKS.TXT

  • Like 1
Link to comment
Share on other sites

Detecting collisions in XB is an adventure.

It is indeed. I've often found also that using auto-motion to control players in games , sometimes leaves an underwhelming result. Unless your game is about controlling a player on an ice-rink, that'd be great.

 

So in my games now, I tend to forget automotion and go for pixel movements instead, with a little subroutine that updates all the sprites on screen with their new pixel coordinates. So long as you're only moving two to three sprites like this, it's not crucifyingly slow and it remains very accurate.

 

Having said that I'm going to experiment with my player base with automotion in order to give it a smoother travel. We'll see how that turns out. Nice tank game by the way, playing it now, well done with that.

  • Like 1
Link to comment
Share on other sites

Hey, glad you're having some fun with it! Wish I coulda/woulda fleshed it out a bit. I got around the ice rink effect by stopping the tanks after a short distance if you let go of the stick. At least on the small/slow option. Bombs go on till you fire again or they hit something. Bombs also track downwards a bit, eventually wrapping back to the top.

-Ed

  • Like 1
Link to comment
Share on other sites

It's a nice saturday morning, I'm sat in my summer-house, the place where all my game ideas are born. I've come up with an idea for a new project involving ability to shoot at things.

 

Rather than try and do Space Invaders, which when you break it all down is no easy task, I'm going to go for something that will turn out looking similar to a cross between Dizzy and Ghosts N Goblins.

 

Imagine, Eric in Monsterland with the ability to shoot at things as well as all the movements with the stick. I figured out how to use the fire button after 20 years of never looking it up properly.

 

It would be a reasonable idea to be able to jump forwards and shoot at the same time, you'd just be firing at whatever pixel up in the air you are instead of it being at a fixed position. What are a few extra variables to the venerable TI99/4A? .... I'd obviously have to have it constantly looking for sprite positions to turn them off when they're getting to the edges of the screen. There's nothing worse than firing a shot and it turns up and the other side of the screen wrapping over when it's not meant to.

 

We could have enemies that are only present if the DEAD(X) variable is reading 1 and not 0. That enemy can fire at you so long as it is not already firing, which we will have a register for that with the variable FIRE(X) ... I put these into arrays so that we have the option of more than one thing firing at a time, should I get to a point where I'm comfortable I can take on such a task with the code.

 

There's really no reason why we couldn't have the same level of background graphics achieved in Eric In Monsterland. The trees, ditches and the graveyard were all drawn onto the screen from simple subroutines that for example, draws a tree. We simply ask for the tree in say line 1100, like this : 1100 TH=13 :: TT=1 :: GOSUB 9100 and line 9100 draws the tree according to the TT which is tree-type, (dark green or light green leaves) and TH which is the tree height. Once you've done it this way you can draw a tree using only 22 or so bytes calling the subroutine.

 

If memory becomes an issue I will look into making this a .DSK image that has a few files on it that can be chained together retaining the variable values needed such as score, best-score, shots vs hits accuracy readings and of course what screen you're on. This sounds to be do-able.

 

Music, now I'm a bit funny with that. Actually having music in the background in a game using anything like a PSG sound chip or the TI one, becomes an irritation for me. So I may end up just putting a little intro sequence in whenever you re-spawn from death or on the first introduction to the game. Sound effects will be done hopefully using the SL Compiler to get them to play with no frame update interruption.

 

So there it is in a nutshell and it's working title is "Spooks 'n' Spectres"

 

I'll keep typing away each time there's an update on this project. Expect some code and possibly even artwork for an advert at some point. :)

  • Like 4
Link to comment
Share on other sites

I've come up with some code that lets us play an example screen in the new game.

 

Use the Joystick to control the player, left/right, jump up, jump left, jump right.

If you wish you can fire at the same time as moving in any direction.

 

There's an enemy by the fourth tree, it's a plant that spits venom out.

The plant has a timer for it's fire so hang around and you'll see it. It's supposed to change pattern when firing but doesn't at the moment.

 

Also no sprite collision is present, no sound, and only the one screen for now.

 

Try it!

post-34058-0-22711700-1521963773.png

 

SPOOKS-X.zip <fiad file

 

 

  • Like 4
Link to comment
Share on other sites

There will be another downloadable update soon enough. I've managed to get the plant to fire at the player in two different ways. If the player is connected to the ground the plant fires straight across, if the player is not on the ground the plant will fire slightly upwards to catch player out. Plant now has different sprite pattern for when it has fired it's shot.

 

Made it so that player can shoot plant and plant dies and stays dead. This is coming along nicely but I'm having a rest from it for a little while. Don't want to over-load my brain. :)

Link to comment
Share on other sites

I'm back in the summerhouse / shed in the garden. My ideas are flowing in.

 

I'm going to re-write the code to be more optimal, now that I know what I'm doing. I'm thinking a few nice easy routines to make it so that each screen has an enemy that is firing at you, and one that is not, but both are to avoided or death will occur. I'm even thinking of making some enemies take more than one shot to kill, such as the large plant you see in the screenshot I provided earlier.

 

As I mentioned before, multiple files could be put into a DSK file so as to make memory issues less of a burden. I think each file could hold up to ten screens of the game, should I not be too flamboyant with the background graphics. But with the TI99 it's always too tempting to really go to town with the graphics.

 

Another idea I had was that when a plant is killed, it explodes and leaves behind a hole in the ground that has to be jumped over. This then brings to mind player death sequences. I must have more than one type of player death. You want a different type of death if you get shot, to the one where you fall into a hole.

 

On the subject of the deaths, when an enemy dies, other things are still going on, on the screen, so long as one enemy is still alive. So during the animation of one enemy death, the game would still have to be updating all the graphics. This is fine, for enemy movements, but would require me to think about how to do it, in the event you kill an enemy whilst you are jumping in either direction. This is why the code has to be re-written from scratch. I want this game to be right, I don't want any bloopers involved that people will spot, and it would de-grade the game overall. Has anyone programmed such a thing, to this extremity? If so please chime in with any ideas.

  • Like 3
Link to comment
Share on other sites

Thanks guys.

 

Okay, I've re-written the code from scratch and we have the ability to move in all directions using the joystick as well as fire at things.

 

There's a plant that fires at you. If you're jumping when it fires it will fire slightly upwards instead of straight across.

 

There's a Zombie guy moving around on the screen.

 

No one can kill anyone yet. That's yet to be put in, and there's only the one screen, no sound effects nor music but it's here and it's progressing! This is the first ever time I've attempted a game to this extent where you can shoot and the enemy can shoot. Wish me luck, ha!

 

SPECTRE.zip < fiad file.

 

 

spooks.mp4

 

 

Edited by Retrospect
  • Like 5
Link to comment
Share on other sites

 

Another re-write of the code. Now the player can face left and face right instead of running backwards. He can shoot in both directions and he can kill zombies and be killed by zombies.

 

Player has death sequence, as do the zombies. I have no idea why blood runs down the left side of the screen. That's a rogue sprite that I haven't spotted in the code!

  • Like 4
Link to comment
Share on other sites

This video shows screen two. You're on a bridge over a long pit of fire, and flames are spitting upwards. Flames are animated, as is the fire at the bottom, and they spit randomly so you never know whether you can cross. They won't spit where you start the screen, so as to be fair. Game locks at end of video because the code wants to go to a "game over" screen that's not there yet :)

 

  • Like 4
Link to comment
Share on other sites

 

 

SPOOKS3.zip

 

Playable "demo" of sorts.

 

Now has 3 playable screens. Zombies can be shot and will stay dead. For some reason the Bat on screen 2 can die but will come back. This bat fires at you. Screen 3 contains a bug when Eric fires at the zombie chasing him over the bridge. Eric develops a 'twitch' after the zombie's death.

 

I shall continue bugfixing and writing more code later.

Edited by Retrospect
  • Like 5
Link to comment
Share on other sites

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...