digitalextinction / game Goto Github PK
View Code? Open in Web Editor NEWA 3D RTS game implemented in Rust.
Home Page: https://de-game.org
License: GNU Affero General Public License v3.0
A 3D RTS game implemented in Rust.
Home Page: https://de-game.org
License: GNU Affero General Public License v3.0
Based on input criteria and a random seed, generate a map.
Design:
Explore:
This is especially important for non-combat units.
First idea: compute influential map (some combination of HP and damage of friendly end enemy objects) and minimize it when path finding.
Caps Lock - CTRL swap is not respected in the game.
Setup & update shadow projection so it is not too coarse but covers all/most of camera view.
Also see related: cascaded shadow map
Update directional light projection with camera movement -> otherwise shadows would be too coarse on large maps. (cascaded shadow map in Bevy v0.10 is used instead).
This is related to bevyengine/bevy#3629, cascaded shadow would work even better.
Cascaded directional lights are supported from Bevy v0.10 (migrated to as part of #324).
So players can play more than just the one bundled map.
Map validation is currently custom-implemented. Validation would be needed on multiple places so it is better to device some more standard way how to do it.
Consider using some already existing crate, for example https://crates.io/crates/validator
Place the information to CONTRIBUTING.md
and link it from README.md
.
de_controller
crateThis will improve code quality. Currently user input code is at several different places.
LaserGun { damage: f32, rate: f32, last_fire: Option<Time> }
EntityDestroyed
event handled by all relevant plugins (to remove dangling Entity IDs).Log to a file. To output could be used for example for bug reports.
The terrain should be artistically pleasing & reasonably realistic.
Benchmark the solution on large maps.
This is a continuation of #7.
This requires modification of object placement and movement in the map so everything is positioned correctly on the surface.
Benchmark the solution: if slow, RTIN or other mesh simplification techniques might be required.
To make life of developers easier. When published on the web, it is easier to reference to it.
cargo doc --document-private-items
)Groups of object should reasonably move together:
Benchmark the solution.
UI for the configuration is not part of the issue. Manual edits to the configuration file are good enough.
This relates to #69.
This is blocked by #243.
To make life of developers easier. When published on the web, it is easier to reference to it.
cargo doc --no-deps --all-features --workspace
)Once #43 is done, this can be tested on a generated game.
The upper limit of entities for each player will be 1023 (buildings & unites combined).
The upper limit of players will be X.
This will spare a lot of resources.
This cannot be done before #84, otherwise, CI could be skipped completely by not applying the label.
After #11 is implemented adapt it to proper object movement.
There are several requirements:
Research available algorithms. Plain A* won't work.
Currently, minimum axis-aligned bounding box of the entity shape and all descendant entity shapes represented with Parry's Cuboid is used.
Use better shapes of higher fidelity instead. These can be stored alongside object models. The shapes should be simple for fast geometrical operations.
This depends on #10.
Do not display it by default, use configuration to enable it.
Once #2 is implemented, it will be necessary to implement static object placement so the objects are correctly placed on the surface.
The following conditions must be met for a PR to be merged:
Use ToastEvent instead.
Select all object inside a selection frustum (rectangle on screen). This is an improvement on top of basic object selection defined in #10.
Movable objects of the player should move out of the way when possible (and then move back). Otherwise, some destinations could be blocked or alternative and much worse paths might be used.
The initial implementation will be minimal:
Before doing so, make sure that:
?
This is related to #85.
URL: https://de-game.org/
Contents:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.