james7132 / DanmakU

An open source Danmaku development kit for Unity3D.
https://danmaku.jamessliu.com/
MIT License
238 stars 50 forks source link

Should we revive this project? #28

Closed james7132 closed 6 years ago

james7132 commented 6 years ago

There has been recent interest in reviving DanmakU as a project after it fell into disrepair.

If you are interested, please respond or react for a vote of confidence.

GhoulMage commented 6 years ago

I am interested

Kailang commented 6 years ago

Yes, that will be great.

I am thinking about making a Danmaku Hell game that can be edited by the player. This library, if revived, will significantly ease the development.

davyroelstraete commented 6 years ago

I would also appreciate some help in creating a Danmaku game. My own code is running into the 500+ bullets performance issues...

james7132 commented 6 years ago

After gaining much more experience with using Unity's system, I've pieced together several parts that need to be tackled to get this all working:

I'm going to need a lot of help in creating this. I've created a Discord server for this project and will be working on the project in what free time I have between the other projects. If more people join in on this and comment on the design of the project, I'm more willing to invest more time to its development, otherwise I'll only work on it when I feel like I have free time.

If you are interested in helping implement any of the above, please join the provided server.

james7132 commented 6 years ago

I've completed bullet movement, rendering, spawning, and a basic implementation of the Fireables API in the develop branch. Feel free to take a look at the TestScript.cs. With some editor tweaking, it makes this:

Danmaku

Code duplicated here:

using System.Collections.Generic;
using UnityEngine;
using DanmakU.Fireables;

namespace DanmakU {

    public class TestScript : MonoBehaviour {

        [SerializeField]
        Circle circle;
        [SerializeField]
        Ring ring;
        [SerializeField]
        GameObject prefab;

        [SerializeField]
        DanmakuInitialState initialState;

        DanmakuPool danmaku;

        // Use this for initialization
        void Start () {
            var prefabFireable = new PrefabFireable(prefab, 10000);
            danmaku = prefabFireable.Pool;
            var fireable = ring.Of(circle).Of(prefabFireable);
            fireable.Fire(initialState);
        }

        void Update() {
            danmaku.UpdateDanmaku(Time.deltaTime);
            Debug.Log(danmaku.ActiveCount);
        }

    }

}
jozistudio commented 6 years ago

I'm developing a top-down shooting game. I'll branch and see what I can help. Thank you for your effort when you were a uni student. Thank you for your effort when you dont abandon your "child". Quoc

sokigakiya commented 6 years ago

Awesome

QBrute commented 6 years ago

Yes please! =)

adrianologyff7 commented 6 years ago

I'm really interested. It'll be great if it gets revived. :)

Stevepunk commented 6 years ago

+1

Nurdraku commented 6 years ago

Would be awesome. Very interested!

james7132 commented 6 years ago

I will be doing some experimental rewrites of the project once the new ECS/C# jobs system goes live in Unity 2018.1.

james7132 commented 6 years ago

image

I've successfully gotten a basic bullet simulation (movement only, no collision) working with the new C# jobs system in the 2018.1 beta. Pictured above is about 1500 square bullets being moved around at a latency of ~1ms. Easily supports upwards of 20,000+ bullets, which should be more than enough for any danmaku game.

The manager code for it can be seen here; https://github.com/james7132/DanmakU/blob/jobified-danmaku/Assets/src_new/DanmakuPool.cs. There's a test script in the same branch for it.

james7132 commented 6 years ago

Closing this issue as I am definitely going to start work on the new version based on what was posted last night.

Kailang commented 6 years ago

Oh, my God. This is AMAZING. Too bad the Job System is still in beta.