[Beta Release] Snakes - Local play 1-8 players

Current Version: 0.2.5

Gameplay from 0.2.2, thanks to pickPickles:


Introducing a local play game supporting 1-8 players!
This is a great party game!



w5aNmaE.png

0.2.4:
  • 1-3 Bot opponents to play against while waiting for friends to join!
  • Autopilot feature!
  • Will go back to Start Screen if you leave game.
0.2.3:
  • Fixed many netcode anomalies
  • Fixed message flooding after host leaves game options menu
0.2.2:
  • Added "Occasional holes" game option by request of Kingdra. This makes holes about 1/80 dots of your snake on average, allowing you or anyone else to pass through them.
0.2.1:
  • Added Screen Score system. This reflects a score based on the combined lengths of all snakes on the screen at the end of the round.
  • Added High Score system. The High Score is based upon the Screen Score at the end of the round. The winner takes the full Screen Score. Messages will be displayed to all players if you obtain a new high score!
  • You can now reset your High Score by holding R and pressing Y at the start screen.
0.2.0:
  • Fixed bug when many long snakes die in "Disappear on death", the game slows down.
  • Official beta release!
0.1.7:
  • Added new game option: Disappear on death. Now you can have a true tron cycle bike game mode by enabling: Tron mode, No apple, Disappear on death.
  • Fixed a slew of bugs, including: ghost readies, being unable to press A for the first second at the end of a round, dropping death packets that force some players to stay in game when round is actually over, players getting stuck in "game starting...", and many more.

CURRENT KNOWN BUGS:
  • Bots do not know what to do during a game with "No apple" mode enabled.
  • If two snakes cross at the same time, they will both live. This is not technically a bug, as when I asked players how they'd like to handle it, they decided it's more fun if they both live when this happens.
  • Sometimes when using Autopilot in local play, the bot appears longer to other players.
  • If you close the lid while hosting, you may be unable to start a game without re-opening Snakes.
  • All of these bugs will be fixed soon! Sorry about that.
To Start A Game:
You do NOT need a wifi connection to play with others that already have this game installed, but you do need WiFi enabled on your 3ds so local play can work.

Read the instructions on the bottom screen.


At the Start Screen, press START to quit.

Press X to display the QRCode to the latest .cia release of Snakes! Use this so friends can easily install the latest version and play with you. For installing this way, you need a wifi connection and a QRCode .cia installer: https://gbatemp.net/threads/release-qr-web-installer-cia-installer.416243/

Press A to host and start a one player game. HOLD A to wait for a 2nd player to connect.

Hold B to scan for a room. If more than one room is found, you will be able to choose them from a list. The selected room will be highlighted in yellow. If you see a list, press A to select that room to join it.


When joining a room that is in-progress, you will join as dead. This is to be fair to other players. When this happens you will have to wait for the end-of-round screen before you can interact. Press START to quit.

Press Y at the start screen to change your username. This will only be displayed IN the game, not when selecting a host to join.

Press SELECT for game options. Press B to go back a screen. Using directional input will allow you to highlight a selection in yellow. Press A to select. In some sub-menus, pressing A will highlight a special selection in red. When this happens, pressing directional input will change the red value. Press B or A to stop selecting the value. You can always press B to go back a screen.

Here are the game modes you can toggle any combination of:



    • Boundaries kill: Classic snake! You can't touch the boundaries, or they will kill you.
    • Tron mode: For a game of tron, enable this and "No apple" to experience a true tron cycle bike game! Snakes will always grow, and never have a true tail.
    • Disable diagonals: For those of you that think the CPad's automatic diagonals is too OP, this is for you.
    • Disable A: Don't like being able to go fast? Disable it here.
    • Disable B: Don't like being able to go slow? Disable it here.
    • Disable Y: Hate it when people teleport the apple? This is for you.
    • Enable R: Be able to go in reverse by pushing the R button.
    • No apple: Forget the apple, just kill everyone!
    • Apples double length: for easier advantage over other players. you get twice as long for every apple you get
    • Disappear on death: What it sounds like. Use this, no apple, and Tron mode for a tron cycle bike game mode.
    • Occasional holes: This makes all snakes occasionally have holes in them at random. On average, it happens 1/80 "dots". To put this in perspective, non-Tron games start with a length of 40 dots. Requested by Kingdra.
You can also select how many bots you want to play against in one-player. Select the top line that displays "Number of bots: 1" and press Right or Left to increase or decrease the bots.

