Giter VIP home page Giter VIP logo

chroma-2d / chroma Goto Github PK

View Code? Open in Web Editor NEW
30.0 4.0 4.0 124.85 MB

Chroma Framework is a cross-platform 2D game development framework with focus on quick bring-up and hassle-free prototyping.

Home Page: https://chroma.vddcore.eu

License: MIT License

C# 99.46% GLSL 0.52% Shell 0.03%
gamedev gamedev-library gamedev-framework chroma 2d-game-framework 2d 2d-graphics game-development game-2d game-dev

chroma's People

Contributors

enovale avatar krnlexception avatar vddcore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

chroma's Issues

camera system

how the heck are you supposed to make a game without fast camera things dude

Incorrect Content folder location on "Open With..."

When opening a file from a different folder with a Chroma-based application, Chroma will create a Content folder in the directory of the file that is being opened, rather than the executable it's being opened with.

better native library loader

current implementation of the native library loader works only on windows - on linux and friends it assumes the libraries are provided by the system - and extracts files to load them from user's temp directory. not ideal. either provide a mechanism to change that behavior or rely completely on native binaries provided by us

error handling for "human" errors

right now chroma works perfectly fine, assuming the user doesn't provide invalid data... HOWEVER i am not sure what are the places that are missing the error handling. find those holes and plug them

stabilize the API

right now anything can change for any reason, if people are to take this piece of shit framework seriously it needs API definition

text drag&drop does not work on win32

for whatever reason. however, i've noticed that visual studio is capable of handling dropped text just fine, perhaps it's an SDL-specific issue or i'm missing something windows-specific, as X11 can handle text drag&drop just fine

audio system

jesus h. christ cookie you completely forgot about the fact that games use sound omg get it working before alpha hits the store

compression for embedded natives

right now they take up the same amount of space when embedded and extracted, clogging up the Chroma.Natives.dll

a natural next step and possibly the last feature for the natives library would be to compress natives to reduce the file size.

docs

fuck off with this template

issue: no docs.


what broke
[replace with actual description of the bug please]

how can the dev break it
Steps to reproduce the behavior:

  1. [...]
  2. [...]
  3. etc

what should actually happen instead of y'know... breaking
[replace with some explanation of what did you expect to happen]

got any screenshots?
[no can has pix? remove the paragraph. otherwise post bug related pix]

environment (complete the following):

  • OS and version: [e.g. Windows 10/Linux Mint (kernel 2.6.27)]
  • GPU: [e.g. Intel HD Graphics 4000]

additional context? remarks?
[post some remarks if you got them, otherwise remove paragraph]

Connected controller count

Especially for multiplayer scenarios it'd be nice to have a property that counts the amount of connected controllers. Currently this can be worked around by creating a counter in the game class and incrementing/decrementing it in the ControllerConnected() and ControllerDisconnected() methods respectively.

Can't render to a rendertarget and get it's pixels

When running this code:

context.RenderTo(FrameTarget, () =>
            {
                context.Clear(Color.Red);
                context.Rectangle(ShapeMode.Fill, Vector2.Zero, 100, 200, Color.Aqua);
            });
            FrameTarget.Flush();

            int[] PixelArray = new int[FrameTarget.Width * FrameTarget.Height];
            for (int y = 0; y < FrameTarget.Height; y++)
            {
                for (int x = 0; x < FrameTarget.Width; x++)
                {
                    PixelArray.Push((int)FrameTarget.GetPixel(x, y).PackedValue);
                }
            }

(Array.Push is an extension method)

PixelArray ends up being filled with 0s, instead of the expected red background with aqua rectangle.

add more logging for certain checks/failures

e.g. controller subsystem not telling the user they're stupid for setting deadzones for nonexistant controllers. directly ties into #18, after the logging gets unfucked and actually useful

feature usage examples

time to actually make some feature usage examples so people can finally know how to start doing things!

Content subsystem

there is no way to conveniently load content nor a way for people to write their own content providers

shader support

chroma needs shaders to even consider itself a "good" framework. make it happen

custom window icon

no way to do that currently, about time window class got some love again

provide a way for extension assemblies to load natives

the general idea is that extensions should be able to load natives in the same fashion chroma core does - need to figure out a standardized system and the built-in native bootstrapper could be a good foundation for the system

shaders seem to break on macOS

because of course they would.

initial crash report suggests sdl_gpu might be at fault?

---
Initializing SDL2 core...
[10:42:47 INF] [GraphicsManager] GraphicsManager initializing...
[10:42:47 INF] [GraphicsManager]  Registered renderers:
[10:42:47 INF] [GraphicsManager]   OpenGL 3 (3.2)
[10:42:47 INF] [GraphicsManager]  Available displays:
[10:42:47 INF] [GraphicsManager]   0: 1792x1120@60Hz
[10:42:47 INF] [Window] Selecting best renderer: OpenGL 3
libfreetype.so not found. Will try to register first...
libfreetype.so is not available. Moving onto next on the list...
freetype.dll not found. Will try to register first...
freetype.dll is not available. Moving onto next on the list...
libpng warning: iCCP: known incorrect sRGB profile
dotnet(82884,0x119aa1dc0) malloc: *** error for object 0x10f0d0010: pointer being freed was not allocated
dotnet(82884,0x119aa1dc0) malloc: *** set a breakpoint in malloc_error_break to debug
[1]    82884 abort      dotnet PixelShaders.dll

update SDL_gpu bindings

SDL_gpu bindings we're using are not compliant with the version of SDL_gpu we're using, it's quite critical to fix it before - or during - alpha period

Feature Request: Quit()

It would be nice to have a function to call (like love.event.quit() in the love2d framework) that can quit/shutdown the game, especially since the standard windows X button isn't available in fullscreen.

Timestamps for Log File Names

In order to have Chroma not break when multiple instances are started, add timestamps to the names of log files to take care of exceptions raised due to the log file already being in use by another process.

FPS goals

A seperate option to set an FPS goal for a game, so FPS aren't linked to either maximum or monitor refresh rate

improve buildscripts

general:

  • right now the buildscripts keep the mentality of mvp, they will need a refactor once stabilized

osx:

  • freetype doesnt link correctly
  • sdl_sound and sdl_nmix rpath is dealt with using a post-install_name_tool treatment, perhaps cmakelists tweaks can fix this

macOS support untested

need people who had money to burn on bullshit apple hardware so that i can test changes i made to chroma, currently only linux and windows have reasonable amount of testing done

Additional user-defined Update Timers

While maybe slightly limited in usability, in some instances it could be nice to have seperate timers running on different frequencies to update game status. While this is technically possible in it's current state, being able to simply do something along the lines of this would be pretty cool:

new UpdateTimer(100, () => {
    // some code that's called 100 times per second
}).Start();

nuget package

because of course how else are you going to build games without it

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.