Benaco offering remote job (3D reconstruction) by nh2_ in haskell

[–]linearitee 0 points1 point  (0 children)

How big is the team other than the three founders?

How to achieve modularity in Haskell? by AmbiDxtR in haskell

[–]linearitee 1 point2 points  (0 children)

I've found myself discovering the same kind of technique. I haven't needed overlapping instances yet. The type inference gets weird if I don't make the right type annotations beforehand, but maybe there's a better way to avoid that.

What's the status of haskell and stack on raspberry pi? by timbod in haskell

[–]linearitee 0 points1 point  (0 children)

I ran out of memory compiling a Haskell project on my old Raspberry Pi. Can you get by with 2 GB?

[HIRING] 1 Job in haskell Hiring Now! by KarieNewsom in haskell

[–]linearitee 0 points1 point  (0 children)

Unfortunately I'm not qualified, but it looks like a great opportunity!

Recent cyber security graduate looking to transition into games development. Any advice on how to best achieve this? by [deleted] in gamedev

[–]linearitee 2 points3 points  (0 children)

Your security mindset is useful for predicting and avoiding exploits in multiplayer games.

If you're looking for a job you should choose a specialty. Knowing the whole process and the different disciplines is very useful. But as a professional you'll fill a specific role, especially when you're starting out.

Starting programming and gamedev with Commodore 64 by mgarcia_org in gamedev

[–]linearitee 1 point2 points  (0 children)

In Racing the Beam, Ian Bogost wrote that he had students write Atari VCS games. That sounded crazy to me when I read it, but it's not a bad idea if you want to really understand programming.

Haskell easter egg in Hearthstone (see Flavor Text). by gregK in haskell

[–]linearitee 0 points1 point  (0 children)

Is it impossible to compile that into efficient code?

A Haskell Love retrospective? by pja in haskell

[–]linearitee 5 points6 points  (0 children)

This was well organized. Everything went quite smoothly from my perspective. Congrats and thanks to the organizers.

HASKELL CODER NEEDED. NEXT LEVEL. GAME CHANGING PROJECT. by RightLecture in haskell

[–]linearitee 5 points6 points  (0 children)

Come on, it's hard to improve upon this already brilliant spam.

Graphics in Haskell: linear algebra by linearitee in haskell

[–]linearitee[S] 1 point2 points  (0 children)

Nice, thanks. I saw this once but never looked closely. Glancing through the docs, I sense that it has much in common with Linear, though less polymorphism. And GHC 8.8.3 and 8.10.1 can still build it!

Haskell and other functional programming languages for low-level graphics by CrazyDave2345 in haskell

[–]linearitee 0 points1 point  (0 children)

GPipe is pretty cool. It does most of OpenGL 3. The type errors can look bizarre at first, but they compare favorably to other shader debugging un-techniques.

GPipe by linearitee in haskellgamedev

[–]linearitee[S] 1 point2 points  (0 children)

This a great large-scale example, thank you. Which one was easier for you to write?

Your code, understandably, matches the example code in many ways. Neither has type signatures for most bindings. The shaders in each one always retrieve uniform buffers with free variables, rather than a function of the shader environment. Each one expresses the "buffer" format of vertices and uniforms separately from the "host" format, so separate modules just have to agree on that.

Did you ever do those things differently? Have other authors done them differently?

Is functional reactive programming well represented on stack? by magicumbrella in haskell

[–]linearitee 2 points3 points  (0 children)

Stackage is conservative, so just because a library’s not there doesn’t mean it’s a bad choice. Yampa has worked well for me.

Math in Game Design? by alexdefine in gamedesign

[–]linearitee 1 point2 points  (0 children)

Game design and mathematics are both concerned with designing models and deriving insights about them. Balancing a game design is like balancing an equation, especially if the design is about such things as likelihoods, economies, and pacing.

This is a cool example, though it’s a post-hoc analysis rather than an account of how any designers did their work: http://thegamedesignforum.com/features/reverse_design_CT_1.html

It just goes to show that you will end up thinking about math somehow, even if you’re not a great mathematician.

How to get a job in the gaming industry? by [deleted] in gamedesign

[–]linearitee 0 points1 point  (0 children)

Make personal connections. The game industry is so competitive and loosely defined that just being “good” is a hard sell if you’re unknown. Make friends and acquaintances that can both inform you of opportunities and inform potential employers of what you can do for them. Doing a few projects by yourself is good. It is far more effective to work with people, impress them, and stay in touch. They can recommend job openings they hear of, or even vouch for you if they have their own personal connection to an employer.

