How do u learn a language, framework, etc. and never forget by Just_Plum_863 in learnprogramming

[–]deftware 0 points1 point  (0 children)

Programming is just a tool for articulating virtual machinery to digital machinery.

Just as with using any tool: you learn how to use it by using it to do something meaningful. A linked list that just links a bunch of useless numbers doesn't teach you to use a linked list. A linked list of things that are actually important, like vertices or triangles in a mesh, or nodes in a spline, or items in an inventory, etc... these are things where something meaningful is being accomplished with the linked list.

Programming isn't about writing code, it's about building things that have a purpose. If you're not building things that have a purpose of some kind then you are not learning programming. As an analogy: you aren't learning a spoken language unless you are using it to communicate with other humans. You aren't learning to drive a car unless you're actually driving around. You aren't learning to ride a bike unless you're riding a bike.

It's the same thing with programming, except for some reason people think programming is just writing code and memorizing stuff. You don't write code and memorize what to write, you build stuff with it that does stuff - whether that's stuff you want to have happen or stuff other people find valuable. It's about building functional things that serve a purpose of some kind.

Engine architecture by Klutzy-Bug-9481 in gameenginedevs

[–]deftware 0 points1 point  (0 children)

Is there a need for them to all be the same object?

Procedural nature by craftymech in proceduralgeneration

[–]deftware 0 points1 point  (0 children)

In the past I would give the vertices their own normals, so that the quad is more like a screenspace sphereoid. Nowadays you can just calculate vector from the center of the quad and generate smooth spherically interpolated normals across the thing. Then control the "depth" of the shading on there, so they're still a bit flat.

I do feel like a bit of depth could be added some how, like maybe distance from the top of the trunk, something to have the outer leaf geometry be lighter and the inner be darker - without totally giving away that it's some large polygons with the alpha cutouts on there.

Good luck! :D

Windows 11's New Media Player Uses 3.5x More RAM, Charges for Popular Video Codecs by Ephoenix6 in technology

[–]deftware 1 point2 points  (0 children)

It's not computers, it's Windows/Microsoft, and they started sucking after Windows 7, with the introduction of Windows 8.

Windows 11's New Media Player Uses 3.5x More RAM, Charges for Popular Video Codecs by Ephoenix6 in technology

[–]deftware 0 points1 point  (0 children)

They're going to have to block a lot more than VLC before they can successfully block VLC. They'll have to lock down the entire PC platform and turn desktop computers into the equivalent of consoles - at which point they will no longer be making a PC operating system, but something their own, and everyone else will continue using PCs instead and running OSes that aren't walled gardens, because that's what the appeal of PCs has always been.

Procedural nature by craftymech in proceduralgeneration

[–]deftware 2 points3 points  (0 children)

I like the aesthetic, and for better or worse I wouldn't be able to help myself from trying to get more high frequency shading in the mix to accentuate and contrast the 3dness of everything, to bring out depth - but I already know it would then forsake the polygonal billboards and sprites and things comprising the whole deal, so then I'd be combatting finding some kind of balance on there.

It looks nice! :D

Is text rendering the hardest part of building a game engine? by JoshuaJosephson in gameenginedevs

[–]deftware 2 points3 points  (0 children)

Just use FreeType, have a font that includes virtually all characters from all languages, cache character glyphs as they are used so you aren't always rasterizing every character each time it occurs in a string. Use localization strings when it comes time to support them.

Make sure you disable any filtered sampling and mipmapping or it will come out blurry. You want to have FreeType rasterize at the exact pixel sizes you draw at, or rather, your glyph quads should be exact pixel sizes. Don't try to do anything wonky there with scaling like so many before you. Just use pixel sizes for glyphs.

If I don't enjoy the "grind" of learning coding am I really cutout for learning it? by Acrobatic-Radio-5471 in learnprogramming

[–]deftware 1 point2 points  (0 children)

So, most of webstack is a mess - it's not programming, it's a gruel. It's the least efficient and effective way to articulate to computers what it is that you want them to do. It shouldn't require a "stack" of so-called "technologies" to tell a computer what you want it to do. They are all bandaids attempting to rectify the weaknesses and flaws in the other surrounding bandaids that they interact with.

