ovidiubadita

ovidiubadita

Elixir for game development

Hey all,
I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but after discovering Elixir, I think I will spend a lot of time learning it well. For web development seems to be a great tool.

This is just out of curiosity, more than a practical question, but I want to understand the limits of this technology.

Can you make games in Elixir and deploy them on client systems?

I know it works in Erlang Vm, but I suppose the VM can also be installed on the client. But can Elixir render rich graphical content and use graphical resource?

Most Liked

aseigo

aseigo

Which IMHO is very, very unfortunate. BEAM languages, especially Elixir, would be amazing to write client applications in if there was a good rich GUI facility. wxWidgets is not that (just look at the fun the last weeks on the erlang list about this!), but one can imagine such a thing existing. The lack of a good modern toolkit is one of the last things that holds the BEAM forever on headless services.

Concurrency is absolutely huge for modern GUI applications, something we’ve been working around for the last couple decades with one hack or another. Threading is a nightmare, so it is often faked with event loops and async I/O to varying degrees of success.

Good, modern UI toolkits put as much of the UI as possible in threads (QtQuick does this in several ways, as well as putting as much on the GPU as possible) leaving the application code to languish in yesterday’s development paradigms. It would be absolutely wonderful to be able to develop rich client applications with a language that gave you good concurrency out of the box. The other benefits like FP rather than OOP and all the other bits and pieces would be the icing on the cake.

Qqwy

Qqwy

TypeCheck Core Team

You might be referring to the game InVected we (me and a couple of other guys, some from our company, some from the university) built for the last Global Game Jam, using Unity for the front-end, and Elixir+Phoenix for the back-end, which synchronized a very simple browser application on the user’s phone with the large Unity screen, allowing them to use their phones as ‘joysticks’. It was a lot of fun, and supports 14+ players (that’s as much as we’ve tested it with at the end of the 48h game jam).

massimo

massimo

I think Scenic it’s the giant step forward we needed to talk about GameDev in Elixir

I wrote about it here

ovidiubadita

ovidiubadita

Thank you for the answers. It helps being able to have a view of what you can and can not do with a thing you plan to learn. So far, I love Elixir, and plan to learn as much and as fast as I can. I will focus on web development, as I already do at this point in PHP and JS. The reason I asked is because I hope one day I will be able to build apps that do not need a browser to run. But is clear that I have a lot to learn until then. Maybe by then, the ecosystem will have more tools. At this point I don’t feel that confident to be the one to make any of them.

OvermindDL1

OvermindDL1

The BEAM rules on servers, not clients, I would not recommend building a visual client on the BEAM.

You ‘can’, but I’d not recommend it.

@Qqwy was building an FRP in Elixir, I already built one in OCaml->Javascript. ^.^

Ooo, QtQuick is a good idea, I’ve use QML and it is indeed awesome.

If you want a web client, well Elixir makes a dang fine server for that. ^.^

Guh, I hate Electron, nothing eats more resources on my system then loading any Electron app… >.>

Where Next?

Popular in Questions Top

9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
shahryarjb
Hello, I get Persian date from my client and convert it to normal calendar like this: def jalali_string_to_miladi_english_number(persi...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 record...
New
dokuzbir
Hello, I am trying to convert my lists to string without losing brackets.For start i have 3 map. They look like these buyer = %{ id: ...
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
chewm
Hi guys, nice to meet you to the whole forum, I’m new here, I’m trying to configure visual studio code for elixir, right now the intellis...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New

Other popular topics Top

belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
yurko
Here are few pieces of (common) Linux knowledge that we use for reasonably small one server apps. We use Ubuntu but this should work for ...
New
srinivasu
How to handle excepions in elixir? Suppose i have A, B, C ,D, E modules. and each module has get() function. A.get() method will call th...
New
malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
lk-geimfari
What is most correct way to open, read and parse JSON file with poison? For example if we have example.json file in root of some projec...
New
mgjohns61585
Could someone help me? I'm making my first elixir program, number guessing game. I can't figure out how to convert the user's guess from ...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? https://hexdocs.pm/ecto/Ecto.Repo.h...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New

We're in Beta

About us Mission Statement