• 0 Posts
  • 40 Comments
Joined 2 years ago
cake
Cake day: June 15th, 2023

help-circle











  • I don’t need reproducibility to the extent that NixOS provides

    Alright, that’s fair. As a programmer, I’ve been having a blast using it - being able to quickly setup my laptops almost the same as my desktop is such a breath of fresh air, then being able to copy over most of my config to a WSL setup to employ nix to get there 90% of the way on a Debian or Ubuntu WSL system is just so nice.

    But if you don’t need its features, or aren’t a programmer, I can very much imagine you’d rather stick to a more stateful system.


  • Start with pen and paper - no computer, because that’ll just distract you.

    Write down what kind of game you want to make. Sketch out what you want your player to see when they play the game (top down, third person, first person; which UI elements should they see? Health? Mana or power bars? Selected items?). Does it have a story of sorts? What kind of setting (future, past, fantasy, sci-fi). 2D or 3D? What kind of visual style are you going for (realistic, cartoony, abstract?).

    This will be your Game Design Document. You don’t have to get it perfectly at the first go - iterate over it, scratch things that you feel won’t work.

    Once you have something that looks like a minimally viable product (MVP), THEN you can start making something in Godot, Game Maker, or Love2D. Because now you have something to follow along. Try to get something out ASAP, because feedback from people who are not you is important. Maybe you made something that feels fun to you, but no one else likes it - you would want to know that as soon as possible, not after toiling away for 5 years.

    Do not start caring about “what is the fastest programming language”. Even the slowest of languages are fine, because you’re learning how to build a game, not how to program like a pro.




  • Uh, just yesterday. Installed NixOS (with KDE) because I learned Debian at work, but am really missing the ability to track what I’ve installed via configuration. I like the idea of dotfiles in a repo, but want a bit more control like that for my OS.

    Context: I’m a data engineer that writes Python. Python has pyproject.toml files (toml ~= ini files) where you can specify which libraries you want to use, defining which version you minimally, maximally, or just specifically want. And I wished that setup existed for Debian as well, but it doesn’t. So after searching I found that NixOS is pretty much the closest thing. Windows 10 is EOL soon enough, so might as well switch beforehand and not wait until the last second.





  • Refactoring

    Once you know how to write code (in any language) it’s important to learn how to rewrite it (into something better)

    Test-Driven Development with Python

    Because manually stepping through your code is a PITA, so it’s better to put that process into code that you can save and re-run without thinking about it.

    Head first java

    Any of the Head First series are great introduction books. Head First Design Patterns is great to learn programming patterns that you can typically re-use in any language :D

    Fundamentals of Software Architecture

    Haven’t read this one, but learning about architecture is important so you can keep your UI, logic and data layers separate, so when you need to replace one layer (like the UI, because the boss wants a refresh), you don’t need to pull out all your hairs due to frustration!

    Domain Driven Design

    I don’t do DDD (at least not consciously), but understanding what a domain is really really important once you need to talk to business people (not something I like, but it’s necessary to write the right code).

    Neuromancer

    “The sky above the port was the color of television, tuned to a dead channel.” is such a banger of a first line. Outdated, because “dead channel” won’t make sense to younger kids, but I bet they’ll get a kick out of learning about how TVs used to be.