Skip to main content

pygame-topdownengine is a 2.5D engine for top-down games.

Project description

pygame-topdownengine

License: MIT

pygame-topdownengine is a 2.5D engine for top-down games. It is designed to be highly modular, with most core systems being located in the easily extendible GameObject class. It is built on top of the pygame-ce package, which you can find here: https://github.com/pygame-community/pygame-ce/tree/main.

Features

  • GameObject class that contains all of the core systems.
  • MobileObj class that allows for modular movement behavior.
  • EnvObj class for environmental decorations or objects.
  • Built in VisualUtils class that allows for the easy manipulation of Surfaces.
  • Option to use either pixel-perfect or subpixel rendering.
  • Dynamic scale-setting for all GameObjects.
  • Robust 3D collision detection.

Quickstart

This code makes a Player character, a secondary character that will attempt to follow the Player character, and a solid object the Player can collide with and jump over.

import topdownengine as tde
from topdownengine.mobile_obj.controller import KeyboardInputController, MovementAIController
from topdownengine.asset_paths import ASSETS_DIR
import pygame as pg

# Define an instance of the Game class
game = tde.Game(
    screen_width=900, 
    screen_height=650, 
    window_title="pygame-topdownengine Basic Usage Example"
)

# Define a MobileObj to be the Player
player = tde.MobileObj(
    controller=KeyboardInputController(), 
    animation_paths={
        'idle': ASSETS_DIR / 'example-player' / 'idle.png',
        'walk': ASSETS_DIR / 'example-player' / 'walk.png'
    }, frame_size=(16, 16), directional_anims=True
)

# Define a MobileObj to follow the Player
enemy = tde.MobileObj(
    controller=MovementAIController(target_mobile_obj=player), 
    animation_paths=player.animation_paths, # Use same animations as the Player
    frame_size=(16, 16), directional_anims=True
)

# Define an EnvObj
env_obj = tde.EnvObject(frame_size=(32, 32), colliders=[pg.Rect(0, 0, 32, 32)])
env_obj.position = pg.Vector2(100, 100)
env_obj.obj_shadow = '32x16'

# Add them to the game object group
game.game_object_group.add(player, env_obj, enemy)

# Rescale GameObjects to have a SCALE of 3 (this makes them more visible)
tde.GameObject.set_scale(3, game)

# GameObj automatically generates a four frame "flashing animation."
# In order have our EnvObj not flash, we will make it use only the first frame.
env_obj.animations['idle'] = [env_obj.animations['idle'][0]]

# You can add subpixel rendering by uncommenting the below line of code.
# tde.GameObject.SUBPIXEL = True

# Run the game
game.run()

Installation

In order to install pygame-topdownengine, make sure Python and pip are both installed and in PATH. Then, run this command into your terminal:
pip install pygame-topdownengine

License

This library is distributed under the MIT license, which can be found in the root of this repository under the LICENSE file.

The source files located in the examples subfolder are licensed under the Creative Commons Zero 1.0 Universal license, which can be found inside of examples/LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygame_topdownengine-0.0.3.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pygame_topdownengine-0.0.3-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

File details

Details for the file pygame_topdownengine-0.0.3.tar.gz.

File metadata

  • Download URL: pygame_topdownengine-0.0.3.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygame_topdownengine-0.0.3.tar.gz
Algorithm Hash digest
SHA256 7747bb075c0cb4ff90115d6b3132cf665f549648367bb1d6e60421a2ebbcee61
MD5 2680958c19319d7fbe35cdf5d214c7a6
BLAKE2b-256 b5c7e107a2e7fd67ed5640f5010329da487d0078b8249a89f67d08db9e3c750d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygame_topdownengine-0.0.3.tar.gz:

Publisher: release.yml on shaurya-sharma-dev/pygame-topdownengine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pygame_topdownengine-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pygame_topdownengine-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ac0c26a69eee4afee33b858c27617a64903efb0083179eed64d48ced28e29599
MD5 a6bcf9b032a1a722ef7e327a6602460b
BLAKE2b-256 9446c3b3b3f9f3a02c781f737ed8f86170a13e818b45414b4b37be1f736053cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygame_topdownengine-0.0.3-py3-none-any.whl:

Publisher: release.yml on shaurya-sharma-dev/pygame-topdownengine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page