This roadmap turns the current high-level recommendations into a concrete implementation plan for the repo.
Improve Bloodbullets in three areas:
- Player acquisition and first-session retention
- Repeat engagement and return rates
- Technical maintainability and operational safety
Problem: The public homepage is almost empty and does not explain why a new player should register, what the game loop is, or what to do first.
Primary files:
public_html/src/Controllers/index.phppublic_html/src/Views/index.twigpublic_html/app/Resources/Views/base.twig
Implementation:
- Add a clear hero section with value proposition, registration CTA, and login CTA
- Add a short "How it works" section for crimes, growth, family, and competition
- Add social proof sections such as active players, screenshots, and core features
- Add a direct route from landing page to registration and starter flow
Success metric:
- Higher register conversion from homepage visits
Problem: The onboarding system already exists, but it mainly introduces navigation. It should guide players into the first satisfying gameplay loop.
Primary files:
public_html/src/Business/OnboardingService.phppublic_html/src/Data/OnboardingDAO.phppublic_html/src/Controllers/game/status.phppublic_html/src/Controllers/game/members.phppublic_html/src/Controllers/game/missions.phppublic_html/src/Business/CrimeService.phppublic_html/src/Business/UserService.phppublic_html/src/Views/game/status.twig
Implementation:
- Add more meaningful starter steps such as:
- First reward claim
- First market interaction
- First equipment purchase
- First friend or family interaction
- First daily challenge completion
- Add a visible end-of-onboarding bonus
- Add a "next best action" explanation on the status page
Success metric:
- More players complete 3 or more onboarding steps in their first session
Problem: The analytics foundation is already present, but the most useful product questions are about behavior milestones, not just page traffic.
Primary files:
public_html/src/Business/AnalyticsService.phppublic_html/src/Data/AnalyticsDAO.phppublic_html/src/Controllers/Ajax/analytics.track.php- Gameplay services that complete important actions
Implementation:
- Track milestone events such as:
register_completefirst_crimefirst_trainingjoined_familydaily_challenge_completedreturned_day_2returned_day_7- Track drop-off points in onboarding
- Build admin views around milestone conversion rather than just page views
Success metric:
- Clear visibility into where new players churn
Problem:
day.php handles too many unrelated concerns in one file, making balancing and debugging risky.
Primary files:
public_html/app/cronjob/day.php- New service files under
public_html/src/Business/orpublic_html/src/Business/Logic/
Implementation:
- Split daily work into separate units:
- Account cleanup service
- Retention email service
- Seasonal event service
- Economy reset service
- Daily challenge rotation service
- Moderation scan service
- Demo account reset service
- Add logging around each job section
Success metric:
- Safer daily deployments and faster debugging when cron issues occur
Problem: The daily challenge rotation and payout logic are powerful but hard to reason about and tune.
Primary files:
public_html/app/cronjob/day.phppublic_html/src/Data/DailyChallengeDAO.phppublic_html/src/Entities/DailyChallenge.phppublic_html/src/Views/game/daily-challenges.twig
Implementation:
- Move challenge generation rules into a dedicated service
- Replace hardcoded reward logic with clearer config or DB-backed values
- Group challenges by category and intended player segment
- Show players clearer progress and streak rewards
- Add "almost complete" and "come back today" messaging
Success metric:
- Higher daily challenge completion rate
Problem: There is already a 6-month inactive reminder, but it should be part of a broader reactivation strategy.
Primary files:
public_html/app/cronjob/day.phppublic_html/src/Controllers/inactive-reminder-unsubscribe.php- Mail template logic in the cron file or new email service
Implementation:
- Create staged reactivation windows such as 7 days, 30 days, 90 days, and 180 days
- Tailor copy and rewards by inactivity length
- Add one-click return links where appropriate
- Track reactivation success rates
Success metric:
- More dormant users return after reminder campaigns
Problem: The current blacklisted-word scan is too simple and likely to cause false positives or be bypassed.
Primary files:
public_html/app/cronjob/day.php- Message and moderation-related services and admin pages
Implementation:
- Move scanning into a dedicated moderation service
- Normalize message text before checks
- Add an admin review queue instead of only incrementing reports
- Add logging so moderators can see why something was flagged
Success metric:
- Fewer false positives and better moderation visibility
Problem: The status page contains valuable information, but it is dense and does not prioritize the next rewarding action.
Primary files:
public_html/src/Views/game/status.twigpublic_html/src/Controllers/game/status.phppublic_html/app/Resources/Views/gamebase.twig
Implementation:
- Add a top summary card with:
- Ready actions
- Expiring opportunities
- Next onboarding step
- Best next action based on cooldowns and account state
- Reduce cognitive load for new players
- Improve mobile readability
Success metric:
- More action clicks from the status page
Problem: Some frontend interactions are outdated or inconsistent with modern browser behavior.
Primary files:
public_html/src/Views/game/status.twigpublic_html/web/public/js/- Shared Twig base templates
Implementation:
- Replace deprecated
document.execCommand("copy")withnavigator.clipboard - Reduce inline page-specific JavaScript where practical
- Improve mobile responsiveness in high-traffic pages
- Standardize action feedback and loading states
Success metric:
- Better mobile experience and fewer UX rough edges
Problem: The repo already acknowledges security and operational risk. Before growth work scales up traffic, core systems need hardening.
Primary files:
README.mdSECURITY.md- Session, auth, admin, and cron-related files across the repo
Implementation:
- Add better cron logging and failure visibility
- Review account deletion safety
- Review session and cookie handling
- Add more audit trails for admin and automated actions
- Prioritize protections around sensitive flows before growth campaigns
Success metric:
- Lower operational risk and safer production changes
Focus:
- Homepage
- Onboarding
- Status page guidance
- Milestone analytics
Outcome:
- More players understand the game and stick through the first session
Focus:
- Daily challenges
- Reactivation campaigns
- Better reward loops
Outcome:
- More players return on day 2, day 7, and beyond
Focus:
- Cron refactor
- Moderation refactor
- Frontend cleanup
- Security and ops hardening
Outcome:
- Faster iteration and lower risk during future feature work
- Rebuild
public_html/src/Views/index.twig - Add clearer registration funnel and feature explanation
- Expand onboarding steps in
public_html/src/Business/OnboardingService.php - Improve onboarding UI in
public_html/src/Views/game/status.twig
- Add milestone analytics events
- Create an admin view for onboarding conversion and first-session progression
- Extract daily challenge generation from
public_html/app/cronjob/day.php - Start splitting cron logic into smaller services
If only three things are tackled first, start with these:
- Homepage rebuild
- Onboarding expansion
- Analytics milestone tracking
Those three changes should produce the clearest short-term gain in player retention while also giving better data for future decisions.