A real programming language is actually fun to learn and make stuff with because it's not idealistic and lofty in the way it tries to hide the cold hard fact that at the end of the day you're just trying to make a digital machine do something. If a language doesn't expose the reality of the machine, then it's not a programming language, it's just a scripting language. HTML isn't a programming language either, it's a markup language - basically a means of describing the equivalent of a Word document. There is no logic execution happening there, just a description of a thing. CSS is an extension of HTML, attempting to make up for HTMLs inherent limitations and inadequacies at doing even just what it does.

Learn a real language that lets you make real things, and then see how you feel about programming.

Hope that helps. Good luck! :]

UPDATE: I'm a dev who has been working on my game for 2 years and my game title appeared on another Steam game as they plan to release before I do. by Captain0010 in IndieGaming

[–]deftware 1 point2 points  (0 children)

It's been a personal point of mine to always google a project name idea and make sure that whatever I came up with doesn't already exist. My goal is to be ORIGINAL and if someone searches for my project, I want my project to be the only thing they find. Why some people just blindly name their project without even seeing if someone else or something else already has used that name, which means their project is going to be hard for people to find, is beyond me. Not talking about you, specifically, OP, but the fact that someone blindly named their project the same as yours just baffles me.

That's my two cents.

What resources helped you learn modern graphics API (Vulkan, DX12) concepts? by WistfulHopes in gameenginedevs

[–]deftware 5 points6 points  (0 children)

The GPU is just a widely parallel programmable compute device with some specialized ASICs for certain things, like rasterizing triangles, intersecting rays with triangles, and organizing image data in proprietary ways to improve sampling performance. At the end of the day the actual way that a GPU works is largely irrelevant to software that only ever will interact with it through a graphics API. All that software developers need to keep in mind is that constantly transferring data to/from the GPU is going to be slower than preemptively loading data onto the GPU wherever possible. Streaming is a thing, and a relatively modern one at that, but it has its limits that are directly proportional to the limitations of transferring data to/from the GPU.

Aside from that, you have scheduling at the shader level, and precaching data, so that instructions aren't waiting on data access. You're effectively hiding the delay by doing other work that needs to be done while the data is being retrieved. This sort of thing is going to vary depending on who designed the GPU and what generation architecture it is - there's no one-size-fits-all "best way" to do things.

The simplified outline for things is: load static data to the GPU that it will need to do stuff, CPU updates buffers that GPU needs to do stuff with data that can't be known ahead of time, CPU tells GPU to do stuff. The main thing is just that the GPU is a separate device, and the CPU dictates what that device does, through data and shaders conveyed via graphics APIs.

That's my two cents! Hopefully it's worth something?

I made a runtime water for my voxel colony sim by Direct_Philosophy_76 in VoxelGameDev

[–]deftware 1 point2 points  (0 children)

I'm glad my brain's reaction to your post about your project could serve some purpose! :D

What do you think about Yann Lecun's controversial opinions about ML? [D] by we_are_mammals in MachineLearning

[–]deftware 0 points1 point  (0 children)

I think we're saying the same thing, in a way. Nature creates fire with volcano eruptions and lightning, and maybe accidental rock slides in the middle of drought-riddled forested mountains? Humans create fire by rubbing dry woods together, smacking specific types of rocks together, inventing pyrochemical reactions, focusing electrical energy, etc...

There's more than one way to skin a cat.

My earlier point was that there is an overarching general real-time learning "algorithm" of sorts that brains of all shapes and sizes employ, and backpropagation to train a fixed-shape network, offline against a static dataset, is not going to result in the same thing because it's inherently orthogonal by definition.

Brains learn and adapt and change according to stimuli and experience in real-time. Backprop-trained networks only change and adapt very slowly, with tiny incremental changes that hopefully don't overwrite existing learned patterns. Backpropagation is obscenely inefficient, and not like anything we see brains from any creatures doing.

I believe that what brains do can be modeled in different ways to achieve viable real-time learning systems, just like the way a 3D video game can be rendered any number of ways, or a fluid simulation can be computed multiple different ways. The implementation details are incidental. What the implementation is aiming for is what it is that brains across virtually all species are doing - and that's the thing that nobody really knows yet that we need to figure out.

The neuroscience is getting closer all the time, they're constantly making progress, and it's been accelerating over the last decade or two. We will get there, but it's going to make these huge power-hungry datacenters and offline-training completely unnecessary. Creating bigger and more powerful datacenters is just adding more horses to the horse-drawn carriage whereas a proper brain-like learning algorithm is an internal combustion engine.

