All Projects → canoi12 → tinycoffee

canoi12 / tinycoffee

Licence: MIT license
tiny coffee is a framework to develop simple 2d games with opengl 3

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to tinycoffee

Holoshield
Highly customizable sci-fi shield / force field shader for Unity3D. Allows you to set edge power & color, inner texture scrolling, waviness, scale pulsation and procedural intensity noise. Implements tessellation for low-poly base meshes.
Stars: ✭ 401 (+557.38%)
Mutual labels:  shaders, game-dev
Goluwa
a game framework written in luajit
Stars: ✭ 173 (+183.61%)
Mutual labels:  luajit, game-dev
Radialprogressbar
Customizable radial progress bar shader for Unity3D. Allows you to set arc range, minimum and maximum colors, textures, radius, and a few more things. Create HP Bars, Speedometers, rank progress, etc!
Stars: ✭ 714 (+1070.49%)
Mutual labels:  shaders, game-dev
Spheredissolve
Customizable procedural spherical dissolve shader for Unity3D, for all your customizable procedural spherical dissolve needs!
Stars: ✭ 311 (+409.84%)
Mutual labels:  shaders, game-dev
Rimlight
Customizable rimlight shader for Unity that includes pulsation and noise scrolling. Give your scenes that extra oomph!
Stars: ✭ 170 (+178.69%)
Mutual labels:  shaders, game-dev
Unity Shaders
✨ Shader demo - More than 300 examples
Stars: ✭ 198 (+224.59%)
Mutual labels:  shaders
Terrain Builder
🏔 Procedural terrain using Three.js and perlin noise, Now Accelerated by your GPU!
Stars: ✭ 228 (+273.77%)
Mutual labels:  shaders
The Forge
The Forge Cross-Platform Rendering Framework PC Windows, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Quest 2
Stars: ✭ 2,710 (+4342.62%)
Mutual labels:  shaders
Satin
A 3D Graphics Framework built on Apple's Metal
Stars: ✭ 182 (+198.36%)
Mutual labels:  shaders
Simplerenderengine
Small C++14 render engine
Stars: ✭ 253 (+314.75%)
Mutual labels:  shaders
Unity Shader Basics Tutorial
A introduction into creating shaders for Unity
Stars: ✭ 243 (+298.36%)
Mutual labels:  shaders
Light2d
2D shader-based lighting system for Unity3D
Stars: ✭ 212 (+247.54%)
Mutual labels:  shaders
Nxdk
The cross-platform, open-source SDK to develop for original Xbox: *new* xdk
Stars: ✭ 200 (+227.87%)
Mutual labels:  shaders
Js
turbo.js - perform massive parallel computations in your browser with GPGPU.
Stars: ✭ 2,591 (+4147.54%)
Mutual labels:  shaders
Methanekit
🎲 Modern 3D graphics made simple with cross-platform C++17 meta-API on top of DirectX 12 & Metal (Vulkan is coming)
Stars: ✭ 197 (+222.95%)
Mutual labels:  shaders
Alloy
Alloy physical shader framework for Unity.
Stars: ✭ 244 (+300%)
Mutual labels:  shaders
React Imgpro
📷 Image Processing Component for React
Stars: ✭ 2,186 (+3483.61%)
Mutual labels:  shaders
Yave
Yet Another Vulkan Engine
Stars: ✭ 211 (+245.9%)
Mutual labels:  shaders
Shadered
Lightweight, cross-platform & full-featured shader IDE
Stars: ✭ 3,247 (+5222.95%)
Mutual labels:  shaders
Joymachine Public
All sorts of random publicly-available information, assets, scripts, and more as we (Joy Machine) work on our projects.
Stars: ✭ 210 (+244.26%)
Mutual labels:  shaders

tinycoffee-banner

Tiny Coffee

Join the chat at https://gitter.im/tinycoffee/tinycoffee Build Status

Tiny Coffee is a framework to develop simple games 2d games using opengl 3.

**For now it is far to be complete, it is better for you to use other game engine or framework if you working on a commercial project.

The main idea is to have all the dependencies static compiled in the executable, so there is no need of external dynamic libs other than platform specifics.

I'm using in this project:

TODO:

  • draw outlined shapes
  • draw triangles and circles
  • user created spritebatch
  • load config from json
  • wrap for lua (work in progress, focusing on this one)
  • wrap for wren (work in progress, stopped by now)
  • json parser
  • autopack textures on the fly
  • joystick support (initial stage)
  • pollish the main engine modules (graphics, filesystem, audio, math, input)
  • make specific game types like camera, sprite, tileset..
  • fuse game executable with zip (like love2d)
  • make simple editors (sprite, tileset, scene..)
  • user custom shaders (like love2d and gms, with default variables for attributes and uniforms)
  • support for more audio types
  • struct with options to init engine (need to add more options)
  • load audio static (decode in memory)
  • drawing textures
  • drawing canvas
  • custom glsl shaders (but the shaders need to implement some attribute variables and uniforms)
  • keyboard and mouse input
  • plugins system (in progress)
    • resource manager
      • audio
      • image
      • font
      • shader
      • sprite
      • tilemap / scene
      • tileset
    • editor
      • tileset
      • tilemap / scene
    • lua
    • wren

usage

if you want to use your own game loop using Tico static lib, use:

// main.c
#include "tico.h"

int main(int argc, char ** argv) {
  // tc_Config config = tic_config_init("title", 640, 380, argc, argv);
  tc_Config config = tico_config_init("title", 640, 380, argc, argv);
  tc_bool success = tico_init(&config);

  tc_Image image = tico_image_load(filename);

  while (!tico_window_should_close()) { // main loop
    tico_update(); // update inputs, timers, ...

    tico_graphics_clear(color3(75, 90, 90)); // clear screen with color

    tico_begin_draw(); // begin batch render

    tico_image_draw(tex, 0, 0, WHITE); // draw texture
    tico_image_draw_scale(tex, 64, 0, 4, 4, WHITE); // draw scaled texture

    tico_end_draw(); // finish batch render
  }

  tico_terminate();

  return 0;
}

main.lua structure:

function tico.load()
  canvas = tico.graphics.newCanvas(160, 95)
  image = tico.graphics.newImage("image.png")

  rect = tico.graphics.newRectangle(0, 0, 32, 32)
end

function tico.update(dt)
end

function tico.draw()
  canvas:attach()
  tico.graphics.fillRectangle(32, 32, 32, 32)
  image:draw(rect, 64, 64)
  canvas:detach()
  canvas:draw(0, 0)
end

build

Dependencies

  • Linux
    • xorg-dev
    • libgl1-mesa-dev
    • gcc
    • gcc-mingw-w64-x86-64 (to build for Windows)
    • make
    • cmake
  • Windows
    • cmake
    • mingw

for now i'm developing on linux, so is easier to compile on it.

Linux

mkdir build
cd build
cmake ..
make

use cmake .. -DWIN32 to compile for Windows using mingw gcc

Windows

don't tested yet, but you need to use cmake and probably install mingw

distribution

pack all your game assets (images, sound, font, scripts) in a zip called data.pack. If you are using Lua or Wren, maitain the main.lua file in the zip root

screenshots

tico-0 1 5 tico-shader-palette

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].