u/turtle_dragonfly

1,314 post karma · 3,330 comment karma · joined Sep 2016 · moderator

turtle_dragonfly

I remember one game that was played in an auditorium — each audience member had a red/green button they could press, and that's all. On the screen was a pacman-style game where a character was navigating a simple maze. Depending on the red/green votes across the audience, the character would either go left or right.

I suppose that specific one works a little better in person, because then you get coalitions forming, spontaneous crowd organization, shouting at each other, and it's more fun that way. But I could imagine something similar, done purely online.

You wrote:

I tried a lot of them and honestly APGs are simply not fun enough for me

What ones have you tried? What are not fun about them, for you?

turtle_dragonfly

Personally, I like a little mystery. I suppose it depends on the kind of game and the kind of player you're courting. Do you want to satisfy the min/maxers? They want to see the radius.

Here's an idea: maybe to start, you just have a general "noise is coming from here" indicator (maybe some 🔊 icon, or wavy lines or such), just to indicate that it's gameplay-relevant. Then perhaps later you can get some kind of upgrade that lets you see the radius? That way the min/maxers have something to work toward, and maybe the player also has to make some decision between getting that upgrade or something else.

turtle_dragonfly

I make myself some tea, put on some music, and get to it.

Speaking of which, I should do that now ...


But to be a little less glib, I find that writing down ideas (up to a point) and making short-to-medium-term todo lists helps me. That way, the full weight and scope of the project isn't sitting heavy in my mind. I know I wrote it down, and I can refer back to that stuff later if I need it, so I can focus on the task at hand more easily.

Plus, often the act of writing things down helps me refine ideas and figure out some of the details up front. No replacement for actual dev iteration of course, but I do find a little pre-planning helps set my context.

Also: you say "4-5 half finished design documents ... frequently think about ... wishing to ... make them real." Here is a sad fact that nevertheless helps me: you will probably not live long enough to see all of your ideas made real. None of us will. It's a little depressing, but for me that knowledge helps me give myself permission to focus on one thing, rather than constantly being pulled in every direction by all of them. If I "give up" on doing all the things (and factually, I know I can never do all of them), then I have some freedom to choose what I actually want to do with the small amount of time I have available. I hope that makes sense (:

turtle_dragonfly

It's just a particular way of modeling geometry, that allows easy union/subtract/etc operations on the basic shapes. So, rather than a triangle mesh you have operations like "sphere plus cube minus oval". Some examples here, if you like: https://iquilezles.org/articles/distfunctions/ and some more complete scenes here: https://iquilezles.org/articles/raymarchingdf/

There was another interesting "marble racing" game based on SDF fractals that yours slightly reminded me of: Marble Marcher

Going the SDF route does require a special engine to support it though, so probably not something you'd just switch to willy-nilly (:

turtle_dragonfly

I do have an Attention Deficit Disorder so I thought maybe that could be why but I dont want to make excuses.

I don't have ADD (that I know of :), but do know people who have it, and a lot of what you're describing does sound related to that. I don't believe there's any magic solution, but I think it's good that you don't just want to use it as a crutch, to give up trying.

My understanding is that it is something that you can learn to live with. Some people get medication for it, which can help. There's some degree of building good habits and just normal "getting to know how your own brain works" that everyone has to do, which will also help.

It looks like you found at least one "trick" — being around other motivated people. Maybe you could join some online community(ies) and find some "study buddy" type people? I know there's lots of discord servers and things for these topics.

Ultimately, this is a "know thyself" sort of problem, so no easy external answers. But you should try various things and see what works for you. For instance, this article has some "ADD-friendly" tips to finishing projects. Honestly, reading them now, I think a lot of them apply to me, too. For instance, I like making lists and checking off items from them, so I don't have to keep it all in my head. It helps me avoid getting overwhelmed, and be able to pick up where I left off and make more incremental progress. Keep doing that day after day and eventually you get there. To-do lists, rewards, self-forgiveness; they're all valuable tools in the toolbox, so to speak.

