Giter Club home page Giter Club logo

basalt's Introduction

Hi there! I'm Thiago! ๐Ÿ‘‹

wakatime

A passionate software developer and an undergraduate in computer science based in Brazil.

๐Ÿ”ง Skills

  • Languages: C, C#, C++, Dart, JavaScript, HTML/CSS
  • Frameworks & Technologies: .NET, Blazor, ASP.NET, Flutter, Unity Engine, MongoDB.

Top Langs

๐Ÿš€ Projects

  • Basalt

Basalt is a pure C# Game Development Class Library to help make games using purely code or, in the future, it's own editor. It also integrates the Raylib_cs C# binding package for Raylib for rendering.

Readme Card

  • TMath

TMath is a Math library with functions using generics as parameters to support all numeric types and custom ones.

NUnit Tests Version Downloads License

Readme Card

๐ŸŒฑ Learning

  • C++

๐Ÿค Connections

๐Ÿ“Š Statistics

My Stats

basalt's People

Contributors

eae23 avatar thiagomvas avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

eae23

basalt's Issues

Implement proper rotations

Transforms when rotating should also

  • Rotate children proportionally
  • Move them to the proper position
  • Rotate their models
  • Rotate their forward, up and right vectors

Button label does not follow parent button

Label currently works independently of where the button is, which is not how its supposed to work.

Solution:
Whenever a button's pivot and offset are changed, also change the label's offset using a setter.

On collision events

Add events for when objects in a way that any one component can subscribe to it and run code on collision.

Sound System

Description:

Implement a sound system to manage audio playback within basalt

Interface:

public interface ISoundSystem
{
    void PlaySound(string soundName);
    void StopSound(string soundName);
    void PauseSound(string soundName);
    void ResumeSound(string soundName);
    void SetVolume(string soundName, float volume);
}

Functions within the Interface:

  • PlaySound: Plays the specified sound.
  • StopSound: Stops the specified sound.
  • PauseSound: Pauses the specified sound.
  • ResumeSound: Resumes playback of the specified paused sound.
  • SetVolume: Adjusts the volume of the specified sound.

Extra Interfaces

public interface I3DSoundSystem : ISoundSystem
{
    void 3DPlaySound(string soundName, Vector3 position);
}

Input System

Tasks

  • Set up abstraction layer: IInputDevice, IKeyboard, IMouse, IGamepad
  • Set up basic input handling for keyboard and mouse.
  • Implement polling-based input processing.
  • Create simple input mappings class

UI System

A basic UI system for the engine.

Basalt.Core

  • Add UI events to IEventBus
  • Define generic UI Element object interface

Basalt

  • Hook UI events up properly to EventBus

Basalt.Raylib

  • Create UI element for Raylib renderer
  • TextButtons and ImageButtons
  • Labels
  • Panels
  • Icons

Rework Raylib renderers

Instead of using DrawSphere, DrawCube, etc, use models

Tasks

  • Use models to render instead
  • Change color properly
  • Make them affected by lights

Trigger colliders

Add field IsTrigger to colliders.

During collision handling, return early if any of the colliders are triggers.
Still trigger OnCollision

Entity references aren't serialized

When saving a component to a file that contains an Entity reference, it will not be serialized and therefore when loaded, will not have the correct reference

Resource Packaging

Implement a tool to build the game and save all the resources all in a folder where all that is needed to share a game is to send the entire folder as is and it'll be ready to play.

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.