Skip to content

MayGo/maze-world

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maze World

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.

Roblox Rojo Roact boilerplate

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.

Note

Game Description

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.

Screenshots

Maze World Maze World Maze World Maze World Maze World Maze World Maze World Maze World Maze World Maze World Maze World Maze World

Used libraries

Game functionality

  • 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

TODO

  • 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

Assets/Images

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)

Assets/Meshes

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.

Other games that have sources available

Code checkout with Sourcetree app

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)

How do I get set up?

  • 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 inside raw-assets/game-models-and-place.rbxlx. And after editing and saving you need to run remodel 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

Tools

  • 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 Configuration

There is nice tutorial in medium also: Roblox Development in Visual Studio Code

Editing/ Fixing data in Datastore

Releases

No releases published

Packages

No packages published