Inspiration

Inspired by classic childhood dress-up games, we wanted to create a lighthearted dating simulation that combines fashion creativity with interactive conversations. Something fun, accessible, and enjoyable for everyone.

What It Does

This is a casual dating simulation game that blends fashion customization with conversation-based gameplay.
Players can style their outfits, interact with NPC characters through meaningful dialogue choices, and collect fashion coins to unlock various skins and costumes. The game delivers a fun, social, and relaxing experience where every choice matters.

How We Built It

Frontend

Built using LibGDX (Java) with the implementation of multiple Object-Oriented design patterns:

  • Observer Pattern – Automatic player data saving to the backend
  • State Pattern – Game state management (Menu, Dressing, Dating states)
  • Object Pool Pattern – Reusable button objects for memory optimization
  • Factory Pattern – Centralized creation of game objects
  • Singleton Pattern – Global music manager for consistent audio handling
  • Strategy Pattern – Flexible NPC behavior variations

Backend

Developed with Spring Boot REST API and PostgreSQL, hosted on Railway, handling:

  • Player authentication
  • Data persistence (levels, coins, selected skins)
  • Game progress tracking

Architecture

A client–server architecture using asynchronous HTTP requests, centralized state management via GameStateManager, and observer-based data synchronization between frontend and backend.

Challenges We Ran Into

  • Coding: Implementing an observer-based auto-save system without race conditions, managing smooth state transitions across multiple game screens, handling asynchronous backend calls in LibGDX, and applying object pooling to prevent memory leaks
  • Design: Creating an intuitive UI/UX and designing engaging conversation flows
  • Deployment: Exporting the game into an executable JAR with all dependencies, configuring PostgreSQL on Railway, and handling CORS and network connectivity issues

Accomplishments We’re Proud Of

  • A stable and playable game across platforms
  • Reliable database persistence with an automatic save system
  • A diverse and visually appealing skin collection
  • Clean and scalable architecture with proper design pattern usage
  • Smooth gameplay experience with minimal bugs
  • Optimized performance through object pooling and efficient resource management

What We Learned

Through this project, we gained hands-on experience in Java game development using LibGDX, applied core OOP principles and multiple design patterns (Observer, State, Strategy, Singleton, Factory, Object Pool) in a real-world project, built and deployed a Spring Boot REST API, designed and managed databases, and improved our teamwork skills through version control, task distribution, and code reviews.
We also strengthened our problem-solving abilities by debugging complex frontend & backend integrations and optimizing game performance.

Built With

Share this project:

Updates