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
- figma
- java
- libgdx
- postgresql
- railway
- springboot
Log in or sign up for Devpost to join the conversation.