Jump to content

Photo

"Spooks 'N' Spectres" work in progress


23 replies to this topic

#1 Retrospect OFFLINE  

Retrospect

    Stargunner

  • 1,006 posts
  • Location:Wakefield, England

Posted Sat Mar 17, 2018 11:03 PM

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, Mon Mar 26, 2018 12:05 AM.


#2 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Sun Mar 18, 2018 12:57 PM

.


Edited by Retrospect, Sun Mar 25, 2018 11:31 PM.


#3 Ed in SoDak OFFLINE  

Ed in SoDak

    Moonsweeper

  • 412 posts
  • Location:Black Hills of South Dakota

Posted Sun Mar 18, 2018 1:13 PM

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.

Attached Files


Edited by Ed in SoDak, Sun Mar 18, 2018 1:14 PM.


#4 Ed in SoDak OFFLINE  

Ed in SoDak

    Moonsweeper

  • 412 posts
  • Location:Black Hills of South Dakota

Posted Sun Mar 18, 2018 1:55 PM

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

Attached Files



#5 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Sun Mar 18, 2018 1:58 PM

.


Edited by Retrospect, Sun Mar 25, 2018 11:32 PM.


#6 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Sun Mar 18, 2018 2:09 PM

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.



#7 Ed in SoDak OFFLINE  

Ed in SoDak

    Moonsweeper

  • 412 posts
  • Location:Black Hills of South Dakota

Posted Sun Mar 18, 2018 2:36 PM

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



#8 Ed in SoDak OFFLINE  

Ed in SoDak

    Moonsweeper

  • 412 posts
  • Location:Black Hills of South Dakota

Posted Wed Mar 21, 2018 4:13 PM

I haven't installed XB256 yet to try your program, so I can't help with any suggestions. Hope somebody else chimes in!

-Ed


Edited by Ed in SoDak, Wed Mar 21, 2018 4:15 PM.


#9 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Sat Mar 24, 2018 5:19 AM

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. :)



#10 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Sat Mar 24, 2018 6:34 AM

Here's just a quick example of how the graphics could be done. I'll be getting more programming done later on tonight.  

 

 

Attached File  concept.png   3.25KB   2 downloads



#11 marc.hull ONLINE  

marc.hull

    Stargunner

  • 1,259 posts
  • Location:Oklahoma CIty.

Posted Sat Mar 24, 2018 7:32 PM

It's time for you to move on to assembly language.

#12 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Sat Mar 24, 2018 9:36 PM

It's time for you to move on to assembly language.

When I do it'll be baby-steps.  Big learning curve!



#13 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Sun Mar 25, 2018 1:43 AM

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!

Attached File  spooksnspectres1.png   10.25KB   2 downloads

 

Attached File  SPOOKS-X.zip   7.16KB   10 downloads <fiad file

 

 



#14 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Sun Mar 25, 2018 4:49 AM

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. :)



#15 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Sun Mar 25, 2018 7:39 AM

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.



#16 LASooner OFFLINE  

LASooner

    Moonsweeper

  • 281 posts

Posted Sun Mar 25, 2018 9:27 PM

You should change the Subject of Post 1 to better reflect the new direction



#17 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Sun Mar 25, 2018 11:32 PM

You should change the Subject of Post 1 to better reflect the new direction

Yep, done that & changed thread title too.  


Edited by Retrospect, Mon Mar 26, 2018 12:06 AM.


#18 LASooner OFFLINE  

LASooner

    Moonsweeper

  • 281 posts

Posted Mon Mar 26, 2018 12:06 AM

That did it



#19 Opry99er OFFLINE  

Opry99er

    Quadrunner

  • 9,726 posts
  • Location:Hustisford, WI

Posted Mon Mar 26, 2018 1:08 AM

Siiiiick..... :)  You just keep em comin'... I'm running out of blank 5.25" floppy disks over here.  :)



#20 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Mon Mar 26, 2018 1:33 AM

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!

 

Attached File  SPECTRE.zip   7.63KB   8 downloads < fiad file.

 

 

Attached File  spooks.mp4   1.28MB   5 downloads

 

 


Edited by Retrospect, Mon Mar 26, 2018 5:09 AM.


#21 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Wed Mar 28, 2018 3:43 PM

 

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!



#22 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Thu Mar 29, 2018 2:10 PM

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 :)

 



#23 Retrospect OFFLINE  

Retrospect

    Stargunner

  • Topic Starter
  • 1,006 posts
  • Location:Wakefield, England

Posted Fri Mar 30, 2018 5:12 AM

 

 

Attached File  SPOOKS3.zip   10.48KB   12 downloads

 

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, Fri Mar 30, 2018 5:32 AM.


#24 GratedTopping OFFLINE  

GratedTopping

    Chopper Commander

  • 165 posts

Posted Mon May 21, 2018 7:22 PM

Howdy. I've been absent from the forums for a while but am back checking out what is new. This is looking nice and was a good find!




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users