Author Topic: I am now on TWITCH.TV to code my mods on Void Expanse! It's free to watch  (Read 1534 times)

ninekorn

  • Full Member
  • ***
  • Posts: 159
    • View Profile
The channel is free. I am not there to show that I am good at scripting nor to make money... I don't think I am that good. In fact I believe I have a LOT left to learn. But I made a mistake starting those mods. And that was to "disregard" the "haste" that is pretty much required for keeping an audience interested... I am talking about the community of course. It's been 6 months that I've release a video of my Galaxy Market in Void Expanse and 3 months later I had received 2 responses of the community on youtube here https://www.youtube.com/watch?v=Hp6zYf-7AzM . Also someone was interested in my drones mod here http://steamcommunity.com/workshop/discussions/18446744073709551615/2183537632735962702/?appid=324260 and I didn't respond. I have been working hours upon hours trying to make the best thing possible but I've just hit a wall of reality this weekend. I mean, I wasn't focusing on the right project, my idea was wrong from the start for the Drone Formation. I mean it's still a good idea that I will "convert" for other projects but it wasn't going to be effective for Drone Formations. And so this weekend I've decided to "burn" my whole Drone Formation project V1 and start with V2. It took me 1 day to create V2 and 3-4 months to make V1. So my whole project was taking too long. The tiny pathfind got me distracted. And the function StickToPoint wasn't giving me the perfect position at the right of the player and that's why I wasn't using it. In fact, I was using my own trigonometry functions to get the formation points. I am now using StickToPoint to make the drone Formations work and I will just offset the points a little bit to increase the number of formation points near the player. I am now starting V2 with StickToPoint and the V2 project is already way more advanced than V1. This is a good sign. Here's approx my current goals and a LOT of those functions already work, if not ALL OF them:

In the Drone Formation V1: worked 30 days just on the pathfind and the rest took 3-4 months
1. All different behaviors of the drones were separated and weren't even working together yet.
2. I worked 1 whole month for the AI Simple Pathfind and was able to make it work but it was completely USELESS for the project for what I wanted to use it for. The work on it is done
    though and so I will reuse it later anyway.
3. In that month, I was also able to put the drone in formation by following the best path it found from the pathfind it generated. The path was extra small and very effective. But as I
    said I was using this whole stuff the wrong way.
4. I had made a basic "Drone Go Mine" script that was working and don't remember where I put it in 2.5 terabyte of folders and projects and backups and whatnot....
5. I had made a basic "Drone Evade Projectiles" script that was working and don't remember where I put it in 2.5 terabyte of folders and projects and backups and whatnot....

In the Drone Formation V2: worked 1 day on it and it's already better than V1

      1.1 - AI Pick Formation:
         1.1.1 - The drone can follow the player. (coded)
         1.1.1 - If the drone is too far from the player it will go back to the player.
         1.1.2 - If the drone is getting in range of the player, it will get in formation.
         1.1.3 - If the drone is In formation but is ordered to go mine or attack, it will do so. (but V2 had a bug here where you could only send it mine once, after that it bugged)
         1.1.4 - If the drone is in formation but the player is "docking", it will dock with the player.
         1.1.5 - If the drone is in formation but the player is entering a jumpgate, the drone will jump with the player. (I might switch that later so if the drones are too far from the player
                    to remove their jumping capabilities)

      1.2 - AI Go Mine.
         1.2.1 - If the drone is commanded to go mining, it will go mine.
         1.2.2 - When the drone is mining, it gets a 2 seconds delay for each mining laser activation. For the moment, each mining laser activation gives them a minimum of 10 "Glepsite".
                    To be modified later.
         1.2.3 - Each 2 seconds, the mining laser yield is full and so the drone deposits the minerals in it's own cargo. Once it's own cargo is full, it will move towards the player and dropoff
                    it's own cargo unless the player's inventory is full.
         1.2.4 - If the player's cargo is full, the drone will not "try" to empty it's mining laser "yield" on the player. It will just stop mining once it's inventory is full and then go back to
                    formation instead of mining again.
         1.2.5 - If the player's cargo is NOT full, it will stop mining, and move towards the player until it hits a certain distance from the player to where it would stop.
         1.2.6 - Once the drone is stopped near the player, it will droppoff it's materials and then BAM it returns mine...
         1.2.7 - As long as there is space in the players cargo and an asteroid to find in the system, the drone will keep mining.
         1.2.8 - The drone is stopping it's mining operation if the player is too far, and if that happens, the drone returns near the player in Formation, instead of going back to mine.
     

      1.3 - AI Go Pick Containers.
         1.3.1 - to fill soon.

     1.4 - AI Go Combat.
         1.4.1 - to fill soon.


