Jump to content

Photo

Night Stalker - Complete (XB256 compiled)


102 replies to this topic

#1 LASooner OFFLINE  

LASooner

    Moonsweeper

  • 265 posts

Posted Mon Mar 5, 2018 6:00 PM

Felt it was time to start a thread for this one. I already had posted some of this in the Sprite through a Maze thread, but this will be updates to the progress on the game as a whole.



Still glitchy, but playable, you can kill robots, they can kill you. Bats and Spiders not yet targets

There is a bullet detection bug where even though I'm clearing the sprite, I forgot to clear the values and it still registers a hit.


COMPLETED:
Robots navigate maze (Level 1 random movement)
Robots target and shoot at player
Player dies from bullet hits
Robot Dies from Bullet hits and registers a score based on level
Player has margin for error in turning through maze keeping the player from getting hung up on walls
Player walks slower through web
Gun spawns in 1 of 5 predefined locations
Gun adds bullets when picked up
Gun respawns after bullets reach 0

Bats and Spiders stun player

Add hit points to Level 3+ robots

Bats and Spiders die from bullet hits from player

Level 2+ Robots pursue player through maze

Add delay before player and robot respawn

Remove Bunker sprites when player is not near to reduce sprite flicker

Bats and Spiders die from bullet hits from main robot

Extra Man every 10000 points

Level 4 Robot shots kill player bullets

Black Robot fires larger projectile

Bats hanging from ceiling on Spawn

Add explosion graphic for bat or spider death (spinning disc temp)

Find space or make new title screen

Add an attract screen mode, to give the player time to start the game and explain scoring

Level 4 Robot destroys bunker

Look into using chars for bullets to reduce sprite flicker

 

 

BUGS: 
Bullet still registers hits after dying if player doesn't shoot
Bats will start shooting at player after 5000 points, when the bats are supposed to become robots after death

Robot not switching to higher level robots after 15000 points

Characters are being defined after the title screen comes up

Heartbeat Noise not playing

Reduce memory footprint not running after compiled

Converted bat robots after level 2 sometimes get stuck and travel through the map, can't be shot.

Speed of the game is too slow

Robot scoring is messed up past 5000 points

Robot shot sounds hanging until next shot

Bullets don't kill hanging bats.

Robot Shields don't display correctly

On first start bats don't start hanging

Bunker Sprites not be handled correctly after black robot appears

Player can clip through wall on 2nd and 3rd column pass through intersection

Player is occasionally being killed twice on the same bullet

Extra man after 20000 doesn't show up until you kill something after 20000 or any progression after that

 

STILL NEED TO COMPLETE:

Optimizing and Bug Swatting

 

 

 

 

 

 

The goal is to make a recreation of the original Intellivision game as best I can.

Uses Joystick 1, check your ALPHA LOCK before playing.

 

Updated  4/2/2018

Attached File  NSTALKER8.bin   32KB   24 downloads


Edited by LASooner, Mon Apr 2, 2018 3:48 PM.


#2 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 265 posts

Posted Mon Mar 5, 2018 6:03 PM

As an aside, does anyone know how to keep the DISPLAY AT from adding a blank character to the left and the right of the value? IS DISPLAY AT USING the only way? Because that function doesn't compile. And unfortunately XB256's CALL LINK("DISPLAY") only uses character strings not values. 



#3 ti99iuc OFFLINE  

ti99iuc

    Stargunner

  • 1,360 posts
  • Location:Italy

Posted Mon Mar 5, 2018 6:08 PM

Oh my !
i played this game on the Mattel Aquarius years ago :D
It is great to see a TI99's version LASooner ! It Cool and fantastic Colors too ! :)

Thanks ;)

Edited by ti99iuc, Mon Mar 5, 2018 6:11 PM.


#4 RXB ONLINE  

RXB

    River Patroller

  • 2,993 posts
  • Location:Vancouver, Washington, USA

Posted Mon Mar 5, 2018 6:39 PM

As an aside, does anyone know how to keep the DISPLAY AT from adding a blank character to the left and the right of the value? IS DISPLAY AT USING the only way? Because that function doesn't compile. And unfortunately XB256's CALL LINK("DISPLAY") only uses character strings not values. 

Sadly RXB is not supported by XB256 and RXB has CALL HPUT(row,column,string,...) or CALL HPUT(row,column,number,...) {this is the same as HCHAR}

 

CALL HGET(row,column,string-variable,...) {this is the opposite and gets stirngs off the screen that XB does not allow}

 

To bad XB256 does not have a RXB256 versions as this would solve a ton of issiues people have making games.



#5 Bones-69 OFFLINE  

Bones-69

    Chopper Commander

  • 194 posts
  • Location:Australia

Posted Mon Mar 5, 2018 7:32 PM

As an aside, does anyone know how to keep the DISPLAY AT from adding a blank character to the left and the right of the value? IS DISPLAY AT USING the only way? Because that function doesn't compile. And unfortunately XB256's CALL LINK("DISPLAY") only uses character strings not values. 

 

