I am in the process of building a browser game that essentially mimics the Football Manager game from Sports Interactive. The simulation in the original Football Manager game involves managing a football team by making tactical decisions, and playing matches, with the outcomes determined by a mix of player stats, team strategies, and in-game dynamics.
I will use Spring and React as well as Postgres. I stumbled on Julia recently and did some forecasting and other shorter programs, so I´m essentially new to it. I did not a have a specific use or project in mind with it until this one.
For the the simulation of each game played, the players(gamer) only have control of the tactics. This means the computation will roughly be: players decisions = players stats + team and individual tactical instructions + other players previous decisions.
My question if Julia would be a good language for that task, given that i want a players “decision” to be made every 0.25 seconds (a pace that was mentioned on the forums). Julia’s role would then be focused on the backend calculations and game logic, with the results being passed to the frontend for visualization (2D).
I see two core strenghts in Julia for this case (feel free to add other aspects):
- parallelism and concurrency because of many players decisions
- handles complex mathematical operations well
scalability, I am a bit clueless here, also because there isn´t any simulation running yet. Less important for now.
does julia perform well with postgres databases in a context of high-demand environment?
julia and its features are meant to be a language for scientific computing, not my case
I read another post which made a bit sceptic if julia would be the right choice:
So my decision upon using Julia is also based on the question: Is my game Hard Real-Time Computing or Soft Real-Time Computing?
I personally think that a slight delay in a decision won’t alter the outcome of future players decisions in an unintended way. But this thought is only based on sentiment and the 250ms estimate, so I would be really happy to hear some of your thoughts.
My alternatives would be C++, Python with Numpy, but these are my issues:
C++: never used it and harder to learn (I admit that maybe this would be the occasion to finally begin using it)
Python: I do program in python, but i´m afraid pythons Global Interpreter Lock could be a bottleneck for CPU-bound concurrent processing.
I read a few posts here and understand that my first julia code will not be as quick as it could be, but I am ok with working on this project a little longer and investing time in optimization, as it isn´t work related.
I hope this isn´t too much gibberish and you could tell me if Julia is worth it for this project or less so.