katharostech / arsenal Goto Github PK
View Code? Open in Web Editor NEWBlender game engine prototype written in Rust.
Home Page: https://katharostech.github.io/arsenal
License: Other
Blender game engine prototype written in Rust.
Home Page: https://katharostech.github.io/arsenal
License: Other
In order to streamline development and help automate tasks
As a Arsenal developer
I want to have common development and release tasks added to the Makefile
The current Makefile is a bit messy. We should go through and add the tasks that we actually want in there and organize it a bit.
Hi, I looked at your http://forums.armory3d.org/t/rust-and-the-vision-of-armory/3146/ and I agreed most of your views on Armory3D, and your basic concept of this game engine. I'm kinda interested and if I found out we have same vision I may give a hand on development of this engine. Hence, I have some questions:
In order to Improve the user experience when attempting to run an unsaved Blender file
As a Arsenal user
I want Clicking the "Run Game" button on an unsaved Blend to display a dialog that says: "You must save the Blend before running the game". The dialog should have two buttons at the bottom: Cancel, and Save. Clicking the cancel button will close the dialog and clicking the Save button will pop up the Blender "Save As" dialog.
Going to create a development guide and do some reorganization to make the project structure make more sense and make it easier to explain in the dev guide.
When exporting a mesh with 124, 242 vertices, I get get an OverflowError
:
I think this is caused by the fact that we are shoving all of the vertices that make up a mesh into a single glTF primitive. I think the overflow is caused when a u32 ( maybe this one or this one? ) overflows because of the number of indices in the mesh gets massive with so many vertices. We will have to chunk out the mesh into multiple primitives each of which will not have enough indices to overflow the u32 accessor or buffer length.
See the TODO in the code.
This could be useful reference:
In order to inform users who may want to cross-compile arsenal
As a Arsenal developer
I want a page in the docs describing how to cross compile Arsenal, guided by the working script that we have already created in the .drone.yml file.
This will may on getting OpenGL support in Amethyst's Rendy renderer.
We need to get basic scenes with the mesh geometry exporting to glTF. The export functionality will be implemented in Rust and multi-threaded as much as possible.
gltf-json
library we are using for glTF exporting
Hi, so currently I have basic experience with Rust. I was wondering if there is some easy task I could do to help develop Arsenal using Rust?
In order to easily identify Arsenal graphically
As a user or stakeholder who may or may not know about Arsenal
I want an epically iconic logo to remember Arsenal by
In order to maximize the efficiency of meshes exported from Arsenal
As a game developer
I want my meshes to be optimized using Meshoptimizer
It might be a good idea to allow opting-out of optimization for particular meshes.
So lets say that I created a model within Arsenal and then in the main game, I import the same models in multiple areas. If I wanted suddenly update/change the model and/or the code that it is attached to there should be a blueprint where I can apply the change once and it updates all of the same models across the entire scene.
If it doesn't make sense let me know and I will try and rephrase that.
In order to prove out getting a Blender scene built as an Amethyst game
As a game developer
I want to be able to click an "Arsenal Run" button in the Blender interface and have it build and run an Amethyst game that contains my Blender scene with its meshes ( with the scene features outlined in #5 ). In the game, the scene meshes should be displayed with some default lights and an orbig camera.
For now we will use the stable version of Amethyst because it has OpenGL support. We will upgrade to the latest ( master ) version of Amethyst later.
Hi, I am pretty interested in this project and I may end up contributing to this project in the near project.
I would like to know if there is an approximate alpha release date?
In order to decrease iteration time and facilitate rapid development
As a game developer
I want to be able to tell Blender to sync objects in the Blender interface live with the running game during development. I should be able to select which objects are synchronized with a checkbox for each object in the properties panel.
The synchronization could be one-way from Blender to the game, or it could be two-way. This will require planning and testing to figure out exactly how we want to do it.
This is somewhat related to #15.
In order to provide Arsenal builds for a larger variety of users
As a Arsenal developer
I want to have automated CI builds of the Arsenal blender plugin for Linux, Mac, and Windows.
Apparently Travis is free for public projects!
Edit: Decided to use drone.io instead because it is awesome.
Dependabot couldn't find a Cargo.toml for this project.
Dependabot requires a Cargo.toml to evaluate your project's current Rust dependencies. It had expected to find one at the path: /Cargo.toml
.
If this isn't a Rust project, or if it is a library, you may wish to disable updates for it from within Dependabot.
You can mention @dependabot in the comments below to contact the Dependabot team.
In order to allow non-programmers to develop the logic for their games
As a game developer
I want to be able to build out logic for my game using nodes inside of Blender.
Logic nodes will most likely compile to Lua code.
Requires Lua scripting support in Amethyst.
In order to make it easier to preview my game and reduce development iteration time
As a game developer
I want to be able to have a live render preview for what my game's lights and materials will look like in the Blender viewport. Similar to how you can select the Eevee renderer and view it live in the viewport, except it will use our game's renderer and/or shaders.
This needs some investigation. Something to look at: Blender GPU Shader Modules.
Get basic scripting support in Amethyst.
The renderer for Amethyst 0.10 requires a material to be specified for it to render glTF so we need to add a default flat grey material that can be applied to all of the meshes in the scene export.
This depends on #7.
Dependabot couldn't find a Cargo.toml for this project.
Dependabot requires a Cargo.toml to evaluate your project's current Rust dependencies. It had expected to find one at the path: /arsenal-runtime/Cargo.toml
.
If this isn't a Rust project, or if it is a library, you may wish to disable updates for it from within Dependabot.
You can mention @dependabot in the comments below to contact the Dependabot team.
In order to demonstrate Arsenal’s import capabilities, the same assets used in https://github.com/armory3d/armory_templates could be used for examples (and testing).
This might provide a decent starter task for contributors to work on, chipping away at successful importing of these templates one at a time.
Hello everybody, this is a thread where you can ask questions related to helping Arsenal development. If you want to help out, but don't quite know how or you have questions how you can help, don't hesitate to comment!
Also, be sure to check out the contributing guide in the documentation.
In order to evaluate the performance impact that would accompany using Legion as Amethyst's ECS instead of Specs
As a project owner
I want to have performance benchmarks comparing Specs and Legion. Benchmarks should include both small examples, and ones that come as close as possible to our real-life workloads.
Benchmarks are being developed in katharostech/amethyst-ecs-benchmarks. The ECS discussion can be found here.
The problem with Armory at this stage is the way how the default camera and lighting setup is terrible, Both Godot and Unity do a better job with its lighting system I hope that Arsenal can use something similar to Godot and Unity.
In order to allow for game logic to be created and modified without re-compiling Arsenal itself
As a Arsenal engineer
I want an arsenal_scripting
crate that will provide a Bevy ScriptingPlugin
that can be use to load the game logic from scripts in supported programming languages. All game logic should be able to be provided in game scripts. Languages that must be supported at a minimum are Rust and Python.
This issue sums up everything that we need for initial scripting support for the Arsenal 0.2 release.
This pull request is ready for us to start using and experimenting with and has been merged into the arsenal branch of our Bevy fork.
Right now, the next step is essentially just to start experimenting! The more I mess around, the more a solid plan will materialize. I've got some fuzzy plans for most of the process in my head.
We need to add options for the Mac build to make the Arsenal Python extension work.
In order to prove out the functionality of arsenal_scripting
As a Arsenal developer
I want a demonstration of a bevy game made 100% with Python. The game should be a fully working and playable asteroids game. The example need not have in-game menus and doesn't need to be fully polished, but it should have a flyable ship with a gun that can shoot asteroids and asteroids that destroy the ship.
This example need not be made with Arsenal itself, i.e., Blender will not be used, but it needs to use the arsenal_scripting
plugin to load game logic.
Use Draco mesh compression for mesh export and loading.
Would Arsenal support/use the PhysX physics engine as I heard this is pretty good?
I can't get the Aresenal addon for Blender 2.8 stable release. I want to get this addon to test it out. I apologise I have not been here and helping with the community.
Also I just want to know, when runing the game using ARsenal addon, would it be based on the Eevee Renderer?
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.