A few things come to mind... I am out and about so only going from memory at the moment, but think I am on the right track. If you use something like the following this is likely causing the spaces;

 

DISPLAY AT(1,1):"SCORE";A

 

Whereas the following should give you a better display;

 

A$="SCORE "&STR$(A)::DISPLAY AT(1,1)SIZE(LEN(A$)):A$

 

I think using the same A$="SCORE "&STR$(A) should allow you to use the XB256 feature. Again, only going from memory.

 

Game looks great by the way! :)



#6 eebuckeye OFFLINE  

eebuckeye

    Stargunner

  • 1,047 posts

Posted Mon Mar 5, 2018 7:56 PM

That looks awesome! Really nice job! Can't wait for the completed version!



#7 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 265 posts

Posted Mon Mar 5, 2018 8:07 PM

 

A few things come to mind... I am out and about so only going from memory at the moment, but think I am on the right track. If you use something like the following this is likely causing the spaces;

DISPLAY AT(1,1):"SCORE";A

Whereas the following should give you a better display;

A$="SCORE "&STR$(A)::DISPLAY AT(1,1)SIZE(LEN(A$)):A$

I think using the same A$="SCORE "&STR$(A) should allow you to use the XB256 feature. Again, only going from memory.

 

Game looks great by the way! :)

 

 

Ahh so I can use STR$ to apply the numeric value into a string that can be displayed, that's what I was looking for.

Thanks!



#8 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 265 posts

Posted Tue Mar 6, 2018 3:21 AM

 

 

Ahh so I can use STR$ to apply the numeric value into a string that can be displayed, that's what I was looking for.

Thanks!

That fixed the issue with the score showing up with blank spaces



#9 Iwantgames:) OFFLINE  

Iwantgames:)

    River Patroller

  • 2,160 posts

Posted Tue Mar 6, 2018 3:32 AM

Wow looks awesome

#10 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 265 posts

Posted Tue Mar 6, 2018 4:38 AM

BUGS: 
Bullet still registers hits after dying if player doesn't shoot
Bats will start shooting at player after 5000 points, when the bats are supposed to become robots after death

Robot not switching to higher level robots after 15000 points

 

 

 

 

 

Fixed the issue with the score not drawing correctly (thanks Bones-69)

 

Also changed the spider color to light green, it looks better on a CRT

 


Edited by LASooner, Wed Mar 7, 2018 4:15 PM.


#11 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 265 posts

Posted Tue Mar 6, 2018 5:11 AM

OK, I missed this one.... how does one have a score that goes higher than 32767?



#12 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 265 posts

Posted Tue Mar 6, 2018 5:17 AM

I think I have a solution, All point values are hundreds or thousands, if I just add two zeros to the converted string, "200" Points would actually be 2 points internally. This means one could theoretically score up to 3,276,700 before you flip the score.  I now return you to your regularly scheduled programming.



#13 Vorticon OFFLINE  

Vorticon

    River Patroller

  • 3,090 posts
  • Location:Eagan, MN, USA

Posted Tue Mar 6, 2018 5:19 AM

Looks awesome!



#14 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 265 posts

Posted Wed Mar 7, 2018 2:40 PM

Update uploaded to first post.

 

 

Memory is getting tight, so I'm optimizing as much as I can. But I may lift my skirt in the next week or so and get other eyeballs on my code to see what can be done to improve speed and space

 

 

 

COMPLETED:

Bats and Spiders stun player

Add hit points to Level 3+ robots

 

BUGS: 

Characters are being defined after the title screen comes up

 

STILL NEED TO COMPLETE:

Bats and Spiders die from bullet hits from either player or robots

Level 2+ Robots pursue player through maze

Level 4 Robot destroys bunker
Level 4 Robot shots kill player bullets

Add an attract screen mode, to give the player time to start the game and explain scoring
Bats start hanging from ceiling
Add delay before player and robot respawn



#15 digdugnate OFFLINE  

digdugnate

    Stargunner

  • 1,208 posts

Posted Wed Mar 7, 2018 2:56 PM

this looks really neat :)



#16 majestyx OFFLINE  

majestyx

    Chopper Commander

  • 202 posts
  • Location:Port Carbon, Pennsylvania

Posted Wed Mar 7, 2018 3:03 PM