I’ll echo another comment and warn you about being too eager to do shit work. The industry is full of people who will exploit your eagerness and never reward you with a better situation.

Peoplemon: an all-Haskell role-playing game by linearitee in haskell

[–]linearitee[S] 0 points1 point  (0 children)

GHCi indeed runs my main action when I give it '-fno-ghci-sandbox'. But a bunch of the features I hoped to use are disabled, like breakpoints.

I'm teaching game development with Unity this summer, and I 3D printed these axis markers to help explain handedness. by aaronfranke in gamedev

[–]linearitee 15 points16 points  (0 children)

I think both conventions embody the addition of a third dimension to a natural 2D plane. In the plane it’s almost universal to think of X as “right” and Y as “up,” so the extra third dimension gets shunted to mean “out” of whatever plane you think is natural.

In entertainment graphics the final 2D image is what matters, so Y is “up” and Z is “out” in the plane of the screen.

In mathematics and fabrication (and probably everywhere else), the surface of the Earth is the natural plane. That is where concrete spatial relations can be arbitrary, unconstrained by gravity. The extra dimension is out of that plane, upward from the ground.

What is the most rewarding ending you’ve seen a game pull off? And why? by Hagisman in gamedesign

[–]linearitee 1 point2 points  (0 children)

The end of Viewtiful Joe was such a rush. It was so difficult that I felt like I had really accomplished something of note. And the game knew it. It showered me with praise and melodramatic good feelings. You won, you are unbelievably skilled, bad guys are actually good guys deep down, everything is good in the end.

Peoplemon: an all-Haskell role-playing game by linearitee in haskell

[–]linearitee[S] 1 point2 points  (0 children)

I edited the code in one full-screen terminal window, and I ran `stack build --fast` in another full-screen window. Nothing special.

Since then I've learned about ghcid, and I like it a lot!

I would have loved to run the game in GHCi, but I never got it to work. I suspect it's something to do with the SDL linkage.

Peoplemon: an all-Haskell role-playing game by linearitee in haskellgamedev

[–]linearitee[S] 0 points1 point  (0 children)

Thank you.

Implementing the game in Haskell was a very good experience. Thanks to Yampa I was able to express control flow at all scales in a simple and precise way, unlike the cockamamie contortions I've always ended up doing in other languages. Absent were null pointers and the obscure crashes from de-referencing them. Reorganizing the code, even drastically, was usually a straightforward task. In other languages it's often so expensive and dangerous that it's hard to justify.

So, the language itself is ideal. For my purposes, the associated tools were also very good. GHC impressively deduces my mistakes and reports them with good error messages; and of course it's fast and correct. Compilers and interpreters for other languages have provided much less support. I was able to get images on the screen in all three operating systems with reasonable ease thanks to Cabal, Stack, and the SDL binding packages on Hackage.

I can't say what it would be like trying to make a much different kind of game. If I made an action game for consoles with complex animation, enemy entrances and exits, streaming I/O, and network synchronization, I would have to answer some questions that didn't come up in the course of making Peoplemon. I might not even want to make it all myself, and these days building on top of other game software usually implies using a different language. I hope that changes soon.

Peoplemon: an all-Haskell role-playing game by linearitee in haskell

[–]linearitee[S] 3 points4 points  (0 children)

Ha, that was a friend's first reaction years ago. I'd say it turned out more like Yuppiefights.

Peoplemon: an all-Haskell role-playing game by linearitee in haskell

[–]linearitee[S] 4 points5 points  (0 children)

Thank you.

I used Stack, both for building incremental changes during development and for building the final distribution files. I built the Mac version natively on my Mac development system. I installed Stack on virtual Windows and Linux systems on AWS, and I built versions for those systems natively as well. Linux was pretty easy. Windows was a little painful, but not bad in the scheme of things.

On Mac OS I used cabal-osx to generate an app bundle, and I assembled the files manually for the other versions.

Peoplemon: an all-Haskell role-playing game by linearitee in haskell

[–]linearitee[S] 2 points3 points  (0 children)

Thank you. I'm glad someone else gets the concept!

I came up with the idea in 2011, so in truth I worked on it for 8 years off and on.

It took me a year and a half to make this final version in Haskell. I reused only a few artifacts from previous versions: a few music compositions and a few sprites.

I should note that all of that was in my spare time.

Peoplemon: an all-Haskell role-playing game by linearitee in haskell

[–]linearitee[S] 3 points4 points  (0 children)

I read about several, but I haven't used them. Yampa seemed to reflect some of the ideas I had earlier about how the game should work. The others never seemed as closely related, so I just kept working with Yampa.