[QUOTE=JWki;52563108]Yeah that's pretty equivalent to my approach except I do the blit in one step and let the pixel shader decide which fragments to actually blit - guess you could even modulate the blur based on the pixel alpha value so you get stronger frosting for less transparent elements.
And yeah I guess this waywo is dominated by dear imgui.[/QUOTE]
Interesting, that sounds much better optimised than what I'm doing in terms of draw calls. I have literally no performance requirements for graphics (I mean look at it :v:) though so its good enough for now :)
[QUOTE=Icedshot;52563113]Interesting, that sounds much better optimised than what I'm doing in terms of draw calls. I have literally no performance requirements for graphics (I mean look at it :v:) though so its good enough for now :)[/QUOTE]
Tbf idk how much you'd have to fight sfml for this approach so your way probably wins out on the effort/benefit scale big time as well.
I like how you're using dear imgui for your in game ui btw!
[QUOTE=Sidneys1;52563028]I'm always curious about the performance of expression trees at run-time. Is it as performant as the equivalent compiled code?[/QUOTE]
It [I]is[/I] compiled code. Unless you're creating a new function each call, it actually gets compiled and JIT'd in the background.
Incoming blog post:
I just finished my first ever internship for the summer. I learned some things:
[B]Version Control[/B]
I didn't actually learn Version control, I learned how not to do it. Every sprint we started a new repo. Every sprint we made a new project, but sometimes our new projects built on our old ones, and instead of adding to our old projects or branching them, we just abandoned the old repo for our new one. Eventually we had a "final" repo which had our most recent code, and 4 useless repos with old code in them. How do I improve this? No idea, but I feel like I know exactly what [B]not[/B] to do now, so I can go from there. Also, whenever I'd get a bunch of errors in git that I didn't understand, sometimes I just backed up all the code, deleted to local repository, and re-initialized rather than learn what I'm doing wrong
[B]Documentation[/B]
We were asked to turn in documentation a few days before the end of the internship. We should have been doing documentation all along, but all the interns felt a little blindsided because we had sort of forgotten to do it the entire time. I was rushing to make docs on deploying our server and using our API endpoints, and they looked rushed. Documentation is a part of the development process, and not an afterthought. This includes commenting code: I always find myself commenting code AFTER I've written everything instead of while writing it.
[B]Personal feelings about the internship[/B]
Our internship had us working with a technical mentor, a team captain (more of a business kind of person but mine had a background as a software developer), and a marketing intern.
My marketing intern was an interesting girl. She definitely didn't like me, and I didn't go out of my way to make her like me, but she had complaints about me at the beginning so I went out of my way to avoid those things. In general, she seemed to have a lot of contempt for technical people. She had a kind of victim complex and thought that technical people looked down on her because she's not in STEM. As a result, she looked down on us, and kind of made it a gender issue (accused me of "mansplaining" to her, explaining things in a condescending way because she's a woman). She tried to make friends with other girls, but since the other girls were software developers, they didn't seem to really like her much. She was often rushing in the last two days to get stuff done despite having two weeks to get these things done. She rarely communicated with us before the last two days of the sprint when we had to demo what we had gotten done. The other teams' marketing intern was a nice girl who had more of her shit together, managed her time better, got along with others a lot better, and didn't have these odd biases. Our marketing intern completely fucked us on this last project and didn't prepare a presentation at all. I wouldn't recommend her if they asked how she did this summer.
I was often the guy that people went to with problems. Coding questions, "how do I do this", "I can't debug that", etc. I think some people took advantage of my willingness to help people. For some people it seemed like they got used to asking me before just googling something. They'd come to me with a question and I'd have to ask them "did you google it yet?"
I forget who I heard it from, but I think it was like Shigeru Miyamoto or Hayao Miyazaki or some filmmaker or something who said that while the consumer of a movie or game or whatever may see something as the best game ever, they can only see it as a series of compromises and features that were left out. They don't see their accomplishments, but their failures. That's really how I felt this internship. Everything we did, our team captain and everyone at the company was impressed by at our biweekly demos, but I could only focus on the shortcuts we took and the features we didn't get finished. It makes you feel a bit like a failure, but also a bit more motivated to better the next time. I don't like presenting something that I feel is incomplete, and I felt like everything we presented was incomplete.
I like working in software. This is the first time that I've had a job where I go to work for 8 hours a day, and I code, have meetings about our code, have meetings with the marketing intern, etc., and I like doing this. I was always a little nervous about this aspect; I've always liked coding but I never really do it for more than 4 hours or so at a time. This summer I realized I can do it for 8 hours a day, 5 days a week. At first I found our product boring, but after working with it for a while, I got more interested in it because I would think of ways to improve it; being able to write code that I know will actually end up in the final product was great motivation, and now I find myself looking up stuff related to our industry (CRM) while I'm at home on occasion, even working on side projects related to our industry.
[B]Pacing[/B]
I tried to produce a new product every 2 weeks. This was a fool's errand. I don't like releasing incomplete products, but 2 weeks is simply not enough to do what we were trying to do. Perhaps if we had chosen one of these projects to do the entire summer, and really hammer down on it and fix the security issues and bugs and add lots of functionality, I would feel more accomplished; instead of having released 4 pre-alpha proof of concept projects which are barely usable in their current state. Even though I felt as if our projects were the coolest, I feel as if all the other teams have more useful deliverables than my team since they worked diligently on one project each the entire time.
The point of scrum is not to finish a project every two weeks, but to iterate on a project every sprint, measuring your speed and pace and capabilities each time. At the end of each sprint, you figure out what went well, what went wrong, and estimate based on this what you should be able to do next time around. Pushing for a deliverable every week led to cut corners, sloppy code, incompatible naming conventions, and security flaws.
[B]Gamification[/B]
We made up a Kanban board and put sticky notes on it. It felt good to watch them make their way from the left to the right and watch the "done" column pile up faster on my side of the board than on my partner's, but I think what it led to was me "technically" finishing an item, testing bare functionality, and then moving on to another item. I also added items as we went along so that when I felt I was done with the old features, we could cram new features on as well. This isn't good, I think. It made me produce more code, but not better code.
There's a physiological response to seeing things stack up like that; gaining points, collecting sticky notes, measuring how much code you've written. You get caught up in the physical pleasure of writing code that you forget the joy of producing good code, elegant solutions, and something you're actually proud of. I figure there are psychologists that understand this and that's where gambling machines and pay-too-win mobile games come from. It's addicting to see your side pile up even if it's built on a house of cards.
[B]tl;dr[/B]
Worked hard but my code was kinda crap. Did some cool shit but nothing I made felt really useful compared to my coworkers. Still love CS, and I hope I can apply these lessons in the fall for this company
[QUOTE=Berkin;52562131]Expression trees in C# feel like witchcraft. I just wrote a class that dynamically generates a method for any delegate your heart could ever desire, which neatly prints out the values of all arguments passed to it.
It works so well that it's mildly unsettling. I'm expecting the CLR to start demanding sacrificial goats/virgins/kidneys any minute. Its thirst for fresh blood cannot be satiated forever.[/QUOTE]
This might solve a problem I have with EntityFramework. For example, when I want to do Datetime.Now.Date it won't compile and I forget the exception it throws, but it happens for a lot of things where it can't convert it to an expression tree. I've never really looked into it because I just go around it and put it in a variable before the query. Would you mind throwing the code up in a repo?
[QUOTE=Proclivitas;52563637]This might solve a problem I have with EntityFramework. For example, when I want to do Datetime.Now.Date it won't compile and I forget the exception it throws, but it happens for a lot of things where it can't convert it to an expression tree. I've never really looked into it because I just go around it and put it in a variable before the query. Would you mind throwing the code up in a repo?[/QUOTE]
Can't get the code because it's on another machine, but I can tell you how I did it.
First, I got the MethodInfo object for the delegate's Invoke() method. I had to grab the parameters list of the delegate via MethodInfo.GetParameters() and convert them to ParameterExpressions with a Select() call. I then generated an expression that creates a list of string/object pairs where the string is the name of the parameter and the object is its value retrieved with the matching expression. I passed these to a static method that creates display strings for the object values with some custom utility methods, then prints them to the screen.
[QUOTE=proboardslol;52563517]*Internship stuff*[/QUOTE]
Thanks for this, it was an interesting read.
[QUOTE=JWki;52563076]While waiting for the answer to this I decided to try it out myself - didn't take all too long and supports pop ups and tooltips!
The kernel used for the blur is way too expensive and shitty, just wanted to try out my idea of how to make it work - I was already rendering my UI to an offscreen buffer so pretty much all I had to do was to take the main render target, blur it and add it back on top of the main image using a shader that discarded every fragment that was at the same spot as something with nonfull or nonzero alpha in the UI target before composing the UI in, et voila there we go.
Thanks for the challenge! :D[/QUOTE]
I only just noticed this post, does it support popups and tool tips in the sense that layered imgui windows properly frost each other? The only way I could think of solving that was by hooking into imguis rendering and running the shader after each draw call, which is partly why I wrote it as a per window approach vs full screen rendering (so I can carry this on later)
[QUOTE=Icedshot;52564079]I only just noticed this post, does it support popups and tool tips in the sense that layered imgui windows properly frost each other? The only way I could think of solving that was by hooking into imguis rendering and running the shader after each draw call, which is partly why I wrote it as a per window approach vs full screen rendering (so I can carry this on later)[/QUOTE]
Ahhh yeahh no. That doesn't work. I already have my own rendering setup for imgui though, so could add that.
For each window, I'd render it into a buffer, then blur that buffer into another buffer, with the first buffer being additive and the second one clearing each time so each window would have access to a blurred version of the previous ui state.. That's going to get somewhat expensive with lots of windows though, probably a better idea to replace the blur with mipmap lookups.
[img]http://i.imgur.com/MLxXrdN.gif[/img]
basic AI, no pathfinding yet.
[QUOTE=war_man333;52564261][img]http://i.imgur.com/MLxXrdN.gif[/img]
basic AI, no pathfinding yet.[/QUOTE]
transport me back to runescape classic
I'm not aiming for that, but you can have the code
[url]https://github.com/mathiassiig/Necromatic[/url]
[QUOTE=proboardslol;52563517]Incoming blog post:
[B]Documentation[/B]
We were asked to turn in documentation a few days before the end of the internship. We should have been doing documentation all along, but all the interns felt a little blindsided because we had sort of forgotten to do it the entire time. I was rushing to make docs on deploying our server and using our API endpoints, and they looked rushed. Documentation is a part of the development process, and not an afterthought. This includes commenting code: I always find myself commenting code AFTER I've written everything instead of while writing it.
[/QUOTE]
The problem with documenting as you go is that you have no fucking idea where you're going most of the time. The key is to know what your milestones are, and as soon as you can be reasonably sure that it's not something that will change, you can start thinking about documenting it. Documenting as you encounter oddities and weird behaviour is also a good way to go about it, but the way I see a lot of people talk about documentation makes it sound like they sort of expect to be able to do some kind of Waterfall-esque project where every single step of the whole project is known from the outset.
To this day, I don't think I've ever worked on a project where a decent amount of work didn't have to be scrapped in the middle of it, making any documentation that had been made on it either useless or misleading.
Going back through code you've written a while ago (like a couple of months) and trying to re-learn how it works and documenting it as you go is also a great way to go about it. That way you'll approach it with the eyes of someone who's trying to discover the way it works and you'll see the strangeness for what it is, rather than the brilliant web of logical compromises that you knew every nook and cranny of as you were writing it.
tl;dr: I believe documenting as you go to be impossible. You have to view the code from a distance so you can see what's relevant to mention, while still retaining the knowledge of why choices which might appear strange now were made. Also saves you from spending time documenting stuff that won't exist in a week due to unforeseen course corrections.
tltldr;dr document 2 months after completing a project/feature/system
wireframe to get the corners of the car for collision detection
[t]http://i.imgur.com/Xwn5Abm.gif[/t]
[editline]12th August 2017[/editline]
I love trigonometry
[img]http://imgur.com/6fYiIWI.gif[/img]
Starting to look more like a game.
Still need some pathfinding/swarming behaviour, so these guys don't get stuck walking into each other.
I did that ugly human death animation myself :D
i like that blood splatter effect, getting some diablo 2 vibes from it
Did someone say ImGui?
Working on transferring the whole external UI (done in WPF) to internal with ImGui.
Also trying to make things better with some [URL="https://www.youtube.com/watch?v=_Phomk10bQM"]dark screen-to-world magic[/URL]
[t]http://i.imgur.com/fxhQaD1.jpg[/t]
[QUOTE=Creepy;52554934]"magic survival" game
All the models and images are [B]temporary[/B], still need an artist to help out.[/QUOTE]
I've been looking to help someone in here with art assets, I need a break from coding for work, and coding for side projects in my spare time. Shoot me a pm if you're still looking for a 3D modeller, I think I can help you out, especially if you stick to low poly.
[QUOTE=Hattiwatti;52568098]Did someone say ImGui?
Working on transferring the whole external UI (done in WPF) to internal with ImGui.
Also trying to make things better with some [URL="https://www.youtube.com/watch?v=_Phomk10bQM"]dark screen-to-world magic[/URL]
[/QUOTE]
Man that's a nice looking interface. Its this kind of thing which makes me appreciate that I'm profoundly not an artist, is anyone willing to share what they configured ImGui with or give me any tips?
On the plus side, I improved universe generation to actually generate a fairly nice looking galaxy which is cool
[IMG]https://i.imgur.com/iVEHHCJ.png[/IMG]
Which means I'm now working on empire level AI. So far, the empires can now send ships from other systems to help defend them if attacked, colonise unowned planets in their systems, and mine unmined asteroids. They can also construct ships in the same system to colonise planets and mine, soon they'll be able to send them cross system if requested! :)
Sorry for spam, I just got a big chunk of work done in this weekend.
Got some pathfinding, decision-making and very Diablo 2 inspired health indicator.
[vid]https://my.mixtape.moe/nlsipz.webm[/vid]
also I purchased the whole asset, now I have a proper necromancer, link because idk how to embed it
[url]http://i.imgur.com/OroTUqM.gifv[/url]
[img]https://hostr.co/file/LCErHuWZiWDB/Screenshoton2017-08-14at18.05.17.png[/img]
fuck yes, closures work
Are you doing functional programming in fucking PowerShell?
no :v:
[URL="https://github.com/weltensturm/commando"]it's a scripting language written in D[/URL]
I made a very simple C++ program that parses messages.htm file of the Facebook archive and creates files for every thread (A whole 80Mb of HTML on my account, firefox crashes opening it and node.js with cheerio runs out of memory trying to parse the DOM). It's a very quick and dirty script, but it works.
[QUOTE][vid]https://zippy.gfycat.com/KnobbyIllBeaver.webm[/vid][/QUOTE]
Here's the source if any of you'd be interested:
[url]https://github.com/varanauskas/thread-lightly[/url]
I've been slowly but surely getting my work application into a releasable/workable state. Since I last posted I've added:
[quote]
- Settings are saved to a config file on exit and these are reloaded the next the program is started
- Configuration files can be imported and exported at will, and values are updated in the GUI appropriately
- Models can be imported and sliced (done async so GUI/rendering thread doesn't lock up)
- Model output filename is either assumed to be the same as the input, or can be set by the user
- The model can be positioned, rotated, and scaled using the model manipulation tab
[/quote]
[t]http://i.imgur.com/GG9WWb0.png[/t]
[t]http://i.imgur.com/zra25T3.png[/t]
Unfortunately, there are still a number of things I need to do and/or fix, like the coordinate system between what my backend (and the STL format) uses vs what the frontend seems to use. In this screenshot, the model isn't even on the bed and it isn't in the right orientation but the output GCode looks just fine:
[t]http://i.imgur.com/3PJUuXp.png[/t]
In terms of features, I still need to get GCode visualization working, need to add the ability to insert custom begin/layer-change/end GCode strings (of arbitrary length, which ImGui doesn't like), need to add a GCode editor of some kind, and need to polish things up graphically (that theme is bad and not even complete lol) along with cleaning up the interface between my frontend and backend. This is all in a kind of sprint to the end of the month, when I'll be starting fulltime on a new contract. I'm pretty excited for that though, I've been on this non-stop and alone for 13 months. I thought application development like this would be a lot easier than it was, and thats why I'm so bad at estimating my time to complete a feature I think: this isn't one of my prototype fun projects, so a lot more thought and work has to go into making the code robust and hard to break. Plus, some things (like keeping config values uniform between the GUI and backend) turn out to be more difficult than I would've ever guessed.
Just wrote the crucial bits of a Befunge IDE. Perhaps I will add more features in the future.
[video=youtube;q_73GaQEeAU]https://www.youtube.com/watch?v=q_73GaQEeAU[/video]
[img]http://i.imgur.com/Olja3mi.png[/img]
machine learning is cool I guess
[QUOTE=Radical_ed;52578239][img]http://i.imgur.com/Olja3mi.png[/img]
machine learning is cool I guess[/QUOTE]
How large is your training set ? :weeb:
[QUOTE=WeltEnSTurm;52572339]no :v:
[URL="https://github.com/weltensturm/commando"]it's a scripting language written in D[/URL][/QUOTE]
Ok, that works for me :). Cool!
[editline]16th August 2017[/editline]
[QUOTE=Radical_ed;52578239][img]http://i.imgur.com/Olja3mi.png[/img]
machine learning is cool I guess[/QUOTE]
So, a trap that is a guy :cool:
Jokes aside, pretty cool that you are going into ML.
[QUOTE=Radical_ed;52578239][img]http://i.imgur.com/Olja3mi.png[/img]
machine learning is cool I guess[/QUOTE]
does it work on 3d?
Sorry, you need to Log In to post a reply to this thread.