Oop Project Proposal
Oop Project Proposal
Introduction
The Stronghold game is an ultra-challenging, console-based multiplayer strategy game designed to push
C++ OOP students to their absolute limits. Players manage a medieval kingdom, dealing with war,
politics, economy, corruption, diplomacy, natural disasters, and real-time strategic decisions.
This version of Stronghold enforces brutal OOP constraints, requiring students to master pointers,
inheritance, polymorphism, templates, exception handling, file handling, dynamic memory
management, interdependent mechanics, randomized events, and time-based functions (sleep()). The
game is intentionally designed to be extremely difficult, ensuring that only students with a deep
understanding of C++ and OOP principles can successfully complete it.
Social classes include peasants, merchants, nobility, and military, each with unique needs.
Plagues, famine, and war can wipe out large portions of the population.
Army morale drops during prolonged wars, requiring food, pay, and rest cycles.
Generals are elected or appointed, but corruption can weaken the army.
War depletes resources, weakens the economy, and impacts population stability.
2.3 King Election System (Political Chaos Mechanic)
The king is elected through votes, and different factions influence the outcome.
Each king has a different leadership style, affecting tax rates, diplomacy, and military actions.
If the king dies in battle, the kingdom falls into political instability until a new ruler is chosen.
The economy is dynamic, impacted by war, trade, taxation, corruption, and random events.
A progressive tax system can be implemented, benefiting the poor but angering the nobility.
Players must manage public services (hospitals, food distribution, military funding).
Market crashes can bankrupt the kingdom, leading to loan dependency.
Bank heists and fraudulent activities are possible, leading to security expenses.
A treasury mismanagement system ensures that poor decisions impact future gameplay.
Every resource (wood, stone, iron, gold, food, weapons) must be managed.
Food is essential for population survival, and shortages cause starvation, disease, and revolts.
Trading resources requires secure trade routes, which can be attacked by enemy factions.
Weather conditions (droughts, harsh winters) affect food production, increasing reliance on stockpiles.
2.7 Trade, Market & Diplomacy System (Players Must Adapt to an Unpredictable Economy)
The market system is fully dynamic, with fluctuating supply and demand.
Players can engage in trade agreements, but alliances can be broken at any time.
Smugglers can bring illegal goods, but getting caught results in fines.
Merchant guilds demand fair prices, and refusing them can lead to boycotts.
2.8 Multiplayer System & Text Communication (Deception & Alliances Allowed)
---
Leader (Base Class) → King, Commander, Merchant Guild Leader (Derived Classes).
Virtual functions for flexible governance (e.g., different kings have different policies).
All objects must be dynamically allocated using new and properly deallocated using delete.
Invalid inputs (e.g., negative army size, illegal actions) must trigger exceptions.
class Resource {
T quantity;
public:
};
---
Random wars, natural disasters, assassinations, and revolts keep players on edge.
void randomEvent() {
srand(time(0));
“BEST OF LUCK!!”