Course Project - Text-Based Adventure Game
Overview
Welcome to your journey into the world of object-oriented programming through the creation of a Text-Based Adventure Game! Over the next six weeks, you will progressively build a game using Java, applying core object-oriented design and programming concepts. Each week focuses on a specific topic, allowing you to deepen your understanding and enhance your coding skills.
Project Theme
You will develop a text-based adventure game where the player explores a world, battles enemies, collects items, and interacts with various characters. The game starts simple but will grow in complexity as you incorporate new programming concepts each week. By the end of the project, you'll have a fully functional game that showcases your mastery of object-oriented principles.
Objectives
Apply Object-Oriented Concepts: Implement classes, objects, inheritance, polymorphism, abstract classes, and interfaces in a practical project.
Understand Aggregation and Collections: Use aggregation to build complex objects and manage collections with
ArrayList
.Develop Incrementally: Learn to build software progressively, adding features systematically and ensuring code stability at each stage.
Enhance Problem-Solving Skills: Tackle challenges that require critical thinking and creative solutions.
Improve Code Quality: Write clean, readable, and well-documented code following best practices.
Weekly Breakdown
Submission 1: Classes and Objects
Focus: Create the fundamental classes (
Player
andEnemy
) and implement basic interactions.Outcome: A simple combat scenario where the player and an enemy can attack each other.
Submission 2: Aggregation
Focus: Introduce the
Item
class and demonstrate how objects can contain other objects.Outcome: Players can equip items that enhance abilities, and enemies can drop items upon defeat.
Submission 3: ArrayLists
Focus: Manage collections of objects using
ArrayList
.Outcome: Players can collect multiple items, and the game can handle multiple enemies and items dynamically.
Submission 4: Inheritance
Focus: Create subclasses of enemies and items to promote code reuse and organization.
Outcome: Specialized enemies like
Goblin
andDragon
, and item types likeWeapon
andPotion
.
Submission 5: Polymorphism and Abstract Classes
Focus: Use abstract classes and polymorphism to generalize behaviors.
Outcome: Abstract
Enemy
andItem
classes with subclasses implementing specific behaviors, enhancing flexibility.
Submission 6: Interfaces
Focus: Implement interfaces to define common behaviors across unrelated classes.
Outcome: Introduce
Interactable
interface for objects likeNPCs
andChests
, allowing diverse interactions.
Getting Started
Set Up Your Environment: Ensure you have Java and a suitable IDE (like Eclipse or IntelliJ IDEA) installed.
Plan Your Game: Think about the theme, storyline, and features you'd like to include within the project scope.
Review Submission Requirements: Before starting each submission, read the instructions carefully to understand the expectations.
Expectations
Incremental Development: Build upon your code each week, ensuring previous functionalities continue to work as new features are added.
Code Quality: Write clean, well-organized code with proper naming conventions and comments for clarity.
Documentation: Accompany each submission with a brief report explaining your implementation and any challenges faced.
Testing: Rigorously test your game at each stage to identify and fix bugs early.
Submission Guidelines
Deadline: Submissions are due at the end of each module (specific dates will be provided).
Format: Submit all source code files and the accompanying report in a compressed folder named
YourName_SubmissionX.zip
.
Assessment Criteria
Functionality: The game meets the requirements specified for the week.
Understanding of Concepts: Demonstrated through your code implementation and explanations in the report.
Code Quality: Readability, organization, use of comments, and adherence to best practices.
Creativity: Originality in game design, features, and problem-solving approaches.
Progression: Evidence of building upon previous weeks' work and improving the game incrementally.
Additional Resources
Programming Guides: Refer to textbooks and online tutorials provided in the course.
Office Hours: Available for additional help—check the schedule and make appointments as needed.
Academic Honesty
While collaboration and discussion are encouraged, all code submitted must be your own. Plagiarism or copying code from others will result in disciplinary action and a grade of 0.
Encouragement
This project is not just an assignment but an opportunity to create something unique and enjoyable. Let your creativity shine as you apply programming concepts to build your game. Don't hesitate to experiment with new ideas or add personal touches that make your game stand out.
Good luck, and happy coding!
COSC-1437 / ITSE-2457 Computer Science Dept. - Author: Dr. Kevin Roark