I will be trying to code all nights from 09h00pm to 01h00am every night of the week and more in the weekends. I might also in the weekends. I have a job during the afternoon and so I can't work there for the moment. At some point, I might switch from night to morning.

If you people have any ideas as to how I could "better" my mods please feel free to contact me. You can also come in the TwitchTV channel and just give me a flurry of "swears" or a flurry of "you suck buddy" and that's gonna make my day!  ;D

Anyhow, it's free, and it's for Void Expanse's Community!
nine








« Last Edit: February 04, 2018, 08:10:41 pm by ninekorn »

ClayNet

  • Newbie
  • *
  • Posts: 1
    • View Profile
I'm definitely going to check your streams on Twitch, Ninekorn. What category can this kind of content be streamed under btw?

ninekorn

  • Full Member
  • ***
  • Posts: 159
    • View Profile
Hey!

Thank you for your interest. I will soon put my schedule in here after I sort it out. My Galaxy market is finally coded and I was trying to put it on the Steam Workshop but it wasn't working last time I tried. I've reported the issue and it's probably on my side that something is not right. I have tried to use another computer but it wasn't working either...

Anyway, the Galaxy Market is making players able to buy items ALL over the Galaxy of Void Expanse. It will need some testing to see if it properly works in Multiplayer. And this first Beta Version of the Galaxy Market is working for the un-moded Void Expanse (with Pariah's Bane expansion of course). I will need to create another version of the Galaxy Market that will enable me to also add description of items because it doesn't do so for the moment. There is no description of items except the name and price of the item that the players will buy.

I will soon start coding again the drone mod and Follower mod. But before that, I wanted to prepare the infinite or finite items generators (because loading 1000 items for each category - 18 categories total- might lag the server out - it's 18000 items to be loaded in the game after all and that doesn't count 1000 drones/enemies/followers).

For the item generator, last weekend, I prepared near every item Shop Textures in Gimp in order to use the "parts" in my Item Generator. I already created an energy weapon generator but I didn't release it since the damage wasn't even balanced at all but it was perfectly working and I could use those items inside the game.

Here is a video that I made of the Infinite Energy weapons Generator in July of 2017:

https://www.youtube.com/watch?v=DKeEzVCNRTc

So yeah, the reason why I want to code a generator for all categories of items is because I will also generate "enemies"/"drones"/"Followers" with different items/weapons out of those created in the item generator. But just for the Energy Weapons, the code is like 2500 lines. But as I said, it's working so it is a fine blueprint for all of my other planified items generator for the game.


Quote
I'm definitely going to check your streams on Twitch, Ninekorn. What category can this kind of content be streamed under btw?

I am not sure which one I used last time. Maybe under "JavaScript" or "Programing". I'd have to check again.
« Last Edit: August 15, 2018, 06:53:33 am by ninekorn »

ninekorn

  • Full Member
  • ***
  • Posts: 159
    • View Profile
CURRENT SCHEDULE

2018-08-17 - EASTERN 12h00 to 24h00 approx

I created new shop texture items for boosters. But only half of what I wanted to do is done.
Also, I have started coding the item generator for the boosters and the basics are done for that generator. It can now generate boosters XML files. A lot of balancing on it needs to be done but before balancing anything, I gotta have my full set of shop textures ready.

2018-08-18 - EASTERN All day
So today, I'm gonna continue on with the shop textures for the boosters. Hopefully I Will be done soon for that coz we have over 10 more item classes to create shop textures for and also the item generator for those items.

I was done for the day at approx 13h00 EAST.


2018-08-19 -cancelled
« Last Edit: August 19, 2018, 08:50:28 am by ninekorn »

ninekorn

  • Full Member
  • ***
  • Posts: 159
    • View Profile
Re: I am now on TWITCH.TV to code my mods on Void Expanse! It's free to watch
« Reply #4 on: February 08, 2019, 01:46:07 am »
New video release on my current Mod Status. Tell me if you enjoyed watching. The old VR project is in Hiatus anyway. I got bored and obviously noticed it took MUCH much longer than expected lol... So I went back to Void Expanse scripting weeks ago. Take a look at where the mod is at now. It's in development so nothing is perfect though.

https://www.youtube.com/watch?v=uCdIOIfD4mM

ninekorn

  • Full Member
  • ***
  • Posts: 159
    • View Profile
Currently Streaming but it's gonna be a boring 3 hours of recoding the AI for the combat drones or any follower drones for that matter. Feel free to watch if you're interested. You might have a chance to see the full interior station MOD in action, building turrets from the station Terminal INSIDE of the station or accessing the Ship OnBoard computer to spawn combat/mining/repair drones or even accessing the galaxy Market from within the player ship. It's pretty cool but things need to be polished on the AI for the drones as I am tired of seeing some jerky movements and whatever when I see the drones in Combat crashing into each other and crashing on me.

Feel free to log in Twitch.TV to have a quick look, just feel free to ask me and I will show you INGame the things mentioned above. Otherwise Im gonna be working on the drone AI.

EDIT: Beware - you will be bored to death as I have not been coding the AI for weeks litterally... So I've got to dive back in and re-learn my dusty scripts.

EDIT: Wow... what a wasted night on Twitch because of me... 3 hours wasted trying to dive back in my old scripts to build a better AI for my mods. I know i can do it. I just need to remember and re-understand whatever I coded way back when. Sorry for wasting your time. I might stream tomorrow too.

EDIT: finally found what i was looking for. Those are lines of codes that I DO understand or remember what theyre actually outputting ... I'm gonna work on them tonight with the new drone movement AI that I want to build as I am unsatisfied with the current one.


Code: [Select]
         
     
    //NPC SHIP ROTATION AND DIRECTION
    var angler = ship.GetRotation(SHIP_ID);
    var radToDegrer = angler * (180.0 / Math.PI);
    var npcPointX00 = (1 * Math.cos(radToDegrer * Math.PI / 180)) + currentNpcCoord.x;
    var npcPointY00 = (1 * Math.sin(radToDegrer * Math.PI / 180)) + currentNpcCoord.y;
    var dirX00 = npcPointX00 - currentNpcCoord.x;
    var dirY00 = npcPointY00 - currentNpcCoord.y;
    var forwardNPC = { x: dirX00, y: dirY00 };
    var rightNPC = { x: dirY00, y: -dirX00 };
    //--------------------------------

    //PLAYER SHIP ROTATION AND DIRECTION
    var currentCoordsPlayer = ship.GetCoordinates(player_id);
    var anglerOfPlayer = ship.GetRotation(player_id);
    var radToDegrerOfPlayer = anglerOfPlayer * (180.0 / Math.PI);
    var pointXOfPlayer = (1 * Math.cos(radToDegrerOfPlayer * Math.PI / 180)) + currentCoordsPlayer.x;
    var pointYOfPlayer = (1 * Math.sin(radToDegrerOfPlayer * Math.PI / 180)) + currentCoordsPlayer.y;
    var dirXOfPlayer = pointXOfPlayer - currentCoordsPlayer.x;
    var dirYOfPlayer = pointYOfPlayer - currentCoordsPlayer.y;
    var forwardOfPlayer = { x: dirXOfPlayer, y: dirYOfPlayer };
    var rightOfPlayer = { x: dirYOfPlayer, y: -dirXOfPlayer };
    //--------------------------------

    if (npc.CountObjectives(nextCommandToDispatch.id) > 0)
    {
        var currentObjective = npc.GetCurrentObjective(nextCommandToDispatch.id);

        if (currentObjective.id == nextCommandToDispatch.id)
        {
            var currentFormationWaypoint = goToFormationWaypoint(nextCommandToDispatch);

            var distToWaypoint = Math.sqrt(((currentFormationWaypoint.x - currentNpcCoord.x) * (currentFormationWaypoint.x - currentNpcCoord.x)) + ((currentFormationWaypoint.y - currentNpcCoord.y) * (currentFormationWaypoint.y - currentNpcCoord.y)));
            var distToPlayer = Math.sqrt(((currentFormationWaypoint.x - currentCoordsPlayer.x) * (currentFormationWaypoint.x - currentCoordsPlayer.x)) + ((currentFormationWaypoint.y - currentCoordsPlayer.y) * (currentFormationWaypoint.y - currentCoordsPlayer.y)));
            var distPlayerToDrone = Math.sqrt(((currentNpcCoord.x - currentCoordsPlayer.x) * (currentNpcCoord.x - currentCoordsPlayer.x)) + ((currentNpcCoord.y - currentCoordsPlayer.y) * (currentNpcCoord.y - currentCoordsPlayer.y)));

            var dirToWaypointX = (currentFormationWaypoint.x - currentNpcCoord.x) / distToWaypoint;
            var dirToWaypointY = (currentFormationWaypoint.y - currentNpcCoord.y) / distToWaypoint;
            var dirToWaypoint = { x: dirToWaypointX, y: dirToWaypointY };

            var dirPlayerToWaypointX = (currentFormationWaypoint.x - currentCoordsPlayer.x) / distToPlayer;
            var dirPlayerToWaypointY = (currentFormationWaypoint.y - currentCoordsPlayer.y) / distToPlayer;
            var dirPlayerToWaypoint = { x: dirPlayerToWaypointX, y: dirPlayerToWaypointY };

            var dirPlayerToDroneX = (currentNpcCoord.x - currentCoordsPlayer.x) / distPlayerToDrone;
            var dirPlayerToDroneY = (currentNpcCoord.y - currentCoordsPlayer.y) / distPlayerToDrone;
            var dirPlayerToDrone = { x: dirPlayerToDroneX, y: dirPlayerToDroneY };

            var alignedDirectionForwardDOT = Dot(forwardNPC.x, forwardNPC.y, dirToWaypointX, dirToWaypointY);
            var alignedDirectionLRDOT = Dot(rightNPC.x, rightNPC.y, dirToWaypointX, dirToWaypointY);

            var pointInFrontOfWaypointX = currentFormationWaypoint.x + forwardOfPlayer.x;
            var pointInFrontOfWaypointY = currentFormationWaypoint.y + forwardOfPlayer.y;

            var pointInFrontOfWaypoint = { x: pointInFrontOfWaypointX, y: pointInFrontOfWaypointY};

            var isFrontOrBack = NSEWDIST(currentCoordsPlayer, currentFormationWaypoint, currentNpcCoord);
            var isLeftOrRight = NSEWDIST(currentFormationWaypoint, pointInFrontOfWaypoint, currentNpcCoord);

         }
   }

I will save and put on Youtube the streams that are not junk... yesterday was junk so no youtube lol.
« Last Edit: May 05, 2019, 02:49:33 pm by ninekorn »

ninekorn

  • Full Member
  • ***
  • Posts: 159
    • View Profile
Another boring night on TWITCH.TV. I finally found pretty much all of the lines of code I need to script a better AI but man, it is soooo confusing to have to control the rotLeft/rotRight/GoForward/GoBackward/strafeLeft/StrafeRight of the NPC... I'm having a hard time focusing here ;)