That is some great work! If I didn't know better, I'd have thought it was the Intellivision version, or possibly the Apple ][ version I remember playing way back in high school.



#17 Opry99er OFFLINE  

Opry99er

    Quadrunner

  • 9,250 posts
  • Location:Hustisford, WI

Posted Wed Mar 7, 2018 3:15 PM

Wow... really coming together!!!

#18 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 265 posts

Posted Sun Mar 11, 2018 6:12 AM

Updated Rom image in Post 1:
 
Bats and Spiders die from bullet hits from player
 
This is the last major hurdle, but in getting this working the delay for the robot respawn seems to have broken
 
Game is playable but too slow, I need to optimize some more, also running up against memory limits, lots of if/then statements that I'll need to see if I can do it better, Notepad ++ reports 178 IF/THEN Statements
 
 
If anyone wants to take a crack at improving speed and memory, I've included the code. I program in TIdBit so the comments are in that format.
 
Be nice, Code is not my strong suit.
 
EDIT:  
Updated in a later message, just didn't want people trying to fix problems I fixed

http://atariage.com/...iled/?p=3985398

Edited by LASooner, Wed Mar 14, 2018 2:28 PM.


#19 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 265 posts

Posted Sun Mar 11, 2018 7:47 PM

I now have level 2 or higher robots chasing the player, it's working pretty well.

 

However, I'm running out of memory after the game is compiled, I don't know why, but I'll have to look into optimizing it. In extended basic, the memory left is roughly 4.6k remaining before I run it, and roughly 3.6k remaining after running it, so I'm not sure what's happening after compiling that's causing me to lose that 3.6k, but that doesn't seem right.

 

because of this I have not uploaded a new rom image since it doesn't run. 



#20 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 265 posts

Posted Tue Mar 13, 2018 3:23 AM

 

 

Updated the Rom image in 1st post.

 

Had to remove my title screen to make room, just so the game can run compiled. Will look into trying to free up memory, or just make a simple title.

 

Bats and Spiders die from bullet hits from player

Level 2+ Robots pursue player through maze

Add delay before player and robot respawn

 

Game is more or less feature complete, lots of debugging and performance issues to sort out. Level 4 robot features aren't critical as I don't think many will get there yet.

 

Has anyone played it?


Edited by LASooner, Tue Mar 13, 2018 3:46 AM.


#21 unhuman OFFLINE  

unhuman

    Stargunner

  • 1,202 posts
  • Location:Vienna, VA

Posted Tue Mar 13, 2018 6:52 AM

Played it a bit ago.  Was reserving feedback after you finished, as you already had all my issues covered.  :)  BTW - the new video doesn't work.  One thing I'm a bit concerned about, however, is your intersection tracking.  That's a lot of logic...  You could put all the check 1, check 2, resetTo variables in an array and then iterate on the array.  That'd save a lot of memory.


Edited by unhuman, Tue Mar 13, 2018 6:57 AM.


#22 Retrospect OFFLINE  

Retrospect

    Stargunner

  • 1,004 posts
  • Location:Wakefield, England

Posted Tue Mar 13, 2018 7:29 AM

Yeah arrays could be used as kind of a "look-up-table" to be checked on each update the game makes, you'd be hitting the stack then, rather than program space.

 

I must say , very good game.  Something I've all-too-often struggled with is making sprites recognize character wall boundaries.



#23 doctorclu OFFLINE  

doctorclu

    ***Moon Patrol 5200*** ***Moon Master*** *Blue Max:Class 4*

  • 7,318 posts
  • *Star Raiders 2* **Captain -CL 2**
  • Location:*Star Raiders * *Star Commander -CL 1*

Posted Tue Mar 13, 2018 8:10 AM

Oh wow, some basic code.  Makes me want to print that out and try that on another computer like from the computer magazine days.  :D

 

Love Night Stalker and loving this!



#24 LASooner OFFLINE  

LASooner

    Moonsweeper

  • Topic Starter
  • 265 posts

Posted Tue Mar 13, 2018 11:59 AM

Video should be working now YouTube marked it private for some reason

 

So put the sprite positions for the robots and bats in a 2 dimensional array and check against that? Is that what you guys are saying? 

 

Something like XX(ROW,COL), Storing all the the intersection locations in that to check against. Do I have that right?

 

And would that improve speed as well?


Edited by LASooner, Tue Mar 13, 2018 12:00 PM.


#25 majestyx OFFLINE  

majestyx

    Chopper Commander

  • 202 posts
  • Location:Port Carbon, Pennsylvania

Posted Tue Mar 13, 2018 2:00 PM

I'm wondering about the XB code above and how it's being compiled. How are you able to get the IF-THEN statements to compile without using line numbers? I see things like

1870 IF DR(1)=1 THEN RETURN
2100 IF (BS1=2)*(M=2) THEN DS=1

...and am wondering how those compile properly since one of the limitations of the compiler is that IF-THEN-ELSE will only work with line numbers.

 

Also, not sure that this will save much memory, but one quick one that can be changed, based on the valid values of DS per your comment in the above code, would be

380 IF DS=1 THEN GOSUB 1020::RETURN
390 IF DS=2 THEN GOSUB 1050::RETURN
400 IF DS=3 THEN GOSUB 1240::RETURN

reduced to

380 IF DS=0 THEN 410
390 ON DS GOSUB 1020,1050,1240::RETURN

Anyway, sorry I'm not much help at this time (at work and checking your code on my downtime) but will continue to look it over. Again, great looking port!






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users