Hi!
I really liked the idea of a bounty for making an open source project for Defold and I would love to set up a new one! My channel on YT managed to earn some money already:
and even though I don’t know yet how to withdraw money from YT I want to spent such a sum on a bounty for re-making a parametrized platformer from the Platformer Toolkit in Defold:
The bounty is available for the first person who publishes a project that manages to recreate a platformer example with all the features from the Platformer Toolkit by GMTK linked above and will meet the requirements below and will make it a public (github/gitlab/bb/whatever) repo as a Defold project and posts it here.
Anyone is eligible to take this bounty as long as I am able to pay you with PayPal. The bounty is set at $200. Additional tip may be applied
Requirements:
-
License of project must be MIT or CC0 when possible
-
Project should be a working Platformer example with all parameters as exposed in PTK available to be changed by user easily:
- acceleration
- deceleration
- max speed
- turn speed
- instant movement flag
- jump height
- down gravity (I call it fall gravity, different gravity is applied when falling)
- jump duration (so a parameter actually affecting gravity power)
- air acceleration (horizontal)
- air control (horizontal)
- air brake
- variable height flag
- jump cutoff
- double jumps (prefferably triple jumps, etc, so n-jumps should be possible)
- (bonus would be for wall jumps and wall slides (are implemented in Platypus for example))
- (double bonus if the controller would somehow support/offer possibility to have knockbacks/kickbacks with different vectors)
- all assists (coyote time, jump buffer, terminal velocity, rounded corners)
-
I do NOT require to re-make anything from “Juice” tab, as I think it bounds different aspects of gamedev with platformer controller.
-
I do require though for the controller to have a possibility to be responsive to critical events allowing players to add those juice features, like sfx/pfx on jump/land, squish/squash, etc. Platypus for example sends messages to script when such events happens.
-
I do NOT require to make any animated intro like in PTK nor GUI for it, nor adding any graphical assets even (could be recatangles). Everything could be customisable from Lua code, as members (if OOP) or through function params and this is fine.
-
Camera settings are though required. For camera, Defold-Orthographic should support most of (maybe except not following vertically on jumps) the parameters:
- id of a character to follow
- zoom
- following flag (in PTK there is a camera button)
- ignore jumps flag
- (additionally a min height and “fall-height”(?) to reanable following character)
- lookahead (so an offset from origin position if character is facing left/right)
- lookahead speed (so that how fast the camera looks ahead and gets back)
- damping (x,y)
-
Clear and concise documentation for all parameters and functions (API) is required.
-
Platformer code should be applicable to more than one entity, so for example, more than 1 player (or enemies) is possible to be created with such platforming abilities. Different entities might have different dimensions and configurations of parameters.
-
As much as possible - Separate platformer movement controller code from camera, obstacle detection code and from input handling code (so, 4 Cs - Camera, Controller, Controls, Collisions). For example, Controller can expose functions for given directions (left, right, up, down, jump, dash?) that can be triggered in script by user. Then controller should most probably have some kind of input buffer inside anyway (for coyote time, jump buffer, etc), but it’s user who define which buttons/controls do what, so that it could work with keyboard, gamepad or with touch controls. Separated should be also functions to conveniently detect obstacles around character (so that users could use raycasts or other methods, e.g. DAABBCC). Minimum is 4 directions, but detecting what’s on edges might be needed.
-
Collisions handling should take into acount also slopes (of any degree most prefereably, but at least 45 degree is a minimum)
-
Gravity should be a direction vector defined by user and all entities using such engine should be affected (or if possible, only selected ones, so that each entity has it’s own gravity vector?)
-
(Bonus if it would work with dynamic collision shapes, e.g. moving “room/floor” so not only with static shapes (like from tilemaps))
Platypus is a great platformer engine, but it’s still missing possibility to set accelerations, deceleration, turn speed etc. You could definitely start from it as a base, but it would require some refactoring to allow it. DABBCC-Platformer is another great example and a good base to start with.
What do you think about it? I can redefine the scope, no problem - I just think it’s possible to make something similar to PTK already, by refactoring and improving Platypus for example.
Additionally, for anyone who would commit to take on the challenge, I will share my own platformer code (and camera and input handling modules) that I used in Red Raging Wolf, which already has a lot of features and parameters, like acceleration, deceleration, different jump settings), so using this would be way easier as a base.