Anonymous asks, via money:
What would you like to see happen in tech in 2018?
(answer can be technical, social, political, combination, whatever)
Hmm.
Anonymous asks, via money:
What would you like to see happen in tech in 2018?
(answer can be technical, social, political, combination, whatever)
Hmm.
Anonymous asks:
something about how we tweak physics to âworkâ better in games?
Ho ho! Work. Get it? Like in physics�
Hi! Here are a few loose thoughts about picking random numbers.
Anonymous asks, with dollars:
More about programming languages!
Well then!
Iâve written before about what I think objects are: state and behavior, which in practice mostly means method calls.
I suspect that the popular impression of what objects are, and also how they should work, comes from whatever C++ and Java happen to do. From that point of view, the whole post above is probably nonsense. If the baseline notion of âobjectâ is a rigid definition woven tightly into the design of two massively popular languages, then it doesnât even make sense to talk about what âobjectâ should mean â it does mean the features of those languages, and cannot possibly mean anything else.
I think thatâs a shame! It piles a lot of baggage onto a fairly simple idea. Polymorphism, for example, has nothing to do with objects â itâs an escape hatch for static type systems. Inheritance isnât the only way to reuse code between objects, but itâs the easiest and fastest one, so itâs what we get. Frankly, itâs much closer to a speed tradeoff than a fundamental part of the concept.
We could do with more experimentation around how objects work, but thatâs impossible in the languages most commonly thought of as object-oriented.
Here, then, is a (very) brief run through the inner workings of objects in four very dynamic languages. I donât think I really appreciated objects until Iâd spent some time with Python, and I hope this can help someone else whet their own appetite.
An anonymous donor asked a question that I canât even begin to figure out how to answer, but they also said anything else is fine, so hereâs anything else.
Iâve been avoiding writing about game physics, since I want to save it for ⨠the book Iâm writing â¨, but that book will almost certainly not touch on Unity. Here, then, is a brief run through some of the brick walls I ran into while trying to convince Unity to do 2D platforming.
This is fairly high-level â there are no blocks of code or helpful diagrams. Iâm just getting this out of my head because itâs interesting. If you want more gritty details, I guess youâll have to wait for ⨠the book â¨.
IndustrialRobot has generously donated in order to inquire:
In the last few years there seems to have been a lot of activity with adding emojis to Unicode. Has there been an equal effort to add ârealâ languages/glyph systems/etc?
And as always, if you donât have anything to say on that topic, feel free to choose your own. :p
Yes.
I mean, each release of Unicode lists major new additions right at the top â Unicode 10, Unicode 9, Unicode 8, etc. They also keep fastidious notes, so you can also dig into how and why these new scripts came from, by reading e.g. the proposal for the addition of Zanabazar Square. I donât think I have much to add here; Iâm not a real linguist, I only play one on TV.
So with that out of the way, hereâs something completely different!
Another Patreon request from Nova Dasterin:
Maybe something about level design. In relation to a vertical shmup since Iâm working on one of those.
Iâve been thinking about level design a lot lately, seeing as how Iâve started⌠designing levels. Shmups are probably the genre Iâm the worst at, but perhaps some general principles will apply universally.
And speaking of general principles, thatâs something Iâve been thinking about too.
Iâve been struggling to create a more expansive tileset for a platformer, due to two general problems: figuring out what I want to show, and figuring out how to show it with a limited size and palette. Iâve been browsing through a lot of pixel art from games I remember fondly in the hopes of finding some inspiration, but so far all Iâve done is very nearly copy a dirt tile someone submitted to my potluck project.
Recently I realized that I might have been going about looking for inspiration all wrong. Iâve been sifting through stuff in the hopes of finding something that would create some flash of enlightenment, but so far that aimless tourism has only found me a thing or two to copy.
I donât want to copy a small chunk of the final product; I want to understand the underlying ideas that led the artist to create what they did in the first place. Or, no, thatâs not quite right either. I donât want someone elseâs ideas; I want to identify what I like, figure out why I like it, and turn that into some kinda of general design idea. Find the underlying themes that appeal to me and figure out some principles that I could apply. You know, examine stuff critically.
I havenât had time to take a deeper look at pixel art this way, so Iâll try it right now with level design. Here, then, are some levels from various games that stand out to me for whatever reason; the feelings they evoke when I think about them; and my best effort at unearthing some design principles from those feelings.
Another patron post! IndustrialRobot asks:
You should totally write about drawing/image manipulation programs! (Inspired by https://eev.ee/blog/2015/05/31/text-editor-rundown/)
This is a little trickier than a text editor comparison â while most text editors are cross-platform, quite a few digital art programs are not. So Iâm effectively unable to even try a decent chunk of the offerings. Iâm also still a relatively new artist, and image editors are much harder to briefly compare than text editorsâŚ
Right, now that your expectations have been suitably lowered:
A sponsored post from an anonymous patron:
I would kinda like to hear about any thoughts you have on technical teaching or technical writing. Pedagogy is something I care about. But I donât know how much you do, so feel free to ignore this suggestion :)
Good news: I care enough that Iâm trying to write a sorta-kinda-teaching book!
Ironically, one of the biggest problems Iâve had with writing the introduction to that book is that I keep accidentally rambling on for pages about problems and difficulties with teaching technical subjects. So maybe this is a good chance to get it out of my system.
Nova Dasterin asks, via Patreon:
How about do something on networking code, for some kind of realtime game (platformer or MMORPG or something). :D
Ah, I see. Youâre hoping for my usual detailed exploration of everything I know about networking code in games.
Well, jokeâs on you! I donât know anything about networking.
Wait⌠wait⌠maybe I know one thing.
This month, IndustrialRobot asked my opinion of FOSS game engines â or, more specifically, why I chose LĂVE.
The short version is that it sort of landed in my lap, I tried it, I liked it, and I donât know of anything I might like better. The long version isâŚ
Ah, C. The best lingua franca we have⌠because we have no other lingua francas. Linguae franca. Surgeons general?
C is fairly old â 44 years, now! â and comes from a time when there were possibly more architectures than programming languages. It works well for what it is, and what it is is a relatively simple layer of indirection atop assembly.
Alas, the popularity of C has led to a number of programming languagesâ taking significant cues from its design, and parts of its design are⌠slightly questionable. Iâve gone through some common features that probably shouldâve stayed in C and my justification for saying so. The features are listed in rough order from (I hope) least to most controversial. The idea is that C fans will give up when I call it âweakly typedâ and not even get to the part where I rag on braces. Wait, crap, I gave it away.
Iâve spent a little time trying to embed a Lua interpreter in ZDoom. I didnât get too far yet; itâs just an experimental thing I poke at every once and a while. The existing pile of constraints makes it an interesting problem, though.
Zed Shaw, of Learn Python the Hard Way fame, has now written The Case Against Python 3.
Iâm not involved with core Python development. The only skin I have in this game is that I like Python 3. Itâs a good language. And one of the big factors Iâve seen slowing its adoption is that respected people in the Python community keep grouching about it. Iâve had multiple newcomers tell me they have the impression that Python 3 is some kind of unusable disaster, though they donât know exactly why; itâs just something they hear from people who sound like they know what theyâre talking about. Then they actually use the language, and itâs fine.
Iâm sad to see the Python community needlessly sabotage itself, but Zedâs contribution is beyond the pale. Itâs not just making a big deal about changed details that wonât affect most beginners; itâs complete and utter nonsense, on a platform aimed at people who canât yet recognize it as nonsense. I am so mad.
You may have noticed that I like comparing features across different languages. I hope you like it too, because Iâm doing it again.
Ever since writing that one post about PHP, Iâve had a steady trickle of people ask me to write a similar post for other languages or platforms. The most common request by far is JavaScript.
Well, Iâve finally done it. Here you go: the horror story that is JavaScript.
Iâve now made a few small games. One of the trickiest and most interesting parts of designing them has been making them accessible.
I mean that in a very general and literal sense. I want as many people as possible to experience as much of my games as possible. Finding and clearing out unnecessary hurdles can be hard, but every one I leave risks losing a bunch of players who canât or wonât clear it.
Iâve noticed three major categories of hurdle, all of them full of tradeoffs. Difficulty is what makes a game challenging, but if a player canât get past a certain point, they can never see the rest of the game. Depth is great, but not everyone has 80 hours to pour into a game, and itâs tough to spend weeks of dev time on stuff most people wonât see. Distribution is a question of who can even get your game in the first place.
Here are some thoughts.