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 ... 7
Help section / Void Expanse terrain decorations? for Planet exploration?
« on: November 18, 2018, 09:29:27 pm »

It seems that decorations have a random spawn rotation on one axis... everytime i spawn them i get different results even though the vector2 rotation is 0,0 and the rotationspeed is 0,0. So it makes my terrain generation impossible. The only thing that doesnt have an icon and has non-interactive physics were decorations so it was an idea i had to use decorations for a 3d terrain. approx 100 vertex for one 10x10 plane (i can improve that) and i was able to use a random perlin noise for tileable repeatable random terrain built in Unity3D than transfered in Blender and than to Void Expanse. I use a "Hidden in Station" npc to get the position of the player and to draw the terrain planes.... but its a failure because of the random rotation. The goal was to bring in Planets exploration to reality.

I could use terrain backgrounds instead but im gonna have to excel with my poor drawing skills. (im gonna have to empty youtubes lists of drawing videos).

Can you confirm that there is an extra random rotation that we cannot set ourselves?


P.S. i didnt try the Device Activation on planets though. And thats how a player would be able to switch from a system to a planet and vice-versa.

Modding info / Re: Events? And some other questions
« on: November 11, 2018, 04:46:52 pm »
Hi Periculi. Sorry for such a late reply. I just restarted scripting in Void Expanse recently and thought i`d have a look at this for you. Following are the actions.bind functions that I have found in the original scripts of the game:

Code: [Select]
    actions.Bind("OnCalculateInventoryCache", "CalculateInventoryCache");
    actions.Bind("OnCalculateSkillsCache", "CalculateSkillsCache");
    actions.Bind("OnCalculateBuffsCache", "CalculateBuffsCache");
    actions.Bind("OnCalculateShipParameters", "CalculateShipParameters");
    actions.Bind("OnMaximizeShipValues", "MaximizeShipValues");
    actions.Bind("OnUpdateShipParameters", "UpdateShipParams");
    actions.Bind("OnCalculateNpcLeveledCache", "CalculateNpcLeveledCache");
    actions.Bind("OnShipWarps", "OnShipWarpsHandler");
    actions.Bind("OnChatReceive", "OnChatReceive");
    actions.Bind("OnChatCommand", "OnChatCommand");
    actions.Bind("OnCollision", "OnCollisionHandler");
    actions.Bind("OnHit", "OnHitHandler");
    actions.Bind("OnRayHitProjectile", "OnRayHitProjectileHandler");
    actions.Bind("OnProjectileHitShip", "OnProjectileHitShipHandler");
    actions.Bind("OnShipDestroyed", "OnShipDestroyedHandler");
    actions.Bind("OnShipTryToEnterJumpgate", "OnShipTryToEnterJumpgateHandler");
    actions.Bind("OnShipDestroyed", "OnShipDestroyedHandler");
    actions.Bind("OnShipDestroyed", "OnCWaveEmitterDestroyedHandler");
    actions.Bind("OnPlayerEntersGame", "OnPlayerEntersGameHandler");
    actions.Bind("OnPlayerEntersSystem", "OnPlayerEntersSystemHandler");
    actions.Bind("OnStarSystemUpdate", "StarSystemUpdate");
    actions.Bind("OnEnterFrame", "EveryFrame");
    actions.Bind("OnBaseGenerateStock", "GenerateStockHandler");
    actions.Bind("OnInstancedContainerGeneration", "ContainerGenerationFunction");
    actions.Bind("OnDebrisCollided", "OnDebrisCollidedHandler");
    actions.BindToTrigger("onConsumableUsed", "onBallisticAmmoConsumableUsed",
    actions.BindToTrigger("onConsumableUsed", "onRocketAmmoConsumableUsed",
    actions.BindToTrigger("onBulletHit", "OnEMPWpnHit", { projectile_id: "weapon_emp_s1_0" });
    actions.BindToTrigger("onBulletHit", "OnAntihiveHit", {});
    actions.Bind("OnPlayerEntersSystem", "OnPlayerEntersSystemHandler");
    actions.Bind("OnShipAttacked", "OnShipAttackedHandler");
    actions.Bind("OnThankYouMessage", "ThankYouMessageHandler");
    actions.BindToTrigger("onNpcSaved", "NpcSavedHandler");
    actions.BindToTrigger("onNpcKilled", "NpcKilledHandler");
    actions.Bind("OnCargoSold", "CargoSoldHandler");
    actions.Bind("OnHackSuccess", "OnHackSuccessHandler");

But I believe you can also code your custom actions.

I don't have an answer right away for those:
Upgrade elements- i got no idea
Unused item type codes - i think i might have info on that but i gotta search my private messages.
faction-filter- never used it yet.
item durability- i got no clue but i am interested too in that.

And for initiating dialog with Npcs you use the function implemented in patch v2.1.0 here

Code: [Select]
(player scope)
void player.StartDialogue(string player_name, string npc_tag_unique_id);

That can be initiated also from an Npc script.


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


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:

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.

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.

Bug reports / Re: Void Expanse Steam mod Uploader crashing?!
« on: August 11, 2018, 11:10:39 am »
Hi ai,

this is the error that I get:

Bug reports / Void Expanse Steam mod Uploader crashing?!
« on: August 11, 2018, 10:19:03 am »

I wanted to release my market mod today but the Void Expanse Steam Mod Uploader is crashing.


Thank you for the hints.

Yesterday when I tested all the stuff on the micro-atx motherboard MSI 760GM-p23(fx), I had put only 1 bar of ram and in the wrong slot so no wonder why nothing was working. But the PSU was working because I've been using it on that new build.

Another good news in all of this is my NVIDIA EVGA 960gtx is actually working with the re-testing today.

I installed the latest version of BIOS on the micro-atx motherboard MSI 760GM-p23(fx) which was supposed to have compatibility with the AMD fx-8320e processor but unfortunately, it seems to be dead.

So maybe my motherboard MSI 990-GDA65-V2 might be working after all but I wont swap all my stuff again just to test it.

Anyways. I'm tired of not releasing anything so I'm gonna work hard on 1 mod to start off and see where it goes from there.


Well my VR project has been put on the shelf anyway for now - I've received a reply from the AB4D creator and there is a lot of space for improvements which I would have loved to implement yesterday as per his suggestions ;D but dust is going to pile up on it for sure. Here's the reason why:

??? 1. one month ago approx, my Oculus Rift VR sound started to stop working intermittently. Now I have no sound but the image still works fine. It's been reported by many many users on the web that the ribbon cables that go from the Headset straight to the headset earplugs have a manufacturer flaw. The more often that you "stretch" the headset head frame to put it over your head, the more the ribbon cables get stretched and they end up breaking. I did not open the headset but I know for sure that this is the same problem. Less than 1 month warranty and I hate using warranties.

>:( 2. My processor AMD FX8320e 8 cores just broke yesterday at the same time as
??? 3. The motherboard MSI 990FXA-GD65-V2 but it's not all
??? 4. The Video card NVIDIA EVGA 960GTX Superclocked (already RMA'ed once in 3 years because it broke) also broke down.

Dudes... How the heck can that happen. 3 pieces of hardware in one shot and it wasn't even overclocked and everytime the CPU and VideoCard were overclocked, they always reached under a maximum of 55 degree Celsius at full load. What's even worse is that the FX8320e 8 cores warranty ended at the beginning of this year, the motherboard MSI 990FXA-GD65-V2 warranty ended at the beginning of this year and the Video card NVIDIA EVGA 960GTX Superclocked ended at the beginning of this year.

But I must admit that my terrain generation tryouts with using multiple threads to do so for at least 4-5 months might be one of the problems root. And I have been working for the past 2 months on VR non-stop with a video card 960GTX that is under the minimum specs requirements for the Oculus Rift.

BUT, yesterday, on spare parts, I built a working system:

MSI 760GM-P23(FX) motherboard
AMD Phenom II x4 925 2.8ghz (oced to 3.4ghz with a LEPA watercooler - with that it's still less than half what my FX8320e could push)
MSI RADEON R7 240 video card
and obviously the rest of pieces that didn't break/burn yesterday.

I am obliged to leave VR alone cos even if using the Oculus Debug Tool to reduce the Oculus Rift Resolution of default 1.00 to 0.25 (1/4 resolution), it is awfully lagging. I can't even do squat haha.

The good news is I can now concentrate on Void Expanse and push my mods and tutorials but lost 1 day out of my weekend to do so. What a week of crap lol :o

Let me work today on at least trying to release something lol ;D


I'll be sure to check the shader reference website that you pointed out.

 >:(  ;D

Lol, but I don't agree that players won't like the Virtual Reality experience once I get everything I want done for Void Expanse. I don't want it to just be a Virtual Screen for players to look at without anything else involved. I would rather NOT have had to explain parts of my complete project  ;D but here it goes:

  • In the "Invasion" Mod, players will still be in the Solar System Inside of a ship and the only way to get to Void Expanse Galaxy system, will be by Long Range communications system (not literally of course). A little bit like the current nowadays drone technology where army personal are behind a screen controlling a drone. Players won't "BE" there in the Void Expanse Galaxy, but what they will control are Hybrid/Robot/Android like characters that can control the ships there in the Void Expanse Galaxy.
  • This is where the screen Capture and VR comes into play when players in VR sit down in front of a computer that is inside of a ship and login to the Void Expanse Long Range Communications System to control their ships there in the Void Expanse Galaxy in front of a 2d/3d like screen in Virtual Reality. Lol I know right, a little bit far fetched considering only the Screen Capture is done, the galaxy market isn't completed, the weapons and items generator isn't completed, the follower and drones mod isn't completed etc...
  • I want the experience to be a one of it's own but although I have been a couple months in the AB4D engine, it's a totally new experience to me so I am pretty much starting from the bottom.

I need a LOT of stuff to be working in order to complete this Overhaul/mod/Proj3Kt.
Right now, there is only ONE way that I can get the complete list of coordinates of systems/decorations/objects/ships/stars/etc without asking for more API functions that would write them down in an XML file or something... It is part of a personal project too. AI "Image/Objet/Writing" Recognition. As long as I can debug the total coordinates of those objects in the Void Expanse Console, I can definitely code an external AI script to read what is written on the Void Expanse console without Interfering with the game... (not with my current knowledge and the fact that I don't have the time to learn that for the moment but I did find some really nice references)

But that brings issues... Like only the creator of the Game Server would have access to those coordinates unless my external VR application can dispatch the coordinates to Players computers that aren't creating the server.

If I can get the transparent background working at some point, I know that I will be able to synchronously make players see 3d objects in the transparent background that they would normally see in the normal Desktop Void Expanse. But again that will bring other issues as those objects aren't transparent in the normal Void Expanse Universe. I was thinking of making a planet/decorations etc. 3d objects microscopic so that I can swap them for 3d objects in Virtual reality that are visible in the background.

It's gonna take me 100 years to code all of that... Or will it? Lol... so far fetched. I should start finishing my Void Expanse mods first. I am happy thought that the only game that I am modding is Void Expanse so everyday that I code is not for another game.

I want to code all of that for Void Expanse also for the reason that at some point later on, I will be able to "port" what I have coded for "real life" RC drones. Lol... dudes I know I feel crazy right now but I assure you that I'm not lol

Thank you for your advice... I have just backuped this project and I am rerolling to one of my earlier version at least to make the basic stuff working for the VR desktop. Andrej Benedik from Ab4d engine also proposed to me a similar approach where I could achieve at least 10 times the speed in the screencapture, before incorporating the transparent background for Void Expanse. I will start working on that after the basics. I know nothing about shaders either so I might leave all of those for next weekend.
There's still some stuff that don't work in the basics anyway, like the Windows Keyboard that is displayed on screen at the press of one Oculus Touch button but I can't even click on it as it seems to be on a layer of it's own.

Gosh, my best shot at the transparent background was only getting an area of 460 x 400 x 4 pixels around the player ship covering the zoom on the ship and already there it was jungling between 0 and 1 milliseconds. By cutting all the screen of Void Expanse UI bitmap from the screencapture to a byte array and applying transparent colors, I would probably reach 4-5 milliseconds and that would have been noticeable in game which is not really pleasant for players.

nevermind I think I fail.

usually any stuff which is dealing with framebuffer data should operate as a GPU shader, otherwise you're forcing GPU to flush all the graphics command to access the framebuffer data, then modify it and push back. No wonder it's ultra expensive.

With a GPU shader - you can call it a GPU post-processing shader - you can perform the same operation per pixel very effectively. And the code of such shader will be super simple as you basically need only the framebuffer for input and a very short pixel shader to modify the color of each pixel.

Unfortunately, I don't have any knowledge of how you can hook into the graphics API with Oculus, but there are should be definitely a pretty simple way - as you're already doing something very similar, but in a different way (by copying the framebuffer from GPU to RAM and modifying it with CPU, and then pushing it back to GPU).


I am using the byte array created by the screencapture from XooF (Alexandre Mutel). Once I get this byte array, I am creating a ShaderResourceView from the Ab4D Engine (Ab3d.DirectX.TextureLoader.Cr eateShaderResourceView) and then I assign that to the texture material shader. That was the fastest way in the Ab4D engine. It's super fast. But computing the white background of 1920 * 1080 * 4bytes = 8294400 bytes is crazy expensive.

But I succeeded... 10 minutes ago... hell yeah ;), well at least with 736000 bytes for the moment out of 8294400 bytes. This is ultra fast. I am down to 0 milliseconds. And of course nothing interferes with any game whatsoever. I am really pleased with the results. I'm gonna try to map the rest of the 1920*1080 screen and see where it goes

Just wanted to clarify that it never is going to change the gameplay... Only the background visual and maybe foreground. I am not into "hacking" void expanse ;). I succeeded in making the background completely transparent in virtual reality so we see only "decorations/objects/ships/stations" but I am somewhat lacking knowledge in speeding things up with c# pointers. I am working on that right now... I just wish to be able to do another tutorial this weekend but I am caught up in making this work.

I am trying MemoryStreams and Pointers (which I have a big gap knowledge in accessing bytes per bytes for MemoryStreams)... Right now I am at 2 milliseconds overhead in just making the player area transparent. I can't seem to bring it down to 0 but at 1920*1080 it still is 736000 bytes to check every frames for the player ship area that starts at 720 in the X and 360 in the Y coordinates.

I have been 1 week on this junk and I am starting to lose confidence.

By the way, if any Void Expanse players have an Oculus Rift, please write here. I'd love to know how many we are.

Here's a code snippet that I can't make any better for the moment.

Code: [Select]
  fixed (byte* textureByteArray = _textureByteArray, previousTextureByteArray = _previousTextureByteArray, currentByteArray = _currentByteArray)
                byte* buffer0;
                byte* buffer1;
                byte* buffer2;

                for (int x = xxPlayerShip; x < xxPlayerShip + widthOfRectanglePlayerShip; x++)
                    for (int y = yyPlayerShip; y < yyPlayerShip + (heightOfRectanglePlayerShip); y++)
                        bytePos = ((y * 1920) + x) * 4;

                        buffer0 = &textureByteArray[bytePos + 0];
                        buffer1 = &textureByteArray[bytePos + 1];
                        buffer2 = &textureByteArray[bytePos + 2];

                        if (*buffer0 + *buffer1 + *buffer1 >= 750)
                            byte* buffer00 = &currentByteArray[bytePos + 0];
                            byte* buffer11 = &currentByteArray[bytePos + 1];
                            byte* buffer22 = &currentByteArray[bytePos + 2];
                            byte* buffer33 = &currentByteArray[bytePos + 2];

                            *buffer00 = 0;
                            *buffer11 = 0;
                            *buffer22 = 0;
                            *buffer33 = 0;

This looks quite cool actually, but I imagine it doesn't really add anything to the game, or does it? :)
But either way, awesome!

Thank you Lurler  ;D

No, it doesn't change the gameplay and it probably never will.

BUT, I am onto something there, that might be a way to change the appearance of the background if the background's color is constant in ARGB. I did some tests with a constant background color, but unfortunately for the moment, the performance is not high enough and my processor cannot handle dealing with  8 294 400  bytes every frames (which is 1920p multiplied by 1080p multiplied by 4 because every pixel in the screen is 4 bytes), in fact, it could only deal with 1/4 of the screen pixels and NOT every frames and so it was useless and ugly to look at for the moment. Basically, I can loop through the bytes array that contain the image to find the bytes that correspond to the "Constant Color" and then change the colors programatically. My goal was to make the color with an alpha value of 0 (i think 0 is for transparent) so that I can add a 3d background. I will need to work more on this though, as I can't promise it will ever work.

Void Expanse already has a 3d background and although we can see the effects, it still remains a 2d image that we look at. But If I make the background invisible in Virtual Reality, I can put ANYTHING at ANY depth behind the Virtual Screen that won't Interact with the game Itself. It would just make the game very beautiful to Watch in Virtual reality with a "real" 3d background.

Also, I "might" just be able to fiddle a little bit with a "mesh" and change the depth of the vertices of the mesh to match "ships" and "stations" in the game. BUT that, I didn't try it yet because I am working this week and I am K.O. when I arrive home  ;)

Help section / Re: Void Expanse Tutorials right in here!
« on: July 17, 2018, 05:04:16 pm »

Here is the link to the files of the tutorial 1.5. Sorry, I didn't have time yesterday when I came back from work, I basically ate and went right to sleep. You can compare what you did wrong by seeing how I wrote the script.

Your line of code here doesn't seem to be wrong. My explanation wasn't really precise enough last time.

Code: [Select]
id = generator.AddNPCShipToSystem("Jonas Temple", "JonasTemple", 1, "special_jonas_temple", sys_id, chosenBase.coord.x, chosenBase.coord.y, { class: "agent", unique_id: "jonastemple", meta: "human", sex: "male" }); // Jonas Temple
Now you need to go Inside the generic_quests folder and open up your quest .js file. Inside of that file, you should have this function here:

Code: [Select]
function OnCheckRequirements()
    var npc_id = topic.GetCurrentNpcShipId();

    if (npc.GetTag(npc_id, "class") == "TUTORIALNPC")
        return true;
    return false;

As you can see, if you read between the lines it says: if the NPC Class is TUTORIALNPC, then "activate" this quest script for this NPC. So basically, if we use your code, the OnCheckRequirements that you should use should be:

Code: [Select]
function OnCheckRequirements()
    var npc_id = topic.GetCurrentNpcShipId();

    if (npc.GetTag(npc_id, "class") == "agent")
        return true;
    return false;

and that's because your NPC class is "agent". But if you use multiple NPC's with the class "agent", then all of those NPC's are gonna have this quest script available when you talk to them.

Pages: [1] 2 3 ... 7