Download Link

Description
Snake++ is my first game for the TI-84 Plus CE calculators using C++. Snake++ has three game modes, classic, wrap, and winged. Classic mode is where you collect "apples" and die when you hit any wall or yourself. Wrap mode is the same as Classic mode, but instead of hitting walls, you go to the other side. Winged mode is like Classic mode, but the apple moves diagonally and bounces off the walls.

Progress
Classic Mode 100%
Wrap Mode 100%
Winged Mode 100%
Portal Mode 0%
UI 80%
Serialize UI 10%
Add Sprites to Snake & Background 0%
Add Score Screen and UI 0%
Settings 0%
Store (for powerups and customization) 0%

Latest Screenshots

Classic Mode


Wrap Mode


Winged Mode


Thank you for your support and feedback on this project![url]
This looks really neat! Great job! ๐Ÿ˜
Looks very nice. Perhaps add some difficulty settings, such as apple speed in winged mode, a wrapping toggle, snake speed, apple speed boost, amount of length added by each apple, and so on and so forth, with respective score bonuses and/or maluses (yes, thatโ€™s a thing), a leaderboard (arcade-style, much like in Patrick Davidsonโ€™s Calcuzap and CMonster), and perhaps unlockable snake colors, background colors, and apple colors that serve as achievements (much like Epsilon5โ€™s Hue and HailStorm)

Feel free to use any of these ideas. You donโ€™t have to if you donโ€™t want to, but I would like to be credited if you do ;P

(you donโ€™t have to lol i would just like it if you did)
darkwater4213 wrote:
Looks very nice. Perhaps add some difficulty settings, such as apple speed in winged mode, a wrapping toggle, snake speed, apple speed boost, amount of length added by each apple, and so on and so forth, with respective score bonuses and/or maluses (yes, thatโ€™s a thing), a leaderboard (arcade-style, much like in Patrick Davidsonโ€™s Calcuzap and CMonster), and perhaps unlockable snake colors, background colors, and apple colors that serve as achievements (much like Epsilon5โ€™s Hue and HailStorm)

Feel free to use any of these ideas. You donโ€™t have to if you donโ€™t want to, but I would like to be credited if you do ;P

(you donโ€™t have to 0x5 i would just like it if you did)


I planned on doing a lot of these ideas in the progress.

Quote:
Add Score Screen and UI 0%
Settings 0%
Store (for powerups and customization) 0%


Quote:
maluses (yes, thatโ€™s a thing)

What are maluses?

Thanks for the feedback!
RedSpacePanda wrote:
What are maluses?


Basically, the opposite of a bonus is a malus -- bad instead of good.

So on hard mode, a game might give you a score bonus. On easy mode, it might give you a score malus. Pretty straightforward.

Understandable that you've never heard of it before -- the only place that I can think of that I've seen it used where someone might actually see it is in the Ticket to Ride: Europe instruction manual. It's an obscure enough word that even Google doesn't recognize it! (Grammarly does though. I think.)
Hey, looking sharp. ๐Ÿ™‚
I was wondering if there was a public repository holding your code. I would love to take a peek at some toolchain implementation for C++.

Keep up the good work!
I like the winged mode, that looks very interesting. Would be good to see how you've structured the code if that is something you're interested in releasing.

This will be a good example for those that prefer C++ to prove that it's viable.
Cool job so far! The winged mode looks fun, and I like the idea of buying power-ups from the store. Good luck with finishing this!
After a long time, I have started to update the project. Right now, I have modified the program to use sprite-based snakes and food. Here's what I have so far:



The next part will be adding all of the different modes with the new sprite rendering and any new content I think would be interesting (probably just grid-based walls).

____________________________________________________________________________

Note: The new source code will be up when I have a GUI for the menu and mode selection (and score display)

Note: All of the sprites are not final yet (If anyone wants to help, they can let me know in the Discord)


(Also Happy Easter)
Very nice! Switching to sprites is a huge visual buff ๐Ÿ™‚
I have created a pre-release and updated the GitHub, so now you can look at the code!

Quote:
Very nice! Switching to sprites is a huge visual buff ๐Ÿ™‚

Thanks! I thought so too, but it has been quite tricky to do so, and I'll explain it below.


At first, I just applied single-sprites for each snake block, but it was really slow (unsurprisingly) and I noticed that even when it was just color blocks, if there were too many, the program would slow down tremendously. So I had to think of some optimization.

Then I came to the realization: The only parts of the snake that mattered are the head, tail, and where the snake turns (the corners). So I restructured the whole architecture around this, where essentially the player only controls the head by itself and the rest of the snake is handled automatically by the tail.

To go in more detail, I don't redraw the screen each frame, but just update the head and tail. When the player moves the head, a corner piece is created, and then the tail will eventually hit that corner piece and consume it and change its direction based on that corner piece.

I don't know exactly, but this seems like a more unique approach to creating snake (but I could be wrong, there are a lot of snake games out there).


For the future of Snake++, here's some features I plan on implementing:
    Multiple modes (classic, wrap, winged, walls, vs)
    Collect Snake Skins and Food items by using golden apples
    Cool UI and Custom font (hopefully
    (Potentially) Story Mode


As for the more technical side:
    Move sprites to a compressed AppVar
    Storing user data in an AppVar (skins, scores, etc.)
    Find any further optimizations (if I can)
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement