Jump to content
  • Advertisement

Pixeye

Member
  • Content count

    11
  • Joined

  • Last visited

Community Reputation

102 Neutral

1 Follower

About Pixeye

  • Rank
    Member

Social

  • Twitter
    dimmPixeye
  • Github
    dimmPixeye
  • Steam
    pixeye

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Added descriptions for tags Tags are the glue for your game: You can identify your actors with tags or use them as arguments for your signals to check game logic. Tags are simple cont INT variables. // Add stun marker from the mighty hammer of doom. tags.Add(Tag.Stunned); // Add stun marker from falling off the tree. tags.Add(Tag.Stunned); // remove effect caused by the mighty hammer of doom. tags.Remove(Tag.Stunned); // we are still stunned because we added two stun effects and removed only one bool condition_stunned = tags.Contain(Tag.Stunned); Tags can be used in the Inspector window. { [TagField(categoryName = "Weapons")] public const int WeaponGun = 9000; [TagField(categoryName = "Weapons/BigGuns")] public const int WeaponLaser = 9001; } [TagFilter(typeof(Tag))] public int tag;
  2. Added documentation for ECS approach. Simple ECS pattern for working with actors. My approach can be used only with actor classes at the current moment and is far less powerful than clean ECS approaches and it's used more for structuring than gaining performance boost. public class ProcessingCameraFollow : ProcessingBase, ITick, IMustBeWipedOut{ [GroupBy(Tag.GroupPlayer)] [GroupExclude(Tag.StateDead)] private Group groupPlayers; public ProcessingCameraFollow() { groupPlayers.OnGroupChanged += OnGroupPlayersChanged; } void OnGroupPlayersChanged() { for(var i=0;i<group.length;i++){ Debug.Log("Actor: " + group.actors[i]); } } public void Tick() { for(var i=0;i<group.length;i++){ DoSomething(group.actors[i]); } } void DoSomething(Actor a){ } }
  3. Added descriptions for Blueprints. Blueprints are scriptable objects for sharing common data among similar objects. Example of pulling data from blueprint: var weaponData = Get<DataBlueprint>().Get<DataWeapon>(); Example of blueprint: [CreateAssetMenu(fileName = "BlueprintCreature", menuName = "Blueprints/BlueprintCreature")] public class BlueprintCreature : Blueprint { [FoldoutGroup("Setup")] public DataWeapon dataWeapon; [FoldoutGroup("Setup")] public DataDeathAnimations dataDeathAnimations; public override void Setup() { Add(dataWeapon); Add(dataDeathAnimations); } }
  4. Added documentation for game object pooling pattern and timers. Timers are delayed actions that can be cached. Timer.Add(0.1f, actor.HandleDestroyGO); Caching timers and reuse them. private Timer timerBlink; timerBlink = new Timer(BlinkFinish, 0.15f); void Blink(){ timerBlink.Restart(); } Or add ID to manipulate with group of timers that belong to one object. Timer.Add(0.1f, actor.HandleDestroyGO).AddID(actor); var timers = Timer.FindAllTimers(actor); if (timers != null) for (var i = 0; i < timers.Count; i++) { timers[i].timeScale = 0.5f; }
  5. ACTORS is a small framework explicitly built for Unit3d. It is used to ease the pain of decoupling data from behaviors without tons of boilerplate code. It relies on Unity3d scripting monobehavior concept but without unnecessary overhead. All game related entities are called Actors - they inherit from monobehavior and take role of container of data and behavior components. Like that : public class ActorPlayer : Actor, ITick { [FoldoutGroup("Setup")] public DataMove dataMove; protected override void Setup() { Add(dataMove); Add<BehaviorInput>(); } } [System.Serializable] public class DataMove : IData { public float x; public float y; public void Dispose() { } } public class BehaviorInput : Behavior, ITick { [Bind] private DataMove dataMove; public override void OnTick() { dataMove.x = Input.GetAxis("Horizontal"); dataMove.y = Input.GetAxis("Vertical"); } } The framework includes: Time management Custom Update Management. While Monobehavior update method can be used only with inherited mono components, you can use framework Update method in ANY script. public class MyCustomClass : ITick{ public MyCustomClass(){ ProcessingUpdate.Default.Add(this); } public void Tick(){ } } Object pooling both for game objects and plain c# objects Signal-event system Toolbox-singleton ( a simple servie locator ) Simple ECS for actors Unity additive scenes solution Blueprints - scriptable objects to define common actors data Extended tags system Timers for delayed action Timer.Add(0.75f, () => actor.tags.Remove(Tag.StateImmortal)); FoldGroup attribute to make your inspector look more organized: Bind attribute for lazy initialization of components inside of behaviors [Bind] private DataMove dataMove; Currently I'm working on documentation and example projects. I use framework in my working projects and always keep it updated.
  6. New version : ) *Fold whole group with one attribute feature *Sorting order by base class *Style improvements
  7. I wrote an extension for unity inspector that allows to group/fold variables. Available on github , cheers!
  8. Hello Pilots! Currently, I'm working on the creation of a combat system. Your ship is not very strong and will not hold a lot of damage. The video below shows an example of a battle in the game.The other news is that I finally created a Discord channel for the game. I hope we will have a lot of fun there.Do you like the pace of fighting on video ?
  9. Pixeye

    Pool manager for Unity3d

    Thanks for the feedbacks : ) I usually do not use singletons everywhere though I do not consider them as evil in game dev / small projects. It's just a tool. I have my toolbox system to grab any services/managers I need. As example But I don't want to force people to write code in my style. It's easy to remove singleton from pool manager and make it as service for example or use it as you want. Cheers!
  10. Hi guys! I've made recently a handy pool manager for unity3d and would like to share it with you. An ultra fast and lightweight object pool manager with zero allocations and customizable prepopulate feature. You can group uploading objects in chunks and set how many frames you need for uploading to reduce allocation spikes. Uses Unirx extension and based on object instance ids. You can pool prefabs without any extra components and can mix different prefab types in one pool.Github
  11. The Battlecruiser is a game about building a gigantic space battleship from scraps. Construct, adapt and protect your mothership to fly away from dying world. Engine: Unity3d Genre: Exploring/Action/TD Facebook Subscribe to newsletter Twitter
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!