Difference between revisions of "Z80:Ideas"

From Learn @ Cemetech
Jump to navigationJump to search
(Adjusted lowercase z80)
 
Line 1: Line 1:
= Step 1: Inspiration =
+
Below are some popular games that you may find fun to make.  Not only will this kill time, it will hopefully advance your skills in programming. None of these are made and ready to download; they are just ideas for you to build upon. They are in order of easiest to hardest.
The first part of creating a program is to get an idea and develop it. What is it you want the program to do? Is it a game, math program, or something else? Is it original (not a top priority, but sometimes is nice to have new ideas in circulation)?
 
To get some ideas, go [[Z80:program-ideas|here]].
 
  
=== Example idea ===
+
= Beginner =
  
Create a Hello World program.
+
== Guessing Game ==
 +
Write a guessing game with these features:
  
= Step 2: Features =
+
* Randomly generate a number (any range you want).
Once you get an idea, write it down. Then, expand on it. What features should it have? Make sure that you expand upon your ideas in great detail.
+
* allow for user input of numbers.
 +
* Provide an interface for the user (can just be "Guess?" or more complicated if you want).
 +
* Provide feedback to the user (whether they were right or wrong, and if you want if they were too high or too low).
  
=== Example features ===
+
Once you successfully complete one of these, feel temporarily pleased and move onto one of the next projects.
  
* Repeat "Hello World" every time the user presses the enter key.
+
= Experienced =
* Allow the user to change the string displayed.
 
* Allow the user to display the string as all caps ("HELLO WORLD"), all lower case ("hello world"), capitalize the 1st letter of each word ("Hello World"), or capitalize the 1st word in the sentence ("Hello world. How are you doing today?")
 
  
= Step 3: Interface =
+
== Tic Tac Toe ==
 +
Create a Tic-Tac-Toe game with the following features:
  
Although this section could go under features, it's important enough to have it's own step. In order for a program to be successful, it must interact with the user. This includes getting information from the user '''as well as''' giving information back to the user. Also be sure to make note of how the user will interact. There are a few general categories:
+
* Graphical interface for user to see what's going on
 +
* Way for user input
 +
* 2 player mode, switching between players each time.
 +
* Possibility of AI.
 +
** Different difficulty settings.
 +
* Checking for wins and ties.
 +
* Record the games won/lost by each player.
  
== Command line ==
+
------
  
Not so simple to write or understand from the users point of view. The user is asked for an action to perform, and then does it.
+
== Snake/Tron ==
 +
Create a Snake or Tron game with the following features:
  
== Menus ==
+
* Speed! That's what makes it better than a version in BASIC.
 +
* AI in Tron, possibly in Snake
 +
* Different Difficulties?
 +
* Checking for wins
 +
* Pause Function?
  
Simple, or hard, depending on the menu you choose, to implement, but also very easy for the user to understand. A menu simply lists the choices available and asks the user to choose one of them.
+
Once you successfully complete one of these, feel temporarily pleased and move onto one of the next projects.
  
== Graphical User Interface (GUI) ==
+
= Skilled =
  
Hard to implement, but has the best user interaction. This can greatly attract the user, or repel them.  People want a game with a cool main menu, with settings, options, some storyline, and more.  People don't want a game that just goes directly into play and exits back to the shell when you lose.  A GUI consists of icons and buttons that do stuff when pressed. See your desktop for an example.
+
== Battleship ==
 +
Create a battleship-type game, implementing these features:
  
=== Example interface ===
+
* A tilemap for the playing field
 +
** Can be animated or not animated
 +
* Allow for user inputs through a scrolling cursor
 +
* Create animated sprites for hits and misses, etc.
 +
* Create a custom theme (ex. Star Wars, WWII, Water-Balloon War)
 +
** Implement special features for this theme (Have aircraft deploy from carriers)
  
* Display text on the home screen, located on the top corner (row:0 col:0)
+
------
* Wait for a key to clear and go to the menu
 
* ask the user what it wants to do:
 
# Display string again
 
# Change string
 
# Change the way the string is displayed
 
# Quit
 
When the user selects "Display string again", display the string.
 
When the user selects "Change string", allow the user to input their own string.
 
When the user selects "Change the way the string is displayed" go to another menu that lists the possibilities, and change accordingly.
 
When the user selects "Quit", quit the program
 
  
= Changing Plans =
+
== Cave ==
 +
Cave is a game where you are a spaceship/snake and you travel through a tunnel avoiding the walls that continuously narrow down. It requires accurate gravity and narrowing walls.
 +
Features
  
Remember, it's never too late to change your idea of what your program will do. This could be due to your idea being too difficult for you to solve, a feature that simply can not be implemented on your calculator, or a new feature you just thought of and think it would enhance the program. A good programmer knows that there will be a time that when they start coding they'll come up with/have a new idea thrust upon them and they must figure a way to implement it into the program. Remember, it's much easier to implement these changes early on instead of later.
+
* Sprites
 +
* Gravity
 +
* Randomized walls
 +
* Narrowing walls
 +
* High score List
  
