Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - ninekorn

Pages: 1 [2] 3 4 ... 15
16
Mods / [Client+Server] Skeleton MOB Mod V0.0.1 Released!
« on: September 30, 2019, 08:41:02 am »
Skeleton MOB Mod V1.0.0



Mod type: Client-Server mod.

Latest version: 0.0.1

Supported game version: Latest

https://drive.google.com/open?id=1CybqiwUU1HcPRfvs71z1iFkUwu0sRAP9

The skeleton Asset is coming from a purchase i made in Unity for the asset here:
https://assetstore.unity.com/packages/3d/characters/humanoids/dungeon-skeletons-pack-50675
https://polygonblacksmith.wixsite.com/home

The Skeleton 3d to 2d transition is achieved by using the Unity3d asset:
https://assetstore.unity.com/packages/tools/sprite-management/sprite-baking-studio-3d-to-2d-31247


EDIT: I will soon update to better animations and better graphics. I don't have Spine Esoteric Software yet for InvertedKinematics usage and i zoomed in a bit too much the sprites and they don't really good that way.

17
Ideas and suggestions / Re: Cryofall Map Modification?
« on: September 29, 2019, 02:44:30 pm »
I was able to finish the Front Skeleton Animations without IK, its not as good as the original but it should be a good start for a V1.0 Skeleton Mod Swordman. In the future ill add all of my other Skeleton Assets Archer/Axeman and also add my Void Expanse Pathfinding code. I'll continue to try and adapt to this new engine. And geez, you really went overboard on this engine. It's really complex. I'm gonna have a hard time adapting.

My goal was to bring Cryofall's current Visual Studio Project to its most basic form to understand the core but even that is so complicated lol ;). Meaning i want to know how to add new menus, change the existing menus, i want to learn how to add projectile sprites for the Skeleton Archer, add blood for damage on Animal/Human Mobs... I wanna learn the zooming of the map, and many many more things. But again, I am really looking forward to option 3-4 beeing added as i want to make my own game with the engine (space game).

 If I remove all quests, Bam the game doesnt load anymore, If i remove all technologies, the game doesnt load anymore, even if ive removed all hooks on the respective classes. Ive got a lot of work on the table to understand this new masterpiece of Atomic Torch.

18
Ideas and suggestions / Re: Cryofall Map Modification?
« on: September 29, 2019, 12:43:35 pm »
Thank you for your answer ai_enabled. I am looking forward to that implementation on point 3-4. I have been looking through the API and messing around a bit with it but mostly achieved nothing. I shouldve started modding the game sooner. Now its like a needle in a haystack to find the "main server update function" which i thought i had found (i think in bootstrapper) but i cant even debug anything on the console. It just doesnt work. I was trying to fiddle a bit with the world creation but then noticed its gonna be harder than i thought as there is a specific file "Cryofall.map" that is used for the server world. And it seems to all be related to "server map" and not client "change map" kinda system.

The game is already so huge and so much code.

19
Help section / Re: Making JSON animations for Cryofall?
« on: September 28, 2019, 09:00:27 pm »
wow DragonBones Software seems to have export to Spine JSON capabilities... I just wasted 80$ cad ++ on Spine... lol. Im gonna try DragonBones tonight.

20
Help section / Making JSON animations for Cryofall?
« on: September 28, 2019, 03:03:27 pm »
Hi, I am trying to make new characters for Cryofall. My goal is to make Skeleton MOBs Swordman/Axeman/Archers from 3d models that i have. There will also be different equipments on them. I can easily do the 3d to 2d conversion but how would i make the JSON files?

I've purchase the software Spine Essentials 1 day ago, yesterday, and noticed that i cant even use InvertedKinematics options on the original JSON MAleFront SkeletonBones as it says its a feature from Spine Pro? anyone knows of any alternatives? If i remove the IK, it breaks all of the animations and i would have to re-do them myself. That is my last solution coz over 200$ for what little Spine Esoteric Software does, i'd rather use my money somewhere else. I feel i got totally ripped off paying over 80$ CAD for the Spine Essential.

