DEV Community

Cover image for Empowering Indie Game Developers: A Showcase Platform Built with Passion
Gladiators Battle
Gladiators Battle

Posted on

Empowering Indie Game Developers: A Showcase Platform Built with Passion

Indie games are more than just entertainment—they're a testament to the creativity and passion of developers worldwide. Unlike mainstream games, indie titles often carry unique stories, unconventional mechanics, and a love for the art of game design.

Driven by this belief, I set out to build a platform that provides indie developers with a stage to shine. This article takes you behind the scenes of the Indie Games Showcase Platform, detailing the inspiration, development process, technologies used, and the challenges faced along the way.

🌟 What is the Indie Games Showcase Platform?

It’s a community-driven platform where:

  • Developers can upload their games, complete with descriptions, videos, and links.
  • Gamers can explore, vote for their favorite games, and engage with indie developers.
  • The Community decides which games deserve special recognition and featured spots.

The Vision: Why Build This Platform?

The idea was born out of a simple question:

How can I help indie game developers gain visibility without any costs?

Here’s the problem: existing platforms often charge developers for exposure or drown indie games in a sea of mainstream titles. I wanted to create a space that:

  • Levels the playing field for all developers.
  • Promotes games based on community votes and engagement.
  • Provides a user-friendly experience for both developers and players.

Building the Platform: A Developer's Journey

Let’s dive into the development process. From choosing the tech stack to creating intuitive UI components, every decision was made to serve the indie game community better.

Tech Stack: Tools That Made It Possible
The platform relies on modern, scalable technologies:

  • React.js: For building reusable and responsive UI components.
  • Firebase: For hosting, database, authentication, and real-time data updates.
  • React-Bootstrap: To ensure a clean, responsive, and visually appealing interface.

Here’s an overview of how I structured the app:

Folder Structure

src/
  components/
    GameCard.js
    GameSubmissionForm.js
    GameCategories.js
    Leaderboard.js
  pages/
    IndieGamesPage.js
    GameDetailsPage.js
  services/
    firebase-config.js
  styles/
    GameCard.css
    GameSubmissionForm.css
    IndieGamesPage.css
Enter fullscreen mode Exit fullscreen mode

This structure ensures separation of concerns, making the project easier to maintain and scale.

Core Components

  1. Indie Games Homepage The homepage serves as the entry point, designed to inspire developers and players alike. Here’s what it includes:

A Call-to-Action Header
Encourages users to upload games or start exploring immediately.

<header className="indie-games-page-header">
  <div className="indie-games-header-content">
    <h1>🎮 Indie Games Showcase</h1>
    <p>Discover and celebrate the creativity of indie developers!</p>
    <Button
      variant="warning"
      onClick={() => tabContainerRef.current.scrollIntoView({ behavior: 'smooth' })}
    >
      🚀 Start Exploring
    </Button>
  </div>
</header>
Enter fullscreen mode Exit fullscreen mode

Featured Games Section

Dynamically fetches and displays games tagged as "featured" in the database.

const featuredQuery = query(
  collection(db, 'indieGames'),
  where('featured', '==', true)
);
const featuredDocs = await getDocs(featuredQuery);
setFeaturedGames(featuredDocs.docs.map((doc) => ({ id: doc.id, ...doc.data() })));
Enter fullscreen mode Exit fullscreen mode
  1. Game Submission Form The form is the heart of the platform, designed to make game uploads effortless for developers.

Features:

Real-time validation for fields like video and image URLs.
An intuitive design with icons and tooltips for better guidance.

<Form.Group>
  <Form.Label>
    <FaGamepad /> Game Title
  </Form.Label>
  <Form.Control
    type="text"
    value={newGame.title}
    onChange={(e) => setNewGame({ ...newGame, title: e.target.value })}
    maxLength={100}
    required
  />
  <Form.Text>Maximum 100 characters.</Form.Text>
</Form.Group>
Enter fullscreen mode Exit fullscreen mode

Validation Example:

const isValidYouTubeUrl = (url) => {
  const regex = /^(https?:\/\/)?(www\.youtube\.com|youtu\.be)\/.+$/;
  return regex.test(url);
};
Enter fullscreen mode Exit fullscreen mode
  1. Game Categories Games are divided into Featured, Popular, and Recent tabs for seamless exploration. Each category fetches and displays games dynamically from Firebase.
const filterGamesByCategory = (category) => {
  switch (category) {
    case 'featured':
      return games.filter((game) => game.featured);
    case 'recent':
      return [...games].sort((a, b) => b.submittedAt.seconds - a.submittedAt.seconds);
    case 'popular':
      return [...games].sort((a, b) => b.likes - a.likes);
    default:
      return games;
  }
};
Enter fullscreen mode Exit fullscreen mode
  1. Leaderboard

To celebrate top-rated games, I created a Leaderboard with real-time updates.

Features:

Highlights the top 5 games with badges for gold, silver, and bronze ranks.
Dynamically updates likes and ranks.

const gamesQuery = query(
  collection(db, 'indieGames'),
  where('approved', '==', true),
  orderBy('likes', 'desc'),
  limit(5)
);
Enter fullscreen mode Exit fullscreen mode
  1. Game Details Page

Each game has a dedicated page with:

Embedded YouTube videos for gameplay previews.

Developer links to social media and official game pages.

Real-time stats for views and likes.

const embedUrl = `https://www.youtube.com/embed/${game.videoUrl.match(/[?&]v=([^&#]+)/)?.[1]}`;
Enter fullscreen mode Exit fullscreen mode

Challenges and Solutions

Real-Time Data Updates

Firebase’s real-time database enabled seamless updates, but ensuring consistent performance required careful optimization of queries and indexing.

Responsive Design
Indie games deserve to shine on all devices. Implementing flexible CSS and media queries was crucial.

.indie-games-page-header {
  background: linear-gradient(145deg, #1e1e28, #343444);
  padding: 50px 20px;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
}
Enter fullscreen mode Exit fullscreen mode

What’s Next?

This platform is just the beginning. Here’s what I’m planning for the future:

  • Comments on Game Pages
  • Enable players to leave feedback and connect with developers directly.
  • Voting Contests
  • Create community-driven events to spotlight the most loved games.
  • Advanced Leaderboards
  • Add filters for categories like puzzle, action, or strategy games.

Join the Indie Revolution

Are you ready to showcase your game? Here’s how you can get started:

Watch the video walkthrough to see the platform in action.

Upload your game and be among the first 10 developers to get free promotion.

Retweet and share the platform to help more indie developers shine.

Links to Get Started
🌐 Visit the Indie Games Showcase: https://www.gladiatorsbattle.com
📢 Follow us on Twitter: https://x.com/GladiatorsBT
🎥 Watch the walkthrough video: https://www.youtube.com/watch?v=xfPZPYwZjP0

Stay Connected with Us
🌟 Follow and support our journey:

Twitter: https://x.com/GladiatorsBT
Discord: https://discord.gg/YBNF7KjGwx
Website: https://www.gladiatorsbattle.com
Let’s make the indie gaming world a better place—one game at a time. 🎮✨

Top comments (1)

Collapse
 
pengeszikra profile image
Peter Vivo

Showcase link don't working.