Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.

How interested are you in an extensive virtual fish game such as this one?
I am super excited for this! =D
 29%  [ 7 ]
It sounds pretty cool. :)
 45%  [ 11 ]
Meh. :/
 20%  [ 5 ]
Not interested :(
 4%  [ 1 ]
Total Votes : 24

I have been working on a virtual fish game for quite a long time now and it is almost finished except for one last minigame (“Shark!”) and some final optimization. The whole thing is around 10000 bytes and I hope to get it under that. I am still writing parts of the code, but here is a summary:

-You start with $100 and 10 fish.
-You can catch more fish just to have or to sell and make more money.
-The main game is trying to see how long you can keep a single fish alive. You do this by feeding it, cleaning its tank, and giving it medicine.
-You can buy food, brushes, and medicine in the shop.
-Minigames are: Deep Fry, Shark!, Bubble+, and Flying fish. I will let you figure those out yourself!
-Whenever you go to the main menu, you will be informed if something has happened. Maybe one of your gold-fish made some money, or maybe some of your food went stale. Who knows?
-The program keeps track of various stats and ten highscores on the main game.

I hope to release it within a couple of weeks to a month or so depending on when I finish optimization.
Sounds pretty cool! Always nice to see people tackling big projects like this, it really reminds me of Fishville back in the day Very Happy Just some questions:
    What calc?
    Basic or asm?
    If basic, Pure or Hybrid?
    Was Fishville a source of inspiration?
-Currently written for a TI-84 (one of the minigames uses time commands) but I will also make it compatible with TI-83+
-Pure Basic
-Nope, this was my idea entirely, I had never heard of Fishville until today. The only inspiration I can think of was a virtual bunny program (Bunny Gotchi) that I ran across on Tibasicdev. I liked the idea of a virtual pet on a calc and so made my own for fish (it is much more than just that now though). It isn't based off that game in any way either, though.
Latest news if anyone is interested:
The code is finished and I (with the help of a couple of friends) have now moved on to optimization!
Very cool!
Just wondering, what does the program weigh in at, size-wise, as of now? Did you get it smaller than the 10K? Is it a very large single program, or a collection of smaller programs?
Remember, optimization tricks are just an ask away! Very Happy
It is about 10500 now. It was originally my intention to get it under 10000, which I did when I redid the highscore feature, but it got a little bigger when I added a title screen and a backup data feature, but I think they are worth it. It is currently four programs: CALCFISH (the title/info screen), VIRTFISH (the main program, shop, and score stuff), CATFISH (Catching and selling fish), and MINIGAME (The minigames). You execute CALCFISH to begin or you can skip the title/info screen just by executing VIRTFISH). I think I am good for optimization help for now (but thanks for offering) but if I don't hear back from my person that is helping me I will ask.

EDIT: 11271 For for 1st release version
Ok I need help now. Is there any way to make this any smaller? I already trimmed it a lot but I feel like it's still not very efficient size-wise and it's also kind of slow.

