Can anybody give me a game idea that's easy (Basic) but that I can actually make it fun?

I basically understand most concepts now (been learning Basic for about a week) and I think I can make at least an easy game, can't I? Confused

So, anybody have any suggestions?
Its only okay to double post after 24hours. You can always ask around in SAX or just wait for someone to respond.

=/
...hmm
a.) text-based RPG... (can be hilarious)
b.) Snake... its easy... (addicting if done properly)
c.) Pong?... easier...(also addicting if done properly)
d.) if you want REALLY easy. then your classic randomized "guess my number" game... (NOT FUN, duh)
e.) ok this really isnt a game, but try to write some code that moves a character around the screen... then you can use this, apply a static map, and develop a simple "strategy" game... like pokemon ultra-ultra-super-ultra-short... which admittedly is pretty cool when you do it yourself =D
Doom Clone.
Yes but he is looking for a starting project.
doom clone != easy
that == sarcasm

I like the snake idea. If you get that figured out well, how about adding another player and making a snake/tron hybrid?

Moving characters around the homescreen is also fun, especially if you give them the ability to do things. You know, like a bomberman game or something. How about a clone of the classic Combat? (a 2d top down tank game for the Atari 2600)
You == true

I might suggest a maze game not massively creative but helps teach many essential thing that will help later http://tibasicdev.wikidot.com/movement for all the info on it.
Considering that he's only been programming for a week, something like that might be a little too challenging for him... I think he should stick with something VERY simple, without being a "puzzle" like tictactoe which would require some form of an AI. He needs to get familiar with getKey, sub(, InString, Output, and the like first.
rthprog wrote:
Considering that he's only been programming for a week, something like that might be a little too challenging for him... I think he should stick with something VERY simple, without being a "puzzle" like tictactoe which would require some form of an AI. He needs to get familiar with getKey, sub(, InString, Output, and the like first.
Agreed, he should start with something very simple before gradually getting more complex to avoid getting frustrated.
rthprog wrote:
Considering that he's only been programming for a week, something like that might be a little too challenging for him... I think he should stick with something VERY simple, without being a "puzzle" like tictactoe which would require some form of an AI. He needs to get familiar with getKey, sub(, InString, Output, and the like first.


