• What Are You Working On? - August 2014
    1,181 replies, posted
[QUOTE=high;45695405]Not sure if I'm just tired or fuck batch. [code]for %%f in (*.obj) do LIB /DEF:%%f >> log.txt[/code] generates empty lib files [code]for %%f in (*.obj) do LIB /DEF: %%f >> log.txt[/code] works fine[/QUOTE] LIB files? What are you using; IBMi?
[QUOTE=Trumple;45700264]I had some issues with it too - TortoiseGit is a nice GUI alternative if you don't want to use command line[/QUOTE] TortoiseGit is terrible. SourceTree is a lot better but still not quite as good as TortoiseHg (which, as the name implies, only supports Mercurial).
[QUOTE=Tamschi;45701569]TortoiseGit is terrible.[/QUOTE] The UI is outdated, I guess I'm just used to it from when I used TortoiseSVN. What do you dislike about it? [QUOTE=Tamschi;45701569]SourceTree is a lot better but still not quite as good as TortoiseHg (which, as the name implies, only supports Mercurial).[/QUOTE] Thanks for the suggestion, I'll try it out.
With help from [URL="https://github.com/Rohansi/Mond/tree/master/Mond/Compiler"]Rohan's Mond compiler[/URL], I implemented a Pratt parser so that Manhood can do math! It can use tags to get numbers... [img]http://i.imgur.com/Uoyozoe.png[/img] It can randomly pick operators... [img]http://i.imgur.com/P99oXCg.png[/img] It can even use variables. [img]http://i.imgur.com/24elQ5o.png[/img] Nothing can stop it now.
[QUOTE=Xystus234;45694479]Annandale or Loudoun?[/QUOTE] Loudoun. I used to go to annandale [editline]15th August 2014[/editline] Updated some sprites to look more mario-y and optimized some memory usage so it goes faster. Mind you, not nearly as fast as this video shows(which is at 100fps. mine runs at about 20 fps). but it doesn't lag anymore; it simply runs at a consistent speed. I'm looking into how to optimize memory stuff [vid]http://webmup.com/tw73w/vid.webm[/vid]
I am an excellent programmer [IMG]https://dl.dropboxusercontent.com/u/9317774/finework.PNG[/IMG] [IMG]https://dl.dropboxusercontent.com/u/9317774/goodjobme.PNG[/IMG] [IMG]https://dl.dropboxusercontent.com/u/9317774/bestman.PNG[/IMG] Optimising my renderer is going exceptionally well as you can clearly see I also finally have turned up the resolution from 800x600 -> 1024x768, and now it runs at 7-8ms/frame, which is ok but not overly fantastic, so I'll likely have to do some actual optimising in the near future Interestingly I found out that the inbuilt OpenCL functions like get_image_width etc (at least on arm) are *not* free and require a load/store instruction to read the value, whereas if you pass it in as a naked parameter it gets stuck in a uniform register and doesn't require any kind of loading to use
[QUOTE=Trumple;45701948]The UI is outdated, I guess I'm just used to it from when I used TortoiseSVN. What do you dislike about it?[/QUOTE] It feels like using the command line in a way, only that I have to click and navigate the UI to do it. It presents almost no information by itself and the many different windows and dialogues that you have to open to do something are confusing. It's also really ugly. [QUOTE=Trumple;45701948]Thanks for the suggestion, I'll try it out.[/QUOTE] SourceTree and TortoiseHg are pretty much version control IDEs, you have one window and usually don't need to open the file explorer at all. Some actions still require dialogues, but they are more of the type you'd find in VS. TortoiseHg is more streamlined and a bit faster than SourceTree, but I think you need to configure it a bit until it's perfect.
I've been working more on my Batch Image Processor lately. Shopped around for a solution to allow me to show the shell menu for images, found something nice and now you can shift+right click on an image (either in the tree view or the grid view) to display that. Also made the app able to react to file system changes like file renames, edits, and (eventually) deletions. Finally added some tooltips to the tree view so it's easier to tell what image belongs to what name as well. UI is about 75% complete, and I'm already planning features for version 2... Trying not to get ahead of myself. [img]https://imagizer.imageshack.us/v2/1280x720q90/540/9po4uu.png[/img] [img]https://imagizer.imageshack.us/v2/477x340q90/742/G0Ea4T.png[/img] All the UI needs now is the options panes, default right-click menus, and open folder/file dialogs! Then I have to write the image processing backend *shudders* As far as my other project (the Minecraft entity "summon" command generator) it's pretty much feature-complete, just need to implement all the different entities. Already planning a v2 that allows me to wrote XML files for the entities instead of hard-coding them. still fairly proud of the level of reflection, the options panels are entirely generated at run-time by reflecting on the entities' class properties. :D [img]https://imagizer.imageshack.us/v2/800x655q90/910/HrXhNb.png[/img] Sorry about all the images... I believe I heard that thumbnails/links are discouraged? Also, don't mind the green numbers, ShadowPlay is a bitch.
Don't know who discouraged thumbnails/links but it wasn't us. Use [noparse][t]<img>[/t][/noparse] if you want to thumbnail but that was only 3 images, it wasn't bad at all.
[QUOTE=MrLiam;45700854]LIB files? What are you using; IBMi?[/QUOTE] Stubbing c++ classes so that I can dynamically link to a dll which I don't have the source/headers for. [url]http://support.microsoft.com/kb/131313[/url]
Hooray! A (pseudo) vertex shader! [IMG]https://dl.dropboxusercontent.com/u/9317774/wobbly%21.PNG[/IMG] You'll notice its all wobbly and shit, its a fisheye vertex 'shader' which contains distortion coordinates in 3D space, and warps all the vertices within 100 pixels radius of them (in screenspace) by some amount! The way it works is by accumulating vertex distorters onto a 2D buffer, and then in the triangle fragmentation (ie split into smaller bits to be processed) stage, vertices check this buffer and offset themselves by the value on the buffer. [cpp] __kernel void create_distortion_offset(__global float4* const distort_pos, int distort_num, float4 c_pos, float4 c_rot, __global float2* distort_buffer) { uint x = get_global_id(0); uint y = get_global_id(1); if(x >= SCREENWIDTH || y >= SCREENHEIGHT) return; //pixel radius to check around int radius = 100; float3 camera_pos = c_pos.xyz; float3 camera_rot = c_rot.xyz; distort_buffer[y*SCREENWIDTH + x] = (float2)0; //how far to move pixels at the most, ideally < radius otherwise it looks very strange int move_dist = 10; //sum distorts and output at the end float2 xysum = 0; //for every vertex distorter for(int i=0; i<distort_num; i++) { //nab its position float3 pos = distort_pos[i].xyz; //rotate it around the camera float3 rotated = rot(pos, camera_pos, camera_rot); //project it into screenspace float3 projected = depth_project_singular(rotated, SCREENWIDTH, SCREENHEIGHT, FOV_CONST); //so i can adjust the radius based on depth later float adjusted_radius = radius; float dist; //is the pixel within the radius from the screenspace coordinate of the distorter? if((dist = fast_distance((float2){x, y}, projected.xy)) < adjusted_radius) { //distance remainder float rem = adjusted_radius - dist; //distance remainder as a fraction float frac = rem / adjusted_radius; //fisheye float mov = move_dist*sin(frac*M_PI); //get the angle float angle = atan2(y - projected.y, x - projected.x); //get the relative offsets float ox = mov * sin(angle); float oy = -mov * cos(angle); //om nom nom xysum += (float2){ox, oy}; } } //write that shit out distort_buffer[y*SCREENWIDTH + x] = xysum; } [/cpp] I'm pretty happy with how efficient it is, it seems to have had no impact on frametime. Its also nice to be writing OpenCL again for a platform with a compiler that isn't completely retarded, no vector instructions (I have learnt to severely hate them), fewer register limitations, and most importantly regular desktop GPUs are fast as balls
[QUOTE=Icedshot;45702360]I am an excellent programmer [IMG]https://dl.dropboxusercontent.com/u/9317774/finework.PNG[/IMG] [IMG]https://dl.dropboxusercontent.com/u/9317774/goodjobme.PNG[/IMG] [IMG]https://dl.dropboxusercontent.com/u/9317774/bestman.PNG[/IMG] Optimising my renderer is going exceptionally well as you can clearly see I also finally have turned up the resolution from 800x600 -> 1024x768, and now it runs at 7-8ms/frame, which is ok but not overly fantastic, so I'll likely have to do some actual optimising in the near future Interestingly I found out that the inbuilt OpenCL functions like get_image_width etc (at least on arm) are *not* free and require a load/store instruction to read the value, whereas if you pass it in as a naked parameter it gets stuck in a uniform register and doesn't require any kind of loading to use[/QUOTE] Has anybody ever made a game with a broken renderer like this?
[QUOTE=Ott;45703914]Has anybody ever made a game with a broken renderer like this?[/QUOTE] In this case, the mipmapping was interpolating between different textures (rather than different texture resolutions of the same texture), which meant that textures were fading between other textures depending on your distance from them. It was pretty weird to move around like that Also, the renderer is in a permanent state of being broken, and I am making a game with it, so the answer is yes
[QUOTE=Ott;45703914]Has anybody ever made a game with a broken renderer like this?[/QUOTE] [img]http://i.imgur.com/RQSvNvA.png[/img]
Got polygon detection working (mostly). The only thing I need to do now is reintroduce leaves into existing polygons, but that shouldn't be too hard. Actually it will probably be infuriatingly hard but we'll see. [img]http://i.imgur.com/N2NPMMQ.png[/img] [img]http://i.imgur.com/KmOsTZO.png[/img] These pictures aren't too big are they? Oh god what: [img]http://i.imgur.com/F2unXc1.png[/img]
[img]http://i.imgur.com/2d4lvRs.png[/img] I wrote a 5 minute example of the stencil for the console. [editline]16th August 2014[/editline] Hmm imagine an OpenGL API except it wouldn't render like it does but to the console.
[QUOTE=cartman300;45705436][img]http://i.imgur.com/2d4lvRs.png[/img] I wrote a 5 minute example of the stencil for the console. [editline]16th August 2014[/editline] Hmm imagine an OpenGL API except it wouldn't render like it does but to the console.[/QUOTE] Use SetPixel >:d
[QUOTE=cartman300;45705436] Hmm imagine an OpenGL API except it wouldn't render like it does but to the console.[/QUOTE] I wrote [URL="https://github.com/TheBerkin/StdPaint"]something like that[/URL] a while back. Perhaps it's time to resurrect it? From the demo projects: [IMG]http://i.imgur.com/U0WytXI.gif[/IMG]
[url=http://gamejolt.com/games/arcade/versus-the-old-one-two/32352/][img]https://31.media.tumblr.com/d35f64b4b41d45e16c89b8555e8a466f/tumblr_inline_naeivxvYA91s8fda7.png[/img][/url] So I made this shit in less than 15 minutes and then spent 10 hours trying to get it to fucking work with GWT. [i]That sure was frustrating.[/i] [url=gamejolt.com/games/arcade/versus-the-old-one-two/32352/]Play it here![/url] [quote]Quick little two player boxing game. Throw left and right punches in order faster than your opponent. Player 1: 'A' and 'D' controls Blue. Player 2: Numpad 4 and 6 control Red. Space restarts when someone wins.[/quote]
[QUOTE=Dr. Evilcop;45706951][url=http://gamejolt.com/games/arcade/versus-the-old-one-two/32352/][img]https://31.media.tumblr.com/d35f64b4b41d45e16c89b8555e8a466f/tumblr_inline_naeivxvYA91s8fda7.png[/img][/url] So I made this shit in less than 15 minutes and then spent 10 hours trying to get it to fucking work with GWT. [i]That sure was frustrating.[/i] [url=gamejolt.com/games/arcade/versus-the-old-one-two/32352/]Play it here![/url][/QUOTE] Someone just needs to make an online multiplayer version of this now :v: [editline]16th August 2014[/editline] Also, this is awesome.
Some of you might remember some time ago, when I made a post here about auto liking everyone on a dating site? I decided to try again, but this time with the ever so popular Tinder mobile app. [B]Step one:[/B] Look at the web requests. Luckily for me, I still had Charles, and it was just set my pc as my phones proxy and go like some people on Tinder. After further studying the requests, there was next to no security. Only an authentication token was added in the headers - And it was the same every single time. Perfect! [B]Step two:[/B] Understanding the web requests. There are two requests. A "Give me my next batch of users" and a "Like this user". Both requests responds with JSON text, so that's really easy. [B]Step three:[/B] Automating the shit out of it! Fast forward 1½ hour later, a program was born. You just feed in your authentication token at the top, and keep clicking the button until the cows come home. [B]Step four:[/B] Tell the world! [img]https://dl.dropboxusercontent.com/u/99717/TinderAuto.png[/img]
i looked into my engine and tried to figure out why the models loaded so long ... (it didn't bother the engine at all because i loaded them in separate threads and they just popped up later...) and i found out i was kinda stupid ... calculated the bounding sphere very very unefficiently... Fixed that with simple comparisons during the loading loop and it is fast again :)
[QUOTE=Berkin;45705597]I wrote [URL="https://github.com/TheBerkin/StdPaint"]something like that[/URL] a while back. Perhaps it's time to resurrect it? From the demo projects: [IMG]http://i.imgur.com/U0WytXI.gif[/IMG][/QUOTE] This... this smells like pixels
i fixed almost all the bugs i had :) [IMG]http://3devs.bplaced.net/wp-content/uploads/2014/08/engine.jpg[/IMG] currently has 4 render passes.
I've been working in VB6 for the first time ever for the last 7 weeks now. I was hired for this internship to work in F# and C# stuff for the company's backend system, but instead they've been giving proper intern tasks such as "write a program to monitor our dev environment servers in realtime, we want to know if its the load balancer or the server playing up" and "fix this 10 year old VB6 app because Win7 broke the fuck out of it". I forgot 10 years ago comments didn't exist in code, because as far as I can tell that's the only reason the VB6 thing would have zero comments! It does some black magic with COM, but it's so half arsedly written that I can only just about work out what it does by breaking it purposefully. VB6 is fucking weird. I miss my OO.
[QUOTE=hexpunK;45710180]I've been working in VB6 for the first time ever for the last 7 weeks now. I was hired for this internship to work in F# and C# stuff for the company's backend system, but instead they've been giving proper intern tasks such as "write a program to monitor our dev environment servers in realtime, we want to know if its the load balancer or the server playing up" and "fix this 10 year old VB6 app because Win7 broke the fuck out of it". I forgot 10 years ago comments didn't exist in code, because as far as I can tell that's the only reason the VB6 thing would have zero comments! It does some black magic with COM, but it's so half arsedly written that I can only just about work out what it does by breaking it purposefully. VB6 is fucking weird. I miss my OO.[/QUOTE] Cant you just port it over to C#? [editline]16th August 2014[/editline] Im not sure if this is the best place to ask, or maybe webdev. Ive been looking into encryption, specifically server-client encryption and found this as a good example [url]https://github.com/chengxianga2008/node-cryptojs-aes[/url] So in their simple example the data is 'secure', but I dont see the point in using the encryption for something like that... surely the 'hacker' could use a MitM attack to get hold of the encrypted data, then just call the API to get the passphrase and decrypt it himself?
Picked up my old 317 C# RSPS private server. Opening the client I remember how fucking AWFUL RuneScape used to look. Fun times. Got friends list working: [vid]http://feen.us/i/76/53efc2359c97f.webm[/vid] Got instanced NPCs working. Instances simply segregate entities (objects/npcs/players) so that only entities that share an instance can see each other and interact. Entities can be attached to any amount of instances, and there's a "main" instance that is the main world (but an entity can be removed from this to only see a certain instance). In this video, there are three instances. -The main instance. Both players are connected to this instance, and can see each other. -One instance for each player. The two NPCs above each player are spawned and connected to this instance when the player logs in. Only the player attached to this instance can see and interact with them. This is basic. I also have sequenced events working in this video: [vid]http://feen.us/i/76/53efc346ba3b9.webm[/vid] I've written most of the protocol implementation from scratch, but had to use other private server bases (written in Java) for some things. RS's protocol is fucking craaaazy. There's like 30 different datatypes just to fuck with reverse-engineers. Frankly I want to make a kickass architecture so that I can create actual content that isn't shitty like every other RS Private Server. Then try to get a job at Jagex 8) [editline]16th August 2014[/editline] Oh, and conversations work! [vid]http://feen.us/i/76/53efc42e38f76.webm[/vid]
So I've been working on a framework for using SQLite3 databases in lua, and I recently added (somewhat) support for nanomsg as well, for scaling BSD-like sockets and such, which would (potentially) allow transfering database content through TCP. Now it may not be efficient or anything, but it seems to grow useful as time goes on. Anyway, that's not what I'm *really* posting about, rather it's another gcc vs whatever compiler thing. And it's just about speed in this one. Here's my application (lua, sqlite3, markdown, nanomsg, lua-ext (my application)) being compiled all using Tup. Compiling with gcc: [IMG]http://i.imgur.com/QYibeVI.png[/IMG] (~43s) Compiling with tinycc: [IMG]http://i.imgur.com/kGNomwU.png[/IMG] (~9s) Pretty cool. Now obviously the code generated by GCC is going to be better optimized, so there's that, but it is nonetheless worth thinking about.
-snip- [editline]16th August 2014[/editline] [QUOTE=Zyx;45707446]Some of you might remember some time ago, when I made a post here about auto liking everyone on a dating site? I decided to try again, but this time with the ever so popular Tinder mobile app. [B]Step one:[/B] Look at the web requests. Luckily for me, I still had Charles, and it was just set my pc as my phones proxy and go like some people on Tinder. After further studying the requests, there was next to no security. Only an authentication token was added in the headers - And it was the same every single time. Perfect! [B]Step two:[/B] Understanding the web requests. There are two requests. A "Give me my next batch of users" and a "Like this user". Both requests responds with JSON text, so that's really easy. [B]Step three:[/B] Automating the shit out of it! Fast forward 1½ hour later, a program was born. You just feed in your authentication token at the top, and keep clicking the button until the cows come home. [B]Step four:[/B] Tell the world! [img]https://dl.dropboxusercontent.com/u/99717/TinderAuto.png[/img][/QUOTE] can I get the source? :D
I decided to have a go at making a code editor for Haskell. Making a VS extension was very tedious so I like the idea of a fresh new project that doesn't have to interact with some huge framework. It makes me more motivated and that results in prettier and better code. Anyways, unless I want to write a custom text renderer for WinForms (which I most certainly don't), I have to use RichTextBox and boy oh boy is it not meant for monospaced source code. The only way to say it's tab size is to manually edit the underlying RTF string and change the tab size which is in twips. What are twips? Well, they're 1/20 of a point. And a point is, naturally, 1/72 of an inch. The only working solution I currently have is to have a hidden RTB onto which I write 4 spaces and measure the horizontal distance from the beginning to the end and then convert that into twips using the displays DPI. So much for getting away from horrible hacks.
Sorry, you need to Log In to post a reply to this thread.