PhotonFramework is a Roblox game framework, made to make game development easier! PhotonFramework is maintained by Madonox.
What does PhotonFramework offer?
PhotonFramework offers a plethora of services for developers to interact with, from a UUID management service to a physics calculation service! Additionally, PhotonFramework was made with the idea of allowing as much modifications as possible, from creating your own custom services to modifying internal services with ease!
Installing PhotonFramework:
In order to install the framework, you firstly need to insert the model. This can be found here. Once that’s done, you now need to place it under ReplicatedStorage, or some other shared directory.
Starting the framework:
Once you’ve installed the framework, you now need to start it before you can interact with it, in both a local script on the client, and a server script on the server, run the following code bit:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PhotonFramework = ReplicatedStorage:WaitForChild("PhotonFramework"):WaitForChild("PhotonFramework")
PhotonFramework:Start()
Interacting with the framework:
PhotonFramework provides an extensive API that can be accessed via the PhotonFramework table directly, or through subtables (such as PhotonFramework.Services). The full documentation is linked below under Important Links.
This is pretty neat. This is probably going to make things easier, however I do feel like you should add a “Why use this over other framework modules?” section. But I appreciate your time and will probably use this.
Just checked the docs, and dang it covers a whole lot
Is this the new trend? I’m seeing resources like this pretty often where they promise to make game development faster by centralizing all of the useful things into one service. This one is awfully similar to the BOLT library I saw a while back, and it seems to suffer the same problem: the library is bloated with “practically useless” functions that can easily be done without the use of the framework with the added benefit of more flexibility. Albeit it does look more organized. I would suggest that you implement some more complicated yet useful functions that most people wouldn’t bother making on their own.
I agree, the advent of these alleged framework resources seem to be really pointless as they’re oddly game-specific and don’t really add anything new to the table.
Most “good” frameworks like Knit focus on simplifying client server communication and signaling for people using an external IDE, while this one and BOLT focus more on… organizing services? You’d be better off just using vanilla ModuleScripts if you’d want to do that.
Cool framework, I have a suggestion for the projectile motion function - after the last parameter or maybe a a table of Vector3s add the ability to pass through acceleration values like gravity. They would be vector3 values.
You could probably also make your own pretty easily though if you know the equation for distance with acceleration (integral of velocity with respect to time):
function processProjectileMotion(pos,t,v,...)
pos += v*t
for i,a in ipairs({...}) do
if typeof(a) == "Vector3" then
pos += a*t*t/2 --// d = (at^2)/2
end
end
return pos
end