I still like the software though as it makes for such an easy workflow but its so overpriced that it saddens me.

EDIT: Nevermind, It seems to not be that much harder without IK. Im going to keep on making the original animations without IK so that i can use them for my characters.

21
Ideas and suggestions / Re: Cryofall Map Modification?
« on: September 28, 2019, 02:43:28 pm »
Thank you so much for your answer Lurler. I am looking forward to this and will continue checking  how the API works.

22
Ideas and suggestions / Cryofall Map Modification?
« on: September 26, 2019, 09:12:27 pm »
Hi,

I am getting annoyed by my personal projects. Recently I've had a ton of "lacking knowledge" to move forward on a physics engine, on my VR Texture2d to Geometry shader for minecraft type of terrain... etc... I am getting so annoyed and the next step in Void Expanse is a pain too. Gotta create colliders out of blender made destructible station parts by calculating the width and depth of object inside of blender using Python... I didn't start writting a script for that, i got annoyed before i started.

I read the Cryofall Forums Posts and Mods a bit and wanted to get more info on the current capabilities of the Cryofall engine. The last time I tried to build a server, my goal was to remove EVERYTHING from the game except for the player and the MAP. My goal was to find a way to modify the map OR create another "instance" of the map so that players can move from map to map. My goal was to understand the Core of Cryofall before re-adding the assets. I failed and left Cryofall behind.

My questions are:
1. Do you have any plans to make Cryofall kinda "infinite 2d terrain"?
2. Do we already have access to API that modifies the terrain size?
3. Do we already have access to API were you can create a second MAP from script and have access to it from ingame?
4. I think I saw that RPG Maker MV and maybe the other engines in the RPG Maker series have maps of Limited sizes but where you have the ability to make Multiple MAPS and have access to them IN/OUT fashion and still have the ability to control the AI from different maps. Can this be achieved in Cryofall and/or if it's not incorporate yet, do you have the plan to incorporate it?

I checked the forums a bit and didn't see a similar post. Please point me to any post that could be relevant to the subject if there is already some on that subject. I want to change my hobbies a bit AKA VoidExpanse/FAil Personal project 2D Physics Engine (Lacking knowledge on Mathematical equations relating to velocity and angular velocity)/ or API of SharpDX....

Thank you for your time in answering.
nine

23
I am working on a version of AI learning/machine Learning for Void Expanse so that I can use that on the drones to make their movement better in game and also for their decision making. I am barely getting started in this though. I am currently working on a version of it based on the series by Sebastian Lague here : https://www.youtube.com/watch?v=bVQUSndDllU
He built his tutorial in Python, although that wasn't why I decided to learn a bit of Python a couple of days ago, it was actually for exporting TONS of objects and build XML files for Void Expanse all at the same time. I've decided to "try" and translate his Python tutorial of Episode 1 and 2 mathematical equations to c# inside of Unity and started playing with that. But I am encountering some "obstacles". For instance, when Sebastian Lague explains the mathematical equations in episode 1 and 2, there is something that I am missing. I don't know how he is using the "output" of the Neural Network. Is he "re-feeding" it into the neural network as inputs in order for the neural network to complete a certain number of iterations until it reaches the goal?

If anyone has any idea of how Machine Learning works, and has really good explanations that can be understood for a beginner, I would be really interested in asking questions. here is what I have so far.. Although the script is able to get to the goal whether it is closer to 1 or closer to 0 which is going to be perfect for me when using the Dot product for the movement in Void Expanse, I have no clue if this qualifies as a Neural Network.

Code: [Select]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

public class SC_Neural_Network : MonoBehaviour
{
    double[] input;
    double[] weightsOne;
    double[] hiddenLayer;
    double[] lastHiddenLayer;
    double[] biasValueOne;
    double[] biasValueTwo;
    double[] output;
    double[] lastOutput;

    double[] currentOutputError = new double[2];
    double[] lastOutputError = new double[2];

    double[] currentHiddenLayerOutputError = new double[3];
    double[] lastHiddenLayerOutputError = new double[3];
    double[] lastHiddenPercentChanged = new double[3];
    double[] currentHiddenPercentChanged = new double[3];

