Factoryhub – Resource Automation Game with OpenGL

About

Factoryhub is a grid-based factory-building prototype inspired by Factorio and Satisfactory, developed in C++ with OpenGL (via GLFW). Over six weeks, and entirely on our own time outside of class, our team of four built a custom engine and gameplay system from scratch – focused on production chains, resource logistics, and factory expansion.

As project lead and gameplay developer, I designed and implemented the core mechanics, including the conveyor logic, factory behavior, world generation using Perlin noise and much more.


Project Info

  • Role: Project Lead & Gameplay Programmer
    (conveyor systems, factory placement, Perlin map generation)
  • Team Size: 4
  • Time Frame: 6 weeks (independent side project)
  • Language: C++
  • Graphics: OpenGL (GLFW)

🎮 Introduction

The player is dropped onto a tile-based world populated with resource nodes. Using the UI, they can place:

  • Mines to extract raw materials
  • Factories to refine or combine them
  • Conveyors to transport items across the map
  • A central base where stockpiles accumulate

As resources pile up in the base, the game unlocks new buildings automatically – encouraging long-term planning and optimization. More complex materials often require two or three input components and multiple production stages.

🧩 Unlocks occur when the player accumulates 10x the cost of the building in their central stockpile.


🧠 Core Systems

Conveyor Logic
  • Tiles carry items in real time across the grid
  • Factories automatically pull from adjacent conveyors
  • Items are rendered as simple shapes for performance clarity
Factory Chain Design
  • Tiered production: simple ores → components → advanced materials
  • Each building has specific input/output behavior
World Generation
  • Entirely procedural using Perlin noise
  • Resource nodes distributed by biome and rarity

🎨 Design & Tech Insights

This project pushed our limits in:

  • OpenGL rendering pipelines (custom shaders, buffers)
  • Building a game loop from scratch (rendering, updates, input)
  • Designing gameplay code using abstract classes, inheritance, interfaces
  • Balancing performance with visual clarity for a complex tile system

🧪 The main challenge was mastering raw OpenGL – building camera systems, tile rendering, and batch drawing without any engine support.


📤 Source Code

👉 GitHub Repository:
https://github.com/ArthuryanLoheac/FactoryHub_Mirror


📚 What I Learned

  • How to implement clean gameplay systems in C++ using design principles (OOP, interface separation)
  • Building a rendering engine with OpenGL + GLFW from scratch
  • Procedural world generation using Perlin noise
  • Designing user interfaces with custom rendering logic
  • Managing project scope, coordination, and polish in a team without supervision

💡 Biggest takeaway: Learning to optimize a fully custom OpenGL engine and still ship a playable, structured game prototype in only six weeks – all while balancing other classes.