I know getkey and output, but not sub( and InString.
sub( and InString( are very very very useful commands for interacting with strings. Sub(String, start point, length) stores a substring of “String” starting at “start” for “length”. For example, sub(“12345”,3,1) will result in “3”, sub(“12345”, 3,3) will results in “345”, etc… By pairing sub( with the length of a string, you can also do some helpful things, like insert a character in a string, and shorten a string.

Say we have some String1 with the contents “1345”. This code;

Code:
sub(Str1,1,1)+“2”+sub(Str1,2,3)->Str1

would store “12345” to Str1. This can be made to work universally;

Code:
sub(Str1,1,X)+“2”+sub(Str1,X+1,length(Str1)-X+1)->Str1

would insert a “2” in a string after its X’th character.

InString( finds the location of a substring in another string. For example, if I want to find out where the string “34” appears in the string “12345”, I could just do InString(“12345”, “34”), which would simply store 3.

Now, by coupling InString with sub( and length(, you can do something like

Code:
:inString(Str1,“1”)->X
:sub(Str1,1,X)+“2”+sub(Str1,X+1,length(Str1)-X+1)->Str1

which would add a “2” after the first “1” in a string. Thus, if String 1 was “134” to begin with, it would become “1234” after running that code. Running that code again would result in “12234”, and so on…

Anyways, my point was that you should have some degree of fluency with these commands before you start trying to write a full-fledged game. Though this is probably pushing it, try understanding how the following code works. Basically it’s a very simple program that creates a “character” that just moves around the screen .


Code:
:ClrHome
:1->X
:1->Y
:While 1
:Output(Y,X,”O”
:Repeat Ans
:GetKey
:End
:Ans->A
:Output(Y,X,” “
:(A = 34) – (A =25) + Y ->Y
:(A = 26) – ( A = 24) + X -> X
:8(Y= 0) – 8 (Y = 9) + Y ->Y
:16(X = 0) – 16(X = 17) + X ->X
:End
rthprog wrote:



Code:
:ClrHome
:1->X
:1->Y
:While 1
:Output(Y,X,”O”
:Repeat Ans
:GetKey
:End
:Ans->A
:Output(Y,X,” “
:(A = 34) – (A =25) + Y ->Y
:(A = 26) – ( A = 24) + X -> X
:8(Y= 0) – 8 (Y = 9) + Y ->Y
:16(X = 0) – 16(X = 17) + X ->X
:End


I think I understand somewhat. So, when you store X and Y, they are used for the location of "O". I don't get what Repeat Ans does though. But I get the getkey, so if you press left, right, up, or down the character moves. I just don't completely get the last 4 lines.

Code:
:Repeat Ans
:Code
:End


loops until Ans is not equal to 0. It’s somewhat like


Code:
:Lbl A
:if Ans = 0
:Then
:Code
:Goto A
:End

however, this creates a bunch of nasty stuff like memory leaks which will dramatically slow the calc down


That last four lines are a bit complicated, but they basically work like this.
When you have a conditional in paranthesis, it takes up the value 1 if true, 0 if false. So the line (A = 34) –(A =25) +Y -> Y adds 1 to Y if A = 34, and subtracts 1 if A = 25. if A is not equal to 34 nor 25, then it adds 0 to Y.

The last two lines work on the same premise.
8(Y = 0) – 8(Y = 9) + Y adds 8 to Y if Y = 0, and subtracts 8 if Y = 9. Thus, if Y drops down to 0, it resets Y to 8, while if Y becomes greater than 8, it resets Y to 1.

BTW don’t feel intimidated by any of this; it took me more than a year to figure all of this out =D
Okay thanks. Yet again, you're the one that helps me out the best.

So, using this, I was wondering if I could make a maze, but is it possible if when the O touches the wall, that it makes you restart?
ok if you're just reading this, just skip down to the "*EDIT*"

Swoll_Monkey wrote:
Okay thanks. Yet again, you're the one that helps me out the best.

So, using this, I was wondering if I could make a maze, but is it possible if when the O touches the wall, that it makes you restart?


by restart do you mean go back to some menu or just move you back to your original position? Just add this right before the last "End"

Code:
:If Y<1 or Y>8 or X<1 or X>16
:Then
:\\ you could put a menu/goto here if you want to take them back to a main menu or display some message, etc...
:1-> X
:1->Y
:End


oh yeah, and you can't comment in TiBasic, nor can you insert backslash without having a charcater map...

*EDIT*
oh gosh, the maze wall? ok, say you have the maze mapped in String 1, consisting of a bunch of "*"'s for walls and spaces for well, space...

then use


Code:
:If sub(Str1,8(Y-1) + X,1) = "*"
:Then
:\\ you could put a menu/goto here if you want to take them back to a main menu or display some message, etc...
:1-> X
:1->Y
:End


sorry about that =D
No, sorry, I should of worded it better. Not if it touches the sides of the screen, but if it touches the walls of the maze. Could that work?
certainly =D
Did that last post/edit help?
rthprog wrote:
certainly =D
Did that last post/edit help?


I didn't have a chance to incorporate it yet. My mom went on the computer for a second to check her 'important' email. Rolling Eyes

I'm gonna try it right now.

Thanks for all the help.

Edit: I'm having a lot of trouble actually. Could you give me an example for the part where I store Str1? Also, I put that extra stuff at the bottom and attempted to make a maze with Str1, but now every time I move my sprite, it just stops the program.
your welcome =D

btw make sure you have the 8 x 16 string map stored to String 1 at the start of your program...
rthprog wrote:
your welcome =D

btw make sure you have the 8 x 16 string map stored to String 1 at the start of your program...


Uh, can you read the above post? I don't know what a string map is lol.

Edit: Here is the stuff I have so far.



Code:
Lbl 0
Clrhome
Menu("maze game","play",1,"exit",@
Lbl 1
Clrhome
" ** * *** **" -> Str1  /-/-/-/This is the part I'm confused with/-/-/-/
1 -> X
1 -> Y
While 1
Output(Y,X,"O"
Repeat Ans
Getkey
End
Ans -> A
Output( Y,X," "
(A=34)-(A=25)+Y -> Y
(A=26)-(A=24)+X -> X
8(Y=0)-8(Y=9)+Y->Y
16(X=0)-16(X=17)+X->X
if sub(str1,8(Y-1)+X,1)="*"
Then
Goto 0
1->X
1->Y
End
Lbl @
Clrhome
Stop
  
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