Giter VIP home page Giter VIP logo

howto's Introduction

๐Ÿ“„ Project use cases

Some of the useful work-related project use cases I have been working on.


How to prototype faster new UI screens?

๐Ÿ“ How we prototype faster new UI screens?

โš ๏ธ Issue

  • A lot of popups need to be updated depending on the game state
  • We didn't have an official pipeline on how don't do screens manually and reduce the duplicity of similar prefabs
  • Our pipeline forced us to build similar prefabs and reference them to screens

๐Ÿ’ก Solution

  • Create a modular UI prefab-based system able to build UI screens defined by code even in run time
  • Prefab holder keep references on unified prefabs based on category such as atomic, groups, popups
  • Ability to define screen template and change runtime depends on our needs and game states

โœ… Features

  • Modularity and flexibility of UI screens
  • Popups generated based on the scripts or editor
  • Runtime initialization
  • Prefab caching

Architecture

UI Screen tool architecture


How to optimize the UI testing workflow for QA?

๐Ÿ“ How to optimize the UI testing workflow for QA?

โš ๏ธ Issue

  • Not stable codebase required to be re-tested almost after each code iteration
  • QA time is burned by typical UI test cases

๐Ÿ’ก Solution

  • Develop a simple UI testing tool that is able to run simple test cases and avoid basic human mistakes
  • Run automatically on specific screens while QA is doing regular testing session

โœ… Features

  • Reusable test scenarios
  • Run automatically on specific screens
  • Various error handling
    • Button reference
    • Text or image overlaps
    • Navigation validation after button click
    • HUD bitwise validation, etc...

Architecture

UI Screen Validation Tool


How to avoid setting active/inactive single elements of HUD in code?

๐Ÿ“ How to avoid setting active/inactive single elements of HUD in code?

โš ๏ธ Issue

  • UI architecture does not support any layer of UI elements management
  • Each HUD element is referenced as a single or grouped game object, not flexible enough
  • Features like a tutorial or specific screens required an out of box HUD layout
  • HUD implementation requires a lot of redundant set active/inactive code

๐Ÿ’ก Solution

  • Use a bitwise operation approach, each HUD element has a single bit value
  • Flexibility power to define custom groups depends on our needs

โœ… Features

  • Flexibility & easy to extend
  • Simple usage from code or editor
  • Performance focused

Architecture

Screenshot 2021-10-08 at 12 36 14


How to make UI/UX designers independent?

๐Ÿ“ How to make UI/UX designers independent?

โš ๏ธ Issue

  • UI effects powered by the tween library what is not easy to use for non technical people for example like UI/UX people
  • UI/UX designer wants to change or tweak something, the programmer is required to do changes in the code
  • We haven't been able to support the UI/UX wishlist with the current implementation as well

๐Ÿ’ก Solution

  • Developed custom UI particle tools to make UI/UX designers independent
  • Support our custom UI/UX wishlist features like draw hand path or reusing scenarios

โœ… Features

  • Easy to use for non-tech people
  • Ability to support our custom needs

Architecture

image

Result

Implementation

image

Linear effect

SimpleAttractorEffect

Custom draw effect

DrawAttractorEffect

Redirect to project


How to optimize the workflow of vehicle prefabs for artists?

๐Ÿ“ How to optimize the workflow of vehicle prefabs for artists?

โš ๏ธ Issue

  • Game has a lot of customizable vehicles by skins or cargos
  • For artists, it was time-consuming and not easy to use these visual tweaks in the scene

๐Ÿ’ก Solution

  • Cargo rendering tool with the ability to preview cargos and skins
  • Tool has the ability not only to preview objects but set up cargo transform as well

โœ… Features

  • Quick preview of vehicle skins and cargos
  • Cargo & vehicle transform prefab override
  • One change could be applied for all groups of vehicles

Architecture

CargoArchitecture

Result

renderResult

Redirect to the project


How to increase D1 retention and decrease bug rate with the new tutorials?

๐Ÿ“ How to increase D1 retention and decrease bug rate with the new tutorials?

โš ๏ธ Issue

  • Default tutorial implementation mixed with feature code, caused mess and problems in the code
  • Not stable implementation produced new bugs while tried to be extended or changed
  • Old implementation not flexible enough to solve D1 retention problem with changes of existing tutorial

๐Ÿ’ก Solution

  • Modular-based system with own logic layer and kept own implementation above features code
  • Support multiple tutorials and easy way how to A/B test them in the production
  • Easy to implement new scenarios or modify old ones even for non-technical people
  • Tutorial logic is segmented into specific components (camera, dialog, inventory) to be easily extended and maintainable

โœ… Features

  • Own logic layer, separated tutorial code from gameplay code
  • Tutorial editor suitable for designers
  • Ability to A/B test and improve the user onboarding
  • Easy maintainable component approach

Architecture

TutorialArchitecture

Example

Old editor

ToolResult

Improved editor

NewTutorial

Demo implementation in game

TutorialDemo

Redirect to the project


How to develop a universal cross-project time manager?

๐Ÿ“ How to develop a universal cross-project time manager?

โš ๏ธ Issue

  • Not exist reusable unified time-based cross-project implementation
  • Missed manageable access to all timers in the game
  • Every new time implementation is required to create a custom logic like events, time formats, etc

๐Ÿ’ก Solution

  • Develop a unified timing system with the ability to use cross-projects
  • Easy to use with predefined rules

โœ… Features

  • Access to all times in the game
  • Support multiple time formats (count down, count up, etc)
  • Events and actions ready to use

๐Ÿงพ Architecture

TimestObj


How to develop a pipeline with the ability to download game definitions with one click?

๐Ÿ“ How to develop a pipeline with the ability to download game definitions with one click?

โš ๏ธ Issue

  • Hardcoded client game definitions are now enough flexible
  • During development we needed to have multiple versions of definitions

๐Ÿ’ก Solution

  • Used google sheet as main data holder with the ability to export JSON by with version by custom add-on
  • Python script with the usage of google API gives as the flexibility to see what's happening on the central google drive
  • Unity implementation provides easy to use interface to manipulate with this definition data

โœ… Features

  • By one click to download a game definitions
  • Game definition versions

Architecture

Architecture

Result

Google Sheet Add-on
ExportAdd-on

Unity Definition Downloader Editor
UnityEditor

Redirect to project


howto's People

Contributors

adrianorcik avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.