Creating a general-purpose game framework

Lately I’ve found a passion for technologies that make game development easier. Over this past year especially, I have learned that in order to make a decent game, it is absolutely essential to plan ahead and “find the fun.”

If there’s anything I’ve gathered from my Foundations of Engineering class this semester, it’s that for any project, prototyping and quick iteration is key for success.

In order to make this easier, I aim to create a general-purpose framework that provides a baseline set of features that make it easier to prototype game design ideas by attempting to trivialize “basic,” or baseline, implementations found in many games. A few things come to mind, such as character controllers, logic, world-interactable objects, UI components, a client-server and server-client networking backbone, a robust and feature-rich custom physics pipeline, and more.

Essentially, this framework could provide a set of tools, a game development toybox if you will, to enable game designers to test and iterate upon their concepts quickly.

As the scope of this project is generally quite wide, it will be a significant undertaking for me, but it’s something that I want to pursue to support my future projects.

I’m writing this post asking for the advice of anyone who has tried something similar before. What are your insights? What were some challenges you faced, or could see yourself facing, and where would you/did you start?

Over the past year I’ve worked on a significant library of tools and modules that I use personally for my own projects, but I’ve never attempted to make something as a cohesive, transferrable whole.

To summarize, my goal is to expand the core functionality of the Roblox engine by developing a framework that trivializes the implementation of background features such as networking, sound, animation, UI elements, world interactable objects, etc., adding additional features such as advanced physics including cloth, algorithmically-driven destructible environments, buoyancy, tension, springs, collisions, etc., and using these features to provide a rich additional set of functionality including a physicalized vehicle handler, complex interactions, basically whatever you can think of.

I should mention that this is intended to support a wide variety of game genres.

I would love to hear any advice that you might have! I’m not quite sure where I should begin, but I imagine myself starting with backend stuff first. Maybe I should draw an outline of the higher level features I want and figure out the low level stuff required to support it.

3 Likes