    double[] weightsTwo;
    System.Random rand = new System.Random();

    double[] lastPercentChanged = new double[2];
    double[] currentPercentChanged = new double[2];

    public void Start()
    {
        input = new double[2];

        weightsOne = new double[6];
        hiddenLayer = new double[3];
        lastHiddenLayer = new double[3];
        biasValueOne = new double[3];
        biasValueTwo = new double[2];
        output = new double[2];
        weightsTwo = new double[6];
        lastOutput = new double[2];


        neuralNet(0.001, 100); // right now, can only use 0.001 or 0.999
    }

    double oriGoal = 0;

    int starter = 0;
    int finisher = 0;
    int someCounter = 0;

    //right now only working for input of 2 and hidden layer of 3 and output of 2 and biasOne 3 and biasTwo 2 and WeightsOne 6 and WeightsTwo 6
    private void neuralNet(double goal,int counterMax)
    {
        oriGoal = goal;

        while (someCounter < counterMax && finisher == 0)
        {
            if (starter == 0)
            {
                input[0] = rand.NextDouble();
                input[1] = rand.NextDouble();
                for (int c1 = 0; c1 < weightsOne.Length; c1++)
                {
                    weightsOne[c1] = rand.NextDouble();
                    weightsTwo[c1] = rand.NextDouble();
                }
                for (int c1 = 0; c1 < biasValueOne.Length; c1++)
                {
                    biasValueOne[c1] = rand.NextDouble();
                }
                for (int c1 = 0; c1 < biasValueTwo.Length; c1++)
                {
                    biasValueTwo[c1] = rand.NextDouble();
                }
                starter = 1;
            }
            else
            {
                input[0] = output[0];
                input[1] = output[1];
            }

            for (int c = 0; c < hiddenLayer.Length; c++)
            {
                hiddenLayer[c] = ActivationFunction(input[0] * weightsOne[c * 2 + 0] + input[1] * weightsOne[c * 2 + 1] + biasValueOne[c]);
            }

            for (int c = 0; c < output.Length; c++)
            {
                output[c] = ActivationFunction(hiddenLayer[0] * weightsTwo[c * 3 + 0] + hiddenLayer[1] * weightsTwo[c * 3 + 1] + hiddenLayer[2] * weightsTwo[c * 3 + 2] + biasValueTwo[c]);
       
                if (output[c] <= goal && goal >= 0.999)
                {
                    currentOutputError[c] = 1 - output[c];
                    lastOutputError[c] = 1 - lastOutput[c];

                    var totalDiffInError = Math.Abs(currentOutputError[c] - lastOutputError[c]);
                    currentPercentChanged[c] = totalDiffInError / currentOutputError[c];
                    var diffToGoal = Math.Abs(goal - currentOutputError[c]);

                    if (currentOutputError[c] >= lastOutputError[c])
                    {
                        for (int c1 = 0; c1 < weightsOne.Length; c1++)
                        {
                            currentPercentChanged[c] *= 1.19;

                            double someTest = (currentOutputError[c] * currentPercentChanged[c]);
                            weightsOne[c1] = weightsOne[c1] - someTest;

                            someTest = (currentOutputError[c] * currentPercentChanged[c]);
                            currentPercentChanged[c] *= 1.19;
                            weightsTwo[c1] = weightsTwo[c1] - someTest;
                        }
                    }
                    else if (currentOutputError[c] < lastOutputError[c])
                    {
                        for (int c1 = 0; c1 < weightsOne.Length; c1++)
                        {
                            currentPercentChanged[c] *= 1.19;

                            double someTest = (currentOutputError[c] * currentPercentChanged[c]);
                            weightsOne[c1] = weightsOne[c1] + someTest;

                            someTest = (currentOutputError[c] * currentPercentChanged[c]);
                            currentPercentChanged[c] *= 1.19;
                            weightsTwo[c1] = weightsTwo[c1] + someTest;
                        }
                    }
                }
                else if(output[c] >= goal && goal <= 0.001)
                {
                    //Debug.Log("test00");
                    currentOutputError[c] = 1 - output[c];
                    lastOutputError[c] = 1 - lastOutput[c];

                    var totalDiffInError = Math.Abs(currentOutputError[c] - lastOutputError[c]);
                    currentPercentChanged[c] = totalDiffInError / currentOutputError[c];

                    var diffToGoal = Math.Abs(goal - currentOutputError[c]);


                    if (currentOutputError[c] >= lastOutputError[c])
                    {
                        for (int c1 = 0; c1 < weightsOne.Length; c1++)
                        {
                            currentPercentChanged[c] *= 1.33;
                            double someTest = (currentOutputError[c] * currentPercentChanged[c]);

                            weightsOne[c1] = weightsOne[c1] + someTest;

                            currentPercentChanged[c] *= 1.33;
                            someTest = (currentOutputError[c] * currentPercentChanged[c]);
                            weightsTwo[c1] = weightsTwo[c1] + someTest;
                        }
                    }
                    else if (currentOutputError[c] < lastOutputError[c])
                    {
                        for (int c1 = 0; c1 < weightsOne.Length; c1++)
                        {
                            currentPercentChanged[c] *= 1.33;
                            double someTest = (currentOutputError[c] * currentPercentChanged[c]);
                       
                            weightsOne[c1] = weightsOne[c1] - someTest;

                            currentPercentChanged[c] *= 1.33;
                            someTest = (currentOutputError[c] * currentPercentChanged[c]);
                            weightsTwo[c1] = weightsTwo[c1] - someTest;
                        }
                    }
                    /*else //not used but if the above variable 1.33 is less than 1.19, it breaks the script and i gotta implement this part
                    {

                    }*/
                }
                else if(output[c] <= goal && goal <= 0.001 || output[c] >= goal && goal >= 0.999)
                {
                    finisher = 1;
                    Debug.Log("FINISHED AND REACHED GOAL");
                }

                lastPercentChanged[c] = currentPercentChanged[c];
                lastOutput[c] = output[c];
               
                Debug.Log(output[c]);
            }
            someCounter++;
        }
    }

