new posts

This commit is contained in:
nek0 2019-12-08 15:07:04 +01:00
parent 43070aaaa4
commit 0b268db637
2 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,40 @@
---
title: Frustration levels rising
author: nek0
tags: english programming
description: Frustration with Haskell game development
---
The software projects I do in my spare time often revolve around game
development and usually the language of choice is Haskell. Doing things the
Haskell way demands some frustration tolerance and patience but the
outcome is usually a very robust piece of software. The outcome then usually
outweighs the frustration on the way there and makes programming quite an
enjoyable experience.
Unfortunately this does not apply to game development in Haskell. At least for
me. After years of trying the closest I ever got to a game was
[Tracer](https://github.com/nek0/tracer), which I still wish to complete, but I
doubt I will ever be successful. This is due to the fact that in the current
state it performs badly because of poor technical choices on my side, which I
am trying to rectify. To make better informed decisions I set the game aside
and started experimenting with some new and some different concepts. This
includes concepts like Functional Reactive Programming (FRP) as a new paradigm,
but also better tooling, like proper shader programming.
Finding resources on FRP was quite easy. I was given a good
[itroductory book](https://www.manning.com/books/functional-reactive-programming)
and found a capable Haskell library implementing this concept in
[reactive-banana](https://hackage.haskell.org/package/reactive-banana).
Finding resources for shader programming in Haskell was not as successful. There
are some interesting attempts at abstracting the GLSL shader language into
Haskell, so one can profit from static type checking by the compiler, but these
haven't been updated for at least two years and don't work anymore. All in all
the whole GPU programming part of game development in Haskell looks very bleak.
To get things done one has to resort to interfacing C libraries oneself, which
is an error prone and tedious task.
For now I am really frustrated by this lack of an ecosystem and by the fact,
that after three years of trying I only have rotting bits and pieces of
software.

View File

@ -0,0 +1,37 @@
---
title: And we are at a full circle
author: nek0
tags:
description:
---
Time to make a new update. Quite a few things happened lately:
[As I posted earlier](/posts/2019-09-08-Back-to-Debian.html) I had switched back
to Debian. This did not last long. After visiting
[NixCon](https://2019.nixcon.org/) and learning about all the cool new stuff
coming to NixOS (and after breaking my Debian system) I decided to give NixOS
another shot and installed it all. I even got my graphics setup to work
properly thanks to the Optimus Prime setup options.
Now I am learning how to handle
[haskell.nix](https://github.com/input-output-hk/haskell.nix), an alternative
builder for Haskell projects I learned about at NixCon. It works quite well,
despite still being marked as experimental. What I still struggle with, is the
setup of packages depending on other packages available only locally. Until I
can resolve this issue, some of my Haskell development is halted. If someone
has some resource at hand on how to achieve this other than the official docs,
I would be very grateful for a nudge in the right direction.
Some other thing, which happened longer ago, but I failed to announce properly:
Eidolon, my image gallery is down and I am planning to change the scope and
rewrite the project. I took the gallery offline after new legislation passed
the european parliament known as "Article 13", whoch would have forced me to
either implement content filtering for copyright infringements at upload or buy
this service externally. The first seems impossible with my resorces and the
latter I am not willing to do. So the gallery will change to a single-user
gallery software.
And this concludes today's update. I will be present at 36C3, so if you want to
get in touch, you may find me there. I will be most likely hanging around the
ChaosZone assembly or you can call me on DECT 6350.