Charlie Piper

Team Lead / Software Engineer

 Game Screenshot

University Life Simulation Game - Engineering Group Project

Introduction

This project involved developing a comprehensive Java-based university life simulation game as part of a Software Engineering group assignment. The game models the delicate balance that students must maintain between academic performance, physical health, and social engagement throughout their university journey. Players navigate through a realistic campus environment while making decisions that affect their character's progression across multiple interconnected systems.

As a member of a six-member development team, I helped guide the project through a unique two-phase structure where initial collaborative development was followed by a peer voting process. During this evaluation phase, teams presented their projects for potential takeover by other development groups. Our project ultimately secured 42% of the cohort votes, demonstrating both strong technical implementation and effective presentation skills that our peers really liked.


Game Design & Mechanics

The simulation game models three interconnected aspects of university life through sophisticated systems that reflect real student experiences. The academic system tracks course enrollment and attendance while managing assignment deadlines with varying difficulty levels and exam scheduling that requires strategic preparation. The system calculates a grade dynamically, affecting progression opportunities and creating realistic academic pressure that mirrors actual university experiences.

Map design screenshot

Health management forms another crucial pillar of the simulation, incorporating both physical and mental health metrics. Physical health responds to sleep patterns, exercise routines, and nutritional choices, while mental health fluctuates based on stress levels and social interactions. These health metrics create cascading effects that influence academic performance and social activities, forcing players to consider holistic well-being rather than focusing solely on academic achievement.

The social engagement system introduces friendship mechanics with relationship building elements, club and society participation options, and social events that provide networking opportunities. Players must balance socializing with academic commitments, creating meaningful trade-offs that reflect the complexity of real university social dynamics. This interconnected design ensures that no single system can be optimized in isolation, encouraging strategic thinking and realistic decision-making.


Map Design & Campus Environment

The game world centers around a carefully designed campus map that serves as both the primary interface and the foundation for all player interactions. Our map design philosophy emphasized creating an authentic university environment that would feel familiar to students while providing clear navigation and purposeful space utilization. The campus layout includes distinct zones for academic buildings, residential areas, recreational facilities, and social spaces, each serving specific gameplay functions while maintaining visual coherence.

Map design screenshot

Academic buildings house different departments and lecture halls, with each location offering unique opportunities and challenges. The library serves as a primary study location with varying effectiveness based on time of day and crowding levels. Residential areas provide rest and recovery opportunities, while recreational facilities like the gym and sports fields offer health management options. Social spaces such as the student union, cafeteria, and outdoor gathering areas facilitate friendship building and event participation.

The map utilizes a tile-based system that supports both visual appeal and efficient pathfinding algorithms. Each location contains metadata that influences game mechanics, such as study effectiveness modifiers, social interaction probabilities, and health benefits. Weather systems and day-night cycles add temporal complexity to location choices, encouraging players to consider timing alongside spatial decisions when planning their daily activities.

Our implementation employed a modular design that separates map rendering from game logic, allowing for easy expansion and modification of the campus environment. This separation proved crucial during development iterations when we needed to adjust building layouts based on gameplay testing feedback without disrupting core simulation systems.


JIRA Workflow Management & Project Organization

Our sprint planning process utilized JIRA's agile boards to visualize work distribution and track progress across team members. Sprint planning sessions involved collaborative story point estimation using planning poker techniques, with careful consideration of dependencies between different game systems. The team established clear definitions of done for each issue type, ensuring consistent quality standards while maintaining development momentum.

The integration of JIRA with our Git workflow created seamless traceability between code changes and project requirements. Branch naming conventions referenced JIRA issue keys, while commit messages automatically updated issue status and provided development context. This integration proved invaluable during peer evaluation when demonstrating our systematic approach to feature development and quality assurance.


Technical Architecture & Implementation

The system architecture follows object-oriented principles with clear separation of concerns across game systems. The central GameEngine class coordinates between StudentCharacter, AcademicSystem, HealthSystem, SocialSystem, and TimeManager components, ensuring synchronized updates while maintaining loose coupling between subsystems. This design enables independent development of different game aspects while preserving system integration capabilities.

The technical architecture emphasized modularity and testability throughout the development process. Each major system included comprehensive unit tests with coverage targets exceeding 80%, while integration tests validated cross-system interactions. Static code analysis tools including SpotBugs and PMD maintained consistent code quality standards across different developers' contributions, ensuring that the final codebase met professional development standards.


CI/CD Pipeline & Development Practices

The implementation of a robust Continuous Integration and Continuous Deployment pipeline represented one of our most significant technical achievements, resulting in a 40% reduction in integration errors throughout the development lifecycle. Our pipeline utilized GitHub Actions to automate testing, code quality analysis, and deployment processes, creating consistent feedback loops that caught issues early in the development cycle.


Results & Peer Evaluation

Our project presentation addressed four key evaluation criteria that reflected both technical excellence and practical software development skills. Code quality assessment demonstrated our clean, well-documented Java implementation with effective use of design patterns and SOLID principles. Comprehensive test coverage and robust error handling showcased our commitment to professional development practices that would facilitate long-term maintenance and extension.

The final result of 42% of cohort votes represented the highest percentage among competing projects, validating our comprehensive approach to both technical implementation and presentation preparation. Peer feedback recognized superior code organization and documentation, comprehensive game balance with engaging mechanics, and professional presentation quality that effectively communicated technical depth.


Challenges & Solutions

The most significant technical challenge involved creating realistic but engaging balance between academic pressure and social life within the game simulation. Initial implementations created either trivially easy scenarios or impossibly difficult situations that frustrated players. We addressed this through implementing a weighted scoring system with dynamic difficulty adjustment based on player feedback loops, creating personalized experiences that maintained engagement while reflecting authentic university pressures.

State management complexity presented another major hurdle as interconnected systems created cascading effects that became difficult to predict and debug. Our solution involved adopting an event-driven architecture with clear interfaces between subsystems, enabling isolated testing and debugging while maintaining system integration capabilities. This architectural decision proved crucial during the final weeks when system integration testing revealed complex interaction patterns.


Conclusion

This Software Engineering group project successfully demonstrated the practical application of agile development methodologies, clean code principles, and collaborative software development practices. Leading a six-member team through both technical implementation and peer evaluation processes provided invaluable experience in project management, technical leadership, and software architecture design that directly translates to professional software development environments.

References

  1. [1]
  2. [2]
    E. Gamma, R. Helm, R. Johnson, and J. Vlissides. "Design Patterns: Elements of Reusable Object-Oriented Software". 1994.
  3. [3]
    P. M. Duvall, S. Matyas, and A. Glover. "Continuous Integration: Improving Software Quality and Reducing Risk". 2007.
  4. [4]
    R. Nystrom. "Game Programming Patterns". 2014.
  5. [5]