• What Are You Working On? V13 -- July 2012 Edition
    646 replies, posted
  • Because this thread is so dead - watch me make another map. [url]http://www.twitch.tv/spencersharkey[/url] The last map I made sucked when i looked at it in detail :(
  • [QUOTE=Spencer Sharkey;36805819]Because this thread is so dead - watch me make another map. [url]http://www.twitch.tv/spencersharkey[/url] The last map I made sucked when i looked at it in detail :([/QUOTE] Because GM13 srcds is de- Oh god, why haven't i been coding!?
  • [media]http://www.youtube.com/watch?v=adhO2ow2OKk[/media] We had a 8v8 Last Team Standing playtest match. It was incredibly fun. /v/ was the majority of the players, and they absolutely love the gamemode. (which is a good thing, because they're a hard crowd to appeal to)
  • [QUOTE=werewolf0020;36812288]dat BF3 music[/QUOTE] I had to manually mix the win/lose music by using tracks from the BF3 OST, because DICE uses their own audio format and because I haven't found a package extractor for their archive format. :<
  • Pretty underwhelming compared to the cool stuff in here so far but I'm redoing Holopad because the old code was a mess and I ran into a few roadblocks with it. New approach is keeping all elements in separate frames and using better OOP principles, and dear god this is working better. Faster progress too because I still have the old code and a new class diagram to look at. 0 to this, super quick; [img]https://dl.dropbox.com/u/902553/Pictures/Screens/Holopad/holopad_2012-07-17.png[/img] (don't suppose anyone would like to take this concept art for a breen-statue NPC? :v:)
  • Found some very odd results when messing with the MYSQLOO module. It's hard to explain what exactly is happening, or atleast logically. Essentially this is what i have noticed: Using normal query (callback functions) -Long delay before the queries are called (nearly 1 second per 10 queries) -Once the queries are called, they are called EXTREMELY FAST Using wait query (Query2 function, using the query:wait()) -Instantly starts the queries -Each query takes about a tenth of a second (coincidence?) Total time seems to always seems to come close to each other. From what i understand about threading, for the normal queries, the data could be getting queried and retrieved during that strange delay period, and then afterwards once the thread rejoins it is running the callback functions, which takes no time at all, which explains the next to zero execution time. Since they are threaded, and possibly ran all at once since they are all made instantaneously, they may all be loaded onto one thread to be ran, and then their callbacks are run when the thread finishes. Here are the code files: SQL WRAPPER (has the SQL interface): [URL]http://puu.sh/JpyD[/URL] (Mysql Connection info works, feel free to use it when testing) TEST CODE: [URL]http://puu.sh/Jpz0[/URL] Simply go into your console lua_openscript sqlwrapper.lua (ONLY ONCE) lua_openscript sqltest.lua (EVERYTIME YOU TEST) Here are the results i get: (query:wait() version runs first) [CODE] Running script sqltest.lua... =============================================== Elapsed Time [1]: 0.10799999999972 TOTAL: 0.10799999999972 Elapsed Time [2]: 0.10599999999977 TOTAL: 0.21499999999969 Elapsed Time [3]: 0.10600000000022 TOTAL: 0.32099999999991 Elapsed Time [4]: 0.10300000000007 TOTAL: 0.42499999999973 Elapsed Time [5]: 0.10800000000017 TOTAL: 0.5329999999999 Elapsed Time [6]: 0.10599999999977 TOTAL: 0.63899999999967 Elapsed Time [7]: 0.10699999999997 TOTAL: 0.74599999999964 Elapsed Time [8]: 0.10300000000007 TOTAL: 0.84899999999971 Elapsed Time [9]: 0.10699999999997 TOTAL: 0.95599999999968 Elapsed Time [10]: 0.10399999999981 TOTAL: 1.0609999999997 Total Elapsed time: 1.0609999999997 =============================================== Elapsed Time [1]: 0.94200000000001 TOTAL: 0.94200000000001 Elapsed Time [2]: 0 TOTAL: 0.94200000000001 Elapsed Time [3]: 0 TOTAL: 0.94200000000001 Elapsed Time [4]: 0 TOTAL: 0.94200000000001 Elapsed Time [5]: 0 TOTAL: 0.94200000000001 Elapsed Time [6]: 0 TOTAL: 0.94200000000001 Elapsed Time [7]: 0.0010000000002037 TOTAL: 0.94300000000021 Elapsed Time [8]: 0 TOTAL: 0.94300000000021 Elapsed Time [9]: 0.052999999999884 TOTAL: 0.99600000000009 Elapsed Time [10]: 0.047999999999774 TOTAL: 1.0439999999999 [/CODE]
  • Avatar of Nexus435
  • [QUOTE=Remscar;36816458]Found some very odd results when messing with the MYSQLOO module. It's hard to explain what exactly is happening, or atleast logically. Essentially this is what i have noticed: Using normal query (callback functions) -Long delay before the queries are called (nearly 1 second per 10 queries) -Once the queries are called, they are called EXTREMELY FAST Using wait query (Query2 function, using the query:wait()) -Instantly starts the queries -Each query takes about a tenth of a second (coincidence?) Total time seems to always seems to come close to each other. From what i understand about threading, for the normal queries, the data could be getting queried and retrieved during that strange delay period, and then afterwards once the thread rejoins it is running the callback functions, which takes no time at all, which explains the next to zero execution time. Since they are threaded, and possibly ran all at once since they are all made instantaneously, they may all be loaded onto one thread to be ran, and then their callbacks are run when the thread finishes. Here are the code files: SQL WRAPPER (has the SQL interface): [URL]http://puu.sh/JpyD[/URL] (Mysql Connection info works, feel free to use it when testing) TEST CODE: [URL]http://puu.sh/Jpz0[/URL] Simply go into your console lua_openscript sqlwrapper.lua (ONLY ONCE) lua_openscript sqltest.lua (EVERYTIME YOU TEST) Here are the results i get: (query:wait() version runs first) [CODE] Running script sqltest.lua... =============================================== Elapsed Time [1]: 0.10799999999972 TOTAL: 0.10799999999972 Elapsed Time [2]: 0.10599999999977 TOTAL: 0.21499999999969 Elapsed Time [3]: 0.10600000000022 TOTAL: 0.32099999999991 Elapsed Time [4]: 0.10300000000007 TOTAL: 0.42499999999973 Elapsed Time [5]: 0.10800000000017 TOTAL: 0.5329999999999 Elapsed Time [6]: 0.10599999999977 TOTAL: 0.63899999999967 Elapsed Time [7]: 0.10699999999997 TOTAL: 0.74599999999964 Elapsed Time [8]: 0.10300000000007 TOTAL: 0.84899999999971 Elapsed Time [9]: 0.10699999999997 TOTAL: 0.95599999999968 Elapsed Time [10]: 0.10399999999981 TOTAL: 1.0609999999997 Total Elapsed time: 1.0609999999997 =============================================== Elapsed Time [1]: 0.94200000000001 TOTAL: 0.94200000000001 Elapsed Time [2]: 0 TOTAL: 0.94200000000001 Elapsed Time [3]: 0 TOTAL: 0.94200000000001 Elapsed Time [4]: 0 TOTAL: 0.94200000000001 Elapsed Time [5]: 0 TOTAL: 0.94200000000001 Elapsed Time [6]: 0 TOTAL: 0.94200000000001 Elapsed Time [7]: 0.0010000000002037 TOTAL: 0.94300000000021 Elapsed Time [8]: 0 TOTAL: 0.94300000000021 Elapsed Time [9]: 0.052999999999884 TOTAL: 0.99600000000009 Elapsed Time [10]: 0.047999999999774 TOTAL: 1.0439999999999 [/CODE][/QUOTE] In my experience, using wait() drops the ticrate insanely.
  • [QUOTE=Nexus435;36818159]In my experience, using wait() drops the ticrate insanely.[/QUOTE] In both cases my game lagged, but this may have been due to a listen server.
  • [t]http://4stor.com/images/laKB.png[/t] Well lets see... I used World Machine to make a 4096^2 world: [t]http://4stor.com/images/c4Kb.png[/t] It exports a 4096^2 heightmap in png format. I used Python and a couple of libraries to read the png and convert it to chunks. Each chunk is 32^2 tiles and in total there are 4096 chunks. The chunks are simply binary shorts stored in files. Each chunk is 8KB of data. In total there are 32MB of world data. Of course this isn't really that bad considering networking is progressive as the clients move across the massive world. In the first image, the sublime text file is showing the python code I used to turn the png into binary chunk files. The window on the top left is a pygame display I whipped up in that script to show the chunks and their average height ( it's just eye candy ;) ) Since Gmod13 lets us read binary data now, I was easily able to make a chunk parser in-game and have a chunk rendered... [t]http://4stor.com/images/JemH.png[/t] I'm getting somewhere :)
  • Avatar of zzaacckk
  • [QUOTE=Remscar;36820216]In both cases my game lagged, but this may have been due to a listen server.[/QUOTE] You shouldn't execute the wait() function unless the server is empty.
  • [QUOTE=zzaacckk;36821796]You shouldn't execute the wait() function unless the server is empty.[/QUOTE] You don't even understand what the wait() function does, much less its purpose.
  • Avatar of Foohy
  • Garry, any leads to that problem with ComputeLighting/GetLightColor?
  • Avatar of garry
  • I think it's like you say - it's building a cache when you move an entity by it. I'll try to find the function in the next few days after SVN is updated.
  • Avatar of Sakarias88
  • I've been working on engine sounds and other details on SCars. Have tried to mix several engine sounds before at different RPMs because it's how most racing games do it to get a good engine sound. Each time I've tried it I've failed. Have always sounded weird or choppy. Think this was my third try and this time I actually succeed. Sounds a lot better than just pitching a single sound. Also got a model from TDM which allowed me to change the steering wheel, rpm gage and the speedometer through poseparams. Sometimes it's the details that matters after all. [media]http://www.youtube.com/watch?v=3vPchL3pBn8[/media]
  • Avatar of vexx21322
  • [QUOTE=Sakarias88;36827529]I've been working on engine sounds and other details on SCars. Have tried to mix several engine sounds before at different RPMs because it's how most racing games do it to get a good engine sound. Each time I've tried it I've failed. Have always sounded weird or choppy. Think this was my third try and this time I actually succeed. Sounds a lot better than just pitching a single sound. Also got a model from TDM which allowed me to change the steering wheel, rpm gage and the speedometer through poseparams. Sometimes it's the details that matters after all. [media]http://www.youtube.com/watch?v=3vPchL3pBn8[/media][/QUOTE] The engine sounds have always bothered me, but now they sound fantastic. Great work.
  • Avatar of JustSoFaded
  • [QUOTE=garry;36827278]No - I can add another function to query dyanmic lighting[/QUOTE] Just curious, while you are here. [img]http://i.imgur.com/7IUFA.png[/img] What is this j _ _ o vtable? And why does it contain all of CLuaInterface's virtual functions?
  • [QUOTE=garry;36827278]No - I can add another function to query dyanmic lighting[/QUOTE] Id love you even more. <3
  • [QUOTE=JustSoFaded;36828173]What is this j _ _ o vtable? And why does it contain all of CLuaInterface's virtual functions?[/QUOTE] I'd say it's an initial attempt at obfuscation. It's not like someone in their perfect mind would name a class with such thing.
  • Avatar of JustSoFaded
  • [QUOTE=danielga;36829847]I'd say it's an initial attempt at obfuscation. It's not like someone in their perfect mind would name a class with such thing.[/QUOTE] That's what I had assumed, and then I started thinking it was related to GAC. Can you confirm or explain, Garry?
  • Avatar of beasty
  • [QUOTE=Sakarias88;36827529]I've been working on engine sounds and other details on SCars. Have tried to mix several engine sounds before at different RPMs because it's how most racing games do it to get a good engine sound. Each time I've tried it I've failed. Have always sounded weird or choppy. Think this was my third try and this time I actually succeed. Sounds a lot better than just pitching a single sound. Also got a model from TDM which allowed me to change the steering wheel, rpm gage and the speedometer through poseparams. Sometimes it's the details that matters after all. [media]http://www.youtube.com/watch?v=3vPchL3pBn8[/media][/QUOTE] That's really amazing. That dodge viper oh my god! Well done.
  • [QUOTE=JustSoFaded;36830064]That's what I had assumed, and then I started thinking it was related to GAC. Can you confirm or explain, Garry?[/QUOTE] You can forget about that question if it is indeed related to the anti-cheat. He wants to keep the whole anti-cheat thing super-secret.
  • Avatar of JustSoFaded
  • [QUOTE=danielga;36831539]You can forget about that question if it is indeed related to the anti-cheat. He wants to keep the whole anti-cheat thing super-secret.[/QUOTE] Well, I can't see any other reason for him to randomly make the CLuaInteface disappear, and then create this identical class j__o containing the exact same functions.
  • Avatar of Mr. Quiggles
  • After some down time due to life (mainly due to my father and how his perception/comprehension deemed my words as false, when they had a far deeper meaning, taking away my main laptop, and since he's a stubborn/hardheaded fat & candy-assgot, I'm not even bothering arguing), I got some work done with the Minecraft-esque addon. In Minecraft, not all blocks are perfect cubes. Liquids (lava and water), farm land, stairs, end portal frame, portals, doors, signs, rails, seeds, pressure plates, pistons, vines, ladders, saplings, tall grass, etc. etc., blah and blah, and of course half slabs. To easily add support for new blocks, such as adding slopes and what-not's, why not have a value / function to render out the vertices of a block, instead of having predefined vertices during chunk mesh rendering. Plus with a separate function to render out the block, it'll be better to call specific checks, such as rendering a portion of a side, such as if there's a block like farm land near the side that's being rendered. Of course, due to the possibly-QQful aside/anecdote/whatever and the lack of a good computer to show it off, I can't really show that in action. Plus with the lack of documentation with meshes, it'll be a while to actually show it. I am using a MacBook (Yes, they are bad, but surprisingly good frame rate on high video settings, which is really weird because it gets higher frame rate than lowest graphic settings. I apologize for the, once again, large wall of QQ and blog-esque post. Just pissed. Oh, and also contemplating about deep, philosophical shit. [editline]7.18.2012[/editline] I almost forgot. I was working on adding the Clock Town music to play in the LoZ addon, but I didn't really continue with it, since 'net.WriteTable()' breaking and all. I'm updating the Workshop version to support this. Alas, the rain on Day 2 prevents the song from playing. [editline]7.18.2012[/editline] If only 'util.AddNetworkString()' worked faster. Running this addon under Singleplayer makes it where I have to delay the two 'net' streams to send the world data (seed, chunk sizes, render distance) and the initial chunk data (position, blocks). On a dedicated server, it wouldn't really matter as you can easily delay when a player initializes by not joining as soon as the server gets up. [b]But[/b], there's an issue with map changes, which I highly doubt since this project is now not aiming for "what could I do with adding this to any game mode and what practical purpose this will serve?". [editline]7.18.2012[/editline] Hm... So the issue wasn't due to 'util.AddNetworkString()', but it was because I forgot to add '[ufDOS]' before streaming. Anyways, a new issue has occurred: [quote][img]https://dl.dropbox.com/u/51054514/Garry%27s%20Mod/Screenshots/Instant%20Disconnect.png[/img][/quote] It's streaming too many chunks at one time. This issue didn't happen with datastream. Ironic, isn't it? [editline]7.18.2012[/editline] Gee... Once again, apologizing for a blog-esque post, and I get ratings I don't usually get.
  • @Quiggles hope all goes well with the situation! You do great work. In other news, I made the good ol' bombard spell into a RTD possibility on the Sassilization Deathrun server... [video=youtube;vdm38eGqnuI]http://www.youtube.com/watch?v=vdm38eGqnuI&feature=youtu.be[/video] bombarddd
  • Avatar of garry
  • [QUOTE=FoohyAB;36823026]Garry, any leads to that problem with ComputeLighting/GetLightColor?[/QUOTE] Looking at the code.. try setting lightcache_maxmiss to 9999999999 - let me know if it makes a difference
  • Avatar of Mr. Quiggles
  • I added, to the 'Stream' module thing, stream queuing, plus adding the callback functions to the table. It's nothing neat, it's just a delay by how long and uses a 'timer.Simple()'. Nothing fancy. It was just an alternative to delaying everything, but that entire error was due to string mismatches. I'm starting to get sick of that. While I was contemplating on how the hell will I get data values, the ones that tell apart birch logs from oak, and different wool colors, since it'll be costly to add that into a table for chunks and block data, why not use floats? For example, wool's ID in Minecraft is '35'. Black wool is '35:15'. In the instance of storing the block data, it would be '35.15'. The block ID can be obtained by using 'math.floor()', while the data value can be obtained by '35.15 - math.floor(35.15)' I'm sure there's a much easier alternative to grab the decimal number. In theory, this would allow an infinite amount of block combinations under one block. Perfect to keep shit organized! There's still the issue with memory, and since I don't know how to easily store bytes like the C# interpretation, I guess I'll have to deal with the RAM usage. Too bad that the mechanic mentioned above won't see light for a while. Still working on meshes, which [b]I'm probably going at a completely wrong angle at it.[/b] [offtopic] [QUOTE=Spencer Sharkey;36834844]@Quiggles hope all goes well with the situation! You do great work.[/QUOTE] Thanks. My father is a bit... anal, about me and 'electronic devices/entertainment'. Just can't wait until I move out. As long as I have this horrible-yet-lasting MacBook, I should be able to push content still. That, or I could sell it and buy another Asus G53 or something and keep it hidden like Anne Frank, minus the attic. Oh look, more blog-esque posts that can be comprehended as QQ. Gee... [QUOTE=Spencer Sharkey;36834844]In other news, I made the good ol' bombard spell into a RTD possibility on the Sassilization Deathrun server... -video- bombarddd[/QUOTE] What does that remind me of... It's screaming [URL="http://www.totaljerkface.com/divine_intervention.php"]Divine Intervention[/URL] for some reason.
  • Avatar of Legend286
  • [QUOTE=Mr. Quiggles;36837318]I added, to the 'Stream' module thing, stream queuing, plus adding the callback functions to the table. It's nothing neat, it's just a delay by how long and uses a 'timer.Simple()'. Nothing fancy. It was just an alternative to delaying everything, but that entire error was due to string mismatches. I'm starting to get sick of that. While I was contemplating on how the hell will I get data values, the ones that tell apart birch logs from oak, and different wool colors, since it'll be costly to add that into a table for chunks and block data, why not use floats? For example, wool's ID in Minecraft is '35'. Black wool is '35:15'. In the instance of storing the block data, it would be '35.15'. The block ID can be obtained by using 'math.floor()', while the data value can be obtained by '35.15 - math.floor(35.15)' I'm sure there's a much easier alternative to grab the decimal number. In theory, this would allow an infinite amount of block combinations under one block. Perfect to keep shit organized! There's still the issue with memory, and since I don't know how to easily store bytes like the C# interpretation, I guess I'll have to deal with the RAM usage. Too bad that the mechanic mentioned above won't see light for a while. Still working on meshes, which [b]I'm probably going at a completely wrong angle at it.[/b] [offtopic] Thanks. My father is a bit... anal, about me and 'electronic devices/entertainment'. Just can't wait until I move out. As long as I have this horrible-yet-lasting MacBook, I should be able to push content still. That, or I could sell it and buy another Asus G53 or something and keep it hidden like Anne Frank, minus the attic. Oh look, more blog-esque posts that can be comprehended as QQ. Gee... What does that remind me of... It's screaming [URL="http://www.totaljerkface.com/divine_intervention.php"]Divine Intervention[/URL] for some reason.[/QUOTE] If gmod has math.Frac you could use that to only return the decimal. Oh, it doesn't. But maybe you could just add it yourself to make it easier for finding the decimal in the future.