    double ActivationFunction(double x)
    {
        return (1 / (1 + Mathf.Exp((float)-x)));
    }
}



EDIT: this can hardly be qualified as a neural network except for the variable names in the script. I am far from the goal. Will keep learning and searching for more info on how to implement a working version in c# or javascript.





24
So, I manually set each Pivot to be exactly the same X as any other objects in the same X axis row of walls..

It looks like this in blender. But when I export to .obj, i set the position of each object to x=0 and y=0. The original position of the object is kept in memory and used in the name of the XML file so that I can use that ingame to spawn turrets to the offset where they are supposed to be just like in Blender. I output the names of the XMLs by code to a notepad and just copy paste them to the library in Void Expanse for spawning them. Super fast instead of manually doing everything, and with the number of times that I gotta rebuild them in Void Expanse to test if they are aligned, it sure helps to have an automation on the workflow.






But again, it gives me this result in Void Expanse lol. They are now aligned with the axis X but not with the axis Y... haha wth am i doing wrong. Geez. Blender and the pivot is annoying me ;)






Im gonna try next the same distance between each walls.


And now with an offset of 2.25 units in the Y axis from blender for every model's pivot point gives this... Like... Huh?




OH... there is a detail you mentioned and I am not sure that i got it right. The unit conversion. I am using the exact units from blender without any changes. You can see in the void expanse screenshots that something is wrong where the wall tiles are "spawned" a little bit short in distance compared to the floor tiles which isnt supposed to happen, the floor tiles to the left extremity should be aligned with the last wall too. So definitely, it must be the unit conversion the issue. I'm gonna look for some fix on this.




Funny thing it works when i actually remove 2.25 units from the first wall at each extremity in Void Expanse Javascript when spawning the walls. Example, i take the Y position from the xml file name of the most right or most left wall, than I add or remove 2.25 units in Javascript when spawning the walls. It works like that but it means that the units that i get from Blender aren't working. Im not sure if I already asked you ai_enabled in some other post what the units of Void Expanse are compared to those in Blender. Please enlightened me when you get the chance, otherwise, this whole thing will be a pain to make offsets in code for everything to line up .Thank you
 

