~ultidonki/pepper_carrot_3d_platformer

A proof-of-concept 3D platformer starring pepper and carrot

6306115 Remove debug avatar on snowman level

27 days ago

e9507f2 Add LICENSE file

28 days ago

#Pepper and the Potion of Jumping

shot1 shot2 shot3

This is a 3D platformer featuring Pepper from the Pepper & Carrot webcomics, a CC-BY 4.0+ webcomic by David Revoy. (See Licenses below)

#Gameplay

It's a 3D platformer. Most levels include collecting gems (currently yellow spheres) until you have enough to continue. There's also a swimming level, 2 flying levels, and a couple of levels where you have to throw snowballs at Saffron, Shichimi, and Coriander. The final level is a 'boss fight' (kind of) against 3 dragons and a giant dragon head. Throw snowballs at them to win.

#Controls

WASD to move, spacebar to jump, and moving the mouse moves the camera. In the Snowball levels, use F, or left click/right click on the mouse to throw a snowball. To quit a level, push Escape to go back to the main menu.

#Version

This is version 0.1, an initial release. It's in an extremely alpha state. There are many known bugs and missing features, missing instructions/tutorials, no keybindings, and very basic 3D graphics/textures.

#Code Structure

This game follows a standard Castle Game Engine layout: All pascal code (game logic) is in the /code directory. All visually-designed files, ie. the files ending in .castle-user-interface, which are referenced by the .pas Pascal files, are held in /data. All output data, eg. .gltf asset files for the characters/levels are in /data too. The .lpr and .lpi, and castleautogenerated.pas are auto-generated files, they don't need to be edited (usually). CastleEngineManifest.xml contains project-specific options. See Castle Engine documentation to see what can be changed in here. (If you add a new .pascal type, the directory needs to be in here before it can be found by the engine.

#Licenses

The source code is released under the AGPL 3.0+ license. (AGPL 3.0+ meaning the GNU Affero General Public License, version 3.0 or higher

All 3D assets in this game are licensed under a CC-BY-SA-4.0+ license: Credit must be given to ultidonki, and David Revoy for the art of Pepper & Carrot and world of Hereva. Any changes to the 3D assets and released to the public must also be licensed under a CC-BY-SA-4.0+ license. (CC-BY-SA-4.0+ means the Creative-Commons, Attribution, Sharealike, version 4.0 or Higher license)

The assets are based on the CC-BY-4.0+ webcomic, Pepper & Carrot, by David Revoy: www.peppercarrot.com www.davidrevoy.com

Portions of this game are taken from the Castle Game Engine file /src/3d/thirdpersonnavigation.pas - for example the 'TryJump' function used in several of the gamestate 'Update' procedures - which was under the LGPL 2+: The AGPL 3+ license now applies to any copies of that code in this game, as allowed under section 3 of the LGPL 2+.

Other parts of the game were based on the /examples/ directory of Castle Game Engine, which was in the public domain. This copy of the code and all modifications to it are also now under the AGPL 3+ license too.

To build the game, you need to use the Castle Game Engine, which is released under the Lesser GPL license (LGPL 2+) with a static linking exception. (Which means, if we make any changes to the engine to run this game, those changes also need to be released to the community too under the LGPL 2+ license too- so far, we haven't made any changes to the Castle Game Engine yet, just use a standard build of the engine to compile/build this game.)

#Technology

This game uses Castle Game Engine. The game logic is written in Pascal, and entities in levels are placed using the Castle Game Editor (which comes with the Castle Game Engine). So, version 7.0-alpha or higher of the Castle Game Engine is needed to open the Visual Designer components, ie. the files ending in .castle-user-interface suffixes. Castle Game Engine needs the Free Pascal Compiler to build and compile the pascal files, so you'll also need to download that to use Castle Game Engine. Asset files (characters + levels) are made in Blender, saved as .blend files, and exported to .gltf for reading/using by Castle Game Engine. So, we make changes in the .blend files, then export to .gltf and Castle Game Engine uses the .gltf files to load them into the game.

#Building

Compile by:

#Affero General Public License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.