Good luck!

turtle_dragonfly

This looks cool and weird and different, I like it!

Just curious: are you using SDFs for some of the geometry? There are some smooth-looking shapes and physics interactions that give me the suspicion.

Regardless, I like the distinctive look.

turtle_dragonfly

First release with a publisher

I'd be super curious to hear what your experience was here. Do you think the publisher route was worthwhile? What were the pros/cons for you?

turtle_dragonfly

Not exactly disagreeing with you, but I'd put emphasis on "may," and with the understanding that most businesses also fail (:

turtle_dragonfly

Maybe you already know, but there's an interesting branch of mathematics that is related to this: Percolation Theory. Basically, if every cell has a probability of being occupied or not (like tree/no tree in your case), then there is a threshold where the odds of having a "world-spanning fire" goes to 1. (this ignores the re-growth aspect of your sim)

For 2D hex grid like in your case, that site percolation threshold is about 0.697... In 3D it is different, since there are more ways a fire can spread. And it's different for different grids (eg: square).

This importantly relates to phase transitions in physics, which have traditionally been hard to model mathematically. How does a uniform material, like an ideal gas, have such distinct and sudden transitions to others states (like gas -> liquid) rather than some kind of gradual thickening? Percolation theory helps provide a mathematical model for this. Once that threshold is hit (which usually corresponds to temperature of the material), the transformation will cascade throughout.

turtle_dragonfly

