Welcome to Information Technology 11/12! This is a course intended to teach some of the basic principles involved in programming. Specifically, this will cover program flow, decision making, data input and output as well as storage of information. The focus of this course will be to create a text based game using web based technologies. While this course may teach some of the fundamentals of game design, this is not a video game design course. If you have time at the end of the year, or even mid year, and would like to explore this on your own, it can be counted towards your course assessment as long as you can demonstrate that you have used it to meet some of the learning outcomes of the course.
We will be creating a game that can be played with a web browser, so primarily text with maybe some simple graphics for decoration. Actions will be primarily user input based (users click on links or buttons) at which point the user interface can be updated with new information, or a new page can be loaded.
This game will focus on building a text based game, and is essentially broken down into 4 main components:
- Planning all of the aspects of your game. You will be breaking down your game into sections and creating a ruleset for each section. For example you may have an exploration component, a building component and a combat component. Within the combat component, you may have rules to determine the order of combat, or how to determine if someone scores "a hit", or a calculation of how much damage is done. Each of these can be considered their own mini project. If you do not complete all of the projects for the year, that is okay, as each project will help reinforce coding principles and will help you build fluency with programming. This will largely be a pen/paper exercise, and you will be encouraged to playtest your system with others in class, to help you make sure that the system is balanced, and that there are no loopholes that can be exploited.
- Designing the User Interface. Just like planning, you need to decide how the game is going to look. This will require some knowledge of HTML, forms (how data is passed to the server for calculation) and some cascading style sheets (CSS) to make your game look nicer. You will be creating what the user will see when they look at their web browser.
- Coding your Game. The user interface is just the part that the game player sees. All of the calculations and decisions occur in the background, on the server (webhost) side of the game, and the player only sees the results as output on the client (webbrowser) side of the game. If you have a good plan for how parts of your game work, then this will be relatively easy, and just requires finding out what command is needed to perform the desired action.
- Storing Data. We will also explore how to store data so that a player can store their game, and then continue at a later date. This will require some knowledge of databases. Databases are simply giant tables of information that can be read, or written to. Once a player's information is updated, the data can all be written to the database for retrieval at a later date. Think of a database as a book of information. You can write to it, you can search for information to use and you can read that information for use as well.
This course is project based, which means there will be no formal instruction. You will be working at your own pace, problem solving how things will work and what code you need to use to make that happen. Your resources will be your peers, search engines, this website, and your teacher.
Your mark will be based on your own assessment in consultation with your teacher. You will have a checklist/rubric of course learning outcomes and at several times during the year, you will have an opportunity to reflect on what you have done through the term and decide how well you feel that you know the concepts. You will meet with your teacher to justify your decision and provide evidence to support your assessment. This will come from examples of your work and explanations of what phase you are at and what steps you will be doing next.