All Projects → tffdev → Leafgem

tffdev / Leafgem

Licence: MIT license
🌿💎 The humble beginnings of a 2D game engine in Crystal! [in-progress]

Programming Languages

crystal
512 projects

Projects that are alternatives of or similar to Leafgem

Winter
Winter is a 2D game engine for Pharo Smalltalk
Stars: ✭ 43 (-40.28%)
Mutual labels:  mit-license, 2d-game-engine
Leafgem
🌿💎 The humble beginnings of a 2D game engine in Crystal! [in-progress]
Stars: ✭ 72 (+0%)
Mutual labels:  mit-license, 2d-game-engine
Minazuki
シンプルな製品アクティベーションシステム「Minazuki」のサーバーサイド実装
Stars: ✭ 16 (-77.78%)
Mutual labels:  mit-license
DeccanEngine
💠 Deccan Engine is an Open-Source Cross-Platform 2D Game Engine written in C11. Powered by SDL2.
Stars: ✭ 30 (-58.33%)
Mutual labels:  2d-game-engine
magento-ngrok
Magento 2 module for ngrok.io service support
Stars: ✭ 45 (-37.5%)
Mutual labels:  mit-license
smtpd
SMTP server (library) for receiving emails, written in pure PHP.
Stars: ✭ 94 (+30.56%)
Mutual labels:  mit-license
ArchGE
A 2D and 3D C++ Game Engine using SDL2 and OpenGL
Stars: ✭ 15 (-79.17%)
Mutual labels:  2d-game-engine
secp256k1.cr
a native library implementing secp256k1 purely for the crystal language.
Stars: ✭ 34 (-52.78%)
Mutual labels:  crystal-language
KeyboardDelimiter
jQuery Plugin for delimite pressed key on keyboard
Stars: ✭ 14 (-80.56%)
Mutual labels:  mit-license
navigator-hugo
Navigator Business theme powered by Hugo. It also could be used for a personal portfolio.
Stars: ✭ 133 (+84.72%)
Mutual labels:  mit-license
bullshit-detector
🔍 Chráňte vašich blízkych pred nedôveryhodným 🇸🇰 a 🇨🇿 obsahom
Stars: ✭ 24 (-66.67%)
Mutual labels:  mit-license
OFOBike
A demo app like OFO Bike in Swift.
Stars: ✭ 18 (-75%)
Mutual labels:  mit-license
cheetah3
Cheetah3 is a free (MIT) and open source template engine for Python.
Stars: ✭ 106 (+47.22%)
Mutual labels:  mit-license
blue-pair
Simple Bluetooth Android app for handling device discovery and pairing.
Stars: ✭ 52 (-27.78%)
Mutual labels:  mit-license
HFSM
Hierarchical Finite State Machine Framework
Stars: ✭ 73 (+1.39%)
Mutual labels:  mit-license
php-quill-renderer
Render quill insert deltas to HTML, Markdown and GitHub flavoured Markdown
Stars: ✭ 117 (+62.5%)
Mutual labels:  mit-license
hsluv-c
C99 implementation of HSLuv (revision 4)
Stars: ✭ 71 (-1.39%)
Mutual labels:  mit-license
docker-alpine-wkhtmltopdf
wkhtmltopdf alpine docker container with headless qt patches
Stars: ✭ 150 (+108.33%)
Mutual labels:  mit-license
orion
A Crystal router
Stars: ✭ 115 (+59.72%)
Mutual labels:  crystal-language
influencer-hugo
Influencer is a Hugo theme for book authors and writers. It has also Snipcart supports for order books and payments.
Stars: ✭ 66 (-8.33%)
Mutual labels:  mit-license

Description

Leafgem is the humble beginning of a 2D open source game engine written in Crystal!

Try it out with the demo project!

git clone https://github.com/tfcat/Leafgem.git
cd Leafgem
shards install
crystal run -s -p examples/demo/main.cr

notes to self

flare map files

Development

What are the main things we need for a Game Engine? Here's what I can think of off the top of my head. Each of the given features could be contained in a class which correlates to their purpose.

Documentation

  • Library / API reference for users
  • Simple text tutorial / demo walkthrough?
  • In-depth class reference for developers?
  • Video tutorials????
  • DEMO GAME (learning Leafgem by example)

Control

  • Keypressing - on_press, on_release and is_pressed
  • Mouse Input - on_click, on_release, and is_pressed for all of the buttons
  • Controller input
  • Touch input

Objects

  • Instance-based system. (Unique, contained object instances, derived from a template [class])
  • Destroying objects (self, and foreign)
  • Object selection (e.g. setting attributes of foreign objects )
  • Box collision detection
    • Hit box definition, independent of sprite
  • Per-pixel collision detection

Sprites

  • Sprite animations + Breaking sprites up into sub-images
  • Text rendering (TTF?)

Drawing

  • Draw rectangles
  • Draw sprites
  • Draw circles
  • Draw lines
  • Draw polygons

Audio

  • Oneshots
  • Looping background music
  • Audio fade in/out over time
  • Multiple sound samples playing at once (the same sample cannot be played on top of itself)

Rooms

  • Background renderer

    • Parallax scrolling!
  • Foreground renderer

  • Tileset renderer

  • Tile layers

  • Spawn objects in predetermined places

  • Easier workflow regarding room creation... (Currently use Tiled; should I make an editor?)

Known bugs

  • Going above the tilemap results in an invisible duplication of the map, according to the logic in get_tile_at within maps.cr. This results in unexpected true returns with some object functions; meeting_tile and meeting_tile_layer

Contributing

I'm not all that good with Crystal - I'm creating this project as practice using the Crystal language!

That means any and all contributions to this engine are welcome and heavily appreciated, no matter how big or small. The aim is to give creators an intuitive toolkit for making games quickly and easily!

Any ideas are welcome! Fork, and work your magic!

Contributors

  • tfcat - creator, developer, maintainer
  • brecert - developer, maintainer
  • rx14 - mentor, sensei, tech support, emotional support
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].