August 2021: Drag & Drop System [CLOSED]

Dates

Start Date: August 12, 2021
Due Date: August 31, 2021 (by end of day, Pacific Time)

Payment

Each entrant is eligible for a payment of up to $500, with a minimum of $200 if the entry meets the minimum standards. The exact payment amount for each entrant will be based on the quality of the entrant’s work.

Description

The goal of the Challenge is to build a system that allows the drag and drop of graphical user interface (GUI) elements by players. The system should be easy to use and implement by creators, and it should be flexible enough to handle common drag and drop use cases.

Drag and drop GUI elements play a major role in game design. For example, an inventory system may allow a player to drag items to different inventory slots, or drag items to equipment slots on their character. A farm game may allow players to drag a crop from the GUI onto the game world. A building game may allow players to drag a building component (wall, roof, door, etc) from the GUI onto the game world.

Features

Some of the features to consider for your system are listed below.

Draggable GUI Elements
The system should allow a way to set a GUI object as draggable. Draggable GUI elements can then be dragged by players at runtime.

Drop Zone - GUI Elements
The system should allow a way to set another GUI object as a drop zone. Drop zones are the destination areas that draggable GUI objects can be dropped into.

Drop Zone - Game World
Another type of drop zone would allow a draggable GUI object to be dropped into the game world. For example, an item in the inventory could be dragged onto the game world to discard it. Optionally, this could be more constrained, allowing only certain items to be dropped onto certain locations in the game world. For example, only food items can be dropped from the GUI onto a refrigerator object in the game world.

Constraints
Some draggable objects may require constraints which only allow the object to be dragged onto certain drop zones. For example, consider a weapon in an inventory GUI. This can be dragged into another inventory slot. Or it can be dragged onto the weapon slot of the character, but not any other equipment slot. Or it can also be dragged onto the game world to drop or discard the item.

Thus, the system should have a flexible way to define the type of object being dragged, and the allowable drop zones for that object. Consider how to handle the cases where the player drags to an invalid drop zone, or misses the drop zone.

Events
The system should broadcast custom events, during the drag and drop process, so that the creator can add custom event listeners. Some events to consider are: drag start, drag changed, drag stop (valid and invalid), etc. Be sure to include information about the object being dragged, and the destination drop zone, etc.

Visual Feedback
Visual feedback can make the process more intuitive for the player. For example, highlighting a GUI drop zone in green to indicate an allowable drop zone, or red to indicate an invalid drop zone.

Sample GUI

Please include a sample user interface(s) which shows the functionality of your system.

Helpful Code

  • In the Core editor, there is a new component called Interaction System Package, which may be very useful for this project.

  • Team META has released various CC that has some drag and drop functionality. You can use this code as a reference or starting point. If you do so, please be sure to add measurable improvements (functionality, readability, comments, API, etc).

Inspiration

The next time you play any PC or mobile game, take a look at drag and drop features in that game. Pay close attention to the details such as how the GUI changes to help guide the player before, during, and after the drag and drop. Note what happens when the GUI object is dragged to an invalid drop zone.

Requirements

  • Design a drag and drop GUI system that has as many of the above features as possible.

  • Include a sample user interface that demonstrates the full functionality of your system.

Judging Criteria

  • Your work should strive to meet the updated criteria below.

  • View the full Judging Criteria.

Questions?

If you have any questions, then please visit the #challenge-board channel on the Core VIP Discord server.


HOW TO APPLY

How To Apply

For instructions on how to apply, please visit the Application Form post.


SUBMITTING YOUR WORK

Submitting Your Work

  • Your application acceptance message includes instructions on how to submit your work.
  • Entrants must submit their work by the deadline listed in the Challenge in order to be considered for payment.
  • Failure to submit your work on time may affect your eligibility for future Challenges.

MORE INFORMATION

More Information

For detailed information about the rules, judging criteria, and best practices please visit the Challenge Board Info & Rules post.