Coder Social home page Coder Social logo

waitwhatwolf / warwolfworks-x-unity Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 0.0 12.14 MB

A library with numerous systems designed to cut development time by a large amount.

License: Other

C# 100.00%
customizable cut-developement game hooks numerous-systems streaming unity unity-editor unity2d unity3d

warwolfworks-x-unity's People

Contributors

waitwhatwolf avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

warwolfworks-x-unity's Issues

Make premade NyuComponents implement performance improvements of interface casts

In the update 6.1 all supported INyuComponent update methods were reworked to be stored in a separate list then retrieved from it instead of casting it every time those methods were called.
For reference, it went from something this:

for(int i = 0; i < nyuComponents.Count; i++)
{
    if(nyuComponents[i] is INyuUpdate nyuUpdate)
        nyuUpdate.NyuUpdate();
}

To something like this:

for(int i = 0; i < nyuComponentUpdates.Count; i++)
{
    nyuComponentUpdates[i].NyuUpdate();
}

The plan is to implement this into pre-made components as well; Currently, the systems that will see an implementation of this are:

Adapt WarWolfWorks.EditorBase to new save system (CTS)

The CTS system works differently from Streaming.Catalog:
Where changes made to the saving class would immediately be written to the file in the current saving system, CTS need it's Apply() method to be called for changes to be applied to the file.

Pooling System

A new an reusable pooling system; Previous pooling system was deprecated in 2.3.1.0, so it will need a better replacement.

Make Console

The goal here is to make a console which has a core class (currently implemented but not finished, resides in WarWolfWorks.Debugging.Console) which handles all logic, and a separate class which handles the visual aspect of the console; That way, you can use the Console class but can still make your own Console UI if you do not like the pre-made one.

Planned to ship in Madeina 3, using the SlickMenu system.

DOTS entity system (Codename: Dotters)

Currently, the Entity system is based off of Unity's current gameobject/component system, which is fine, however, Unity's upcoming DOTS system will be much more optimal and will have better support compared to the current component system; The goal here is to make an Entity system similar to the current entity system, with full dependency on the DOTS system, not the components system. (Both will be separate, and Dotters will be developed as Unity's DOTS system develops.)

Create custom "productName" variable in library

UnityEngine.Application.productName is as broken as unity, so instead of relying on this inconsistency-fest, I'll just create one where you can set it in the WarWolfWorks>Settings menu.

Marshmallow (yet another projectile system)

...Yes, another one; However, this time it will be much more code-oriented instead of awkwardly integrated into unity's whacky scriptable object system.

Codenamed: Marshmallow

New Attack System

The current attack system is basically the old EntityAttack scripts which was adapted to the current system; As of now this doesn't pose major issues, but it does start showing it's age.

Current idea is to name all attack-related scripts and components after Greek/Norse Mythology, similarly to the Yharon system which has multiple references.

Unity generates a get_productName exception on selecting any object using the library

Ah, good'ol Unity, back at it again with the stupid consumer-unfriendly features that no one asked for, this time they decided it would be a bad idea to request the project's name outside runtime...

Man, I love this engine.

No fix is planned for this yet, as the WarWolfWorks library uses the project's name to save user preferences of the library on the disk, on a per project-basis. (in {current user documents}/{projectname}/Preferences.cts)
Screenshot_969

So for now the best thing would be to wrap any instances of the project name use in try-catch blocks and ignore the catch; I know, I know, this is terrible and not pretty, but it's not my fault Unity is pulling shit like this.

Map system

Basically, a Scene system, but good, not like mr.Unity I like f-ing up everything in the game scene system.

The reason this is labeled with the 'potentially' tag is because it will require a custom inspector, a very broad spectrum of utilities as well as god-like levels of memory management, so for now I'd rather lazy it out.

Make library use new CTS system (5.0 Update)

As the title suggests, the WarWolfWorks library uses the current Streaming.Catalog system which will be obsolete after the release of 5.0; WarWolfWorks should fully use the CTS system before that.

Make Stat constructor take IEnumerable<object> istead of IEnumerable<int> for affections

This is a QoL addition which essentially allows you to put anything in without casting it as int; This essentially removes a lot of boiler plate

Example:
Assuming you have an enum for affections (we will call it Affections for simplicity)

public enum Affections
{
    ...
}

You would go from this:

Stat bonusSpeed = new Stat(1f, 1, (int)Affections.MovementSpeed, (int)Affections.Running, (int)Affections.TipToeing);

To this:

Stat bonusSpeed = new Stat(1f, 1, Affections.MovementSpeed, Affections.Running, Affections.TipToeing);

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.