In this WIP video I’m testing the music, that reminds a bit of my own Night
Knight, and perhaps some Ghost and Goblins –which is not a bad thing–.
Graveyard Shift will need a ZX Spectrum 128K model, and the music uses the
AY-3-8912 audio chip.
Looks like I didn’t do a great job capturing the sound in this video. The
emulator was producing stereo (although the ZX Spectrum wasn’t capable of
that), but the captured video is mono. Hopefully, the next video will be
better.
The web of the late 90s was a cornucopia of wonder, delight, and inspiration.
So was the blogosophere (sic) of the early 2000s. I know a lot of us are
nostalgic for those eras, and depressed about how things have turned out. The
bad is really quite bad, and sometimes I feel like there’s no way forward.
There’s a good summary at the Wikipedia, with some notes on current
usage (all negative, btw).
Summing up:
RSS is not dead, but is not fashionable (and arguably, it has seen better
times).
Social media is hostile, and major sites such as Twitter and Facebook have
removed (or reduced) their support; some of them never supported it.
All major browsers have removed RSS support (IE still supports it out of the
box; and Firefox, champion of the Open Web dropped support of RSS in Firefox
64).
All the problems it had, are still there (probably for another post).
Although I like Udell post and his optimism because we still have the
Internet, and despite how things are going and “we’ll figure it out”, I feel
something must change if we want to get back to that cornucopia of wonder,
delight, and inspiration (and I want the blogosphere back!).
As bonus: in defense of RSS by
Seth Godin, written 10 years ago and updated just recently. Still
as relevant now as it was back then, if not more.
As part of my exit from Twitter, I plan to have some work in progress (WIP)
posts and information on what I’m doing in my “gamedev” projects. Or at least,
updates mostly related to game development, because I think I may include other
development related topics, but gamedev is catchier than plain dev, isn’t
it?
This is not Twitter. The format is different and, essentially, even if I make
notes as the events happen, I don’t see much value on posting them “as-is”
(although people liked that on Twitter).
So instead I’m going to write one post a week with those notes more or less
redacted, although I may still post specific WIPs any time when the content is
longer than a short Twitter thread.
Looking at my usual week, the updates are likely to be from Thursday to
Thursday, but this is not a rule set on stone anyway.
Let’s do this!
Brick Rick: Graveyard Shift
Not a lot has happened on this project. Basically: the game is finished!
The attraction mode in action
I said back in December last year that it was very likely that the game would
be out by the end of January 2021. So, what’s going on?
First of all, I started with the struggle of drawing the loading screen,
because it’s not my thing! Then I remembered someone contacted me in April 2019
offering a collaboration to draw the loading screen of a game I was working on
back then –a game that was cancelled, by the way–.
At that time I was impressed with the screens that he had produced until that
point, but I politely declined because I had that project covered already.
Anyway, the good news is that he will be working on the loading screen of
Graveyard Shift; although he asked for some reference art, and I don’t have
that. Which makes sense, if I could draw, I would draw the loading screen
myself.
The truth is that I didn’t want to think about a physical release at this
point, but then my wife suggested (wisely, I must say) that I could commission
the cover art and use that as reference for the loading screen. I’m happy to
say that I’m working again with the artist that did the cover art of Brick Rick
for the Amstrad CPC.
Now that I’m going to have cover art, almost accidentally I have found a
publisher that is keen to release the game on cassette in a nice budget-style
label. It’s not a closed deal, but I’ll move it forward as soon as I have the
cover art.
Looks like things are coming together nicely, but all this takes time.
Meanwhile, testing is going very well. A few bugs were fixed in the first pass
–some of them of the embarrassing type–, and I think we already have a version
that we could call “release candidate”.
There is still at least one song missing, and I should tackle that before the
art is ready. Turns out, the Halloween-ish theme isn’t that easy.
I don’t like that the project has gone a bit cold, but I don’t have a
deadline anyway.
After I released my libraries to make MSX games in
C, I got the MSX itch again. I
guess I had lot of fun putting together the example game in 3 days or so.
I’ve been drawing some tiles, partly looking for inspiration, partly aiming to
a game idea that perhaps could work fine (spoiler: with a rogue-like
component).
It is still too early to reveal anything, but I’m excited. I may even consider
submitting the game to
MSXdev'21, although I
haven’t been much of fan of game jams in the last few years.
A nice side effect of not knowing what to do is that I’ve been reviewing the
code again, and after this last refactoring, I think it is starting to look
great.
In some parts I have decided that it doesn’t make much sense to go full FP because
of the interaction with the Javascript underneath. A bit of Object Oriented
Programming (OOP) is just fine.
The idea was to:
write some Scala out of my day job
make gamedev targeting the web more comfortable by using the same tools I
use working with Scala
have some fun!
may be make a game?
So I’m fine with that (although to be clear: the code was fine already).
I’m reading Functional Programming,
Simplified
by Alvin Alexander, which is intended to make the process of learning
functional programming (FP) in Scala as simple as possible.
It is a bit too soon to recommend the book, and it is a 700+ pages commitment
–I’m glad it is simplified–, but I’m happy with what I’ve been reading so
far.
In the introductory chapters, where Alexander starts to define what is FP, he
includes a quote attributed to experienced FP developers:
In FP we don’t tell the computer how to do things, we just tell it what
we want.
The idea behind the quote is that, in imperative programming, the programmer
tells the compiler step by step what to do, while in FP you are telling what
is what you want to be done, without caring about the actual implementation.
Instead of reproducing the same example from the book, let’s take a look at
this short piece of C code:
char*leters ="aababcbcdefba";
int count =0;
for (int i =0; i <13; i++)
if (leters[i] =='a')
count++;
In this example we are counting how many times the character ‘a’ appears on a
string. Very straightforward, isn’t it?
Let’s see how we would do this in Scala using FP:
"aababcbcdefba".count(_=='a')
Do I really care how count is implemented? No, I don’t; all I want is to know
how many times the character ‘a’ appears on that string, and I can trust that
function to be correctly implemented.
Although the point Alexander was making was not explicitly about the quote
itself, it really resonated with me because I’ve been thinking about something
similar in the context of a compiler targeting limited CPUs like the Z80.
One of the common struggles of making games for 8-bit microcomputers using C
and the SDCC compiler is that the compiler is not always
very efficient generating Z80 code. And thinking about imperative programming,
it makes sense that it is hard.
I suspect the real reason for SDCC not being at the same level as other modern
compilers is more related to resources and limitations of the target
architecture; for example the Z80 has less registers than a modern CPU, and
writing an efficient register allocator is a big part of the problem.
Anyway, I was wondering if a compiler that implemented some limited functional
programming language would have an easier job if instead of telling it how to
do things, we just tell it what we want.
Really? Are blogs still exciting in 2021? Well, I think they are, even if not as
popular as they used to be, specially compared with social media. I’m convinced
there are blogs worth reading out there.
I also think there’s value in writing a blog, in my case to document my
projects, and as a way to somehow untangle my thoughts when I have something to
say.
Which is what I was doing, more or less, on Twitter. Until recently, that I
decided to review how I use that social network. With current COVID
situation (and working from home), I found that the always on of Twitter was
starting to affect my ability to switch off, and it was an easy gateway to
procrastination and losing my scarce free time to get things done.
I haven’t decided yet what I’m going to do with my Twitter account,
because I have 2400+ followers, and that is very useful when I want to promote
one of my games. It’ll be just that I’m not going to be there.
As you may know, I already write in a blog in
Spanish that I’ve been writing since 2003
(that’s 18 years already!), but I wanted to do some things differently:
I want to have the blog as part of this site.
because this site is generated with Hugo, I won’t be
using a full featured CMS.
write in English, as I was doing on Twitter.
So, what is this going to be about? I suspect it’s going to be similar to what I
used to write on Twitter: about my gamedev projects, with some WIP content,
about Open Source and technology, perhaps some commentary on news, and likely
to have more lengthy writings as well, because this is a blog after all!
The blog is currently a bit work in progress, and I may add more things as I think I
need them (like making the posts’ tags visible). But for now, this is a good
first post.