Project Description

RPG2 and PIe Script represent a deep dive into early game development, combining the ambition of creating an RPG with the challenge of designing a custom scripting language. This project exemplifies the trial-and-error learning approach common in the early 2000s, where developers often started with grand visions, and incrementally refined their work through iterative rewrites. In RPG2, the decision to restart from scratch after initial unsatisfactory results speaks to the developer's growth mindset—a valuable skill honed by overcoming obstacles in both code quality and conceptual complexity.

Developing PIe Script concurrently with RPG2 demonstrated a versatile skillset—balancing both game mechanics and an embedded scripting solution—which required a deep understanding of C++ and the pragmatics of software integration. By treating PIe Script as a standalone library, the developer gained early experience in modular programming, crucial for reducing complexity in large projects. Despite the challenges of minimal commenting and evolving requirements, the project is a testament to the developer's perseverance and ability to manage cross-functional dependencies in game development.

Navigating both RPG2 and PIe Script during this era also meant learning how to simplify complex problems into manageable tasks, which ultimately produced a more organized and refined piece of software. Skills like object-oriented programming, effective debugging, and understanding game loops and player interactions were pivotal—setting a strong foundation for future projects. Overall, this journey was not just about building a game but about building the mindset and habits of a developer.

Image Gallery

Code Gallery

Select a file to view:

arrow.h     |    bow.h     |    cgame.cpp     |    cgame.h     |    conditions.cpp     |    electric_arrow.h     |    evaluation.cpp     |    event.cpp     |    flaming_arrow.h     |    freezing_arrow.h     |    ItemBase.cpp     |    ItemBase.h     |    light_arrow.h     |    mappyal.h     |    messages.cpp     |    messages.h     |    meterology.cpp     |    meterology.h     |    NewMain.cpp     |    NewMap.cpp     |    NewMap.h     |    NPC.cpp     |    NPC.h     |    planets.h     |    player.cpp     |    player.h     |    PlayerBase.cpp     |    PlayerBase.h     |    poison_arrow.h     |    prototypes.h     |    resistance.cpp     |    resistance.h     |    script.cpp     |    script.h     |    ScriptMath.cpp     |    ScriptStack.cpp     |    sfx.cpp     |    shadow_arrow.h     |    stone_arrow.h     |    sword.h     |    text.cpp     |    TimeKeeper.cpp     |    TimeKeeper.h    |    trans_draw.cpp     |    variables.cpp     |    weapon.h     |    wet_arrow.h