I have tried really hard to really try and learn from this great resource but I don’t really know what’s going on, if someone could just give a brief explanation of how the game is structured?
Took a very quick look around and I don’t blame you on why you are finding it hard to work out.
The code itself is event driven with OOP (not using meta methods) and I am unable to find any documentation on the available game events to trigger. On the positive side of thing it has low coupling meaning you should be able to copy a script out and use it on its own (excluding the links to the rep storage and events that trigger other events).
Overall its a good clean projct to review. It is structured, has clean code and things are named appropriately. But remember that this project was designed in a particular way and so there are pros and cons.
I have noticed a couple of things that I would not particularly agree with in this project.
Modules are a very powerfull tool in development which should be used on both the server and client side to consolidate code.
I would not reccomend using the datastore with value object to hold data as for the most part it just add overheads and complications (This can be a whole nother topic).
I feel that it would have been better to use meta tables as it does save on memory but this can be subjective.
I did not explain that well. To add more detail onto that I mean that modules should be used server side, client side and shared between them.
Module have far more uses outside of making cleaner code and sharing code. One of the main things I like is that you can use lazy loading and this is something developers often overlook in their project. When used correctly the you are able to spread out the load of a complex task.
Edit: I’m also mainly interested how the guns work in this project, and trying to shuffle through all the different scripts to find one that has anything to do with the gun mechanics is pretty hard. So if anybody could help with me that, it would be greatly appreciated.