Jump to content
IGNORED

[COMPLETED] Pinfinger! (aka The Knife Game)


KevKelley

Recommended Posts

Here is a new game that I had made that is 99% complete.  All that is left is perhaps adding more patterns and a couple more sounds.  This game started as an exercise in data tables and in using my new portable programming setup.  I got a small Windows tablet to use Visual batari Basic and Atari Dev Studio to use while at work or on the go.  I tried to make some concise code and as it is this game uses less than 4k bytes (approximately 80 bytes free to use).

 

Title:

Pinfinger!

 

Couch Compliant?

Yes!

 

Gameplay:

The name of the game is Pinfinger.  It goes by other names but Pinfinger sounded so much cooler! The main rule of the game is to avoid stabbing the hand during each pass.

 

The title screen has two options - single player or two player.

 

If you select the single player option then you are presented with a second menu where you select the Mode by pressing up.  This determines the pattern in which the knife will travel.  There are 9 patterns (the first 3 being the most popular and widely known patterns):

 

  • MODE 1
  • Pattern 1:   1, 2, 3, 4, 5, 6, 5, 4, 3, 2
  • Pattern 2:   1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 5, 1, 4, 1, 3, 1, 2
  • Pattern 3:   1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 2, 6, 3, 6, 4, 6, 5, 6, 4, 6, 3, 6, 2, 6 
  • MODE 2
  • Pattern 4:   1, 6, 2, 5, 3, 4, 2, 5
  • Pattern 5:   1, 3, 2, 4, 3, 5, 4, 6, 3, 5, 2, 4, 3
  • Pattern 6:   1, 2, 1, 2, 3, 4, 3, 4, 5, 6, 5, 6, 5, 4, 5, 4, 3, 2, 3, 2
  • MODE 3
  • Pattern 7:   1, 4, 2, 5, 3, 6, 3, 5, 2
  • Pattern 8:  1, 4, 3, 2, 6, 3, 4, 5, 2, 6, 5, 4, 5, 3, 4, 2
  • Pattern 9:  Random

 

Pressing left while on the Mode screen will enable the Easy mode, which will allow multiple hits with the knife. This is indicated by a pixel on the top left of the screen. To turn Easy mode off, simply move to the right of the menu. When in Easy mode, the right status bar is the timer while the left status bar is your "health." Once this runs out the game is over.

 

Pressing down while on the Mode screen will change the speed of the knife.  There are 3 speeds, with the default being the slowest.  This is indicated  by one or two pixels on the top right of the screen.

 

Once you select your pattern by pressing the fire button the game will start.  The game screen features a knife, a hand, and a number.  The number indicates which space the knife will be traveling to, with 1 being furthest left of the thumb and 6 being furthest right of the pinky.

 

You get 1 point for each successful stab and a 10 point bonus for each completed pattern (except in 2-player mode and random). 

 

If you select the two player mode there will be no mode select.  Instead there is one "Mode 1" but you can select speed and stabbing just as you could in the main game. When you start you will notice there is now an indicator on the top left. The second player can now choose the next destination by pressing the fire button, with each pixel indicating the position. There are no bonuses in the two player mode.

 

If you stab the hand you lose and are met with a Continue screen.  Pressing left, or "Y," on the first player joystick will continue with the current settings while pressing right, or "N,"  will return you to the titlescreen.

 

There is also a timer, indicated by the two colored bars on the side of the score.  If you do not successfully make a stab or hesitate too long the time will run out and you will lose.

 

Also added soft reboot for Plus Cart!

 

KNIFE_2021_12_29.bas_1.png

 

 

KNIFE_2021_12_29.bas_4.png

 

 

KNIFE_2021_12_30.bas.png

KNIFE_2022_01_01.bas.png

KNIFE_2022_01_01.bas.bin

Edited by KevKelley
  • Like 7
Link to comment
Share on other sites

Nice game!

 

The colors are OK on PAL too.

 