25
Hi ai_enabled, i'm going to try different models in Blender. I think that "maybe" the issue is related to the pivot point again... Although they are all at the perfect axis Z location, their pivot point in axis X and axis Y are different.

I had to learn to code a bit of Python in 3 days to make all of this work. The models are all exported by code, the XML files by code, the png's by code, the floor are decorations but the walls are turrets... Lol it was a lot of work but python is interesting for sure. It must've taken me 4-5 hours just to insert the XML nodes in code so that the xml files load in Void Expanse, but the nice thing is that it now works. I can use Python with models of Blender that I export from code and everything is done automatically for, in this case, over 100+ models.

I will try to align all of the pivot points so that they are aligned all with the same distance from each other if i can... Im not sure yet how to do this as manipulating pivot point from code in Python is not super user friendly, unless you know the API functions. I mean blender python code is scarce compared to unity c# and unity javascript.


26
Hi, I just wanted to know if when using the generator.AddNPCShipToSystem if the position x and y are actually rounded instead of using the exact location where i want them spawned.

Below picture shows why i am asking. I am able to create destructible parts from Blender and then from the destructible parts, i am creating "turrets" without AI to drive them, and I put their weapon invisible, which makes it so that i have static Walls in place for the station and those walls are destructible. Although I set the correct pivot location for every object in Blender and double checked they were correctly aligned, they aren't spawned where i want them to in Void Expanse. Any ideas why?




EDIT: Nevermind about my question.... I just printed to console and the correct position is supposed to be set. That is confusing me.

27
Mods / Re: DESTRUCTIBLE STATIONS - in-progress - 9sMODS DEVELOPMENT
« on: August 03, 2019, 01:11:27 pm »
Change of plans. Stations will have much more destructible parts than first intended. But its not finished and currently, for some reasons, there is an offset to the outer walls of the stations. Here it is just showing the floor of the station and the outer walls that aren't aligned. Will keep working on it.




I am posting here to get some help on the matter if anyone's curious.
http://forums.atomictorch.com/index.php?topic=1402.0

28
Mods / Re: Drone/Follower mod // in-progress - 9sMODS DEVELOPMENT
« on: July 30, 2019, 07:53:25 am »
Just wanted to report that I've been taking a couple days off to relax and enjoy playing games as it's been a while that I have profited from that (like 3 years). Btw, for anyone interested in pathfind, i have created a pathfind library in Void Expanse that uses a "Spiral" type of tile discovery and use tiles of 2*2 (that can be customized to a certain extent) which is insanely lightweight compared to traditional pathfind that uses huge area to calculate pathfind tile distances. I was trying to find my post where I am explaining how it works and couldn't find it somehow so i decided to post it back here.

How it works is that the first set of tiles that are discovered are stated below from lower number to highest in a spiral shape type of array:

456
307
218

The first tile to be discovered is the tile #0. Then whatever other tile that the pathfind discovers increases the array to 9 length (for the first squared perimeter) but ONLY the chunk that is discovered is calculated and the others remain empty/null which makes it so that the pathfind is only discovering tiny chunks of 2*2 and leaves the rest null but how the pathfind works is that it keeps in memory the already discovered chunks of 2*2 (only the tiles that are pertinent to the path to target) so that when the pathfind finds the target, it's able to retrace the path. And the pathfind is unlimited in distance meaning that everytime the pathfind discovers a new chunk of 2*2 that is NOT inside the first perimeter of the array length, it will increase the size of the array to contain the new perimeter of the spiral which is insanely cool. For example, the first size is 9, the second perimeter increases the size of the array to 24 total chunks with mostly null data since only the chunks where the pathfind is heading are calculated, the next perimeter increases the spiral and square to make it so that the array contains 48 chunks, etc... The reason why I went with a spiral array instead of a traditional let's say 10*10 array of chunks or 5*5 array of chunks is that it was way too heavy in Void Expanse for every NPCs that were activating their pathfind.