You can also press up/down to select a specific bot to change its difficulty.
The difficulty range is as follows from most difficult to least: Insane > Hard > Medium > Easy.


How to Play:
This version of snake is a little different from the average!

Your snake is always moving, whether you want it to or not!


To change direction, Use the CPad (left thumbstick) for easy curves, or the D-Pad for precise directional changes.

Your snake is a unique color line that grows the more you eat apples. Don't run into yourself or other snakes! If you die, on the bottom screen it will say in parenthesis who you ran into.

Apples are white dots. Run over one and you will gain a point and get much longer than in the average snake game.

Hold A to go twice as fast!
Hold B to go twice as slow!

Press Y to move the apple once! You can only do this once until someone scores a point. You can still do this when you are dead! Annoy the last one standing by moving it around right before they get it!

Once everyone is dead, or the last one alive gets the highest score, the round will end. To continue, press A! You may not be able to press A right after the round ends, it will be ignored for one second. Once everyone presses A, the next round will begin! You can tell if someone is ready by noting a green R under their score.

You can also press L to toggle Autopilot. Whenever this is enabled, you forfeit that round even if you disable it before the round ends. This is to be fair to others.

Some META:
If the apple is stuck in the center of a square/circle of your long tail, you can teleport it by pressing Y, or you can move in layers (back and forth) to use up the least amount of space possible. Eventually the end of your tail will stop wrapping around the apple as it catches up to you.

Having trouble getting the apple? Hold B when getting close to it for fine maneuvers!

In multiplayer, you basically have one of two goals:
  • Get apples until you are big enough to kill everyone else
  • Kill everyone first by moving quickly, then grab the remaining apples needed to get the highest score.
  • The Cage Strategy: If you are longer than the last person alive, you can wrap around them and bite your own tail to prevent their escape. You obviously have gotten more apples than them, so they will be forced to suicide and lose. Suggested by elementalcode
Screen Score:
The Screen Score is the balancing between all game modes to give an accurate "score" for the end of the round. This score is calculated by all devices adding up all client-side snake lengths, and sharing this number. All devices agree to use the largest number shared, and this becomes the "Screen Score". If this screen score is higher than the winner's current High Score, it will display a message on all devices saying they have obtained a new High Score, and it will automatically save to the winner's save file on the root of the their SD card.

Credits:
  • Wolfvak - for graphics help like finding color from frame buffer. thanks a lot!
  • smealum - for ctrulib and other contributions to homebrew dev
  • fincs - graphical rendering! Helped me fix a major bug that slowed the game down.
  • Stary - both Stary and fincs both helped me discover and fix a bug that slowed the game down due to inefficient graphical rendering. Thank you so much!
  • zaksabeast - for helping me with this release
  • pickPickles - testing and recording gameplay with 8 players
 
Last edited by Desynched,

Desynched

Well-Known Member
OP
Member
Joined
Jan 4, 2017
Messages
107
Trophies
0
Age
37
XP
171
Country
United States
cool, and thanks for the feed back
The feeling is mutual :)

If you can, please try the computer opponent when I release this next version on Feb 8th or so!

--------------------- MERGED ---------------------------

it's possible to host a server with my pc to play with others? if you add some online function?
That is definitely possible, and something I've been wanting to do. However, I have some major refactoring to do before I can add a feature like that. Sorry, but it may be a while before that comes to the game
 

Pickpickles

Active Member
Newcomer
Joined
Oct 5, 2016
Messages
39
Trophies
0
Age
24
XP
138
Country
United States
The feeling is mutual :)

If you can, please try the computer opponent when I release this next version on Feb 8th or so!

--------------------- MERGED ---------------------------


That is definitely possible, and something I've been wanting to do. However, I have some major refactoring to do before I can add a feature like that. Sorry, but it may be a while before that comes to the game
Doesn't the 3DS use an encrypted wireless channel for local play? I haven't seen an instance of a PC connecting to a 3ds.
 

Desynched

Well-Known Member
OP
Member
Joined
Jan 4, 2017
Messages
107
Trophies
0
Age
37
XP
171
Country
United States
Doesn't the 3DS use an encrypted wireless channel for local play? I haven't seen an instance of a PC connecting to a 3ds.
The idea is to have the pc host on a regular socket, and the 3ds guests to connect using regular sockets instead of local play. Like a separate multiplayer option.

You are right, and so I'd need to have that game connect a different way
 

Desynched

