Jump to content

martyj

Members
  • Posts

    544
  • Joined

  • Last visited

Posts posted by martyj

  1. So with itch.io, gamejolt, and now Steam Direct, do you feel like game launcher is still useful, or should I focus on integrating itch.io or something?
    I think it's useful. A large amount of our community wants to develop games for fun. They don't want to spend $100 to be able to share the game with friends. 

    Do you think charging a small amount for game launcher is a good idea, in order to increase the number of installs and get your games more exposure?

    I don't think people paying for the game would increase exposure. How many of us own games on steam that we paid for, yet haven't even touched.

    • Upvote 1
  2. Here is what I found so far:

     

    for (int i = 0; i < this->world->terrain->CountVegetationLayers(); i++)
    	{
    		VegetationLayer* layer = this->world->terrain->GetVegetationLayer(i);
    		std::string modelPath = layer->modelpath;
    		if (modelPath.find("oak") != std::string::npos)
    		{
    			layer->Hide();
    			layer->SetVisibility(0, 0, false);
    			layer->viewrange = 0;
    
    			Model* model = Model::Load(modelPath);
    
    			AABB aabb = world->aabb;
    			std::vector<Mat4> instances;
    			layer->GetInstancesInAABB(aabb, instances);
    			for (int j = 0; j < instances.size(); j++)
    			{
    				Mat4 instance = instances[j];
    				Entity* copy = model->Copy(true, true);
    				copy->SetMatrix(instance, true);
    				copy->SetScale(instance.GetScale());
    			}
    		}
    	}

    This hides the selected layer, and creates an object as expected. The problem is the scale is off.

    layer->viewrange = 0; is the only thing that currently hides a layer.

    For performance you can divide the world into different AABB regions. With a separate Entity object, you can assign a script or assign it to an Actor class.

  3. 1 hour ago, Rick said:

     

    See Josh's response a couple posts down.

    That would be a good option as well.

    The question is, how do we go about performing the action of "convert all instances in one section to regular models, and remove that area from the vegetation grid. "

    If we convert all vegetation in an area into a model, could we, for performance reasons, change it back to vegetation?

  4. @Rick, then how does he apply the decal in the video?

    You should be able to modify the placement map. It might require some OpenGL hackery. Update the texture used to show where the vegetation is, then update the GPU.

    Have a look at Vegetation.h in the class VegetationLayer.

    I think the following properties look promising.
            Texture* instancetexture;
            Texture* filtermap;
            Texture* variationmap;
            GLuint buffertexture;

     

    Also how does physics work with vegetation?

    ------------------

    Edit:

    In regards to physics the Vegetation.h shows this:
     

    //----------------------------------------------------------
            //Physics
            //----------------------------------------------------------
            NewtonMesh* newtonmesh;        
            NewtonDynamicsShape* instanceshape;
            Surface* collisionsurface;
            std::vector<int> indices;
            std::vector<float> facenormals;
            std::vector<float> vertexpositions;

            std::vector<int> collisionsurfaceindicecounts[32];
            std::vector<int> collisionsurfaceindices[32];
            std::vector<float> collisionsurfacevertices[32];
            std::vector<Mat4> instances[32];

    So a player can collide with up to 32 items?

  5. Well surly in that video Josh is having some sort of "Pick" option, using the Pick to figure out what position to apply a decal at.

    I just want to know how I can see what vegetation the user is trying to interact with at a given camera view.

    My ultimate goal is to then modify the vegetation layer to remove vegetation at that point, and replace it with an actual temporary entity.

    Use the performance of vegetation + ease of implementation along with providing dynamic content.

  6. I don't think you need to be having a CA file.

    The CA file is basically a way to identify that a certificate has been verified through the certificate authority for a domain.

    There are two parts to SSL encryption over HTTP.

    The first is Domain verification.
    The second is encryption.

    Domain Verification is through the use of Certificate Authorities


    Operating systems include a bunch of certificate authority files from like GeoTrust, DigiCert, ect.

    When you go to create an SSL certificate you use like GeoTrust or whoevever. They usually have domain verification to prove that you own leadwerks.com. That way not just anybody can create an SSL certificate on your domain.

    GeoTrust will then issue you a SSL certificate based off of their CA private key.

    Your SSL certificate is in two parts, a public key and a private key. You keep your private key a secret and hand out your public key.

    When you visit say https://leadwerks.com, there is an SSL handshake which provides information about your public key, the ca to use, ect. Your browser will then look at the certificate authority to check if that public key really came from say GeoTrust or if your SSL certificate is lying.

    This allows the "green" secure icon in the top of your browser stating, yes you are in fact visiting leadwerks.com instead of someone pretending to be. Look up bitsquating if you want to see attacks that can be done if this wasn't around.

    The second part of SSL is pretty straight forward. Tom Scott on Youtube has some good videos on RSA encryption

    ----

    Now the self signed certificates.

    Previously SSL certificates use to be super expensive. Like $50-$1200/year per domain name. Since GeoTrust paid Microsoft and Apple a ton of money to include their CA on their operating systems, they have to make some of it back, by charging you.

    If you wanted free SSL certificates in the past you could create your own certificate authority file. Have users install it on their system, then you could verify domain names yourself, without having to pay someone to do it.

    Currently if you want a free SSL certificate, LetsEncrypt is the best way to go IMO.

    So you shouldn't have to deal with certificate authorities. You can have free SSL certificates.
     

  7. My code is basically as follows:

     

    Entity* entity = this->GetEntity();
    		World* world = World::GetCurrent();
    		if (entity == NULL)
    		{
    			return;
    		}
    
    		if (world == NULL)
    		{
    			return;
    		}
    
    		float rx = Math::Random(2.0) - 1.0;
    		float rz = Math::Random(2.0) - 1.0;
    		Vec3 posit = entity->GetPosition();
    		posit.x += (5.0*rx);
    		posit.z += (5.0*rz);
    
    		posit.y = world->terrain->GetElevation(posit.x, posit.z)+.5;
    
    		if (!entity->GoToPoint(posit, 2.5, 1.5))
    		{
    			System::Print("Error moving");
    			return false;
    		}

    The Entity::GoToPoint returns False.

    My Entity has SetNavigationMode(true); and the World has a valid Navigation Map

    The Entity has a Physics Mode of Rigid Body,
    Collision Type of Character,
    Mass of 70kg

    Why would this return false?

     

  8. I think the main reason this hasn't been considered is nobody has produced a game needing anything close to this. 4096 map is really huge in size. Often times developers can split up their game maps into different maps without sacraficing game play.

    Filling content for large maps requires a ton of time.

  9. Run this commend in terminal and I'll help you find the right driver.

    lspci | grep Ethernet

    You should see something similar to this:

    01:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5722 Gigabit Ethernet PCI Express

    Linux drivers are really just kernel modules. They operate in /dev/ file path much like a file would with open, read, write commands, they also support ioctl commands for passing parameters and other use cases. Way less complicated than windows tbh.

    • Upvote 1
  10. Who is your current manufacturer? Drivers should be available on their website. Run lspci to see full ethernet info.

    As far as PCI Express cards go, I'd recommend anything in the server space. Enterprise hardware has a better chance at working in Linux than consumer grade.

    http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&LH_BIN=1&_dcat=20318&Brand=Dell&_nkw=PCI+Express+ethernet&_sop=15

    You can change the brand if you want. Something IBM, HP, Dell would all work fine.

     

  11. I have a bug report on this.

    http://www.leadwerks.com/werkspace/topic/15587-enttiysetinput-doesnt-rotate-without-movment/

    Original Bug Report

    http://www.leadwerks.com/werkspace/topic/15442-setinput/

     

    Here is how I solve it.

      if (camMovementZ == 0 && camMovementX == 0)
      {
       camMovementZ = 0.001; // Not 0 but not enough to see
       camMovementX = 0.001; // Not 0 but not enough to see
      }
      this->playerModel->SetInput(cameraRotationY, camMovementZ, camMovementX);
    

  12. @gamecreator

     

    I believe Josh just queries the Steam for who is currently logged in. I don't think Josh is then verifying that the logged in user, is really who Steam says they are.

     

    So anyone could potentially have an app running on the same local port as Steam does, that responds to the same calls, and fakes a logged in user. Without some sort of backend verification of tokens you can't really know if a user is who "Steam" says they are.

  13. So I use leadwerks's Steam library for pulling the user information for who is playing the game.

     

    I'm working on moving the player data from their local hard drive to pulling it down via a REST API. That way I can have high scores, and better persistence of data.

     

    How secure is it to rely on the information coming from steam?

     

    I'd like to eliminate the ability for users to have to register for my game to play it online. But is there a compromise to security for this ease of use? Can we trust that Leadwerks will tell us which Steam account is currently up accurately? How easy would this be to fake?

     

    Thanks,

    Marty

×
×
  • Create New...