Brainstorming:
I wanted to start my first legitimate calculator game in BASIC, and figured I should do a simple avalanche clone. Eventually, I had some ideas consisting of collection the objects that fall instead of avoiding them, and finally settled on spelling out words.

Summary:
So my main goal for Word Fall is to create a game where you move a cursor at the bottom of the screen and collect letters to spell a specified word. Finishing a word in the right order gives you points, while collecting incorrect letters takes away points.

I haven't done much work with this yet, but will be actively working on it in the coming days.
This project shouldn't take to much time, but will be a fun experience for me to make my first game.

Here is a preliminary screenshot, with only the border and word generation features shown:
----see below for updated screenshot----
(sorry about the brisk progress in the animation, when I'm recording I forget how fast the finished product would be)

If you want to help out with writing some of the more complicated BASIC code, I would be very thankful.
I will be updating this post as I do more work.

Note: I recognize that I am not very good at coding yet, so If you want to help, please dont just write up the code to this seemingly simple game and then post it, as that would take the whole fun and purpose out of this project for me.


Addition: Thanks for the Projects of the Month page link. Will definitely start working on this more, although exams and my birthday are coming up...

Here is the new screenshot as of 1/5/16:
I think a spelling game would be fun for the CSE, especially since (I think) there aren't any out there at this time. However, I don't truly understand how this game works. If you could explain the gameplay a bit more I think that would be great.
Also, if you need any help whatsoever I would love to help. When you are done I would happily try to find some optimizations.
DWMelon wrote:
I think a spelling game would be fun for the CSE, especially since (I think) there aren't any out there at this time. However, I don't truly understand how this game works. If you could explain the gameplay a bit more I think that would be great.
Also, if you need any help whatsoever I would love to help. When you are done I would happily try to find some optimizations.

Letters will randomly fall from the top of the screen, and you have to dodge the incorrect letters, and only catch (get hit by) the next letter in the word you are trying to spell.
The letters will gradually fall faster and faster, and the score multiplier will go up the farther you go.
Hope this clears things up.

While Im thinking of it:
I know how to convert a string to a series of alphabet codes (1 -> A, 26 -> Z), but I don't know of an easy method to go the other way. Does anyone know of a quick way to turn a list of values into a string (or just a bunch of length=1 strings (either one would work in the program))?
Caleb_Hill wrote:
Letters will randomly fall from the top of the screen, and you have to dodge the incorrect letters, and only catch (get hit by) the next letter in the word you are trying to spell.
The letters will gradually fall faster and faster, and the score multiplier will go up the farther you go.
Hope this clears things up.

That actually sounds pretty fun! Especially for a game made in basic. One thing I think you may have trouble with is getting the letter falling to speed up, for this to work you will have to design the game extremely fast to begin with, then figure out how to slow it down.

Caleb_Hill wrote:
While Im thinking of it:
I know how to convert a string to a series of alphabet codes (1 -> A, 26 -> Z), but I don't know of an easy method to go the other way. Does anyone know of a quick way to turn a list of values into a string (or just a bunch of length=1 strings (either one would work in the program))?

You could do this via a sub( command. The syntax is:

Code:
sub("String", begin, lenght)

You could do something like:

Code:
String Holding Input + sub("ABCD....XYZ", Number that represents the key pressed (1=A, 2=B, etc.), 1) -> String Holding Input

This will create a string based of letters based off of what keys you pressed. Note that you have to have the first string contain something before you start receiving input, so you may want the word someone has to make also have a space at the beginning, and have the input string have a space at the beginning.
DWMelon wrote:
...One thing I think you may have trouble with is getting the letter falling to speed up, for this to work you will have to design the game extremely fast to begin with, then figure out how to slow it down.

My plan is to insert a

Code:
For(A,1,Z)

and have Z gradually get smaller throughout the game.
Caleb_Hill wrote:

My plan is to insert a

Code:
For(A,1,Z)

and have Z gradually get smaller throughout the game.

The problem with that is that the player will not be able to move during that time. This will make it almost like the game pauses every single loop, and it will make the game difficult to play.
However, one thing you could do is have:

Code:
While 1
Letter movement code
For(A,1,Z
Player movement code
End
End

This way the player will be able to move at any point during the game, the only problem I foresee is that the program would get to be so slow, there wouldn't be any room to speed up, but I may be wrong.
DWMelon wrote:
Caleb_Hill wrote:

My plan is to insert a

Code:
For(A,1,Z)

and have Z gradually get smaller throughout the game.

The problem with that is that the player will not be able to move during that time. This will make it almost like the game pauses every single loop, and it will make the game difficult to play.
However, one thing you could do is have:

Code:
While 1
Letter movement code
For(A,1,Z
Player movement code
End
End

This way the player will be able to move at any point during the game, the only problem I foresee is that the program would get to be so slow, there wouldn't be any room to speed up, but I may be wrong.

I see your point. Hmmmm...
Do you know of any other simple ways to make the program gradually harder? I'm going to try to make the letter generation generally the same, but If that seems the best option, I could increase the amount of letters gradually.
I do think you should try making it this way though, maybe it would be fast enough... never know until you try! Now that I think about it, once this game is optimized it should run at a reasonable speed (unless you plan to have multiple letters fall at once... then I'm not too sure). If it turns out to be too slow you could easily change it so the difficulty increases by word size (or something else). In my pirate game I use the same type of loop, however the pirate ships do not have to move at nearly the same speed as the letters will in this game.
Sorry about this being so late, but I have been working on other projects.
Took like 5 minutes and got the moving mechanism working. Ill post a screenshot tomorrow, hopefully
I actually made a game a lot like this called "Stellar Speller" based off of this computer game we used in Spanish class.
Here are some screenies:
http://imgur.com/40WFisJ

I didn't really work on it that much, so it only spells the word "stellar", but it is programmed to do whatever is in Str1.
And don't worry, I won't post the source code, since you asked us not to Smile
andressevilla wrote:
I actually made a game a lot like this called "Stellar Speller" based off of this computer game we used in Spanish class.
Here are some screenies:
http://imgur.com/40WFisJ

I didn't really work on it that much, so it only spells the word "stellar", but it is programmed to do whatever is in Str1.
And don't worry, I won't post the source code, since you asked us not to Smile

That project seems pretty cool! I can see how this project might work...
I may model my program after this in some way.

Ill try to make more project on this. Sorry for the inactivity!
I have been pretty busy with other projects (because my mind wanders, and doesn't stay interested in stuff for very long)
I have made progress on this, and will post a screenshot soon.
Alright, here is a screenshot I just recorded (on CEmu!) showing some of the progress I have made on menus, and options.

the difficulty features are dicided by the word length. (4 letters is easy, 6 letters is hard, 5 letters is medium)

Will start on the game play next, and I have some really good Ideas for how it will work.

Note: going to put the new screenie in the original post.
Where do you plan to store all the words? In a string, appvar...? How many possible words will there be? An appvar would be probably better, as it won't take up your ram, however it will require to go outside of solid basic.
I don't see a problem with storing in a string. Without compression, words take one byte per letter, so 200 of each each length word will take only 3 KB, which on a CE is not too large.

Although string slicing is O(index), acessing the 3000th token of a string takes less than a second, so time shouldn't be a concern.
I will be definitely be storing the words in a string, because that is the only way I know how to store text (except for storing it into a list or something, but that takes up an annoying interpreter section of code, and that is a pain, and it takes up more storage).
If someone is willing to teach me how to use App Vars in hybrid basic (but that means I will have to wait for Doors CE 9), then I would be willing to use them, but otherwise, I will just use strings.
Currently, I am storing 10 words per difficulty, in three different strings, which would be 150 characters stored in String. the program moves some other strings around, but I will design the program to clear the strings afterwards to save on storage.
First off I could definitely teach you how to use appvars, but I'm not sure if they are really needed for this game. I would recommend not using them so that you can stay only in basic (for maximum compatibility). However if you would like me to teach you I would love to do so.
Also as a suggestion, what if you had more than just 10 words? If you only had 10 for each difficulty I it would have very little replay value. Maybe 20 words? I dunno...
DWMelon wrote:
First off I could definitely teach you how to use appvars, but I'm not sure if they are really needed for this game. I would recommend not using them so that you can stay only in basic (for maximum compatibility). However if you would like me to teach you I would love to do so.
Also as a suggestion, what if you had more than just 10 words? If you only had 10 for each difficulty I it would have very little replay value. Maybe 20 words? I dunno...

To start, while I'm developing the program, I will only use 10 words. Then, once I have optimized and refined the program, I will increase the words somewhere from 20-50 each (difficulty level).
Caleb_Hill wrote:
To start, while I'm developing the program, I will only use 10 words. Then, once I have optimized and refined the program, I will increase the words somewhere from 20-50 each (difficulty level).

That makes sense.

What if you allowed the use to choose what words to add to the word list? You could ask for input, then add it to the string of words.
DWMelon wrote:
Caleb_Hill wrote:
To start, while I'm developing the program, I will only use 10 words. Then, once I have optimized and refined the program, I will increase the words somewhere from 20-50 each (difficulty level).

That makes sense.

What if you allowed the use to choose what words to add to the word list? You could ask for input, then add it to the string of words.

I feel like though that would be nice, It would be unnecessary. Again, I can see how that would be cool. The User would probably have their words added to the String, but then the RandInt( commands would have to be adjusted with variables. That will be a little pain in the butt, so maybe, again, when I'm done with the program.
Speaking of which, time to get back to that flow chart!
Caleb_Hill wrote:
DWMelon wrote:
Caleb_Hill wrote:
To start, while I'm developing the program, I will only use 10 words. Then, once I have optimized and refined the program, I will increase the words somewhere from 20-50 each (difficulty level).

That makes sense.

What if you allowed the use to choose what words to add to the word list? You could ask for input, then add it to the string of words.

I feel like though that would be nice, It would be unnecessary. Again, I can see how that would be cool. The User would probably have their words added to the String, but then the RandInt( commands would have to be adjusted with variables. That will be a little pain in the butt, so maybe, again, when I'm done with the program.
Speaking of which, time to get back to that flow chart!

Actually fixing the RandInt command wouldn't be too difficult. All you would have to do is know how long the words are in the string already. You could do:

Let Str1 = (the string containing the list of words) and the length of each word is 5

Code:
Sub(Str1,5*RandInt(1,lenght(Str1)-5,5


This should work no matter how many words you have.[/code]
  
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 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