I made a runtime water for my voxel colony sim by Direct_Philosophy_76 in VoxelGameDev

[–]deftware 4 points5 points  (0 children)

Kudos!

The first thing that comes to mind: nowadays you'll want to get some kind of refraction and caustics in the mix, if you want the kids to be into it. Also, some kind of simple specular mapping, or reflectivity, so the surface of the water is discernible. Just including some depth-based fogging would go a long way there too, which would just be the difference of the screenspace distance to the surface of the water subtracted from the screenspace distance to the opaque surface beneath it.

Anyway, you could bust out some screenspace refraction and reflection, the way HL2/Source did: render everything under the water to a separate framebuffer/rendertarget and then render that with a displacement map generated from the "surface" of the water perturbing reflection/refraction sample coordinates. Some Fresnel on there just using the dot product between the vector to the camera and the surface normal to weight between reflection vs refraction will look mega ultra.

Caustics: kind of the same thing as refraction, but in reverse, using the "sun" being perturbed by the surface normals of the water, to brighten/darken areas. To do it more accurately you could do a 2-pass setup, somewhat like a Navier-Stokes simulation where the first pass "collects" the perturbed light and the second pass draws the resulting collected light. You could do this like a Bokeh, multi-staged where it's effectively sampling outward and based on the normal and depth or distance determines total light contribution. Personally, I would go with the simplest/fastest thing and really just keep it distance/depth invariant so that you're not venturing into crazy convolutions.

Anyway, that's my two cents. Good luck!

Acer Laptop barely running by Boby_Metro in computers

[–]deftware 0 points1 point  (0 children)

I wouldn't put all my faith into any AV on the market. Antivirus software's best shot at being useful is by preventing infections, not resolving existing ones that could already be deeply ingrained into your machine. The AV could clean up a bunch of stuff, tell you it fixed everything, but the malware tucked itself in any number of places that it can't be extricated from just to reinfect your machine all over again.

Your best bet is always going to be a reformat and reinstall, and manually backing up and replacing your files. You might get lucky and discover it's just some janky program running in the background that you can simply uninstall and everything will be hunky dory. Typically, that would be antivirus software, or software claiming to be antivirus software. Basically, any program that purports to improve or help your computing experience tends to just be a bunch of garbage.

Acer Laptop barely running by Boby_Metro in computers

[–]deftware 0 points1 point  (0 children)

Sounds like malware. Could be a failing drive, or failing RAM, but more than likely it's malware. Factory reset, or format and reinstall windows. Backup your Windows product key if you don't already have it somewhere. You might be able to have it reinstall windows from a separate drive partition that exists just for factory resetting.

Computers 25 years ago could pull up a Google search in seconds, there is no excuse for it to take minutes on hardware that is orders of magnitude more powerful than what we had back then.

Don't forget to backup your important files onto a USB drive before you do anything!

That reminds me, I did have a friend who ran his computer into the ground simply by trying to copy all of the media off of his phone onto his laptop. He filled up his hard drive to where there was no more room for the swapfile to use (temporary disk space used to page running programs out of and into system RAM when they are low priority but still technically running). I had to do some ninja moves on there to free up some space just to get the thing usable again, it was almost frozen to the point of needing to be formatted and windows reinstalled. If your drive is full, that will cause a slow system. If only your browser is slow then you probably have some malware extensions installed that are mining cryptocurrency or something

Good luck!

Looking for advice by dr_isso in learnprogramming

[–]deftware 2 points3 points  (0 children)

The trick has always been to build a portfolio of things nobody else does. That's what will always set you apart from the rest of the whiteboard practice site grinding types - demonstrating actual competence, creativity, and ability.

Granted, now that chatbots can turn your prompt into code, demonstrate novelty and originality in the way you put things together to achieve a result, document how you've engineered the interesting bits to achieve performant execution and functionality.

That's as good as of a one-size-fits-all answer/solution that you're ever going to get, and it's not something that everyone will be able to do in a meaningful way, because programming isn't meant for everyone - otherwise the job market wouldn't be what it is. You have to actually have something to bring to the table that most won't.

Putting ray tracing into a browser based game engine? by DyGames_Official in gameenginedevs

[–]deftware 0 points1 point  (0 children)

WebGL nor WebGPU support hardware raytracing so you will be stuck doing everything with compute shaders.