If anyone knows where else I have posted this, please tell me as I don't remember, it might actually be in one of my videos. I'm thinking of creating a blog about this type of pathfind, although it uses Sebastian Lague's Youtube tutorial on pathfinding, i'm not sure if he uses the same "spiral" form of pathfind in his tutorial. I'd have to ask him if it's even possible to contact him.

As for the MODs, I have worked a tiny bit on "recycling" my station interior models and modified them for Modular Destructible stations. Here it is in the works with the modular parts highlighted in orange/yellow:

Outpost01 interior consists of building 13 parts (probably less after revising it)


I am just hoping that building separate parts for the station interior recycled Models from the 9Mods part 1.0 will make it so that it's friendlier with the Farseer Physics Engine in Void Expanse as I was encountering physics crash/server hangs in 9Mods part 1.0 where i had to temporarily "discontinue" the station interior mod. I still don't even know where the crashes were happening but I suspect that jumpgates or turrets colliders were spawning right in the station colliders which was crashing the server. I didn't continue testing to make that irrefutable conclusion, instead I moved on to other things.

So my goal is to bring the station interior Mod with destructible Modular parts and each part will have it's own physics for collision and it will be possible to build them separately and destroy them anywhere in the galaxy where you are permitted to build stations.

29
Mods / Re: 9sMODs - Part 2.3 of 9.0 - RELEASED - Range Combat drones
« on: July 18, 2019, 10:06:20 am »
9sMODs - Part 2.3 of 9.0 - RELEASED

Range Combat (RC) Drones Update.

You now have access to spawning Range Combat Drones. Right now, they use the exact same combat technique and are NOT shooting further away than the close combat (cc) drones. But they have different damage types like Particle Discharge and Guided/Unguided Missiles and Gauss Canon.

Please give feedback if you played the MOD whether you liked it or not. This is not the final version, as you probably noticed, that the drones all cost the same amount of Ingame currency. Also, currently, all drones are not "smart" enough to notice if other friendly drones are in their sight when they shoot. Also, i will soon finalize the pathfinding for the mining drones as right now, a path is discovered for them but the path doesnt exclude unwalkable tiles. Those will be changed in future patches.   ;)

Drone Combat With 2 repair Drones, 1 Combat Energy machine Gun drone, 1 laser combat Laser Drone, 1 Particle discharge combat Drone In combat against enemy


3 mining drones mining some asteroids + 1 repair drone + 1 laser combat drone getting attacked
part 1 of 6

part 2 of 6

part 3 of 6

part 4 of 6

part 5 of 6

part 6 of 6





Drone Combat With 2 repair Drones, 1 Combat Ballistic machine Gun drone , 1 combat Laser Drone, 1 Guided Missile combat drone
part 1 of 3 - Guided missile on top of planet - drone missed his shot

part 2 of 3 - missile hitting enemy

part 3 of 3 - peaceful mining










30
Meh... For 2 weeks I have been having sleep issues. Couldn't even work on this and make the engines look better. it's as if I had lost all interest. I missed two days of work last week and went to have blood samples taken for tests for doctors to find whatever is wrong with me. It feels as if i've reached a point of no return, like, i cannot get back to a good 8 hours of rejuvenating sleep. Anyway, they will find whatever is wrong if there is anything wrong.

Except for those news, I've decided to push back a little bit further away the items Generator MOD because I am still undecided as to using the original images for the store sprites or not... I don't really my coded drawings, they need to be improved... Instead, to find new inspiration, I will start working on Machine Learning to see if there is a way that I can implement that into Void Expanse. I just wanna share that the drones formation that you see in game is the "easy" version that I was working on and not the "other" version where drones are mimicking the player's movement to stay in formation. I want fancy stuff for Void Expanse. So i'm gonna start getting knowledge on Machine Learning tonight. I will keep you guys updated as soon as I have a breakthrough.

Pages: 1 [2] 3 4 ... 15