July 2021: Sports Ball Mechanics [CLOSED]

Dates

Start Date: July 12, 2021
Due Date: July 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

In order to make it easier for creators to build sports games, the goal of this challenge is to create a sports ball mechanics system that handles such things as ball flight, ball bouncing, ball throwing, and ball catching.

Your system can either be general and handle any type of ball. Or you can pick a specific sport, and build the mechanics for that sport. For example, for basketball the mechanics would include dribbling, throwing, catching, shooting, ball flight, as well as the bounces of the basketball.

The mechanics could either be realistic like true physics, or they can be more “gamified” with faster and more movement than in the real world.

Features

Implement the mechanics that are needed for your sport. Some common mechanics are listed below.

Ball Flight
While the ball is in the air, consider the arc of the ball’s path to make it look more natural.

Bouncing
Handle how the ball bounces whenever it hits something like the ground, a wall, or a player.

Throwing
For games in which the ball can be thrown, add a mechanic that allows a player to throw the ball.

Catching
For games in which the ball can be caught, add a mechanic that allows a player to catch the ball.

Kicking
For games in which the ball can be kicked, add a mechanic that allows a player to kick the ball.

Hitting
For games in which the ball can be hit with a racquet, bat, club, etc, add a mechanic that allows a player to hit the ball.

Core Editor

  • Curves
    Curves are a new powerful way to animate objects in the game. Curves allow for very complex animations, in a relatively simple manner. See examples in the documentation, META Curve Examples as well as these Patch Notes Video.

  • Physics Sphere
    The Physics Sphere object has built-in physics behavior that replicates a ball moving in the real world.

Inspiration

Games can be viewed on Twitch or YouTube to see how they are played.

  • Knockout City
    This is a new, popular dodge ball type game that has some great ball mechanics. This is a fantastic example of the various mechanics discussed above.

  • Rocket League
    This is a soccer type game played with cars. The ball mechanics in this game are extremely satisfying and are at the heart of the game play.

  • Sports Games
    Also take a look at other popular video sports games to see how the ball mechanics are implemented.

Notes

  • Include a readme file that describes how to use your content. Make it as easy as possible for other developers to understand how to implement your system.

  • Consider using Lua Modules so that developers can easily require and call the module functions.

  • Scripts should use clean, readable code with extensive comments.

  • Custom properties should include ToolTip descriptions (right click and choose Set Custom Property ToolTip).

  • Please review the content best practices.

Requirements

  • Design a sports ball system with as many of the features above as possible.

  • Include working examples of all the sports actions.

Discord

For questions and updates, 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.