Jump to content

Slimwaffle

Members
  • Posts

    245
  • Joined

  • Last visited

Everything posted by Slimwaffle

  1. So I found what I think is a bug. My game that I uploaded to steam and is for sale on steam forces the customer to download the full size of the game whenever I upload a new build. It shouldn't be doing this because steam should scan the game files and determine which ones have changed. Then I came across something interesting in the steamworks documentation saying that if the game uses encrypted or compressed files/ folders steams scanning won't work. And I know that when I publish with leadwerks standalone that it compresses the game files/folders to a zip file. Is there a way to make leadwerks not compress /encrypt these files. Because customers downloading the full game each time is excessive. Here is the info from steamworks; Building Efficient Depots for SteamPipe The old Steam content system would patch updates on a file level, which meant that if a single byte in a file changed, the entire new file would be downloaded by all users. This was especially inefficient if the game used pack files, which are collections of game content files in a single big file. Pack files can easily exceed 1 GB, so updates often led to unnecessarily large downloads. A common way to avoid these large downloads was to add new pack files that overrode content of already shipped pack files. That worked for updates, but it hurt new users long-term, since they ended up downloading unused, already-patched content. The new content system fixes this problem by splitting each file into roughly 1-MB chunks. Each chunk is then compressed and encrypted before being distributed by the Steam content system. If the game content has large redundant parts, these chunks are reused and the user only has to download each repeated chunk once. However, the real strength of this system is building efficient update patches. While the system is building a patch, the new content is scanned for already known chunks. If it finds them, it reuses them. This means if you change or inject a few bytes in a big file, the user only has to download the changes. This works well in most cases, but there are still a few pitfalls that need to be avoided when designing the content layout of a game. Do not compress or encrypt your game data. This is already done for in-flight downloads and retail discs by the Steam content system. If you do it too, you will reduce the effectiveness of delta patching. If you package multiple data files in a single pack file, make sure that with each re-packaging, no unnecessary changes are made. One problematic practice is including the full name of the original source files on disk, because the names may change, depending on the build machine. Another bad pattern is including build time stamps for each file. If possible, always add new content to the end of your pack files and keep the order of existing files. Also, keep your pack file’s metadata (offset and sizes to individual files) in one place and don’t intersperse it with content files. Use a binary diff’ing tool like BeyondCompare to look at two builds of your pack files to make sure that hundreds of unwanted changes don’t show up. If you follow these rules you will minimize patch sizes and only new content will need to be downloaded. Your customers will thank you for that and you will be able to increase the quality of your product by shipping more updates.
  2. I did this but the button still isn't printing to the system.
  3. I fixed one of the collision errors myself. Enemies that sometimes randomly collide with you and cause like a super death. (Using leadwerks default scripts and workshop scripts). Change this; function Script:Collision(entity,position,normal,speed) if speed>20 then self:Hurt(100) end end To this; function Script:Collision(entity,position,normal,speed) if speed>100 then self:Hurt(0) end end Stuff still randomly collides with you. It just doesn't cause death now.
  4. Hey guys. I need help on this one. I am trying to create a script for storage containers in my game. So far I can walk up to the container, Press Use and it launches a GUI. But for some reason I can't get the button to work. I can click on the button. But it doesn't process button events. To print the command to the system. I will paste my code below. test1 = 0 function Storage() local Storage={} local scale = 1 --GUI gui = GUI:Create(context) gui:SetScale(scale) local widget Storage.gui=gui Storage.context = context gui:GetBase():SetScript("Scripts/GUI/Panel.lua") Storage.but1 = Widget:Button("Testing",10,20,80,30,gui:GetBase()) gui:Hide() function Storage:Update() self:ProcessEvent(Event(Event.WidgetAction)) while EventQueue:Peek() do local event = EventQueue:Wait() if self:ProcessEvent(event)==false then return false end end return true end function Storage:ProcessEvent(event) if event.id == Event.WidgetSelect then elseif event.id == Event.WidgetAction then if event.source == self.but1 then System:Print("Button Working") end end return true end return Storage end function Script:Start() Storage() end function Script:Use() test1 = 1 gui:Show() Time:Pause() mlook = 1 context:GetWindow():ShowMouse() end
  5. I spent all day on this and from what I can gather. In order to use the steam api commands I need to rebuild as a c++ game. From what I can gather. I need to re-write main.lua into app.cpp and re-write menu.lua as menu.cpp. And then systematically change all my lua files to cpp files. I could be wrong though not entirely sure. I also noticed that when I click run in the editor it launches from lua files and I have to use visual studio for the cpp files to launch. How do I make it launch cpp files from editor? Also is there anything special I need to do when publishing as standalone to make it use the cpp files?
  6. I found these commands; Steamworks::Initialize(); Steamworks::InitializeController(); Steamworks::steamcontroller; visual studio says that they are using lua. Does that mean that using my lua scripts for main.lua and stuff. That I can reference the steam API using Steamworks: ?
  7. Is there any documentation anywhere showing all the steam-works commands. It has a few things I would like to take advantage of.
  8. I have been following the steamworks instructions. And I need to import the steam api in order to implement controller support.
  9. I got it all working now turns out that leadwerks automatically runs them side by side somehow. Now I just need to figure out how to import steam_api.h because when I try to visual studio says it can't find the file.
  10. Hey guys. I just bought the professional version so that I can redo my game in c++. This was so I can add things in from the steam SDK. So I am wanting to know how it works? Can I run c++ alongside lua? Do I need to recode all my lua scripts? If so does this mean I have to create a new project that states it is a c++ project?
  11. You guys can ignore this one. Not sure why. But deleting everything in the leadwerks folder and re importing fixed it.
  12. I have a custom emu that I tried to put into leadwerks. All the animations work with the various AI scripts I have. But for some reason. The collisions aren't working. I have tried setting the collision to every possible type. Nothing works. Bullets just pass right through it. And when the AI scripts are attached it triggers animations but no damage is caused.Everything is in the zip attached. Emu.zip
  13. Is the code going to look the same if my game was built using lua?
  14. Hey guys. I am just wondering how multiplayer code actually works. So I want to make it so one person can host. Their game does all the loading of trees and enemies and such and does all the saving. So I saw a post about sending messages from player to host. Does this mean I have to send player position and health and so on to server? What would a message sending player health actually look like? And do I have to do this for every single thing that happens(bullets, damage, inventory, position e.t.c)? And do I have to send all the game info from host back to client?
  15. Hey guys I just have a few questions about minimum requirements. So for my game I have noticed that it plays on some 2gb cards but not all and if the GPU use gets to 100% the game crashes. I am wondering just how low I can get the minimum requirements and what things I would need to change. I don't want the game to be pixel like (like minecraft) and remain 3d. But the only thing I can think of to bring the min req down is by redoing all my textures in 256 instead of 1k. Any suggestions would be greatly appreciated. I want this thing to run as low end as possible.
  16. I was able to temporarily fix this by rolling back my GPU driver and updating to the leadwerks beta build.
  17. Without having made any changes to my project. Now all of a sudden my game crashes every time I load the map. The only thing that has changed is I updated my nvidia driver.
  18. I'm not sure whyt but this seems to work fine now. My only issue atm is holes in my navmesh but from what I can tell thats because I changed the terrain size after I first set up the world size to something smaller.
  19. Can't upload in a private message because even zipped up the project folder size exceeds 1gb
  20. Is there a way to do it privately?
  21. Leadwerks keeps crashing when trying to publish as a standalone. Causing it to not publish properly.
  22. I am finding that I am getting massive holes in my navmesh. This has caused other problems with my AIs. I have tried everything there is no way to fix it.Then collision errors; enemies randomly collide with terrain and vanish this sometimes breaks game physics and the player starts doing weird things. If anything exists below the terrain code stops working on it and if you try to interact with it the game crashes. Between the navmesh issues being caused by the engine. Its just not even feasible having enemies in my project at all. And that is depressing.
×
×
  • Create New...