Some random thoughts from a longtime C++ programmer:

  • C++ is basically 3 or so languages all jammed together. First, it has basically all of C (which also includes the C preprocessor, effectively a separate language as well), then it also has the extra stuff on top of C — classes, RAII, etc. Then there is templates, and template metaprogramming, which itself was a "discovered" turing-complete language hidden inside C++, that runs at compile-time.

  • In C and C++, the toolchain is a big part of the development process. With Python, you just write .py files and run them. But with C/C++, you need to compile, and link, and sometimes think about object files and exported symbols and dynamic-vs-static linkage and all that jazz. I might almost recommend learning C first, just to get a handle on this part of things. IDEs can hide a lot of this from you, and it works most of the time, but I would recommend understanding the various moving parts involved.

  • In C++, you generally worry about resource management more explicitly than those other languages you've used. There is no automatic garbage collection, for instance. This gives you more power, but also requires more work. RAII, and all the myriad incarnations of it (smart pointers, scoped locks, etc) is probably the biggest tool that C++ offers to deal with this. If you understand Python's with keyword, it is not far off, except it happens invisibly (no with keyword in C++; object destructors just happen automatically and deterministically at end of scope).

  • C++ is an old language, and has been through a lot of evolution. "Modern" C++ looks rather different than old C++. And in recent years (say, 2015 onward), it has been changing and growing much faster than in the past. So just keep that in mind when looking at pre-existing C++ code — which "version" of C++ are you actually looking at. Best practices have changed over time.

  • C++ has a lot of bad and/or dangerous defaults, sadly. It inherited many of these from C. For instance, variables are mutable by default, constructors allow implicit conversion by default (you use the explicit keyword to opt out of this), variables are uninitialized by default, return values can be ignored by default, etc.

  • Strong typing seems like something you have not had to deal with yet (not sure how much type annotation you're using in Python). It makes it harder to write a program that will compile, but also makes it more likely that the thing you wrote actually does what you intended, and won't break in weird ways at runtime, now and in the future. But it will be frustrating at first. Don't reinterpret_cast unless you actually know what that is for. But do learn what it's for!

  • You are lucky learning C++ today. Compiler error messages are much better, documentation is much better, the language itself is much better.

If you like books, I think the short "A Tour of C++" is a good overview of modern C++. It is by Stroustrup, who invented C++. It is directed at people who already know programming, so it is not about the basics, but an overview of the language, its benefits, where it is headed, etc.

turtle_dragonfly

This looks really nice!

I always liked sandspiel and similar sims, and this is like a much prettier (and more realistic) 3D version of that.

turtle_dragonfly

Having lots of files in one directory can cause various problems, depending on the filesystem. This is, for instance, why Git has an extra subdirectory in its objects/ storage dir.

It uses .git/objects/prefix/rest-of-the-hash rather than .git/objects/whole-hash.

There is some good discussion of this topic at this stackexchange post: "Why is the Git .git/objects/ folder subdivided in many SHA-prefix folders?" — check it out.

Another similar post on SO has some additional info.

turtle_dragonfly

As someone who also occasionally posts wall-of-text replies to innocent questions, I appreciate this response (:

For me, I think this is an important aspect:

being involved at an intimate level

...

of having something of yourself go into it

People form relationships with their code, and with the other people who work on it. There is a meeting of minds. With AI, now there's this schizophrenic fragmentary personality involved, partially replacing your co-workers. Maybe a little like seeing your loved ones bitten and becoming zombies :p (Halloween is coming!)

I think part of it is also that AI output is semi-random, so there is a loss of control, and thus a loss of personal expression. The more you go to the "never look at the code" vibe-code-y side of the spectrum, the more of this you have.

And another part is that practically all art involves an exploration of the medium. Whether it's paint, piano keys, clay, words, code, etc. you have to get to know the medium really well to accomplish your goals. But AI kinda skips over that part, so you haven't done the exploration or learned those lessons, even if you like the output. And that feels false for someone who did that work.

And the AI medium — that thousands-of-dimensions vector space, where we use words to poke around — is something that keeps changing, depending on some 3rd party business and/or political interests. It's like working with clay that keeps rearranging its atoms as you go. It's hard to learn lessons and build that long-term artistic relationship with the medium.

turtle_dragonfly

Ah cool; it looks like you have a site jn3008.com — I'll check it out. I try to avoid instagram (:

turtle_dragonfly

This looks very much like bleuje.com — is that you? If so, I love your stuff!

turtle_dragonfly

knowing its all going away soon.

...

i know it wont be long

To know the future with such confidence ... I don't know how you do it!

Some signs of a depressed mindset are over-generalizing and catastrophizing. Maybe related? If so, ::hugs:: but realize that the future is not written. These are definitely Interesting Times™, but I hope you can take it as it comes and try to stay loose.

turtle_dragonfly

A funny example a professor once showed:

"Let's simplify the fraction 16/64. We cancel the sixes! 1 6 / 6 4. That gives 1/4."

It's the correct answer, but by wrong reasoning. You don't get points on homework for those results (:

turtle_dragonfly

Should I create my own branch before making changes?

Yes. Broadly speaking, this is always true in Git. Branches are cheap. Make a branch for any change you are planning.

How should I transfer the unpushed modifications between PCs?

This depends on your PCs, and your preferences. If unix-like, then I would recommend pushing/pulling over SSH. Git has built-in support for this. In fact, even for Windows, these days (Windows 10 and 11) Microsoft does include a SSH server.

The other primary way people do this is through a 3rd-party service. GitHub is the most popular, but there are others.

In that case, you would push your branches to (eg) GitHub on one PC then pull from it on the other one.

Aside: Some people, when they say "git" really mean "GitHub," since it is so popular and common. But Git can handle this stuff on its own quite fine without involving a 3rd party website. It's the whole point of Git — to enable distributed version control, all on its own, without any outside help.

How can I safely integrate the code from the ZIP file?

It kinda depends on what is in the ZIP. Is it just source code?

You could (1) create a branch in your local Git repo (eg: named "withzip"), then (2) unzip the ZIP and put those files in place, while that branch is active, then (3) commit those changes. Then, you will have a branch with the ZIP files, and you can switch to that as needed, or merge it with other branches, build on top of it, etc.

It really depends on what is in the ZIP and what the intended usage is.

turtle_dragonfly

Just as a point of encouragement, the highly-successful game Braid for a long time just had "programmer art," and it looked like ass (example). But the mechanics were cool, and it built pre-release interest just based on that alone, over time.

It is true that visual first impressions are important, and I think eventually you would want to give your game a visual makeover. Maybe hire or partner with an artist?

But don't let that stop you from doing the important work on the game itself in the meantime.

Good luck!

turtle_dragonfly

There already exist objects, like table lights, that have touch-based buttons.

So, one idea is: cannibalize one of those objects to remove the switch/sensor, then connect it to whatever you want to turn on/off with it. For instance, you could have an MP3 player playing all the time, and use the button to turn on/off the speakers.

As another person mentioned, these are generally metallic objects, not ceramic. It needs to be electrically conductive. Some ideas here include:

  • conductive paint
  • electroless plating (wiki link)
  • make the object out of metal clay, or have a metal clay surface (wiki link)

Your friend might want to ask their art school professors about these and other ideas.

For a non-conductive choice, check out "capacitive sensors" These generally require a very thin separation though (like the glass on a cellphone). So, it might not be super practical for a ceramic object, unless they make it very thin-walled. Also, I think you would need to have a whole grid of sensors under the skin of the object, since it won't detect touch just anywhere, only next to the sensor(s). Would make the electronics side more complicated than the electric conductive version.

If you really want a full computing device to handle the interaction, you could use a raspberry pi, and python to access a GPIO pin that is hooked up to the aforementioned switch(es). There are other devices, but rpi has a robust community and documentation so is an easy path.

turtle_dragonfly

Animations aside (which are great!), I think you've done a good job making the icons match the effects, both here and in the fire & ice ones. (maybe the weakest is fire #3, if I must complain)

Is this for a game or anything?

turtle_dragonfly

siiiggghhh.... upvote

turtle_dragonfly

One that I like is "velocity" or maybe "momentum."

I'm thinking of games like Burrito Bison, where building and maintaining momentum are how you are able to progress.

turtle_dragonfly

Simpsons did it!!

But seriously, even though there's some truth to the "there are no new ideas" idea (a tired old idea itself :Þ), you are still the only one ever who can bring your own unique perspective.

I gently suggest that you might be over-generalizing. Yes, there are 1000 to-do lists, but have you ever used a to-do list that you were 100% satisfied with? Those 1000 are not all the same even if they have a common goal. I suspect that if you really threw yourself into it — even something as banal and over-done as a to-do app — you would feel the struggle of making decisions, deciding how best to present the information, make it intuitive for people, handle the various use-cases, etc.

You might even come to the same conclusions that someone else already did, and therefore make a result that is pretty similar to someone eles', but the value is in going through the process yourself, internalizing the lessons learned. I suspect that after you've gone though that, you would not see all those to-do lists as "the same," but would be able to discuss their pros and cons, and appreciate the work that has gone into some but not others. You would have critical eyes, rather than just "they're all the same" generalities.

There is a large gap between doing something and doing something well, and trying to cross it is where a lot of the interesting stuff and growth lies.

Anyway, do with that what you will (:

turtle_dragonfly

I like an insulated thermos, to have hot tea at hand (:

And a nice strainer that fits inside it.

Is he the sort of person who would like little decorative things? For me, I have various rocks that I've found, and sometimes I pick up to help me think from time to time, but they're interesting to look at, too. Or some people like little mini fake plants and legos and stuff like that.

There's a whole cottage industry of USB powered desk accessories — mini lava lamps, floating magnet things, etc. Just search around and you'll find plenty.

I do a lot of pen+paper note taking; if he's also into that, then a nice notebook?

Personally, for the more serious comfort/ergonomics stuff, I feel those arae really hard to buy for another person, since it's so particular to one's own body. But if you get stuff that's returnable, could be good to try out something like a footrest under the desk, or such.