Is Julia even the right choice for this contrarian game idea long-term?

Julia is not currently a suitable language for game development. There is no major game engine in it. I have accepted this fully. However, the reason I look into Julia for game development is not its current state, but its future potential. Currently, there are actually some gimmicks that Julia performs well.

but mostly it’s theoretical benefits like solving the two culture problem between game devs and game designers.

And the fact that there is no current engine in Julia doesn’t matter to me very much because I’d like a custom physics system with built in magic system and so on made to be easy to simulate as well as perhaps a custom light system which might even need a custom rendering system.

As for how a person as feeble as me can do such a thing, I don’t. But if some miracle happen that I have some good team and so on, then it might be in the realm of possibility.

So, what do I want to make? I want to make a game as immersive as Sword art online.

Let’s dive into the game design from the first principle.
To have a sword-art-online-like game, we need a simulated physics system as well as fine-grained controls over the characters.
Now, let’s analyze what these entail.

With a highly simulated physics system, the combination of unintended interactions grows exponentially. This means many glitches, imbalances, etc.
With fine-grained control, you need macros to be able to play the game.

Normally, game designers would stop here, because who is crazy enough to suggest a glitch-ridden, unbalanced, aimbot-based game?

However, I’m not an ordinary game dev. Here are some crazy ideas. They’re so crazy I could put them out here and probably nobody would care about it.

  1. Glitches are just unintended features. Keep them. No performance loss, mechanics change, or time loss of glitch mitigation. Only glitches that crash the game or do something similarly severe need to be patched.
  2. Imbalances aren’t necessarily bad. If the game is complex enough, no player would figure out the most overpowered strategy anyway. This would encourage innovation.
  3. Aimbots aren’t bad. Games simply weren’t designed around aimbots.

By thinking of these from the first principle, we can find a narrow path to make a sword-art-online-like game become a reality.

So, after all of these, it seems I must be crazy. Why would someone want to spend a lot of effort into creating such a broken game like that. Moreover, normal game design rules don’t work. Normal game designs want to balance complexity. We want maximum complexity that doesn’t overwhelm the player, and so on.

So, with all of these, would Julia even be a good tool for it? I know to pull off such a miracle, I would need to create an entirely new ecosystem. Current game ecosystems were simply never designed for such a crazy game.

And how could I pull off such a feat. I’m very weak after all. I don’t know. But if you don’t believe in miracles, they won’t come true.

So, is Julia a good language to continue? Or should I go find something else?

In my honest opinion, you should not. Even the simplest-looking games that run on lower-end machines have game engines now. Game engines exist so developers don’t have to spend time and money making their own engines from scratch to get anything done. You are no exception because this…

…describes the responsibilities of a game engine, likely with your custom modifications. Study existing game engines and start making the game you want because exploring these “crazy” ideas must involve a working game and player feedback. You won’t ever find an answer to any of these questions through mere speculation on a forum because it is such a miniscule fraction of the necessary work. Waiting for a community of game engine developers to “miraculously” adopt the language of your preference before doing any real work is just a tragic loss of time.

If you want to involve Julia, I imagine you might be able to develop some way to interop with the upcoming juliac in a couple years. Maybe after you understand the ins and outs of game engines and Julia has the right tooling, you could consider implementing an engine in Julia, and this is enough work to warrant funding. This is too far in the speculative future, so it should not be on your to-do list today.

6 Likes

First of all, I’m not sure. Game engines can be as big as Unity or Unreal, or they could be small as to be made by a small team or perhaps even an individual.

Well, I’m not sure about anything. It’s such a crazy idea. I don’t know if it would work out but it’s just a chance. I’ve been analyzing some weird corners of the gaming world and my theory seems to somewhat work out.

I’m not saying Julia is necessarily the language I would choose. I even contemplated making my own programming language before I found Julia. Maybe I was stupid to not find a more suitable language or maybe C++ was the right choice all along even though I had many years of experience in C++ and still consider it a pain to write.

I’m sorry, but this means a lot to me because there is something in me that still suggest that I carry this idea forward even though I’m so weak.

If anything, the probability of this becoming true is close to zero. After all, what is the chance that a serious game studio would develop such a broken game? I wish I could just pass the idea to someone who could then pass it forward until they find someone who could implement it, but that doesn’t look possible either.

I don’t know why on earth do I have this crazy idea that sticks to me. If fate had it slightly differently then maybe I wouldn’t have had such a crazy idea in the first place! Maybe if I didn’t have such a goal stuck to me, my life would’ve been much easier.

True, but the utility is that it’s not you or your team developing and maintaining the engine. You can instead make your game, and that sounds like what you want to do.

I’m suggesting you find a game engine, make a working game, and take player feedback (that player can even be yourself at first) precisely so you can truly carry your ideas forward. In my opinion, one cannot carry an idea forward by speculating whether other developers could make the necessary tooling in a particular language one day and lamenting that one lacks their imagined skills or resources. It is not productive to have this high an expectation for complete strangers or to be so harsh on your own skills and ideas before much work. I believe that you’ll get farther and surprise yourself if you accept existing tools in less-than-preferred languages and move beyond speculation.

