Giter Club home page Giter Club logo

carambolage's People

Contributors

dependabot[bot] avatar fabric-and-ink avatar k4ugummi 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  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

carambolage's Issues

2D Instanced Tile Rendering

Is your feature request related to a problem? Please describe.
We have no map pr environment yet. I'd like to use classy tiles often used in old games or modern Indy titles.

Describe the solution you'd like

  • Load one texture for each tile
  • Create an element buffer array with translation matrices for each tile
  • Draw each tile as an instance of its original
  • Load different tiles and place them according to a RGBA8 image, alias our map.

Describe alternatives you've considered
Drawing each tile without instancing is stupid and might slow down our rendering process.

Additional context
I'm currently having trouble storing our matrices in a buffer. The crate nalgebra is not optimized to use it with OpenGL :(

A step by step tutorial to compile and install carambolage on Linux

Is your feature request related to a problem? Please describe.

Document a step by step tutorial to install carambolage on Linux.

Describe the solution you'd like

  1. Install rust compiler

    curl https://sh.rustup.rs -sSf | sh
    rustup update

  2. Install GLFW

    sudo apt install libglfw3-dev libxinerama-dev libxcursor-dev

  3. Run cargo run --release

    cargo run --release

Simple Rendering

  • Render car
  • Render background
  • Perspective projection camera
  • Camera "follows" cars

Game settings

Is your feature request related to a problem? Please describe.
Store previously set settings (not possible a.t.m.) like resolution, last time played, windowed or fullscreen, player nickname, key layout for controls ...

Describe the solution you'd like
Local storage of game settings. Load them on game start and update when they change.
Advanced (needs new issue some time in the future). Sync settings with a database.

Get rid of assertions in game code

Is your feature request related to a problem? Please describe.
A game should not crash, just because some value is initialized wrong or s.th.

Describe the solution you'd like
Try to avoid assertions and use if statements if possible. Handle the value the way that you fall back to the closest possible allowed value or even better, don't produce false values.

Describe alternatives you've considered
Alternativlos

Additional context
None

Command Line Arguments

Is your feature request related to a problem? Please describe.
Add command line arguments

Describe the solution you'd like

  • Mode: fullscreen / windowed
  • Resolution: width x height

Text in openGL

Is your feature request related to a problem? Please describe.
A first step towards a UI - render fonts in opengl.

Describe the solution you'd like

  • What options to we have?
    Bitmap fonts, ... ?
  • Make them scalable in realtime.
  • Draw them

Define gameplay

The first idea is to make a multi player game of catch-me with little cars. On player is "it" and this player has to bump into another car to transfer being "it" to the other car. One round finishes after a certain time and the player who is "it" is out.

cc @K4ugummi

LowPoly Car Model

Is your feature request related to a problem? Please describe.
Create a stylized car.

Describe the solution you'd like

  • Car
  • Windows
  • Lights
  • Steering wheel
  • Tires, wheels

Additional context
Create an additional repo to store raw model data.

3D Models

Is your feature request related to a problem? Please describe.
Implement a way to load 3d models

Describe the solution you'd like

  • Load 3d model (maybe with extern crate tobj)
  • Load textures for each model (diffuse, specular, normal, emission)
  • Handle missing textures on objects, don't crash.

Input is not captured during sleep

Describe the bug
Modify the delta time sleep so input events are processed.

To Reproduce
Steps to reproduce the behavior:

  1. Open the /game/mod.rs
  2. Go to the line where the frame limiter is constructed.
  3. Set the frame limit to 10 fps
  4. Run the game and realize, that the input is not processed during the sleep time.

Expected behavior
Input sould be processed everythime.

Screenshots

  • none

Environment (please complete the following information):

  • OS: Ubuntu
  • Version: -
  • Additional information:

Additional context
Add any other context about the problem here.

ECS for components

Is your feature request related to a problem? Please describe.
Implement an entity component system. Better sooner than later! It will be hard to do it after 10_000+ lines...

Describe the solution you'd like
And ECS to handle components on game objects.

Describe alternatives you've considered
Use an ECS system from somebody else, but this is lame and I want to learn how this works in rust.

Additional context
Implement it or refactoring will be painful.

Grass

Is your feature request related to a problem? Please describe.
Think of a way to render grass with flowers and herbs that move in the wind.

Describe the solution you'd like

  • Load them as models or generate them?
  • How to render them?
  • How to distribute them across the map?
  • How to adjust LOD (level of detail) for distant grass?
  • How to apply realistic wind?

Describe alternatives you've considered
Draw static grass. Thats no solution becaus grass should give the game some dynamics. If it's static, it's useless.

Additional context
Right now I have no idea on how to render grass is a good and maintainable way.

Light

Is your feature request related to a problem? Please describe.
Add a light (the sun) to the game for shading.

Describe the solution you'd like

  • Implement ultra basic phong shading for our current "models" aka sprites with one light
  • Implement ultra basic phong shading for 3D models (Waiting for ... )

Additional context

ncollide3d is missing the Fn trait compilation failure.

Describe the bug

When trying to compile with the last rust.

To Reproduce

cargo run --release
error[E0525]: expected a closure that implements the `Fn` trait, but this closure only implements `FnMut`
   --> ~/.cargo/registry/src/github.com-1ecc6299db9ec823/ncollide3d-0.18.1/src/transformation/hacd.rs:745:47
    |
745 |         let mut add_triangle_edges = Box::new(|i: usize, t: &Point3<u32>| {
    |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ this closure implements `FnMut`, not `Fn`
...
749 |                 let other = match prim_edges.entry(*e) {
    |                                   ---------- closure is `FnMut` because it mutates the variable `prim_edges` here
...
765 |                     add_triangle_edges(i, t)
    |                     ------------------------ the requirement to implement `Fn` derives from here

error: aborting due to previous error

Game Music Panics!

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Start the game
  2. Wait until the music stops (~4 minutes)
  3. Exception

Expected behavior
Game music should be looped.

Screenshots
None

Environment (please complete the following information):

  • OS: Ubuntu 16.04
  • Version: pre alpha
  • Additional information: -

Additional context

Trees

Is your feature request related to a problem? Please describe.
Think of a way to render trees with twigs and leaves that move in the wind.

Describe the solution you'd like

  • Load them as models or generate them?
  • How to render them? Instanced?
  • How to distribute them across the map?
  • How to adjust LOD (level of detail) for distant trees?

Describe alternatives you've considered
Draw trees as alpha images... No..

Additional context
Right now I have no idea on how to render trees is a good and maintainable way.

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.