Well-Known Member
OP
Member
Joined
Jan 4, 2017
Messages
107
Trophies
0
Age
37
XP
171
Country
United States
I'm not sure if the release of 0.2.4 will be today. We'll see how far I get implementing a computer opponent menu with difficulty settings.

I also need to find the root of a strange bug.

On the other hand, the game will correctly close itself if you close the lid (or exit using the home menu button in the cia version).
 
  • Like
Reactions: LucarioWolf

Desynched

Well-Known Member
OP
Member
Joined
Jan 4, 2017
Messages
107
Trophies
0
Age
37
XP
171
Country
United States
I just ended up helping other students all day today.

Tomorrow I'll be studying for two tests, so I may not have much time between classes to get this version out as soon as I hoped.

I've refactored a lot of the code to do a few things in this next update:
  • Added a scene stack to make it easier in the future to add menus and other things, as well as fix the bug of closing incorrectly when leaving the game without pressing start. This also made it easier to go back to the start screen if you quit during gameplay or at the end of round screen.
  • Solved a memory corruption problem that caused weird behavior sometimes.
  • Used a more efficient method for drawing the snakes.

Before I can release the next version update I need to finish the following:
  • Finish refactoring code into separate functions for the scene stack, and link them correctly. Right now the only scenes that link correctly are when playing offline. (start menu -> game options and start screen -> setup round -> game -> end of round -> game, etc)
  • Add some tweaks to the computer opponents that can increase or decrease their difficulty. Right now it can play very well, so it would be too difficult to beat if it's allowed to go fast, but I've found it too easy if it is not.
  • Add a menu for selecting number of computer opponents for offline play, and for selecting their difficulties.
  • Test all the things!
I know I'm not getting paid or have any real obligation, but I still want to deliver things on time and in good quality. So thanks for being patient!
 
  • Like
Reactions: Quantumcat

Pickpickles

Active Member
Newcomer
Joined
Oct 5, 2016
Messages
39
Trophies
0
Age
24
XP
138
Country
United States
The highest difficulty AI should be hard like the AI in Pong. Would it be possible to create 2 player local play pong?
 

Desynched

Well-Known Member
OP
Member
Joined
Jan 4, 2017
Messages
107
Trophies
0
Age
37
XP
171
Country
United States
The highest difficulty AI should be hard like the AI in Pong. Would it be possible to create 2 player local play pong?
Yes, it is.

I will have the highest difficulty setting for the ai in snakes hopefully be very difficult, but I want a medium difficulty as well.
 

Desynched

Well-Known Member
OP
Member
Joined
Jan 4, 2017
Messages
107
Trophies
0
Age
37
XP
171
Country
United States
download play locally doesnt work right?
I'm not sure if you mean Nintendo download play or a "download play" that I make specifically for Snakes. In the latter case, I haven't made one.

Snakes requires both 3ds's to have Snakes installed before the local play will work in the game. You also need to be sure your 3ds has wifi enabled. Local play doesn't require a wifi connection, but it makes its own hidden connection. This means you can local play using two 3ds's in the middle of nowhere.

However, Nintendo download play is different. It makes sure the game you want to download play is an official title, or it won't download play it at all. This game cannot spoof a real Nintendo game, so using Nintendo's download play for Snakes is impossible at the moment.

I hope I answered your question!
 
  • Like
Reactions: Quantumcat

derthomas

Well-Known Member
Newcomer
Joined
Mar 23, 2015
Messages
98
Trophies
0
XP
1,876
Country
Germany
Thanks for your respone. I meant the download play option offered by nintendo, yeah. Thought thats its possible to spoof an original game to trick the system behind it. Apparently not, too bad. Most people in my streetpass meetings dont have a modded 3ds ;)
 

Desynched

Well-Known Member
OP
Member
Joined
Jan 4, 2017
Messages
107
Trophies
0
Age
37
XP
171
Country
United States
Thanks for your respone. I meant the download play option offered by nintendo, yeah. Thought thats its possible to spoof an original game to trick the system behind it. Apparently not, too bad. Most people in my streetpass meetings dont have a modded 3ds ;)
Yeah, and it's going to be even more rare now that 11.3 has dropped.

It's unfortunate :(
 

Quantumcat

