Skip to content

Latest commit

 

History

History
47 lines (42 loc) · 2.41 KB

README.md

File metadata and controls

47 lines (42 loc) · 2.41 KB

Unity-Soko: Unity based sokoban

Play online at: [https://yuxiaomao.github.io/unity-soko]

Learning project

Dependencies

Implemented features

  • Gameplay
    • Support multiples player objects in level
    • Reset level with R, undo level with Z
  • Menu
    • Main menu
    • Pause menu
    • Level select menu: automatically generated based on LevelManager.Level and game progress
    • Buttons generated by script based on info instead of directly in inspector (voluntary to facilitate adaptation)
    • Button navigation with mouse/keyboard, automatic remove/add select for keyboard navigation
  • Audio: Music and sound effets
  • Localization: with Unity Localization package
    • Supported locale: English (en), Simplified Chinese (zh-Hans, with font SourceHanSans)
    • Supported UI element:
      • Text TMPro (with prefab UILocalizedTextTMP set entry with script or in inspector)
      • Dropdown TMPro (with prefab UILocalizedDropdown)
  • Editor
    • Level: store/load level data from/to scene with custom editor button (LevelManager)
      • Note: To add a level in game, you'll need Assets/Levels/Level[N].json (can be generated by LevelManager in Unity editor) and add the level in c# enum LevelManager.Level.
  • Internal implementation
    • Object: each object (player, box, target, ...) works independently, and does not know the global state of the game (voluntary to make difference with the pico-8 version)
    • User input: with Unity Input System package
    • Scenes: menu and levels are in separate Unity scenes (voluntary to experiment cross-scene functionalities)
    • Dynamic asset load from script: with Unity Addressable package

Development tools

  • Unity on Windows
  • Visual Studio for Unity
  • Visual Studio Code
  • git for Windows