This is a Roblox project where all the code is version controlled and synced to Roblox Studio with Rojo. Project tries to cover most of the aspects of Roblox games.
Code is written so it can be used boilerplate project. If some important model is removed then warnings are outputted in Roblox Studio, but game still runs.
- Project was started with https://github.com/LPGhatguy/rdc-project taken as base and refactored later with https://github.com/Roblox/desert-bus-2077 taken as an example.
You can play this game by running this project (need to publish also) or open in in Roblox: Maze World. You can select from easy, medium or hard maze to play. All mazes are dynamically created, so every time you play it is new. For easier maze solving you can buy trail or speed pets. You earn coins by finishing mazes. Bigger mazes and better place in finishing gives more coins.
- Datastore2
-
- NOTE: Make sure you enabled: “Enabled Studio Access to API Services” and insert a boolvalue called
- Moses for filtering and mapping (and more)
- Roact-Animate
- Roact-Material
- Roact
- Rodux SaveInStudio in ServerStorage to true to test if your datastore saves!
- Roact-Rodux
- Rojo
- GameAnalytics
- Algoritm for maze generation taken from https://github.com/shironecko/LuaMaze
- https://github.com/Sleitnick/Knit/blob/b1321acc92660b0dda59a724c54825973656338e/docs/util.md
- Money system - money is saved to server. Earn by winning.
- Shop system. Spend earned money on pets with abilities.
- Game Pass shop item
- Statistics system. Top money earned. Top times visited. Top games won.
- Pet system. Equipped pets and maximum pet slots are saved on server. Pets give abilities.
- Dynamically generated mazes. Generate random items inside of maze
- Waiting rooms with waiting and playing lists.
- Awards system. eg: Daily visit bonus, 10 times visit bonus
- Collectable Coins
- Inventory, collectable items. eg: Cherries
- GameAnalytics scripts (gameKey and secretKey in GameAnalyticsServerInit.server.lua)
- Notifications system
- Sounds for coin collecting, daily reward notification, button click
- Trails to pets
- Locked rooms, unlock for coins
- Add clickable E indicator/button to workspace
- Uses StreamingEnabled, content is loaded as needed.
- Custom loading screen
- player died registered in playing list? Yes, but not while Game is starting.
- to long wait time when timer goes to 00:00
- Mobile, is there leaderboard
- Mazes have two short times
- Make prizes a bit bigger
- Don't add coinpacks too oftern to mazes
- Add tabs to inventory and shop
- Add more collectable item: eggs
- Add Chests, Treasures (more coins)
- Fullscreen messages
- Add avatar icon to player lists
- Developer Product to shop items (eg: buy coins for Robux)
- Add Badges, reward when completing some milestone
Faces are created with Inkscape. Project file is cartoon-faces.svg
.
From there each face is saved as png and imported to Roblox assets from RobloxStudio's Game Explorer window (Game needs to be published first)
Meshes are created with Blender.
Coin object project file is coin.blend
. From there coin is exported as Wavefront .obj
and imported to Roblox assets from RobloxStudio's Game Explorer window. And then that model/mesh can be used by right clicking and selecting Insert.
Added Cherry object project file is cherry.blend
. It is texture painted that using (tutorial). Exported model as fbx
. Added as MeshPart to Roblox. Added textureId to uploaded Cherry_correct.png
There is also unfinished chest model box.blend
.
- Minershaven
- Roblox World
- Outyards
- roactplayground
- VintageCube
- World Messages Nice user thunbnails
When checking out this repo, submodules should also downloaded.
- Download and install Sourctree
- Check "Perform submodule actions recursively" from Preferences->Git window
- Checkout code (now it should also download submodules into modules folder)
npm i
- to load prettier and prettier-lua (needed for VS Code)- run script
./script/build-and-open.sh
. Game.rbxlx is built using rojo. Currently every model is insideraw-assets/game-models-and-place.rbxlx
. And after editing and saving you need to runremodel run get-models.lua
, that saves every model to separate file. And rojo syncs it to your running Game.rblx. - Configure VS Code and start Rojo (from VS Code footer)
- From Roblox Studio->Plugins->Rojo click connect
- Rojo, a build system
- Foreman, a toolchain manager
- Remodel, a deployment manager and multitool
- Tarmac, an asset manager
-
tarmac sync --target roblox --auth ROBLOSECURITY
-
- Real timesaver. eg: sync, find out you png-s are to big. Use https://tinypng.com/ to make files a lot smaller. Resync. Done.
Tools installed using cargo. See each repo Readme for details.
- VS Code Rojo plugin
-
- note macOS needs cargo installed
-
- let Rojo Manage Roblox Studio plugin
-
- VS Code restart might be needed so Rojo to start properly
-
- enable Allow HTTP requests from Roblox studio Game Settings->Options
- VS Code Prettier plugin
- VS Code Lua plugin
- Roblox Lua Autocompletes
- RBX lua plugin
There is nice tutorial in medium also: Roblox Development in Visual Studio Code
- Use Datastore Editor plugin. Play game in Studio
- https://devforum.roblox.com/t/how-to-use-datastore2-data-store-caching-and-data-loss-prevention/136317/287
- eg datastore key DATA/612741472