= Conclusion =
+
Once you successfully complete one of these, feel temporarily pleased and move onto one of the next projects.
  
Now that you have your basic ideas down, it's time to move onto the actual [[Z80:Coding|coding]].
+
= Master =
  
Make sure your game is worth playing. I (The Cow) wrote a guide [[Z80:http://tibasicdev.wikidot.com/forum/t-630948/how-to-make-a-game|here]].
+
== Shooter ==
 +
A shooter game is one where you fly a ship and shoot at enemies. They can be moving (flying/land units), and/or stationary (anti-air). They are harder to make than they first appear.
 +
Features:
 +
 
 +
* Sprites
 +
* Scrolling background
 +
* Bosses and multiple levels
 +
* High scores list
 +
* Lives and or hull health
 +
* Upgrades
 +
** Stronger weapons
 +
** Stronger armor
 +
** Unique power (stop time, get an ally, etc.)
 +
 
 +
------
 +
 
 +
== Platformer ==
 +
A very common type of game.
 +
Features:
 +
* Realistic gravity
 +
* Weapons/Powerups
 +
* Original Enemies
 +
* Multiple stages?
 +
* High scores?
 +
* Lives?
 +
 
 +
------
 +
 
 +
While I will not list more ideas under this category, some examples of such works are (Desolate, 3DMaze, Chess (with greyscale, AI, rules, saves) etc.). A good game must have originality! However, if you cannot come up with your own, you can borrow from Nintendo or others. Make sure you properly cite them as a source.
 +
 
 +
 
 +
If you successfully create this game then props to you. This is the last project in this list, so now it's your turn. Come up with ideas for any kind of program, whether it be a quadratic solver (please don't, there are too many!), a periodic table, a game that already exists or one you thought of entirely yourself, or anything else.
 +
 
 +
------
  
 
{{lowercase}}
 
{{lowercase}}
 
[[Category:Z80 Assembly]]
 
[[Category:Z80 Assembly]]
 
[[Category:Z80 Heaven]]
 
[[Category:Z80 Heaven]]

Latest revision as of 05:43, 5 February 2016

Below are some popular games that you may find fun to make. Not only will this kill time, it will hopefully advance your skills in programming. None of these are made and ready to download; they are just ideas for you to build upon. They are in order of easiest to hardest.

Beginner

Guessing Game

Write a guessing game with these features:

  • Randomly generate a number (any range you want).
  • allow for user input of numbers.
  • Provide an interface for the user (can just be "Guess?" or more complicated if you want).
  • Provide feedback to the user (whether they were right or wrong, and if you want if they were too high or too low).

Once you successfully complete one of these, feel temporarily pleased and move onto one of the next projects.

Experienced

Tic Tac Toe

Create a Tic-Tac-Toe game with the following features:

  • Graphical interface for user to see what's going on
  • Way for user input
  • 2 player mode, switching between players each time.
  • Possibility of AI.
    • Different difficulty settings.
  • Checking for wins and ties.
  • Record the games won/lost by each player.

Snake/Tron

Create a Snake or Tron game with the following features:

  • Speed! That's what makes it better than a version in BASIC.
  • AI in Tron, possibly in Snake
  • Different Difficulties?
  • Checking for wins
  • Pause Function?

Once you successfully complete one of these, feel temporarily pleased and move onto one of the next projects.

Skilled

Battleship

Create a battleship-type game, implementing these features:

  • A tilemap for the playing field
    • Can be animated or not animated
  • Allow for user inputs through a scrolling cursor
  • Create animated sprites for hits and misses, etc.
  • Create a custom theme (ex. Star Wars, WWII, Water-Balloon War)
    • Implement special features for this theme (Have aircraft deploy from carriers)

Cave

Cave is a game where you are a spaceship/snake and you travel through a tunnel avoiding the walls that continuously narrow down. It requires accurate gravity and narrowing walls. Features

  • Sprites
  • Gravity
  • Randomized walls
  • Narrowing walls
  • High score List

Once you successfully complete one of these, feel temporarily pleased and move onto one of the next projects.

Master

Shooter

A shooter game is one where you fly a ship and shoot at enemies. They can be moving (flying/land units), and/or stationary (anti-air). They are harder to make than they first appear. Features:

  • Sprites
  • Scrolling background
  • Bosses and multiple levels
  • High scores list
  • Lives and or hull health
  • Upgrades
    • Stronger weapons
    • Stronger armor
    • Unique power (stop time, get an ally, etc.)

Platformer

A very common type of game. Features:

  • Realistic gravity
  • Weapons/Powerups
  • Original Enemies
  • Multiple stages?
  • High scores?
  • Lives?

While I will not list more ideas under this category, some examples of such works are (Desolate, 3DMaze, Chess (with greyscale, AI, rules, saves) etc.). A good game must have originality! However, if you cannot come up with your own, you can borrow from Nintendo or others. Make sure you properly cite them as a source.


If you successfully create this game then props to you. This is the last project in this list, so now it's your turn. Come up with ideas for any kind of program, whether it be a quadratic solver (please don't, there are too many!), a periodic table, a game that already exists or one you thought of entirely yourself, or anything else.