Creative Project - Python & Minecraft
Contents
Preparation [before class]
Prepare a whiteboard, easel pad, or something prominent everyone can see. You'll need room for 3 "lists":
- "Rules for Brainstorming" (write this down ahead of time -- see below)
- "What we know" (blank)
- "New ideas" (blank)
Group Ideation (lead mentor) [20-30 min]
Laptops should be closed during the group activity to encourage participation. |
During this phase, we'll generate 2 lists. One list of things we've done up to now, and another list of ideas for cool features we want to try making for the creative project.
Reflection: What we Know
As a group, reflect on everything we've made so far. The purpose of this is to get everyone thinking about what they already know. This helps during the ideation process.
- Start a list on the whiteboard under "What we Know"
- Have one mentor call on students to name out something they've made over the last couple months, whether it's one of their missions, or a mod recipe.
- As a student describes what they made, write it down on the whiteboard.
- Ask students if anyone can explain how that was done using code. If not, spend a minute or two reviewing the code from the student guides.
- Continue until you have a list of 6 or more
- Ask students what their favorite was, and to explain what they liked about it.
Group Brainstorm: New ideas
The next goal is to get the students to exercise their "divergent thinking". After this, they'll focus in on more cohesive ideas for a project, But for now, we just want to get the creative juices flowing.
The next step is to start generating as many new ideas for cool things we could make in Minecraft based on what we know. We want to write down as many ideas as possible, no matter how small, how big, or how weird!
When brainstorming, we have a simple set of rules to follow.
Review the Rules for Brainstorming that are written down on the board:
- Generate as many ideas as possible.
- Write down each idea.
- Don't stop to judge, question, or criticize. There are no bad ideas.
- Build on the ideas of others.
- Encourage wild ideas.
During ideation, encourage students to bounce their ideas off each other. We don't want students sitting quietly and working alone. This should be a relatively noisy activity! If you see two or more students get excited about one idea, encourage them to work together on a pitch.
- We will be forming teams of 3 or 4 for the rest of the semester, so you will need to pitch your idea to get team members.
- When we get to the project pitches, each of you will need to pick your 1st, 2nd, and 3rd favorite project idea.
- We'll then use these lists to pick the final projects and teams. Remember to not get too attached to your own idea, keep an open mind, and be willing to work on other ideas.
- Ask other students what their ideas are. Talk about your idea. Ideas are best formed when more people are involved!
- If two or more of you want to work on the same pitch, go for it!
- If you can't think of any ideas, don't worry, you'll have the opportunity to work on someone else's project.
Project Brainstorming [30-45 min]
Project Intro (lead mentor)
Now that we've finished brainstorming as a group, we want start thinking about what we want to work on for our final project. You'll work in larger teams to build a server mod that anyone can play.
You can combine any number of ideas that were put on the board, or come up with something completely different. The end goal is to create a fun and unique Minecraft experience for the player.
Each project must meet the following requirements:
- You can only use Python code (no 3rd-party mods or copy-and-pasted console commands)
- Your mod must work on a freshly-generated world. On demo day, your mod will be run on a "clean slate" world instance. (See note below on world seed )
- Your mod has to allow the player to do something that wouldn't be possible in a normal game of Minecraft.
Here are some example ideas that are on-par with what we're looking for in a project:
- A mini-game that has some end goal for the player, whether it's to collect points, win a race, perform a challenge, etc
- A game where the player must complete challenges in order to gain special abilities, each ability allowing them access areas or perform more difficult challenges
- A puzzle game where the player has to use their wits to solve one or more challenges
- A replica of a retro game (such as tetris or breakout), but using Minecraft blocks.
- An art game that allows players to do creative things in Minecraft that they wouldn't otherwise be able to do in the regular game.
Work on your pitch (individual, pairs, or small groups)
Students may use laptops to help with project brainstorming |
Have students spend about 20-30 minutes brainstorming a project pitch. Students can work in pairs, or if you notice several students already converging on an idea, allow them to continue working together on their pitch.
Use a piece of scratch paper to write down pitch notes. Inform students they'll have only 1-2 minutes to pitch their idea.
-------- Break [5-10 min] --------
Project Pitches and Team Formation [15-20 min]
- Tell students that everyone will be picking their top 3 projects, so think about which projects you like best.
- Give each student 1-2 minutes to pitch their ideas.
- Write each project name on the board.
- Have students choose their top 3 projects that they want to work on, in order (top choice, second choice, third choice). They don't have to pick their own idea as top choice if they don't want to.
Mentors should then use the students' "top 3" choices to pick project teams.
Project Planning [20-30 min]
Once teams have been determined, use the remainder of the time to work on planning the project. If necessary, you can continue project planning during the first part of the next session.
Using modules & functions to collaborate
- Students will create modules to share with other team members.
-
Students will code all project functionality within modules. There will be a
main
module that will be run to "launch" the game. - The main module will import other modules.
To share modules within your team:
- Create a folder for the team on one student's Google Drive account
- Share the folder with other students on the team and mentors
- Students will upload their modules to this folder.
Decomposition: Breaking down the problem
Next we're going to work on breaking down each of those major features into smaller problems.
- On separate sheets of notebook or sketch paper, one for each major feature, have students write the major feature at the top of the page.
- Help students think about how they might break that feature down into tasks and write them on that page.
- Sometimes it helps to know what tools you'll have available for accomplishing your tasks. Use the Python Reference and Minecraft Reference to help students think about how they might do that task.
- Think about what modules you'll need to create, and what functions might want to put in those modules.
Make sure these papers are kept in a safe place so that the team can reference them throughout the project. Consider taking photos of them just to have a digital backup. |
Plan the Next Sprint
- Help students prioritize tasks and decide which ones will go into a new sprint.
-
Feel free to experiment with different ways of doing this:
- Use sticky notes to organize and prioritize tasks on the wall or table, and then record them on a sheet of paper.
- Put your notes in Google Drive