The Fishing Game
Explore your way through the different regions by catching the rarest fish you can. Catch em all to fill up your fishedex!
Hi!! This my fishing game. Here's a bit of an explanation that you also get ingame:
Welcome to my fishing game! The aim of the game is to reach level 100 as quickly as possible. Catch the rarest fish you can and level up! You can sell your fish in the shop. Rarer fish bring in more gold. You can use this gold to purchase bait, which is needed to catch fish, and rods, which make catching rarer fish easier. Careful, bait gets more expensive as you level up. New types of fish are unlocked as you level up, and at higher levels, it's easier to catch fish. You can also see information about all the fish you've come across in the 'fishedex' in the shop. Catch them all! You might also find some treasure when you're fishing! The game saves your progress at the end of each day, so you can just log in again and pick up where you left off. Good luck! Press enter to continue.
Not gonna lie, it's pretty fun.
I made this game last July. The reason I choose fishing was mainly because it makes plurals easier - the plural of most types of fish is the same as the singular ;) (This doesn't work for anchovies though... or mythical creatures. Oh well). To make it I did have to learn a little about using classes and objects - I find them really useful now though. My coding's definitely developed a bit since I made this (it's a mess), but I can't really be bothered to make the code any neater (I did a tiny bit). I have edited it a bit since I originally made it to make it ready for the game jam. Here are some of the additions (spoiler for past level 100!!) :
- There are new "mythicals" which are extremely rare fantasy creatures, like mermaids. They can only be encountered after level 100. You can't sell them, though the game remembers which ones and how many you've seen. You need the special new moonstone rod.
- The game's harder now, in that the XP needed to level up increases exponentially as you go up the levels. I really should have had that from the beginning, because levelling up was way too quick.
- Some new types of fish!
- Highscore board for how many days it takes to reach level 100. I'm not sure if this was in the original fishing game that I posted in July, but I don't think it was. It's empty currently because the new XP-level scale has made all the previous highscores made by me and my family during testing unfair. Let's see who get's the lowest!
- Rarest fish stat. Within the rarity boundaries like common, uncommon, rare ect, there are varying rarities based on a number. If you catch a fish with the same rarity number as your rarest fish stat, it counts as rarer if it's unlocked at a higher level. Basically, higher level is used to decide rarity in a couple of cases. The point is, I wanted to add something that made the game more orientated to getting the rarest fish - kinda like pokemon. Anyone got the blue whale?
- Changed the rod names from "default, alright, decent, good, great" ect. to "wooden, bamboo, copper, iron, steel" ect, just for added character. The only one that stayed the same was the awesome golden rod ;)
I've got a few ideas for what I want to add to the fishing game...
- A little addition of telling you the current highscore when you sign up, or when you log in, or at the top each day in game. I just don't really know which one would be best. Let me know what you want!
- More fish of course! I just don't want to bombard you with them. Maybe if some of you guys really like the game I'll put a personalised fish in for you ;)
- More ideas post level 100. Maybe some cool non-mythical fish.
- Having the option to change rods using ones you've already bought, because at the moment if you want to change your rod you have to repurchase any you've already bought and that's just dumb.
- New rods with cool properties, like extra attempts per day, or unlocking specific types of fish, unlocked at certain levels.
- Maybe, but probably not, lengths of fish - they'd be a mean length for each type, and the fish you caught would be around this. The price could depend on length. There could be a new stat with longest fish caught? I feel like this is just too complicated for my simple little fishing game though.
- Music! I feel like it would really benefit from some tunes but I don't know how to implement that. I'd have to look in to it.
- Your suggestion here. Seriously, I would really love it if you guys could tell me what you want to see, if you like the game of course.
PLANS FOR THE FINAL DAY
- Rainforest and/or
fire biome?DONE fire, I think rainforest would be cool but too much Settings page with options to reset account, see highscores, see game info/help, see current number of accounts on the game?DONE Work on fish rarity colours and fishedex/treasuredex colouring.DONE End biome highscores page?DONE and in settings Mythicals for the other biomes !!!DONE Better names than "normal biome" "ice biome" "desert biome"DONE but they were stolen from game of thrones... oops Weathers with different fish for different weathersDONE
Well that's it. I really hope you guys like it. If there's any bugs let me know, and if you want any improvements, let me know too! Thanks so much for trying it out! (also sorry that it doesn't fit the cash theme. I edited it to make it more appropriate to the cash theme, but it kinda sucked. I prefer the cutesy fishing element)
On a final note, let me know if you encounter all the mythicals! That would be seriously cool!
Edit: don't really care if you don't like that it's in all lower case. I think it looks nicer.
- Input validation for a, b, c at the start of the day, to avoid the "press enter and run up your days" error
- Input validation for logging in or signing up
- More input validation for selling some fish, plus added capability for selling multiple fish at a time (not all fish) and fixing a bug that would've prevented fish with spaces in their name - eg electric eel - to be sold.
- Fixed the printing of high scores so that it's in actually in the correct order, plus accounting for ties.
- Disallowed "-" characters in the username, which would've messed up the accounts file, had it been working anyway.
- Lowered the power of the rods and raised the prices for a more difficult game ... sorry if the highscores are now unfair but I can't let it be the same game forever :(
- More input validation in the shop... it never ends
- Weirdly, more input validation in the shop, I thought I caught it all, but nope. thanks for catching that, TechGamer
- Added the "fishedex"!! It's amazing! It's literally just a pokedex. Go to the shop to see it. If you do manage to catch em all then tell me if my code works and you get a congratulations. Hope you all like the fishedex, thanks to Hamloid for the idea!
- Accounts and highscores saving error fixed!
- You don't get as much info about a fish each time you catch one now, only the first time you do. I think it looks a lot nicer.
- The code now has the grammar knowledge of a 6 year old and can appropriately use "a" or "an" now.
- If you put in "log in" but you should've put in "sign up", you no longer need to refresh, the code will sort it out for you.
- Fixed password security thanks to ebest!
- Added treasures and treasuredex!
- Fish are now coloured based on rarity, inspired by Runescape!
- Different biomes with different fish, different treasures, harder xp gradients, and dangers [dangers are so cool]! Level resets to 1 in these biomes. You can travel between biomes by ships (your old levels stay the same, don't worry). Biomes are only unlocked past level 100. I only have the ice biome now, but more are coming (unlocked at ice level 100, ect.)
- Biome specific rods! [only 1 per biome, but they're both great at getting rare fish, and allow mythicals (at the moment mythicals can only be caught in normal, but I'm going to add ice and desert mythicals)
- Desert biome added!! I know, the names suck. I'm working on it.
- Bait price increases as you level up. It's also more expensive as you go through the biomes.
- Dangers added for normal.
- "One use" items! These are pretty cool and last for 1-2 weeks, increasing your chance at either: catching a fish, catching a treasure or catching rarer fish, or keeping you safer. There's 2 "levels" of item for each, with the better being rarer. They can't be bought in the shop and are instead found when fishing.
- Added weathers, which are specific to biomes. Most fish can only be caught in certain type(s) of weather.
- Added settings page with options to reset account, see highscores, see total number of accounts signed up, see game info and see game help. Going to settings doesn't use up your day, unlike the shop.
- Improved fish rarity colours suggested by Mavrick and each line in the fishedex is coloured according the what biome the fish is found in.
- Fire biome, which is the last one! Highscores page for when you complete it.
- Mythicals for different biomes.
- Biomes are no longer called biomes and are now named after locations in game of thrones.
- Massive bug exodus just before deadlines oops
- Inputs except user and password are now not case sensitive
- Slight edits to reaching level 100 & ship functions
- cats_ur_cool77's awesome fishing game tribute can be found in settings!
- credits when you reach endgame!
Anyone who can reach level 100 in under 300 days can have a personalised mythical! Screenshot the highscore board once you reach 300 and tell about what you want your mythical to be. Maybe they'll have even more XP than normal mythicals. Good luck!!
Account bug FIXED! Finally! Thanks so much to leon332157 for their json store module - https://repl.it/talk/share/jsonstoreio/10956. Your account information and highscores should always be saved now! (let me know if you find a bug though)
**Issue with account security is definitely improved now. Don't try too hard to hack it though aha Edit: account security is much better now!! thanks to ebest! **
Don't forget to upvote if you enjoyed the game! Thanks so much to everyone who has done so, or commented, already!
- Sorry that there are no screenshots of game play. I was planning to take some today but I have definitely ran out of time :(
- Please don't mark me down because it's all in lowercase. It's inspired by a dark room, and it's super easy to change at the end of the day.
- PLEASE play until you reach at least
the ice biomeBeyond the Wall because I worked so hard on the biomes!! And don't you want to log a highscore?
- Sometimes, I worked on the file by forking it and editing the fork. I then copied and pasted it back into the original. I deleted some forks to make more room in my repl. I swear I used repl.it!
- I used this file a lot to change the data that is held for the accounts. It was necessary when the new developments in the game required more data to be stored. https://repl.it/@AmeliaBlackwell/Fishing-Game-Account-Handler
- Of course I really hope you enjoy my game :)
- *I had to restore the latest backup because the storage got full and had to delete itself. I'm really sorry anyone lost their data. I should've written an exception for this but I didn't think about that before the deadline. Everything should be working now though.
I recommend playing in a new tab
Here it is:
Ok. Line 683, if you delete the pound signs and run the code, the commented code will change all your passwords (even on your original copy) and the rest of the changed code will run normally.
Line 84 hashes passwords on sign-up/creation of account
Line 116 hashes user inputed password and compares to stored and hashed passwords
Line 683 changes all unhashed passwords into hashed passwords
and this is for free. I like seeing my work on other websites
and the leon person is also where I got my json io storage idea. How coincidental.
The only way I thought of to securely store a key to a game is by person. You could also store seperate (encrypted) bits of the token in different positions in the game code, then decode them with different method. The best you can do is obfustication, and if you want that I can add it.
If you want to obfusticate it, the secure storage has this:
eobj = AES.new(key, AES.MODE_CFB, key2) ciphertext = eobj.encrypt(message)
I can add that, too
the json storage is really cool huh. I've always wanted to be able to store objects as objects and not as there little individual parts. it's so much easier.