• 8 Posts
  • 35 Comments
Joined 5 months ago
cake
Cake day: February 10th, 2024

help-circle









  • desktop application for Windows, macOS, and Linux

    Nothing does cross-platform desktop apps as well as Qt.

    Definitely not Electron, which is very wasteful of system resources and has endless desktop integration bugs. Not Flutter. Not WxWidgets. Not Gtk. Not any of the various Java or Rust frameworks. Not Dear ImGui. Nothing. (Well, I haven’t tried Lazarus yet, but it requires a language that’s not on your list, so is probably not relevant here.)

    Some of the newer frameworks might shape up eventually, but it would take years of focused effort. This is an area of computing that is difficult to do well.

    I’ve been considering Ruby, Python, Golang and JavaScript

    Of those languages, I would choose Python with either PySide or PyQt. If my interface needs were very simple, I might also consider Qt Quick, which lets you build GUIs with JavaScript and a declarative language called QML.


  • I’m encouraged by the facts that Sony’s game controller linux driver works with no signup, and that this announcement mentions needing a Steam account but says nothing about a PSN account.

    This is disappointing, though:

    some key features, like HDR, headset feedback, eye tracking, adaptive triggers, and haptic feedback (other than rumble), are not available when playing on PC.




  • Not a bad shallow introduction to the package structure, but it leaves out more than a little, and doesn’t address compiled software at all.

    Fortunately, Debian has extensive documentation. It’s worth a look for anyone wanting to build packages suitable for publishing.

    https://www.debian.org/doc/devel-manuals

    The New Maintainers’ Guide might be a good next step for understanding more use cases and available tools.

    The full Guide for Debian Maintainers is more up to date, including relatively new tools like dh that considerably simplify packaging software that uses common build systems.


  • Most of what comes to mind has already been said by others, but I want to add one thing…

    the overall code seems so convoluted to me that I don’t even know where to start to analyze a solution, even though if it’d probably take ten lines to implement.

    One of the most important things to understand about software development is that (outside of small hobby projects) the vast majority of the work is not writing code. Most of the hours will be spent on a combination of other tasks, including:

    • Understanding the desired behavior
    • Understanding what has been tried before
    • Understanding what has and hasn’t worked well in past attempts
    • Considering unexpected ways in which the software might legitimately be used
    • Imagining needs that might emerge in the future
    • Imagining problems/circumstances that might emerge in the future
    • Devising a solution that you think will work well
    • Predicting limitations of your design
    • Communicating the reasons and goals behind your design choices
    • Listening to feedback from others, and understanding it
    • Collaborating with others to find common ground
    • Conducting research to prove your assumptions or answer open questions
    • Learning the ins and outs of surrounding code that is only tangentially related to yours
    • Learning unfamiliar tools
    • Learning unfamiliar languages
    • Learning unfamiliar algorithms and data structures
    • Revising your design
    • Coming up with succinct and clear names for things
    • Testing your implementation (making sure it works now)
    • Devising and writing automated tests for your implementation (making sure it will keep working when someone else changes something)
    • Composing comments to explain why non-obvious things are done a certain way
    • Reformatting your code to fit the style of the project
    • Writing documentation, and rewriting it
    • Answering questions
    • Waiting for others to get back to you

    The time and effort required for all of this multiplies when modifying an existing codebase, and multiplies again when most of that code was written by other people. Shepherding a contribution from idea to final merge often requires not only technical skill, but also study, diplomacy, empathy, and immense patience.

    But I have no reference for how long a feature should take to implement in someone else’s code for the average Joe who does this for a living.

    It varies quite a lot. I have had dozen-line changes take months, and thousand-line changes take a day or two. Just know that if it’s taking much longer than you expected, that is completely normal. :)







  • Whenever I find myself wishing for a tool to do (whatever), I habitually add its description and distinguishing features to a list that I keep for this purpose.

    Then, when I want to try a new language, I already have a list of project ideas.

    Not every new language is a keeper for me, so the project I choose doesn’t necessarily get finished in that language. That’s okay, because the process still gives me the real-world experience to find what I like and dislike about the language. It also leads to improved design and faster development when I pick that project up again in some other language, because I’ll have already explored the underlying issues.





  • similar open world games with good combat systems,

    This might be a tall order. Most of the “open world” games I’ve found either fall down in the open world department (lots of restricted areas or nothing varied/interesting enough to make exploring fun) or fall down in the combat department (awkward, unresponsive, or annoying in some other way). Some high-profile games even manage to suffer from both these problems despite being great in other ways (I’m looking at you, Geralt).

    I hoped for quite a while that the next Elder Scrolls game would keep the good parts of Skyrim (beautiful environments full of unique things to discover) and overhaul the combat into something good, but recent showings from Bethesda make me less than optimistic.

    Some people praise the Dark Souls series (including Elden Ring) for both openness and combat. However, if you loved Breath of the Wild, I wonder if the Souls style would be a bit too combat-focused for your taste, leaving the world feeling cold and empty. I haven’t played them enough to have a strong opinion about this; perhaps someone else can chime in.

    I look forward to the suggestions you get in this thread.


    Edit:

    I just remembered Subnautica! I recommend this game, but there’s caveat in the context of your question: The way it avoids bad combat is to give the player reason to avoid combat as much as possible.

    Maybe Valheim?