The hands on the menu screen look like broken forks, you might want to add a thumb to it.

 

The arrows on the continue screen are difficult to identify. Maybe they would be better like this:

  #                #
 #                  #
#########    #########
 #                  #
  #                #

 

The exit function does not work on the PlusCart, because the console switches are not used.

  • Like 2
Link to comment
Share on other sites

26 minutes ago, Al_Nafuur said:

Nice game!

 

The colors are OK on PAL too.

 

The hands on the menu screen look like broken forks, you might want to add a thumb to it.

 

The arrows on the continue screen are difficult to identify. Maybe they would be better like this:


  #                #
 #                  #
#########    #########
 #                  #
  #                #

 

The exit function does not work on the PlusCart, because the console switches are not used.

What is the exit function on the PlusCart?

 

As for the other things, I originally had thumbs but thought it looked a bit weird but I can play around with it. 

 

I think even in SECAM the colors aren't that bad (I think the hand turns white?. I only did a little test with other colors.

 

The arrows may be difficult, as they are currently 3 pixels high and to keep them in line with the "Y" and "N" I didn't go larger. I did notice I forgot the dot on the question mark so when I go back in and add that I did have some ideas for making lines.

 

Thanks for the feedback! I had been playing around with this for about 2 weeks. Was happy seeing how quick I got it to come together. 

Link to comment
Share on other sites

10 hours ago, KevKelley said:

What is the exit function on the PlusCart?

https://pluscart.firmaplus.de/pico/?Manual#exitFunction

 

Cartridges on the VCS cannot read the console switches and the joystick ports directly, so we have to monitor the address and data-bus and wait until the 6507 reads theses ports. As far as I know @batari is working on a similar solution for the Harmony cart.

 

There is a discussion in the PlusCart Club about injecting code to read the ports:

 

 

 

Link to comment
Share on other sites

14 hours ago, Al_Nafuur said:

Nice game!

 

The colors are OK on PAL too.

 

The hands on the menu screen look like broken forks, you might want to add a thumb to it.

 

The arrows on the continue screen are difficult to identify. Maybe they would be better like this:


  #                #
 #                  #
#########    #########
 #                  #
  #                #

 

The exit function does not work on the PlusCart, because the console switches are not used.

I changed the Continue screen a bit to make a less ambiguous arrow and added a little thumb on the side of the hands to make them less forky.  

 

I'll probably work on adding the couple extra features later on, like speed and patterns, and timer function. I am just trying to figure out how to select these options.  I don't want to add another menu screen but I think that I will do something similar to how the Player 2 selects the stab destination or maybe do something like change the knife a bit. All depends on how much space I need for more patterns.

 

KNIFE_2021_12_30.bas.png

KNIFE_2021_12_30.bas_1.png

  • Like 1
Link to comment
Share on other sites

11 minutes ago, Al_Nafuur said:

https://pluscart.firmaplus.de/pico/?Manual#exitFunction

 

Cartridges on the VCS cannot read the console switches and the joystick ports directly, so we have to monitor the address and data-bus and wait until the 6507 reads theses ports. As far as I know @batari is working on a similar solution for the Harmony cart.

 

There is a discussion in the PlusCart Club about injecting code to read the ports:

 

 

 

So if I put a joystick-right+reset into the code that would give for a soft exit for the Plus Cart?  I can do that!  

Link to comment
Share on other sites

24 minutes ago, KevKelley said:

So if I put a joystick-right+reset into the code that would give for a soft exit for the Plus Cart?  I can do that!  

You are already reading the joystick in your menu and game loop, so you just have to read the console switches too.

 

In bB you could add:

   if switchreset then goto menu

to your game loop and something similar to your menu screen loop.

 

If you don't want to use the state of the switches in your (menu) loop you can just add a short assembler snippet to your loop:

   asm
   lda SWCHB
end

 

  • Like 1
Link to comment
Share on other sites

