Module 1: Introduction to Browser RPGs
Objective: To familiarize students with the genre and capabilities of browser RPGs.
Topics:
- What is a browser RPG: features and mechanics;
- Basics of HTML, CSS, and JS for RPGs;
- Overview of development tools: code editor, browser, DevTools;
- RPG project structure: scenes, characters, inventory.
Practice:
- Creating a simple HTML page for an RPG;
- Configuring the game field and interface;
- Creating your first character (static data: name, health).
Module 2: JavaScript Basics for RPGs
Goal: to provide basic JS skills for RPG interactivity.
Topics:
- Variables, objects, and arrays for characters and items;
- Functions and methods for character actions;
- Event handling (keyboard, buttons);
- Game logic basics: attack, defense, health.
Practice:
- Creating a character object with characteristics;
- Implementing attacks and reducing enemy health;
- “Start battle” button with actions displayed in the console.
Module 3: Working with Canvas and the game field
Goal: visualize characters and game objects.
Topics:
- Basics of Canvas API for RPG;
- Drawing characters, enemies, and objects;
- Basics of motion animation;
- Coordinates and display of character status.
Practice:
- Displaying characters and enemies on the game field;
- Character motion animation;
- Simple backgrounds (city, forest, dungeon).
Module 4: Combat System
Goal: Implement basic RPG combat logic.
Topics:
- Turn-based combat and turn order;
- Attack and defense system;
- Using skills and items;
- Health and status indicators.
Practice:
- Turn-based combat system with an enemy;
- Using attack and defense with reduced health;
- Displaying character HP on Canvas.
Module 5: Inventory and item system
Goal: add RPG mechanics with items and equipment.
Topics:
- Creating objects for items and equipment;
- Adding inventory and item management;
- Item effects: healing, enhancement, buffs;
- Inventory interface on Canvas or DOM.
Practice:
- Creating an inventory with item display;
- Using items in combat;
- Equipping weapons and armor with changing characteristics.
Module 6: Quests and Events
Goal: Add interactivity and goals for the player.
Topics:
- Quest system basics: tasks, rewards;
- Dialogues with NPCs;
- Events on the map and interaction with objects;
- Progress and saving the state.
Practice:
- Mini-quest “Find the item and return it to the NPC”;
- Implementing dialogues with multiple choice answers;
- Adding rewards (experience, items).
Module 7: Map and navigation
Goal: create a game map with character movement.
Topics:
- Coordinates and character movement on the map;
- Dividing the map into zones (city, forest, dungeon);
- Collisions with objects and enemies;
- Events when entering a zone.
Practice:
- The character moves around the map using the keys;
- Interaction with objects and enemies on the map;
- Displaying the current location and mini-map.
Module 8: Leveling up and experience
Goal: Add character progression.
Topics:
- Experience and Level System;
- Improving Characteristics (Health, Attack, Defense);
- Applying skill points;
- Progress visualization on the HUD.
Practice:
- Gaining experience after combat;
- Leveling up and improving characteristics;
- Experience and level indicator on the interface.
Module 9: Sounds and Effects
Goal: to make the game lively and atmospheric.
Topics:
- Inserting sounds of combat, footsteps, and events;
- Background music for locations;
- Visual effects for strikes and magic;
- Adjusting volume and event triggers.
Practice:
- Sounds for attacking, taking damage, and using items;
- Music for each location;
- Collision and magic attack effects.
Module 10: Final Project
Goal: to create a full-fledged browser RPG.
Tasks:
- Game concept development: world, character, plot;
- Creating a map, characters, enemies, NPCs;
- Implementation of combat system, quests, and inventory;
- Adding animations, sounds, and interface;
- Testing, optimization, and publication.
Practice:
- Fully finished RPG with map, combat, and quests;
- Ability to move, fight, and interact;
- Demo version for other students.