/agdg/ - Amateur Game Development General

Just Like Make Game

(You probably don't need to) SAVE THIS FILE (any more): Anon.cafe Fallback File v1.1 (updated 2021-12-13)

Anon.cafe will shut down as of 00:00 UTC on 15 March 2024. Announcement here.

Max message length: 20000

Drag files to upload or
click here to select them

Maximum 5 files / Maximum size: 20.00 MB

Board Rules

(used to delete files and postings)

Open file (1.41 MB 1536x1536 1468405570313-1.png)
QTDDTOT - The thread for all those burning Questions That Don't Deserve Their Own Thread Newt Board owner 03/27/2023 (Mon) 06:09:39 No.478
So up until now, we've had a lot (lol) of off-topic posting, a lot a one-and-done "how do I make game tho" posts in various threads, especially the meta and progress threads. This is now the new dumping ground for those posts. Do try to put some effort into your posts though, you'll get more responses and won't have to face the wrath of jacked Carmack and his dragon dildo sword+2 that way.
Anybody got a good screen recording program for linux? Bonus points if it can be set to only capture a certain window to make editing easier. Editing software too, ffmpeg? I think people are using. How's that? Any other options? Again, for linux.
>>539 >Anybody got a good screen recording program for linux? OBS Studio (GUI, main focus is live streaming with offline recording capabilities, most features & community) SimpleScreenRecorder (GUI, focused on recording, simple to use but the most niche) FFmpeg (CLI, swiss army knife of video programs, screen capture not a primary focus but lots of documentation and generally useful) >Editing software too Olive 0.12 (GUI, hardware accelerated with OpenGL effects, most similar to tools like Adobe Premiere with major rewrite in the works) Blender VSE (GUI, single threaded, not speedy but solid like you would expect from Blender) AviSynth+ (DSL, a scripting language for video with multi threading, relies on tools like FFmpeg for playback and rendering) Melt (CLI/DSL, single threaded library that powers tools like Kdenlive with ability to run scripts, slow and buggy like the editors based on it) FFmpeg (CLI, capable of doing some editing too, doesn't have the standard features of other editors but can do some basic things)
>>540 For editing, I would just add to this Anon's excellent list Shotcut, and Kdenlive. [1] [2] 1. https://www.shotcut.org/ 2. https://kdenlive.org/
>>540 >>542 Bad ass. I'll look into them.
What's the anon-approved, non-woke, won't-randomly-delete-your-shit, code repository these days? Gitlab? Bitbucket? Gitgud? Something else I haven't heard of?
>>649 I asked myself the same question recently, since I needed to move stuff between pc and notebook. I ended up using random free ftp server and FreeFileSync to keep stuff synchronized. Even if they delete my shit, I will have 2 copies, but its very unlikely anyway.
I need to make simple gui app, but code:blocks is fucking garbage and wxWidget doesnt want to work at all, including built-in example app, and updated version from their website. Even editor is fucked and barely works. Should I just stop fucking with code:blocks and move to something else? Its not the first fucking problem I experienced with C::B
>>774 If you're on Linux, I suggest using juci++ as your IDE, and FLTK as your windowing/widget library. Good luck Anon.
>>774 Have you looked at imgui (Dear ImGui)? ht tps://github.com/ocornut/imgui Apparently it's pretty popular for doing stuff like internal tooling. If you're having problems with a more traditional GUI framework like WX or QT, I would definitely take a look at it. Or, search for other so-called "immediate mode GUIs". The Raylib guy made one ht tps://github.com/raysan5/raygui give that a look. You also shouldn't be dependent on any particular IDE or code editor. I second the other anon's recommendation, especially the linux part. Tell us more about what you're trying to do. What kind of program is the GUI for? What's your OS? Programming language?
Open file (1.40 MB 2052x1166 ClipboardImage.png)
>>785 >>775 Thanks I will look into that. I use windows c++, I just wanted something working out of the box, without wasting too much time to make it work. I spend 2 hours trying to make c::b do what I want, and I just dont want to waste any more time with it. I need to make simple to use tool for tiles, with offsets, palette adjustments, etc.
>>774 >>787 >Should I just stop fucking with code:blocks and move to something else? Yes. Sounds like VS (for wangblows onry) or VS Code (lol electron) are your speed.
Open file (1.49 MB 1902x932 ClipboardImage.png)
Open file (353.08 KB 1920x1080 EJTPrwpVUAAaHAw.jpg)
Should I bother making proper random/hash function with deterministic output, or should I just use premade random string and grab values from it? I just need normalized random for tiles (and I am very lazy), I just need not noticeable pattern over the screen, so it doesnt matter if it repeats every 100 symbols. But I probably need multiple types of random anyway... Picrelated is just random from 128 byte string of random keypresses, seems reasonably non-uniform to me (grass/wood is just perlin). So, to rephrase it as a proper question, do you think there is anything wrong with using random string to get fake-random expected output? And should I bother remaking perlin noise, for my own needs, because I basically repeat almost exact process, right after generating noise itself? Or should I just forget about it, because I would waste a day, to save less than a second of runtime. But I will need a few procedural generators anyway. I need so many things to make. Including the list of things I need to make.
>>972 >do you think there is anything wrong with using random string to get fake-random expected output? That's just a seed right? Games like Minecraft do it so if it works for your needs then go for it.
Open file (757.83 KB 1000x500 stones.png)
>>973 string a = "hisgohigahioargho;arly67olwe76kw5gho;arghio"; T= a[(x*yj)%25]; I just need to pick one of these tile variations for each point of the map. Perlin does basically the same thing, but it gaussian blur them afterwards, and technically, I can just use the seed-string directly from perlin code, without blur, now that I think about it. I am just really fucking tired from the amount of things which come up, and a lot of them could work better, but its wasted fucking effort, because almost everything is good enough in the most basic implementation anyway. But I feel like I am doing something wrong, for not making a proper normalized random.
>>974 I'll presume you're using C++ Anon. Why not just tap into the Standard Library's <random> ? It has some rather sophisticated features already, including hardware entropy.
Open file (2.12 MB 320x240 blood bowl.webm)
>>975 I need to always have the same result from the same input. f(x) must be equal to f(x), for proper procedural generation. At current point, my lazy way works, but later, I would need proper normalized output. Default random library doesnt have input, as far as I know, and while it gives the same output each time, its only based on number of function calls, which doesnt work for me. In reality, I dont need "random random" output, I just need "random looking" output. Or rather normalized output, with hard to recognize pattern. So a map would be generated exactly the same way. I guess, I can use sophisticated seeded std::random to generate base set of random data (like 10k integers), and just pull information from it, and if needed, modify it via additional seed.
>>976 There's std::srand for seeding the RNG. You can make it deterministic by consuming values from the RNG in a fixed pattern, like always generating map, then enemy placement, then loot, etc before anything determined by gameplay. If you're just using it for map generation, there should be no issues with replication from the same seed. I did something similar for one of my games where replays just have the seed and from there always consumes values for enemy placement first instead of needing to save all the enemy spawn locations.
Open file (36.84 KB 512x512 ClipboardImage.png)
>>978 >>972 muddles up the question a fair bit, but >>976 confirms that what is wanted is a function that maps some arbitrary input to a hard-to-predict point within a fixed output range, i.e. a hash function. >>972 >do you think there is anything wrong with using random string to get fake-random expected output? Apart from its lumpiness? Wasted effort. The problem's already been solved way beyond your modest needs. Look over the many fast, cheap non-cryptographic hashing functions published in the past 50 years, pick one, and use it with whatever input sequence your heart devises.
Open file (3.48 MB 1902x932 ClipboardImage.png)
>>979 >Wasted effort How could it be wasted effort, if its was the least effort I can put into making simple pseudo-random output? >just hash Well, x*y is the easiest hash function, I used it in picrelated, and I doubt anyone could spot a pattern/repeat, even if they know that there are only 25 tiles. My main problem, is that I will need proper deterministic pseudo-random functions sooner or later, and I hate how there are whole scientific papers are written on how they work, and I am afraid I will fuck it up, and it will cause problems down the way, and I will not be able to notice them. Also I am lazy. >>978 Would not work for many reasons.
>>980 >Would not work for many reasons We're going to need details if you want a concrete recommendation. What are you actually using this for if you also have perlin noise? A hashing fn seems to most closely match your specification and unless you have a specific non uniform distribution in mind you're best to just use one off the shelf. >>978 is how prng is typically used in roguelikes and such.
Open file (2.67 MB 1902x932 ClipboardImage.png)
Open file (1.03 MB 1200x600 rocky dirt.png)
>>981 I use perlin to generate gaussian noise, I use my simple random function to get (deterministic) white-noise. I use my lazy function to pick one tile out of 25 almost identical tiles. Perlin outputs similar values, when given similar coordinates. It will always give outputs similar to "1122224455543221". I need deterministic outputs, which are not provided by regular random functions, they just expect seed, and I dont know how fast they are. But, other than the way you get data from them, they do have everything I need. I can do some tricks and pass hash of (seed*coordinates), but I am not sure how fast these are, and how they will work on various systems. I want to have "endless" maps, which will generate right in front of player, so generation should be fast and deterministic, so I could generate same map each time. But sooner or later I will need deterministic item generation, and I am afraid that it will fuck things up, since random has a shitload of parameters. As I said, I think I will pre-generate 10k of proper random numbers with standard functions, and use it to generate items. I can make it big enough so it would not "exhaust" itself and start repeating (maybe a couple of safeguards as well). Or just use "random banks" for each map segment, and make them bigger than possible amount of items you can get from a zone... But than I just pre-generating random, which is counter productive, unless I run it from another thread, which would increase complexity for no fucking reason. And everything is either faulty or increases complexity or both. I read on random generation, and its really fucking annoying, that you can fuck it up, and never learn about it. And I can (probably) simply alter default random code, and instead of it providing a sequence of outputs, I can bind it to a value, but I really dont want to fuck with default code, from standard library or stuff like perlin.
>>980 >Would not work for many reasons. That's pretty frustratingly dismissive anon, but good luck.
>>982 >everything is either faulty or increases complexity or both Wow, yeah, that all sounds pretty tough. It must be a much bigger problem than it appears to require such difficulties, but nevertheless good luck with it, Anon. >>981 >>983 Vague framing produces vague thinking produces vague work, manifest in meandering. Take it as exhortation to keep your fundamentals sharp, if nothing else.
Open file (285.84 KB 446x280 ClipboardImage.png)
>>983 But I explained everything in other posts/parts of the post.
>>982 >>985 I see now. for picking cosmetic tiles from a set I recommend just sampling a white noise texture. that repeats in every direction (very close to what you're already doing). Maybe for item generation break the world into chunks, hash the coordinates per chunk and seed your PRNG with the result. Don't overthink it. Something like a Linear Congruential Generator is super easy to implement and as long as you do the generation in the same order every time and keep the state separate between chunks it's totally deterministic.
Open file (4.11 MB 1902x932 ClipboardImage.png)
>>990 Ultimately, it doesnt matter, and the answer is "dont worry about it". I can wrap values around from an array which is just 1 screen wide, and it will be impossible to notice. Unless someone has extreme form of autism. In picrelated you can see obvious line of repeated tiles, but its only obvious on grass, its fine on rocks. But in future I will need proper generators, which will give me outputs I need. Lets say I have 10 types of armor and 10 types of weapons. So 1-10 will be a armor, 11-20 will be a weapon. For simplicity, lets assume I use 5bit wide values, so they can be anything from 1 to 32. If I simply use modulo 20, to "clip" the values, the first 16 items will have double chance to appear, while the leftover 4 will be twice as rare. Not to mention situation, which happened in some monster hunter game. Due to seeded random generators, characters had a pool of unavailable items, which could not be generated for them. On one hand, who gives a shit? Fuck em! But on the other, I have severe autism, and I care. I guess, the solution for even distribution is to have binary tree generator. Item ID would be its entire information, and I can use "leftover bits" either as "no item" or "do over, but upgrade" instead. Checking it might seem overcomplicated, but I can just pregenerate whole thing, each time I change number of items/types possible to generate. Or I can just make everything dividable by 2, which is way more annoying. Whatever you do, you want to do it properly, but its really counter productive in many cases.
>>984 >Vague framing produces vague thinking produces vague work, manifest in meandering. Take it as exhortation to keep your fundamentals sharp, if nothing else. Exellent advice, Anon. Thanks.
would this board be the right place to talk about interactive fiction, specifically interactive fiction? They are "games" but they're more book than game. Currently working on an interactive fiction engine as an leaner alternative to Twine so that I can have my games running on a Kindle that doesn't support JavaScripted EPUB files.
>>998 I see no reason why not. /tg/ would fit too.
I'm not really tech savvy on this but how do you do that mechanic during the "Manual" mode in the following game? (it's the third set of "mini game" after the balancing game) >use your mouse to go in and out (?) https://www.gamesofdesire.com/meet-and-fuck-games/meet-and-fuck-intimate-cruise/
I want to make a simple sprite RPG-ish thing. I'm using pygame. The code is already spaghetting and I'm scared to go any further.
>>1009 Get it working/finished, identity what you did wrong and how to fix it, make a new game using what you learned.
>>1010 Two very whiny questions: 1 - How do you identify _why_ it's spaghetti-ing out of control? 2 - How do you deal with...when you see a wall of code that you have to look in 10 different places to keep track of what's going on/how to continue and you just get completely goddam overwhelmed?
>>1011 I'm just getting started my with game development myself and I'm doing it through Godot so my experience is probably different from yours, but it's about persistence. If I have a problem I'll focus on it until I fix it, if I can't, I feed my code/errors to AI so it can give me some ideas about what the problem could be. Use debugging print statements/breakpoints in the code to check whether the expected code is executing at the right times.
>>1011 Just realized I didn't answer the whole question lol As for organization, use functions so it's easier to manage your code; that way you're editing do_thing() instead of trying to find an obscure piece of code out of 1000 lines, that can slow you down a lot.
>>1011 >How do you identify _why_ it's spaghetti-ing out of control? When your logic is spread across a dozen different functions, each calling to each other in a gorillion different ways that you can no longer keep track of what variable is what value anymore. It should be streamlined from the start. Planning it out in your head/on paper/in pseudocode is also a good idea so you can see where problems may come from. >How do you deal with...when you see a wall of code that you have to look in 10 different places to keep track of what's going on/how to continue and you just get completely goddam overwhelmed? Plan it out beforehand so you know exactly what part does what and where each piece of logic goes to.

Report/Delete/Moderation Forms

no cookies?