It doesn’t mean you give up on game development in Julia forever; if a game engine is made for Julia or gets Julia support, you can happily make your 15th game or remake a few of your most-played games in Julia for all those long-term development and maintenance benefits.

4 Likes

Hi @Tarny_GG_Channie :wave:
I have read many posts of yours on this forum. It seems you’re always wondering what project to tackle, or whether Julia is the right tool for the job. It’s obvious you have a lot of ambition and knowledge, even though you often sound self-deprecating. But @Benny is right: at some point you have to actually dive into it, write code and see what happens. Pick a tool and start a project. It may not be the ultimate grand design you dream of, but you cannot achieve that in one shot anyway. Begin with something small, see if it works, gather some feedback and work from there :slight_smile:

17 Likes

Thank you. For further reference, I’m not actually that interested in the normal game dev/low level design that much. I don’t want to be spending most of my time on a zombie’s 3rd attack code/animation or skeleton’s second attack. I might have to tinker with a few of them but for the majority I think I’d rather delegate them to someone more detail-oriented.

However, a few things drew me to games.

  1. AI such as reinforcement learning and so on.
  2. Optimizing the game to run faster.
  3. High-level game design.
  4. I want to see my game idea exist.

It looks like sometimes I might be good at generating crazy ideas that might actually work. However, following up with experiments that can either prove or disprove my crazy ideas is my weak point. Believe it or not, these ideas of how to make such an immersive game was 10+ years in the making, with me contemplating long before I even programmed how to make a good game. I’ll admit that I often spend so much time with theories that oftentimes I get the most productive when somebody break my loop of repetitive thought and got me to do something.

That’s fine, there are certainly creative roles in development teams like this. Directors don’t do most of the drawing or coding, though they should be familiar enough with the work to direct the experts. It’d be more productive to seek the rest of your development team in a game developer forum and negotiate terms.

These are as much a part of “normal game dev/low level design” as animation is, if not more so. Much of game optimization is about graphics, and that directly involves animation. Programming language choice is probably the lowest level detail, and honestly not a very important one considering the main choice is game engines. You might be more interested in “low level” than you think, and your roles will become clearer as you do more work.

Yes… to be honest, I’ve yet to figure out how my game graphics will work though. It depends on the light physics within the game lore, which I want to find a way for it to look pretty while not using much resource, freeing up the GPU to do things like physics simulation. (My reasoning is that graphics have reached a point of diminishing return so I intend to compromise on it to spend resource on game simulation instead.)Newtonian physics is something people put into games without question but it might not always be that good of an idea. I still have to figure out a good and performant physics system that is easy to simulate. So, the good thing is that I could write the game lore to follow any physics system I want. The bad thing is that I don’t even know where to begin because designing physics system is a monumental task and it takes a lot of effort to simulate the physics system you’ve built, so not something I could do soon.

My grand design game is simply deriving things from the first principle, with each idea coming from logical inference. However, it does not necessarily mean that executing them is easy.

Though that is for my grand design game. For the short term game, I plan to have a game that’s not taxing on the computer and with a simplistic graphic.

As mentioned in your other posts, you just need to start. You are dreaming far too big at this point. If you are too afraid to have any wasted lines of code that don’t get used, then yes nothing can get done. Look at any codebase and you will find many deleted lines of code. For example Contributors to JuliaGeometry/DelaunayTriangulation.jl · GitHub and Contributors to DanielVandH/NaturalNeighbours.jl · GitHub I have many thousands lines of code deleted. Those don’t even show the other thousands of lines of failed design attempts.

You should just start by creating simple test games and seeing if this is something you actually want to commit to. This has been the same response to all of your threads at this point.

4 Likes

I’ve had a few games done, I figured out I don’t want to commit to all the nitty gritty details of contents. (Creating Tetris was not my favorite moment but I did get it done.) However, writing the engine, AI, etc might be interesting. I’ll have to try.

I figured out that being a game dev who need to write out all the nitty gritty details for content and game rules might not be suitable for me.

That being said… I’ve had quite a bit of programming, though not as much as I’d like either…

Oh, okay… it seems that if I want to do a game with a game engine, I think I’ll go with Trial engine for now. That doesn’t mean I will stop using Julia, just not for making a full-fledged game for now.

Maybe I’ll come back to making games in Julia later. But for now, I think Common Lisp is more suitable with a game engine.

Trial is pretty cool and there was a presentation about Kandria @ ELS 2023 inside Kandria which I found very aesthetically pleasing. The engine is pretty much developed by a single person, so studying its design should be easier, at least compared to a larger-scope alternative. Plus, many of the ideas necessary to get the engine working (and performant enough) in a dynamic environment such as CL could be ported to a Julia implementation. IMO it sounds like a great step towards achieving your goals, and you can potentially implement what you’ll craft in Julia too! Best of luck

3 Likes