Dead and alive
Member
Joined
Nov 23, 2014
Messages
15,144
Trophies
0
Location
Canberra, Australia
Website
boot9strap.com
XP
11,094
Country
Australia
Thanks for your respone. I meant the download play option offered by nintendo, yeah. Thought thats its possible to spoof an original game to trick the system behind it. Apparently not, too bad. Most people in my streetpass meetings dont have a modded 3ds ;)
Do what I do and prepare some SD cards with SoundHax for the latest firmware, and Snakes in the 3ds folder. At your Streetpass meetups you can get them to use one of your SD cards. This is easier if they have old 3DS' of course.
 

Desynched

Well-Known Member
OP
Member
Joined
Jan 4, 2017
Messages
107
Trophies
0
Age
37
XP
171
Country
United States
There is a memory corruption or undefined behavior problem I am trying to find the source of. Unfortunately this kind of problem is one of the more difficult ones to spot. But, due to this problem, the game is not in shape to be released.

Hopefully I can find the time and the needed approach to find this problem soon.
 
Last edited by Desynched,

Desynched

Well-Known Member
OP
Member
Joined
Jan 4, 2017
Messages
107
Trophies
0
Age
37
XP
171
Country
United States
I have solved the bug I was having a hard time tracking down. This means I can start implementing the new menu and hopefully release 0.2.4 soon.

--------------------- MERGED ---------------------------

Do what I do and prepare some SD cards with SoundHax for the latest firmware, and Snakes in the 3ds folder. At your Streetpass meetups you can get them to use one of your SD cards. This is easier if they have old 3DS' of course.
I didn't realize SoundHax worked for 11.3! I wish that was as good as it sounds, but unfortuntately, I read this from the 3ds hacking community:

xGhostBoyx said:
Soundhax is just an exploit that overflows music file namespace. Thats all. On 11.2 you could use it to run a payload that gave you homebrew access. With 11.3 this payload is patched. So till a new payload is released, u cannot use homebrew on 11.3 Payloads don't work because the home menu got updated in 11.3 and homebrew works by writing over the home menu data

So it looks like we are still waiting for a new payload for 11.3
 

Quantumcat

Dead and alive
Member
Joined
Nov 23, 2014
Messages
15,144
Trophies
0
Location
Canberra, Australia
Website
boot9strap.com
XP
11,094
Country
Australia
I have solved the bug I was having a hard time tracking down. This means I can start implementing the new menu and hopefully release 0.2.4 soon.

--------------------- MERGED ---------------------------


I didn't realize SoundHax worked for 11.3! I wish that was as good as it sounds, but unfortuntately, I read this from the 3ds hacking community:



So it looks like we are still waiting for a new payload for 11.3
Ah I forgot about 11.3. I'm sure it will work again soon though.
 

Desynched

Well-Known Member
OP
Member
Joined
Jan 4, 2017
Messages
107
Trophies
0
Age
37
XP
171
Country
United States
So I've got kind of an interesting way to set the computer opponents settings.

edit: To access this hidden menu, press L and R at the normal computer opponents menu screen.

You can adjust 3 things separately for up to 3 bot opponents:
  • Allow to go fast [when A is enabled]
  • Precision (20% minimum, 100% maximum)
  • Patience (0 to 100)
Allowing the bot to go fast is basically how difficult he is to beat. When he's able to go fast, I'd suggest playing with his precision (which is how likely he is to turn precisely when he wants to)

Precision is actually how precise his turning is. 80% is default right now, and that means 80% of the time he should turn, he will. This could compound, and he could potentially overshoot 4 times in a row (or more) - which is interesting. This is to make the illusion of a real player, so he won't always be able to go through tight spaces.

Patience is interesting. Patience determines how long the bot will wait until it tries to move the apple (if it's allowed), and how long it will wait before it commits suicide for being unable to find a path. Basically, if the bot gets trapped, this determines how much time will pass before it gives up and dies, and it determines how long it takes before it gets frustrated and tries to move the apple.

I thought it was funny setting the computer opponent so it was allowed to go fast (Which it always does if it finds a path to the apple), and set its precision to the minimum. This caused it to play like a maniac that had poor aim, and it was fun to watch.

edit: Since I have gotten most of the goals completed for 0.2.4, I will release it soon. I just need to clean up some of the bugs that appeared after implementing frame drops and other mechanics.
 
Last edited by Desynched,

Desynched

Well-Known Member
OP
Member
Joined
Jan 4, 2017
Messages
107
Trophies
0
Age
37
XP
171
Country
United States
Just finishing up the menus. They look terrible by the way. Hopefully I can make them look a little better before release.

To get access to the bots' individual settings on this next release, press L and R at the regular computer opponent menu for a hidden menu that lets you set your own unique ai settings.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: yawn