Rbxcat - A client-access-centric game framework

rbxcat - a ROBLOX Client Access Tunnel

Introduction

Hi! My name is Leah and I develop small-scale games under the banner of Kitten Holdings on ROBLOX.

I was constantly wondering what game framework to use, what the best way to access server-replicated information from the client was, and most importantly, how to do it myself!

I, along with my co-developer Zach, decided to open source our Attributes-based solution for this unique problem, and soon plan to release our NodeJS based analytics server under the banner of rbxcat-server to compliment this game framework have released rbxcat-server to go alongside our Analytics and OpenCloudMessaging modules!

Examples

Some example games can be found below:

rbxcat-obby: A simple obby game made on the rbxcat framework!

Playable at: rbxcat - obby - Roblox
Source visible at: GitHub - fartg/rbxcat-obby


rbxcat-minigames: An intermediate introduction into rbxcat programming with a minigames place.

Playable at: rbxcat - minigames - Roblox
Source visible at: GitHub - fartg/rbxcat-minigames

Some example images can be found below:

A working tycoon prototype using rbxcat:
295655830-7baba323-7810-4381-9247-0e54768001bf

Included modules inside of rbxcat:
image

A money-per-second example from our github tutorial:
295662747-fdfd3d15-e840-4b5e-9553-4f9dfe7fc81f

Problems

What problems does this game framework solve?

  1. Anything that you think you need can be made modular, (if it hasn’t already), and grabbed by the client.
  2. With a unique, well-formed tutorial, you can learn exactly how to use our framework for your use case.
  3. Easily request and access server-sided information about a client’s game session with built in tools and attribute-centric calls. (EditPlayer.Return, EditServer.Return)

What problems does this game framework introduce?

  1. Because of the way ROBLOX works, attributes are NOT asynchronous, and will take a second to populate on player join. This is solved by waiting for a ready event to be called before loading anything on the client side, or just task.wait()ing until an attribute returns something other than nil.
  2. Not everything is made for you! Knit and other game engines like it allow for direct calls to handlers (RemoteEvents that can be listened to) while we do that before runtime.

Installation / Source

A link to the github repository:

A link to the model:

Why open source and post?

I’m posting this to ask for any feedback, code-auditing, and anything else that the devforum can come at it with!
I plan on uploading uncopylocked example games using rbxcat so that it’s more clear how it can be used for any game that you can imagine.

Have a great day!

9 Likes

I just added an example game, rbxcat-obby, to both this post and the github repository. It can be visited and copied from rbxcat - obby - Roblox (source visible at GitHub - fartg/rbxcat-obby)! Please let me know what you guys think, and if you have any other examples that you would like to see added! :smiley:

Me and my co-developer just published another example game, rbxcat-minigames, that shows an intermediate usage of the framework in a Minigames way!

It can be visited and copied from rbxcat - minigames - Roblox
(source visible at GitHub - fartg/rbxcat-minigames).

Media:

I think this example is a little more useful to the community and will definitely help people adopt their games to rbxcat development. If you guys have any questions, concerns, or requests for more examples, please leave a reply here!