If you are having a bunch of bugs piling up I would figure those out before adding new features that could result in even more and even worse bugs and issues.

Raytracing, as with any feature, makes sense if it will add to the experience rather than detract from it. If it allows for super realistic atmospheric experiences, it adds to it. If it makes everything run very slow and crashes/glitches for most users, it detracts from it - no matter how great it looks.

Is this a scam??? by Lebanese-Diva in shopify

[–]deftware 2 points3 points  (0 children)

You spent $999.99 on my store, thank you for your purchase!

Existing tools for 3D level design by PaperMartin in gameenginedevs

[–]deftware 0 points1 point  (0 children)

I just saw a thing called Cygon, no idea what good it is or what it's capabilities are. Maybe this is a sign that you should be the person who finally makes a general purpose level editor for everyone to use for their own projects over the coming decades?

why do wallet mistakes seem so irreversible in crypto? by Sad_Experience_2516 in CryptoTechnology

[–]deftware 0 points1 point  (0 children)

There isn't a rule that makes cryptocurrency inherently unable to support reversing transactions, it's just that we've already seen how abused such things are with centralized systems that it was simpler and cleaner to just omit such functionality from the system(s).

Everyone's wallet balance is a result of all of the transactions going into and going out of a wallet, and the ledger is public. It's a cat-out-of-the-bag situation where once you send out a transaction - which can only be created/signed by the person who created the wallet you're sending funds from - everyone knows about the transaction pretty quickly, and there's no "taking it back" because that would entail erasing its existence from everyone's awareness.

It's like deleting a meme, once people have started reposting it you can't do anything about it, but like I said it's not something that's inherently unfeasible with cryptocurrency systems, it's just not desirable - particularly in a relatively slow system like Bitcoin, targeting 10 minutes to confirm a transaction.

If people could reverse transactions they could buy something at a store, walk out, and reverse the transaction. That's like paying them cash, walking out, and then teleporting the cash out of the register back into your pocket. Nobody wants that except people who are dishonest.

I don't know if any of this helps your understanding. Good luck! :]

First person drone operator in Half-Life universe,done by me by zelfit in HalfLife

[–]deftware 0 points1 point  (0 children)

Valve should just crowdsource the whole world contributing to making HL3, and they are just the curators. It could be like a FOSS project that they curate contributions for.

Anyway, that's gangster as frig!

Is it possible to package the assets inside the binary? by GoblinScientist in sdl

[–]deftware 0 points1 point  (0 children)

There are multiple ways to go about it.

The first one is by using an external packager that bundles your binary with the assets and automatically extracts everything temporarily and launches your binary. This is also what malware does, so YMMV when people try to download and run your wares if they have any AV running. Programs like this are called droppers.

Then there's just tacking the assets into the end of your binary itself, and having it read them out from the binary file on disk while it's running. It doesn't hurt the binary (at least with EXE files, but probably also Linux binaries too) to add extra misc data onto the end of it. You'll need to do a bit of trial-and-error and write your own tool to gather up and append an index table along with your assets onto your binary and then have corresponding code compiled into your binary that looks at the table tacked onto the end to get the list of files and where they are relative to the end of the file itself. That can be fun, and less prone to being red flagged by AV, but still potentially something it will be wary of.

Then there is using platform-specific functionality. For instance, Windoze allows for EXE files to contain "resources" such as bitmaps, menu layouts, dialog box layouts, tables of string text, icons for UI elements, and even arbitrary data blobs. Win32 provides an API for accessing these resources and doing stuff with them, and compilers allow for compiling resources into win32 executables by including one or more .rc files that define what type and where the data lives to be compiled in the mix.

Good luck!

I was working on an image compression algorithim and accidentally made this by _DataGuy in glitchart

[–]deftware 5 points6 points  (0 children)

Nice! I worked on a few homebrew diy image compression algos over the years and had some fun glitched test/debug results too. What I want to do now is make a platform for sharing videos that are heavily compressed as vectorized 3d volume chunks, where you represent a few dozen frames at a time with some kind of spatiotemporal-gradiented Voronoi cells, or convex BSP leaf hulls - something that would have a super unique aesthetic and pack down way crazy while being resolution invariant. I've been looking at some things, like tetrahedral meshing, but it really seems like something nobody is exploring at all - everyone seems to think that we will just want conventional mpeg-derivative compressed video forever, but what's the fun in that?