• What are you working on?
    5,004 replies, posted
[QUOTE=polkm;49769781]I made that raytracer up there with love, and I know for a fact it can render more than 400 shapes at solid fps. You must have been doing something expenive each frame, like loading images?[/QUOTE] Literally just rendering 1200 short lines, with ~8 FLOPS to position each one. [editline]18th February 2016[/editline] [QUOTE=polkm;49769781]I just ran that code ontop of my raytracer and still got 60+ fps. Have you tried just using the default run function?[/QUOTE] No. Either your CPU is way better than mine (Q6600) or I'm doing something seriously wrong somewhere.
You're blitting twice when you use .present() in love.draw, so that'll hurt FPS more too. Otherwise without more code we can't diagnose it.
Ok... It renders faster in the default run(). Whatever. Already abandoned Lua and its shitty "n = n + 1" syntax. [editline]18th February 2016[/editline] [QUOTE=Map in a box;49769875]You're blitting twice when you use .present() in love.draw, so that'll hurt FPS more too. Otherwise without more code we can't diagnose it.[/QUOTE] That snippet was in love.run(), under a bunch of other stuff.
[QUOTE=mojangsta;49769880]Ok... It renders faster in the default run(). Whatever. Already abandoned Lua and its shitty "n = n + 1" syntax.[/QUOTE] Have you considered not giving up at the first sign of difficulty? :v: [editline]19th February 2016[/editline] Polkm may as well be using Unity 3D at this point so it seems clear the issue here isn't LOVE2D or Lua..
love2d is pretty inefficient for what polkm is doing, but that doesn't mean they should abandon LuaJIT; you can roll your own stuff as I have in my engine in raw luajit
Had an interview for an internship today which was fun, I got answers to all their questions though some of the problems were considerably easier than others. Should hear back in 1-2 weeks apparently, just need to stop worrying now about how I did.
[QUOTE=Map in a box;49769906]love2d is pretty inefficient for what polkm is doing, but that doesn't mean they should abandon LuaJIT; you can roll your own stuff as I have in my engine in raw luajit[/QUOTE] To be fair I only use love for loading textures and shaders and passing around framebuffers. If I was using unity or w.e it would be the same perf except with a neat gui.
[QUOTE=mojangsta;49769737][code] while 1 do for x=1,20 do for y=1,20 do love.graphics.line(somewhere at some angle) end end for x=1,20 do for y=1,20 do love.graphics.line(somewhere at another angle) end end for x=1,20 do for y=1,20 do love.graphics.line(somewhere at a third angle) end end love.graphics.present() end [/code] So 1200 simple lines. Even when love.graphics.line() is replaced with var = var inside the loops, it gives the same FPS. I'm measuring FPS with the Steam overlay, if it matters.[/QUOTE] Did your original application draw lines too? And you aren't drawing lines to represent a shape that you could otherwise draw with LOVE's other drawing "primitives", and/or more importantly, simply draw once and render multiple times? (These are just simple additional optimisation tips; redrawing thousands of individual lines per frame shouldn't be tanking your FPS) [editline]19th February 2016[/editline] [QUOTE=mojangsta;49769880]Whatever. Already abandoned Lua and its shitty "n = n + 1" syntax.[/QUOTE] No comment.
[QUOTE=mojangsta;49769880]Ok... It renders faster in the default run(). Whatever. Already abandoned Lua and its shitty "n = n + 1" syntax.[/QUOTE] That's not a great mindset to have. Just because you run into difficulty doing something doesn't mean that you should completely abandon what you're trying to do - often it allows you to learn more; if not about the framework or language that you're writing it, then paradigms for how you can conceptualize code. There have been many times I've dug around in Rails code and I've thought "that's an interesting way to do that," or looked at the git source code and thought "I wish I knew what is going on." Basically, attempting to solve an issue that you run into allows you to grow as a developer. Giving up on something just because it may be slightly more difficult doesn't give you room to grow. And yes, the weird indexing in Lua also allows you to grow, because you have to build a separate mindset to understand it.
[media]https://www.youtube.com/watch?v=wmSwrkiyOWI[/media] Starting tinkering with a VR sandbox idea, implementing some basic tools/features. So far you can spawn primitives, change the flow of time, reverse/toggle/scale gravity, change the sun's angle, teleport around and change the scale of your character. Once I get my Vive things should get more interesting, but for now I'm targeting Cardboard on the side since I've always wanted a nice sandbox game to play in my Cardboard.
I got animation mostly working! [vid]http://i.imgur.com/PSeGofS.webm[/vid] [sp]mostly[/sp] Most models I use work, but every once in awhile something goes buggers up a little bit. Such is the life of using a model importer that tries to support so many things. Further, some models have absolute texture paths encoded into them from their location on their creator's computer, such as this dwarf above is "C:\Work packs\fantasy\Dwarf\animated..." Now I just need a few more controls, such as an animation queue or something, and then its just another thing I can check off the list.
Decided to actually do what I suggested yesterday and have started working on a Vulkan C# binding generator. Initially I was going to try and modify the vkcpp generator however it seems easier to start again, and naturally using C#. I wish Roslyn wasn't quite so cumbersome for code generation though, it wouldn't be as bad if there were better examples but I'm mostly relying on IntelliSense to discover the correct types/methods. For example. [CODE]foreach (var @enum in enums) { EnumDeclarationSyntax es = Syntax.EnumDeclaration(@enum.Name) .WithBaseList(Syntax.BaseList(Syntax.SingletonSeparatedList(Syntax.SimpleBaseType(Syntax.ParseTypeName("Int32")) as BaseTypeSyntax))); foreach (var member in @enum.Members) { es = es.AddMembers( Syntax.EnumMemberDeclaration(Syntax.List<AttributeListSyntax>(), Syntax.Identifier(member.Name), Syntax.EqualsValueClause(Syntax.LiteralExpression(SyntaxKind.NumericLiteralExpression, Syntax.Literal(member.Value))))); } ns = ns.AddMembers(es); }[/CODE] So far I have just got the enums and flags being generated, but I believe it's correct at least [url]https://gist.github.com/benpye/a8d907d5b4e5a8bb311c[/url] It's still not perfect as I am making assumptions I shouldn't, ie. all enums are Int32 and all bitfields are UInt32, true currently I think however there is enough data in the xml document to work this out properly. I think the proper solution would be to read the typedefs from the xml file, and use those to work out the types, bitfields are a VkFlags really, and enums don't appear to have a defined type so it may be that they should be 32 bit or 64 bit depending upon the platform? EDIT: Slightly improved output, using the data in vk.xml for aliases etc [url]https://gist.github.com/benpye/030075af5958bcaf2383[/url]
[QUOTE=Canary;49766914]No one else has done it though right? This is great shit if you get it fully working and since they work in MP you could start a big thing.[/QUOTE] There was one attempt back in April 2013. It was basically just a normal windows file explorer and a notepad with XML highlighting. [t]http://oi41.tinypic.com/70v19u.jpg[/t]. He did attempt to create a map-viewer, but he only managed to get this [t]http://i.imgur.com/muuOPvo.png[/t] before he lost interest. Yet two guys managed to add bots, airplanes and other cool stuff using nothing but notepad. That was my main motivation, becuase if they managed to do that in notepad, imagine what they could do with more heavy tools. It's already fully working! You can load, modify and export maps easily. The end-game goal is to generate both the server and client executable with one click. And also be able to generate some binary file that includes just the modified files, allowing the user to run my software to install mods instead of having to downlad 1-2 GB worth of content he already have on his machine, where only 2-3 MB worth of files are modified. That comes later though. Fortunately I get a lot of help by the two guys described earlier. It saves me the trouble of having to test everything myself.
I am [i]trying[/i] to write a roguelike. I don't yet have a UI for it so I can't print things to the console to help debug. I wrote a program that basically does what pipes would do if I used them, but I have never been very good with windows api, so I used windows api to check if a file has been written to and if it has, the program will print the last line to the console. It works pretty good so far, it's nice to have a way to print again... This also happens to be the first tool I've ever written to aid in writing another program. :v:
Goalpost changed putting my prototyping and ideas on the backburner :( So have a new soft render prototype: [img]http://i.imgur.com/yMNYHOm.gif[/img] [editline]19th February 2016[/editline] [url=https://gist.github.com/JohnnyonFlame/7e7e7421fe889ce961b0]10-minute non-optimized rushed code.[/url]
idea: feed a bunch of papers about markov chains into a markov chain and publish the resulting paper
[QUOTE=Zelpa;49771904]idea: feed a bunch of papers about markov chains into a markov chain and publish the resulting paper[/QUOTE] Related, you can generate random maths papers: [IMG]http://i.imgur.com/f3kkKPd.png[/IMG] [QUOTE][url=http://thatsmathematics.com/mathgen/]Mathgen[/url] uses a handwritten context-free grammar, essentially starting from a basic template and filling in blanks with textual elements of various types. Those elements could in turn contain other blanks, so the process continues recursively.[/QUOTE] They even got a paper [URL="http://thatsmathematics.com/blog/archives/185"]accepted for publishing[/URL] :v:
I got collision detection and entity deletion in my maybe-roguelike thing. Collision detection is a 3D array to look up who is in each cell. Now I just need to figure out how to give my entities ways to react to each other.
I let my ReSharper license expire a few months ago. Finally bit the bullet and renewed - unghhh, I missed this so much. Yes I am eligible for free student editions but that breaks ToS since I use it at work.
[img]http://i.imgur.com/SKLYt3l.gif[/img] basic game over screen also today i just realized the amount of draw calls i've been wasting on solid color background tiles that wouldn't need to exist if i just cleared the screen with that color.
[QUOTE=Downsider;49769378][vid]http://giant.gfycat.com/DesertedAgitatedDunlin.mp4[/vid] okay this is really fucking brutal and hard to play. damn. i dont even know what to think of this tbh.[/QUOTE] Your mod is now featured on Eurogamer, congrats! [URL]http://www.eurogamer.net/articles/2016-02-19-this-gta-5-hand-tracking-mod-sure-is-unsettling[/URL]
It's crazy how many things from WAYWO get big
[QUOTE=geel9;49775489]It's crazy how many things from WAYWO get big[/QUOTE] :quagmire:
Weight gain is not a laughing matter in the software engineering field.
So, for the past 2 days I've been hunting down an elusive bug, which breaks everything when I reallocate new textures. This is necessary because of the procedural damage system I've got, creating new fighters means adding new textures, rather than sharing the old ones It turns out: boost::compute considers opencl objects to have ownership of their underlying resource, and does not allow you to share, despite inbuilt opencl reference counting. Copying these performs a *move* of the underlying resource, not a copy. Now I understand why people hate c++ operator overloading This meant that my multiple rendering contexts (which shared the same texture source) broke when they grabbed the central resource, only after reallocating, because after a reallocation the central resource was now gone Because each rendering context (I have multiple because of the deferred transparency) could end up with its own unique duplicate of all the textures, and then while reallocating would have a *second* unique duplicate of all textures, as well as the central resource temporarily holding two copies as well (every time a reallocation happened, another full duplicate would be given to one of the 6 possible holders in a pipeline fashion), memory usage got out of hand super duper fast and would instacrash So that was fun Now each object context (just a collection of objects with associated gpu resources) holds its own texture context. That texture context *only* contains necessary rendering resources for *that* object's context. This means that I don't end up sexuplicating (hehe) all my texture resources. There is now no central texture storage as well. Instead of the central texture storage owning all textures after the textures push themselves to it, textures are now allocated from the individual texture contexts. This drastically simplifies their lifetime The downshot of this is that I no longer have a pretty picture generator: [t]https://dl.dropboxusercontent.com/u/9317774/what2.PNG[/t] [t]https://dl.dropboxusercontent.com/u/9317774/sigh5.PNG[/t] [t]https://dl.dropboxusercontent.com/u/9317774/funky.PNG[/t] On the upside, I've nearly moved from the dx9 model of storing all textures cpu side, to the dx10 model of only storing them on the gpu. There is now no central CPU array (or any array at all) of texture memory on the cpu. Mipmaps are generated directly on the gpu. The cpu side textures are left hanging around because everything currently gets rewritten from memory if you reallocate, but very shortly I will be able to update the new texture array from the old one, eliminating this entirely Texture reallocation is now much faster now that I don't have to single threadedly process every texture on the cpu, and generation 4 levels of mipmaps for them, copy them into a giant array, and copy that giant array into the gpu (which involves another cpu->cpu transfer!) I've been meaning to do this for like, a year+ now, so I'm pretty happy it works
[QUOTE=Number-41;49772061]They even got a paper [URL="http://thatsmathematics.com/blog/archives/185"]accepted for publishing[/URL] :v:[/QUOTE] That part isn't so impressive. I have one published math paper and now I get [B]constant[/B] spam to submit it to journals. They're all scams that promise easy approval and start asking for payment as soon as you submit anything for publication.
Having fun with woobly surfaces. [url=http://i.imgur.com/klLGwhX.gif]Sorry gif is big[/url]
[QUOTE=JohnnyOnFlame;49777791]Having fun with woobly surfaces. [url=http://i.imgur.com/klLGwhX.gif]Sorry gif is big[/url][/QUOTE] Very neat, what is that written in?
[QUOTE=Occlusion;49778057]Very neat, what is that written in?[/QUOTE] I'm using EVALDRAW. It's a great tool to assist graphical prototyping. It's missing a few features here and there but it generally works. [editline]20th February 2016[/editline] I just noticed that by bluring that thingie I posted I get a decently convincing spec-map. Neat. [editline]20th February 2016[/editline] [url]http://i.imgur.com/3gMKa8F.gifv[/url] With some post processing this should look p. decent.
Whats the consensus on whether or not WoW server emulation is considered warez? Agree if it is, disagree if its not.
Sorry, you need to Log In to post a reply to this thread.