At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
Do you know any programming languages? If so what ones?
Nope, sorry. Im really eager to learn though!
We all know different stuff so it's important to post this information so the appropriate people help you.
Ok, do you think its good to start with c++`?
Well you need to learn programming in any language before you can start programming games. Don't despair though even a beginner can program simple games, but don't expect to be creating the next 'bomb' game until you get really, really good and a language.
I just want to do it for fun :) Like simple arcade games and stuff, not like COD or something.
C++ is a good versatile language. Do you have any knowledge of programming concepts at all?
Well even simple arcade games are not so simple when it comes to programming.
Just REALLY little, tried to start when i was 9. As you can guess, i wasnt very committed to it back then so i failed miserably.
Oh, that doesnt change anything though.
How old are you now? It does take a fair level of commitment and patience to learn.
14, i do believe that i can be committed.
Good. Okay since your knowledge of programming concepts is limited and you know no languages, here is my advice. Start out with Alice 2.2. This is a software that will teach you not only programming concepts (branching, conditions, etc) but also object-oriented programming concepts (inheritance, polymorphism, etc.) without having to learn the syntax of a language. Don't worry, it is not boring at all and you will be creating programs including games with it in a very short time. You can find Alice 2.2 at http://www.alice.org/index.php?page=downloads/download_alice2.2 This website also has tutorials, sample programs, and a forum where you can get help and read other people's questions and programs. Once you get good with Alice, you will have a firm grasp of programming concepts and then you can tackle any language you want to learn the syntax for. Since you will already have experience putting the concepts together to make a program, learning the syntax is all you need to do for any language. You might start by converting some of the programs you created in Alice to whatever language you are learning. Once you have mastered the syntax the possibilities will be endless for you to create whatever you want.
So Alice is a beginners kit? Cool!
What is the syntax?
Yeah. Basically what it is a programming tool with a drag and drop interface. You will have commands that you just pull out from your toolbox and drop them where they need to go. There are tons of preprogrammed objects that you can manipulate and animate, but the program also allows you to create your own if you are artistically inclined. It's pretty powerful and versatile. I created some pretty cool stuff on it when I was using it.
Sounds really interesting. Downloading it now.
So i can learn everything i need from this?
There really is not syntax, just blocks that are in plain language. For example, MOVE MAN 4 UNITS Like that. You can learn all the programming concepts you need to make programs in any other language. Hang on and I'll see if I have a program that I made with it so you can see how simple the syntax is.
Ok, so the syntax is like the arrangement and the "words" of the language?
Yes Here is one of the first programs I wrote using Alice.
Good one's Code Created by: Jeff Callaway world Events When the world starts Do: world.my first method Methods world.my first method ( ) X = 0 , Guess = 0 // Name: Jeff Callaway // World: Guessing Game // Version 1.2 // Date: 07/22/10 // Class: POS 371 // An Alice “guessing game” world in which two characters interact with the user to play a game // where the user tries to guess a randomly generated number. // No comment // The following several lines are introdutory, where the characters introduce themselves and explain the rules. // The robot's opening line is a quote from the NORAD computer Joshua in the movie War Games. kidRobot say Shall we play a game? duration = 2 seconds // This method introduces the characters and explains the game (see introduction method for details). world.introduction // Mr. Roboto picks a random number between 1 and 100. kidRobot.upperBody.neck.head say I will now pick a random number. duration = 3 seconds kidRobot.upperBody.neck.head think Thinking . . . duration = 4 seconds X set value to ( random number minimum = 1 maximum = 100 integerOnly = true ) print ( X as a string ) kidRobot.upperBody.neck.head say Got it! // Mr. Roboto whispers the number into Larry's ear (see secret method for more information). kidRobot.upperBody.neck.head say I will tell Larry so that he will know if your guess is too low. duration = 3 seconds kidRobot.secret // This begins the guessing routine. spaceColonist.upperBody.helmetLeft say Okay. You can take a guess now. duration = 2 seconds Guess set value to ( ask user for a number question = Enter a Number: ) // This chunk of code is a nest of conditional statements to detemine if the user entered a number that was // either out of range, too low, too high, or correct. // It is nested within a while loop so that the user can continue guessing until the correct answer if guessed. // While Guess != X repeats the routine until Guess = X While ( Guess != X ) // This first If statement is to check that the data is in range. If ( either ( Guess < 1 ) or ( Guess > 100 ) , or both ) kidRobot.upperBody.neck.head say Invaid response. I knew he would do this. He forgets every time. duration = 3 seconds kidRobot.upperBody.neck.head say Larry forgot to tell you that the number is between 1 and 100. So please pick a number in that range. duration = 5 seconds Else // The following If statements check to see if the number is too high or too low. If ( Guess < X ) spaceColonist.upperBody.helmetLeft say Close, but that guess was too low. Try again. duration = 4 seconds Else kidRobot.upperBody.neck.head say Incorrect response. Your input was too high. Please try again. duration = 4 seconds Guess set value to ( ask user for a number question = Enter a Number: ) spaceColonist.upperBody.helmetLeft say Yea! You did it! duration = 2 seconds kidRobot.upperBody.neck.head say Congratulations. You have entered a correct response. duration = 3 seconds // Larry and Mr. Roboto do a celebratory dance and then fly off in their ship (see dance method for details). world.dance world.introduction ( ) No variables // The space man introduces himself. Do together spaceColonist.upperBody.helmetLeft say Hello. I'm Larry, duration = 2 seconds spaceColonist.upperBody.rightArm.forearm turn backward 0.25 revolutions spaceColonist.upperBody.rightArm.forearm roll left 0.25 revolutions Do together spaceColonist.upperBody.rightArm.forearm turn forward 0.25 revolutions spaceColonist.upperBody.rightArm.forearm roll right 0.25 revolutions // Larry introduces the robot. The name Mr. Roboto was taken from an 80s song by a band called Styx for comedic effect later on. Do together spaceColonist.upperBody.helmetLeft say and this is Mr. Roboto. spaceColonist.upperBody.leftArm.forearm roll right 0.25 revolutions // Mr. Roboto spins his head around as a way to greet the user. kidRobot.upperBody.neck.head turn right 2 revolutions duration = 1 second spaceColonist.upperBody.leftArm.forearm roll left 0.25 revolutions // Larry begins telling the user the instruction on how to play the game. // The range of which the user is expected pick is intentionally left out to allow for a humorous response // when the user chooses a number outside the range. spaceColonist.upperBody.helmetLeft say We would like to play a game with you. duration = 3 seconds spaceColonist.upperBody.helmetLeft say Mr. Roboto will choose a random number, duration = 3 seconds spaceColonist.upperBody.helmetLeft say and you will try to guess it. duration = 2 seconds spaceColonist.upperBody.helmetLeft say I will tell you if your guess is too low. duration = 3 seconds kidRobot.upperBody.neck.head say And I will tell you if your guess is too high. duration = 3 seconds world.dance ( ) No variables // This whole method while satifying the DQ requirements, is totally extraneous, // but I was having so much fun with it i couldn't help myself. // Larry and Mr. Roboto shout in unison. Do together spaceColonist.upperBody.helmetLeft say HOORAY!!! duration = 2 seconds kidRobot.upperBody.neck.head say HOORAY!!! duration = 2 seconds // Getting ready to dance. Do together kidRobot.upperBody.neck.head turn to face spaceColonist kidRobot.upperBody.neck.head say Shall we dance now? duration = 2 seconds spaceColonist.upperBody.helmetLeft say Let's do it Mr. Roboto! duration = 2 seconds // The two do two different dances in unison. Do together Do in order // Larry does the robot. spaceColonist set pose spaceColonist.outstretched pose spaceColonist set pose spaceColonist.robot left pose spaceColonist set pose spaceColonist.robot right pose spaceColonist turn right 0.25 revolutions spaceColonist set pose spaceColonist.ben dover pose spaceColonist turn left 0.25 revolutions spaceColonist set pose spaceColonist.dead arms pose spaceColonist.upperBody.rightArm.forearm roll left .08 revolutions spaceColonist.upperBody.rightArm.forearm roll right .16 revolutions spaceColonist.upperBody.rightArm.forearm roll left 0.16 revolutions spaceColonist.upperBody.rightArm.forearm roll right .16 revolutions spaceColonist.upperBody.rightArm.forearm roll left .08 revolutions Wait 5 seconds // Larry turns to see Mr. Roboto still dancing. Do together spaceColonist set pose spaceColonist.original pose spaceColonist turn to face kidRobot Wait 2 seconds // Roboto is still dancing and Larry is getting impatient. Do together spaceColonist.upperBody.rightArm roll left 0.12 revolutions spaceColonist.upperBody.leftArm roll right 0.12 revolutions spaceColonist.upperBody.rightArm.forearm roll right 0.25 revolutions spaceColonist.upperBody.leftArm.forearm roll left 0.25 revolutions Wait 2 seconds // Still dancing and Larry is getting more impatient. Loop 10 times times spaceColonist.rightLeg.lowerLeg.foot turn backward 0.12 revolutions duration = 0.25 seconds spaceColonist.rightLeg.lowerLeg.foot turn forward 0.12 revolutions duration = 0.25 seconds spaceColonist set pose spaceColonist.original pose Wait 5 seconds // Larry checks his watch wondering when Mr. Roboto is going to be done. Do together spaceColonist.upperBody.leftArm turn backward 0.25 revolutions spaceColonist.upperBody.leftArm.forearm roll left 0.25 revolutions Wait 1 second spaceColonist set pose spaceColonist.original pose // Mr. Roboto does a long contemporary dance. Loop 8 times times Do in order kidRobot set pose kidRobot.Down stable duration = 0.5 seconds style = abruptly kidRobot set pose kidRobot.Point To Camera duration = 0.5 seconds style = abruptly kidRobot set pose kidRobot.Point To Cord duration = 0.5 seconds style = abruptly kidRobot set pose kidRobot.Point to Back duration = 0.5 seconds style = abruptly kidRobot set pose kidRobot.Talk Head Right duration = 0.5 seconds style = abruptly kidRobot set pose kidRobot.Talk Head Left duration = 0.5 seconds style = abruptly kidRobot set pose kidRobot.Sleep Down duration = 0.5 seconds style = abruptly kidRobot set pose kidRobot.Sleep Up duration = 0.5 seconds style = abruptly kidRobot set pose kidRobot.Stretch Right duration = 0.5 seconds style = abruptly kidRobot set pose kidRobot.Stretch Left duration = 0.5 seconds style = abruptly kidRobot set pose kidRobot.Jump To Cord duration = 0.5 seconds style = abruptly kidRobot set pose kidRobot.Original Pose duration = 0.5 seconds style = abruptly kidRobot turn left .75/8 revolutions style = abruptly duration = 0.5 seconds // Finally done dancing. spaceColonist say Are you done? duration = 2 seconds kidRobot set pose kidRobot.Down stable Wait 1 second kidRobot say Afirmative . . . duration = 2 seconds spaceColonist say Good. Beam us back to the ship. duration = 3 seconds kidRobot set pose kidRobot.Original Pose kidRobot say Okay. Do together kidRobot turn to face camera spaceColonist turn to face camera // Departing comments. spaceColonist say See you later. kidRobot say Goodbye. // Larry and Mr. Roboto fade out in unison as they are beamed aboard the lunar lander. Do together Loop index from 1 up to (but not including) 11 times incrementing by 1 kidRobot set opacity to ( ( 1 - ( ( index / 10 ) ) ) ) duration = 0.09 seconds style = abruptly spaceColonist set opacity to ( ( 1 - ( ( index / 10 ) ) ) ) duration = 0.09 seconds style = abruptly Wait 2 seconds // The space craft blasts off. lunarLander move up 100 meters duration = 5 seconds kidRobot Methods kidRobot.secret ( ) No variables // Mr. Roboto goes to Larry to tell him the secret number. kidRobot turn to face spaceColonist kidRobot move amount = 1.75 meters toward target = spaceColonist // Larry leans forward so that Mr. Roboto can whisper in his ear. I tried to make Larry look up toward the camera // But his helmet is divided into a right and left half, and I could not get them to turn so that they lined up no matter how I tried. spaceColonist.upperBody turn forward .2 revolutions // Mr. Roboto leans his head forward to whisper in Larrys ear. kidRobot.upperBody.neck.head move amount = 0.1 meters toward target = spaceColonist.upperBody.helmetLeft // Over-exagerated whispering for comedic effect. kidRobot.upperBody.neck.head say Pssst psst pssssst kidRobot.upperBody.neck.head say Pssst psst pssssst pssssssssst. duration = 2 seconds kidRobot.upperBody.neck.head say Pssst psst psssssst pssssst duration = 2 seconds kidRobot.upperBody.neck.head say psssssssssssst psssssssst psst pst. duration = 2 seconds // Larry accknowledges the number. spaceColonist.upperBody.helmetLeft say Okay. // Mr. Roboto and Larry return to their original positions. kidRobot turn left 0.5 revolutions Do together kidRobot move amount = 1.75 meters away from target = spaceColonist spaceColonist.upperBody turn backward .2 revolutions // Larry thanks Mr. Roboto with a famous line from a song by a band called Styx. // This is a bit of humor that perhaps younger users may not get. Do together spaceColonist.upperBody.helmetLeft say Domo arigato Mr. Roboto. duration = 2 seconds kidRobot turn to face camera
So its simplified programming :D Awesome!
Yeah once you do a few tutorials and start applying what you learn, you will really get into it and it becomes super fun. I was kind of disappointed when the class ended because I wanted to keep playing with it. I still have the software, and can pick it up anytime, but other course work always takes priority. lol
So its so fun that you still do it?
I have not created anything since the class I was in that was using it ended, because I don't have time, but yeah, If I get some time I might pick it up again and see about doing some more advanced stuff with it.
This guy created a Halo commercial using Alice. http://www.youtube.com/watch?v=3QYIAbkdAwM