Updated first post with addition information regarding more patterns, speed options, and easy mode.  Also added that soft exit for the Plus Cart. 

 

I will test this out to see if any bugs, errors, or tweaking is needed a bit but this is essentially finished.

  • Like 3
Link to comment
Share on other sites

14 minutes ago, KevKelley said:

 Also added that soft exit for the Plus Cart. 

exit function works now on the menu screen?

 

In game mode it is not working, most probably because only the joystick button (INPT4) is read and not the directions (SWCHA).

 

I overlooked this in my last post. So beside reading the console switches a

   asm
   lda SWCHA
end

is also needed in the game mode.

 

 

  • Like 1
Link to comment
Share on other sites

34 minutes ago, Al_Nafuur said:

exit function works now on the menu screen?

 

In game mode it is not working, most probably because only the joystick button (INPT4) is read and not the directions (SWCHA).

 

I overlooked this in my last post. So beside reading the console switches a


   asm
   lda SWCHA
end

is also needed in the game mode.

 

 

I had only put that code you mentioned before in the menu but I could add both in the main game as well.

Link to comment
Share on other sites

ZeroPage Homebrew is playing Pinfinger on tomorrow's stream LIVE on Twitch, hope you can join us!


Games:

 (WATCH AT 1080P60 FOR FULL QUALITY)

 

 

  • Like 2
Link to comment
Share on other sites

Can't wait to watch! I am more excited about the other two titles. Right now I am just testing and tweaking. My wife and son are my two playtesters and so far the main feedback I got was that it is frustrating and addictive like how Flappybird is. While the gameplay is simple it all comes down to just timing. While I only have about 50 bytes free, I am just looking things over and seeing if I can tighten things up a bit. 

 

This game had been a fun little learning experiment and I think I learned what I set out to learn. 

 

The way I made it work was I have the menu select a variable. That variable determines which data table will be read. The data table contains the position number and each position number determines the coordinates the knife will travel to. Once the knife reaches those coordinates the variable that retrieves the number from the data table changes. 

 

The knife will be able to stab at any time but be scored  in a range around those coordinates.

 

I had thought of several other ways of doing this, like having one very large data table and then have the mode select just determine where the code gets on and off but I eventually went with separate data tables and only reused a couple of them for various purposes.

 

I wanted to try and make it a simple game with a good amount of easily selectable options.

 

I think the only other thing I want to try and do is randomize the y-coordinate of the knife's destination a bit just to add a little bit of unpredictability.

  • Like 2
Link to comment
Share on other sites

Just finished this up today. I took the comments from ZeroPage Homebrew and added speed and stabbing options for multiplayer. I also added a bit of randomization to the y-coordinate of the knife to make things a little less consistent (only by a range of 7 pixels). 

 

I also changed Pattern 7, as I had realized it was too similar to one of the other patterns. 

 

I may look into making this a cart. I just bought an EEPROM burner and some test carts to try a DIY route first since I am crafty. Figured a 4k game would be perfect to learn.

 

And if not I may order some, which will more than likely be the case. 

  • Like 4
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 years later...

Since I have been busy working on several projects and trying to tighten up loose ends, I had a few minutes to do... something. So I decided to look at the Pinfinger code and see if I can squeeze out anything else in the 5 bytes remaining. One nagging little thing in my head was that when I made this game I didn't know what color to make the hand so I settled on Simpsons Yellow (a point my son pointed out to me). 

 

I tried adding a color select in the menu but it just ate up too much space but after a couple minutes I came up with a solution.  Now on the first menu, if you press left you will start to cycle through the colors. I did this and have I think 1 byte to spare.  I did this by just piggybacking on some other code in the menu select screen as well as using the same line for a coordinate value to define the starting color. 

 

I will play around with this a little more but I am happy that my original 4k experiment to pack in a game with a good amount of variations has worked out nicely. Here is a video of the color changing!

 

Now back to finishing up a couple other issues!

  • Like 1
Link to comment
Share on other sites

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