• What are you working on? December 2011 Edition
    3,353 replies, posted
[QUOTE=amcfaggot;33862028]Problems I already see: *We provide lua51.dll as a dynamically linked library. (This opens a lot of shit up, we should be statically baking the binaries in soon or something.) *We're open source. *Even if we find a way to do some sort of authorization, you could scan for the functions to run Lua files at anytime. There's probably a lot more here that I'm missing, but these things come to mind first.[/QUOTE] Not much you can do; although if you're really desperate, you can serve [URL="http://www.lua.org/source/5.1/luac.c.html#combine"]combined, pre-compiled .luac byte-code[/URL] and have the client stream it directly into the VM with some extra effort. Strip away Lua's lexer and normal lua files can't be executed at all (assuming that you link the library statically to prevent anyone from replacing the dll with a vanilla one).
My problem with that is that we use interchangeable Lua binaries. You can swap them at your discretion, and compiled code across different binaries varies. I also remember reading somewhere that the bytecode varies across systems as well. [editline]23rd December 2011[/editline] Clever idea, though.
[QUOTE=voodooattack;33862944]Strip away Lua's lexer and normal lua files can't be executed at all (assuming that you link the library statically to prevent anyone from replacing the dll with a vanilla one).[/QUOTE] And then someone will just inject a DLL that allows them to push their own pre-compiled Lua to the VM.
That, too. There's just too many ways to run your own stuff: using a Valve Server Plugin and sigscanning for the functions, injection, writing your own Lua module which grabs signatures at DllMain and does whatever it wants through hooking, the list goes on and on.
That's expected. I never said it'd stop someone who's determined enough, it'll just make it that much more difficult.
Someone from WAYWO would make a public exploit if the ways to sort-of-solve the problem were discussed here, methinks.
You need people playing your game to have people cheating at it. I'd worry about that first.
I think it's more a matter of practice at this point.
[QUOTE=Jcorp;33861757]Bettter (slightly) terrain gen! [img]http://dl.dropbox.com/u/6470891/thisorthis1.png[/img] Still need to add proper continents, but for the moment land will just have to be one big island :v:[/QUOTE] I see you are using XNA. How do you generate that random terrain? I have been tinkering around with that problem with no results.
[QUOTE=Funley;33863543]I see you are using XNA. How do you generate that random terrain? I have been tinkering around with that problem with no results.[/QUOTE] Use a 2D array, use perlin noise on it, if the value is higher than a certain treshold value set it to 1, else set it to 0?
[quote] Sorry to rain on your parade supersnail but, have YOU read Kongs own upload rules/guidelines ? Quote: Please remember that we do not accept photographs or works dominated by words. I'd say that this probably falls into the 'Works dominated by words' section. Therefor, still flagged. [/quote] He read the guidelines for [URL="http://www.kongregate.com/collabs/new"]submitting pictures to Kongregate Collab[/URL], not [URL="http://developers.kongregate.com/docs/resources/faq#guidelines"]the real rules[/URL]. Also either I'm banned or the website is crashing a lot, because I keep getting error messages and the game is unpublished and it won't let me publish it.
[QUOTE=amcfaggot;33862978]My problem with that is that we use interchangeable Lua binaries. You can swap them at your discretion, and compiled code across different binaries varies. I also remember reading somewhere that the bytecode varies across systems as well. [editline]23rd December 2011[/editline] Clever idea, though.[/QUOTE] Why not give the server owner the 'final authority'. Clients should be "dumb" in that they receive data from the server, but do not manipulate it, and send commands to the server (which it can choose to ignore, so if they use a script with a command the server doesn't understand it can either kick them or just ignore them, or log them and then find them a week later and burn their house down.)
I'm messing around with Unity, trying to make a tower-defense like game. I want multiple creeps, so I wrote a timer function to use in spawning them. Since it uses threading, who knows what might happen. But it's crashing in unity's code, not mine. Is there anything obviously wrong with this? public void Timer(int miliseconds, TimerCallback del,int times=1) { new Thread(() => { for (int i = 0; i < times; i++) { Thread.Sleep(miliseconds); del(); } }).Start(); }Also, crash:[code]UnityEngine.Object:Internal_CloneSingle(Object) UnityEngine.Object:Instantiate(Object) (at C:\BuildAgent\work\842f9557127e852\Runtime\ExportGenerated\Editor\UnityEngineObject.cs:56) CreepSpawner:<Start>m__0() (at Assets\CreepScripts\CreepSpawner.cs:19) <Timer>c__AnonStorey0:<>m__1() (at Assets\CreepScripts\CreepSpawner.cs:27) [/code] And a picture, because why not. [img_thumb]http://dl.dropbox.com/u/5270951/Untitled.png[/img_thumb] Yeah, I need actual textures. I know.
Out of curiosity, what's wrong with a float set to the interval that is decremented every "Update()" by Time.deltaTime till it hits zero, firing a delegate off? You could make it a prefab, attached to a gameObject. And use GameObject.Instanciate() to create it and GetComponent to set it up. (This is how I've been doing it, obviously everyone designs things differently)
[QUOTE=Tezzanator92;33864355]Out of curiosity, what's wrong with a float set to the interval that is decremented every "Update()" by Time.deltaTime till it hits zero, firing a delegate off? (This is how I've been doing it, obviously everyone designs things differently)[/QUOTE] Nothing, I just didn't think of that. I'll try that, thanks. Yup, works almost perfectly. There seem to be odd lags and unevenness in the timing though... [img]http://dl.dropbox.com/u/5270951/Untitled3.png[/img]
- oops, wrong WAYWO. -
[QUOTE=supersnail11;33864243]Also either I'm banned or the website is crashing a lot, because I keep getting error messages and the game is unpublished and it won't let me publish it.[/QUOTE] The site's down for me, so probably the latter.
[QUOTE=Chandler;33864301]Why not give the server owner the 'final authority'. Clients should be "dumb" in that they receive data from the server, but do not manipulate it, and send commands to the server (which it can choose to ignore, so if they use a script with a command the server doesn't understand it can either kick them or just ignore them, or log them and then find them a week later and burn their house down.)[/QUOTE] Because Lua is ran on the client, not magically from the server then somehow also magically sent to the client.
[QUOTE=bobthe2lol;33864380]Nothing, I just didn't think of that. I'll try that, thanks. Yup, works almost perfectly. There seem to be odd lags and unevenness in the timing though... [img]http://dl.dropbox.com/u/5270951/Untitled3.png[/img][/QUOTE] Does it work any better using [url=http://unity3d.com/support/documentation/ScriptReference/MonoBehaviour.FixedUpdate.html]FixedUpdate()[/url]? I've never used fixedupdate so you may have to look into it a bit :o (I just stumbled across it while looking up timing for unity) I'm guessing everything I;ve used the timer for hasn't needed to be so critical, I've never noticed the unevenness before!
[QUOTE=Funley;33863543]I see you are using XNA. How do you generate that random terrain? I have been tinkering around with that problem with no results.[/QUOTE] Yeah, a few days ago I was basically the same, but I guess that my pissing around must have been a bit more successful :eng101: I played around with a couple of things, but knowing jack shit about perlin noise I decided to check out the standard random function in C# and build it in somehow. The first thing was to just spatter the tiles around any-old-how, as shown in this; [img]http://dl.dropbox.com/u/6470891/firsttherewasthisshit.png[/img] How it works is that there are several 'passes' of the generator (i.e. things like mapGenLand, mapGenWater), which all have a certain chance of spawning their respective tiles. Here for example, it's more common for grass to spawn than water. A thing about this is that you can layer the terrain, so I generate the water first and then put the ground on top of it. As you can see, it's not particularly "island-y", so I decided to play around with restricting where the tiles will spawn, and made it so that a water border would always spawn around the land. (Side note: every square is actually a chunk, which is a 4*4 collection of smaller tiles). I then made it find out what tiles were around each tile, and fill in any that had enough land around it (but for some reason it didn't do it every time, which made for some nice lakes here and there). Eventually I had something along these lines; [img]http://dl.dropbox.com/u/6470891/thentherewasthis.png[/img] There were still a lot of problems with this code, plus it wasn't quite what I wanted, so I had to move some stuff around untill it got *relatively* nice-looking. The last thing I did was to check all the chunks around each and add a dirt/sand border between land and water, like in my post that you quoted. It's not an exact science, but I think that's just about all you can get away with without learning how to make perlin.
The hell? I'm not a super-king at backend programming, but couldn't they just create a simple API in PHP to grab data rather than connect directly?
[QUOTE=Jcorp;33865050]Yeah, a few days ago I was basically the same, but I guess that my pissing around must have been a bit more successful :eng101: I played around with a couple of things, but knowing jack shit about perlin noise I decided to check out the standard random function in C# and build it in somehow. The first thing was to just spatter the tiles around any-old-how, as shown in this; [img]http://dl.dropbox.com/u/6470891/firsttherewasthisshit.png[/img] How it works is that there are several 'passes' of the generator (i.e. things like mapGenLand, mapGenWater), which all have a certain chance of spawning their respective tiles. Here for example, it's more common for grass to spawn than water. A thing about this is that you can layer the terrain, so I generate the water first and then put the ground on top of it. As you can see, it's not particularly "island-y", so I decided to play around with restricting where the tiles will spawn, and made it so that a water border would always spawn around the land. (Side note: every square is actually a chunk, which is a 4*4 collection of smaller tiles). I then made it find out what tiles were around each tile, and fill in any that had enough land around it (but for some reason it didn't do it every time, which made for some nice lakes here and there). Eventually I had something along these lines; [img]http://dl.dropbox.com/u/6470891/thentherewasthis.png[/img] There were still a lot of problems with this code, plus it wasn't quite what I wanted, so I had to move some stuff around untill it got *relatively* nice-looking. The last thing I did was to check all the chunks around each and add a dirt/sand border between land and water, like in my post that you quoted. It's not an exact science, but I think that's just about all you can get away with without learning how to make perlin.[/QUOTE] The treshold of setting green tiles should become smaller the closer the tile is to the center, this will make it look more natural I think And less square
[QUOTE=Chandler;33864301]Why not give the server owner the 'final authority'. Clients should be "dumb" in that they receive data from the server, but do not manipulate it, and send commands to the server (which it can choose to ignore, so if they use a script with a command the server doesn't understand it can either kick them or just ignore them, or log them and then find them a week later and burn their house down.)[/QUOTE] This doesn't work for something like aimbots. The only way to fix them would be to use Onlive and even that could be circumvented with AIs that can analyze the video stream. Long story short: You can't do shit.
Arrragh, premake is pissing me off! Why can't I do this: [code]project "tsl" files { "*.h", "*.c" } configuration "*SDL" excludes { "console.h", "console.c" } configuration "*Curses" excludes { "sdlui.h", "sdlui.c" }[/code]
[QUOTE=Robber;33865969]This doesn't work for something like aimbots. The only way to fix them would be to use Onlive and even that could be circumvented with AIs that can analyze the video stream. Long story short: You can't do shit.[/QUOTE] I'm not attacking it from a security standpoint. This is a basic state sync setup, which just helps client A know that everything on his screen is also shown the same (in terms of memory state, not actual looks) on client B's screen. Security for something like that is to just ban the ip from connecting to the server. Or use VAC :v: Long story short: It's not a security issue, it's a content assurance issue. (it can be a security issue, but in what I was suggesting it isn't)
[IMG]http://i.imgur.com/NmbPm.png[/IMG] Fuck you point sprites, I'm making my own fucking billboard quads with a fucking geometry shader! How do you like THEM apples?!
[QUOTE=supersnail11;33864243]He read the guidelines for [URL="http://www.kongregate.com/collabs/new"]submitting pictures to Kongregate Collab[/URL], not [URL="http://developers.kongregate.com/docs/resources/faq#guidelines"]the real rules[/URL]. Also either I'm banned or the website is crashing a lot, because I keep getting error messages and the game is unpublished and it won't let me publish it.[/QUOTE] If I remember correctly, I've enjoyed a [URL="http://www.kongregate.com/games/Rete/dont-shit-your-pants"]text-based adventure[/URL] on kongregate before. [editline]24th December 2011[/editline] Fucking premake.. look what you made me do? [code]find *.c *.h | sed -e 's/\(.*\)/"\1",/' | tr -d "\n" | sed -e 's/\(.*\)/\{\1\}/'[/code] [code]{"ability.c","actions.c","ai.c",...}[/code] Now I need to exclude the files manually. Sigh.
Super Meat World is up again, they appear to have messed with the permissions this time though, I cant INSERT into featured chapters, which I expected to be able to, and I cant run UPDATE I think they just globally blocked off INSERT AND UPDATE, let me check [editline]23rd December 2011[/editline] Atleast they temporarly patched it up [editline]23rd December 2011[/editline] Okey, they just removed everything but SELECT and USAGE Was fun while it lasted :v:
It's still a stupid way to do this. There might be vulnerabilities in mysqld.
What? It looks like I can't specify what files are included per configuration. Bullshit. [editline]24th December 2011[/editline] [QUOTE=Tobba;33866505]Super Meat World is up again, they appear to have messed with the permissions this time though, I cant INSERT into featured chapters, which I expected to be able to, and I cant run UPDATE I think they just globally blocked off INSERT AND UPDATE, let me check [editline]23rd December 2011[/editline] Atleast they temporarly patched it up [editline]23rd December 2011[/editline] Okey, they just removed everything but SELECT and USAGE Was fun while it lasted :v:[/QUOTE] If they keep this up, permanent damage is inevitable.
Sorry, you need to Log In to post a reply to this thread.