Code:
Lbl BB
11→dim(L₁
For(Q,14,23
⌊FISH(Q→L₆(Q-13
End
S→L₆(11
SortD(L₆
For(Q,1,10
L₆(Q→⌊FISH(Q+13
End
ClrList L₆
Lbl A

Lbl BB is where the end-game screens direct to to check for highscores and Lbl A is where the program needs to go to when it's finished storing highscores. There isn't a Goto A now but if it's necessary I have a Lbl for it.
Kydapoot wrote:
Ok I need help now. Is there any way to make this any smaller? I already trimmed it a lot but I feel like it's still not very efficient size-wise and it's also kind of slow.

Code:
Lbl BB
11→dim(L₁
For(Q,14,23
⌊FISH(Q→L₆(Q-13
End
S→L₆(11
SortD(L₆
For(Q,1,10
L₆(Q→⌊FISH(Q+13
End
ClrList L₆
Lbl A

Lbl BB is where the end-game screens direct to to check for highscores and Lbl A is where the program needs to go to when it's finished storing highscores. There isn't a Goto A now but if it's necessary I have a Lbl for it.


Code:
11→dim(L₁
For(Q,14,23
⌊FISH(Q→L₆(Q-13
End
S→L₆(11

could be

Code:
augment(seq(⌊FISH(Q),Q,14,23),{S→L₆

I'm assuming you meant

Code:
11→dim(L₆
insead of
11→dim(L₁

If the high scores are the last thing in ⌊FISH (there are no other elements after the high scores), then

Code:
For(Q,1,10
L₆(Q→⌊FISH(Q+13
End

Could be

Code:
13→dim(LFISH
augment(LFISH,L₆

Not really smaller, but faster Smile
Also, you should be sure to remove any Lbls that don't have a corresponding goto because of course, these are just dead weight. Anyway, the whole code looks like this:

Code:
Lbl BB
augment(seq(⌊FISH(Q),Q,14,23),{S→L₆
SortD(L₆
13→dim(LFISH
augment(LFISH,L₆
ClrList L₆
Lbl A

Assuming you will use the Lbls Smile This should be quite a bit faster. Razz
Thank you muchly. I am using the Lbls through for other parts of the program. I did in fact mean L6 instead of L1. The highscores are not the last in the list though. I also don't quite understand what you are doing with the "augment(seq(⌊FISH(Q),Q,14,23),{S→L₆" as I am not familiar with the augment or seq commands. Could you tell me what that line does exactly?
Kydapoot wrote:
Thank you muchly. I am using the Lbls through for other parts of the program. I did in fact mean L6 instead of L1. The highscores are not the last in the list though. I also don't quite understand what you are doing with the "augment(seq(⌊FISH(Q),Q,14,23),{S→L₆" as I am not familiar with the augment or seq commands. Could you tell me what that line does exactly?

The seq command creates a list using a function. In this case

Code:
seq(⌊FISH(Q),Q,14,23)

I am creating a list where each element is ⌊FISH(Q) (which is a function with Q as the variable) and Q is incremented from 14-23, so it is exactly like your for loop.
The augment command is adding a list {S} to the end of L₆. This is what the augment command can do and is what I did because any other method would have been bigger and probably either slower or not much faster. As for the end of the list, If the rest of the list is just some random information that is saved, I would recommend just placing it before the highscore so that this trick works just to save speed and a little size, but you can just keep your for loop if you want.
Thanks. I will move the other info to before the highscores so I can use this. Good Idea

EDIT: Never mind, it was to difficult to change all of them and I am going to stick with what I had because I understand it better anyway. Thank you for helping though.
Since it's been a couple of days and this is a change of subject I am making a new post. Hope it doesn't bother anybody. Here it is:
NEWS: ALL OF THE CODING IS FINISHED AND I WILL RELEASE THE GAME AS SOON AS I FINISH THE README!
Who knows when updates will come but frankly it's good as it is. Here are some screnshots!
Title Screen:

Main Game:

Catching Fish

None for the minigames, the timing and placing of pauses in the middle of the code is a pain, and I think it's best to keep people curious about at least something anyway!
Kydapoot wrote:
Since it's been a couple of days and this is a change of subject I am making a new post. Hope it doesn't bother anybody. Here it is:
NEWS: ALL OF THE CODING IS FINISHED AND I WILL RELEASE THE GAME AS SOON AS I FINISH THE README!
Who knows when updates will come but frankly it's good as it is. Can somebody tell me how to post screenshots?

To post screenshots, you have to first upload the image somewhere (usually on some image hosting site like imgur) and use THAT link between the bbcode.
Alright, thanks. Enjoy the screenies!
CalcFish has been accepted into the file archives! Here is the link to download
Thanks for the help everybody! I intend to integrate single hexcodes and small amounts of assembly into the code in a later update to create better graphics and user interface. I may also introduce customizable fish. Any suggestions, ideas, or optimizations are welcome. I will put the source code up somewhere when I can.
EDIT: The source code is now included in the zip file.
Kydapoot wrote:
I may also introduce customizable fish.

Or upgradeable fish bought with money that have added bonuses.
Ooh! Excellent Idea! I think I will definitely put that in with the new update along with (possibly) some assembly hexcodes. About that, I have a question for people interested in this program: Since the only way that I can put assembly into the code without subprograms (which I do not intend to use as they clutter up your calculator) is using something from the Doors CS Library (ExecHex) and this means that people could only run the program if they had Doors. Would this be worth it to you?

EDIT: I have decided to just go ahead and make a version just for doors that includes the hexcodes and a custom icon. Any new gameplay features will be added to the Doors CS version and the original.
Some bad news on the Doors CS version and version 2.0: Sad Several RAM clears have put me back to square one. Here are some features though:
Doors CS: Finished!
-No run indictor- Done
-Icon within Doors- Done
-Automatic archiving/unarchiving of programs- Done
-Automatically setting the contrast to the optimum level for the graphics- Done
2.0:
-Custom fish
-Upgradable fish
-Upgradable brushes, food, and medicine
-(possibly) Improvements on minigames

Both: Any suggestions that you all have!
If you send the source code to me, I can adapt it for the C(S)E.
The source code is included in the download which can be found here. I will also pm you the full source code (including the easter egg, which is not included in the source code in the download so that people have too look in the programs themselves). Thank you so much for offering to do this by the way! Good Idea
  
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 2
» All times are GMT - 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