Chemistry Game Idea - kapple19/kapple19 GitHub Wiki
TL; DR: There is a void in the gaming industry of a high-quality chemistry game in the context of the real world that wholesomely traps people in being educated. Someone could fill that gap... 👀
( Originally posted in Julia's Discourse forum, copied here as practice for wiki article creation. )
Wildfrost. Slay the Spire. Dominion. And so many more turn-based deck-builder games that I love, are addictive, and many love mastering to such a deep degree, and is fun for all ages.
Personally, they all scratch the tactical resource battling kind of itch I have, and I always turn back to them periodically and have a good time.
But all of them miss the itch I have of: a fundamental reality model. Hear me out.
I loved maths since school for how fundamental it felt to everything. My brain got a kick out of applied mathematics with a focus on how the underlying mathematics gave insights and solved problems in the applied domains. Heck I'm an applied mathematics graduate, working in an applied mathematics field for many years now and I love it.
While I didn't take chemistry in school, it's been an academic hobby interest of mine throughout my life along with quantum mechanics and meteorology. Understanding that full stack of how the world works down to its fundamentals is such a thrill to me - Fluids, Oceans, and Climate being my all-time favourite course I took at University.
And I'm not alone with this itch.
But I digress.
The idea for a game demonstrating chemistry in real life has been started by some, or finished by others but are of small, limited scale or features. I'm thinking of the quality and size of the aforementioned games, with full fledged development.
And I'm not talking about the addictive, semi-realistic garbage that Doodle God models. (Not called garbage out of disrespect, but out of a comical tease at how arbitrary many of the combinations and their results are, I've spent much time with that game and it's fun making combinations.)
An example of a level in the single-player campaign is: you are a washing machine. Your user has given you clothes of particular types of dirt - maybe that family went to the zoo, maybe one of them works in construction, that can be randomised, and influences what dirt particles needs to be cleansed. For each turn, envision you get to control what chemicals get added. You have limited resources. Maybe you only have access to one side of the drum of the washing machine (almost just lazily called it "the spinny part of the washing machine") and in between your chemical-applying turns, the drum rotates θ
degrees. Think turn-based dynamics of the aforementioned games.
I'm thinking a roguelite where a player builds up their periodic table--isotopes and all--in a replayable campaign of levels with appropriately randomised challenges and randomised atoms and molecules to master.
I'm thinking player-vs-player where you're trying to combust each other's molecules.
I'm thinking beautifully and cutely designed playing cards of atoms, molecules, dynamics, etc. that can become physically printable as trading cards (it would satisfy me so much to have a full periodic table collection of such).
I'm thinking viable uses in classrooms via a sandbox mode.
I'm thinking streamlining the education of the next generation by tricking people into playing a game that subtly educates them on a topic that can end up giving them a smile as they fill in a school test answer with something they learned from the accurate physics and chemistry demonstrated in this game.
Why am I posting this in the Julia language discourse? Well given that Julia is the best* language for scientific development, it would be interesting to utilise Julia's strengths for this. I'm aware of JuliaChem, things like Catalyst.jl, Molly.jl 😏 and even PeriodicTable.jl (very cute periodic table in text by the latter:)
julia> using PeriodicTable
julia> elements
Elements(…119 elements…):
H He
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe
Cs Ba Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Rf Db Sg Bh Hs Mt Ds Rg Cn Nh Fl Mc Lv Ts Og
Uue
La Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Ac Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
I'm also aware of some attempts in using Julia for game development, like GameZero.jl which hasn't been touched for a while. Also, Is Julia good for game development? No. Should we make a push into gaming industry? No. I like this example of the details given here:
Is Julia good for game development?
I’ve been in the game industry for 35 years, and have been playing with Julia. I think it’s a pretty solid language for using as a game scripting language -ie a replacement for things like LUA, C#, in-house languages, and I have integrated it into my distributed simulation engine. The ability to run at compiled code speed and easy integration with the mainstream game dev language (c++) are strong positives.
The risks I would say are GC, and big issues about load-time compilation. I think the first is maybe not such a problem, and because of the ability to do code introspection, you could define “allowed” and “not allowed” constructs in your game logic scripting. The second seems a bit problematic though, julia’s startup times for even relatively simple code packages could easily become the bottleneck in game/level startup time.
That said, a more recent attempt is JulGame.jl which looks promising.
And why am I posting this instead of getting started on it? I would love to make this game. But:
-
I don't know chemistry. I do have plans to learn it, but I'm definitely not the best person to make this game. You all have permission to make fun of me for my example above for how silly an idea it is. Give me a more realistic example... oh that's a good one, you know what? AHA, I've tricked you into giving a better example of a level for this game.
-
I have too much stuff going on in life to take this on, and I am not talented enough to see this through to its end. Maybe someone else looking for some new life/career goal can take this on - like I TL;DR'd, it's a void in the game industry. And it requires an intersection of professional chemistry with professional game development.
-
I briefly mentioned this idea here and I couldn't sleep tonight thinking that @Kyjor is waiting for me to show them something. (I joke of course (or am I.))
-
I interact most with the Julia community - y'all have been the nicest to me. I may copy-paste-alter this for some other community I can go and annoy or entertain depending on your sense of humour.
Anyone can go ahead and make this game, you don't even have to credit me for this spectacular idea. And of course, it doesn't need to use Julia at all - ya'll do what you want, just call it "Catalyst" and don't microtransaction it. I just want this itch scratched, and making this post lightly taps this itch covered by my shirt sleeve.