If I could alter used language I would use Latin I'm very fond of this language even if I barely understood it.
You can learn Spanish. It is based of Latin, although more evolved and optimized. But my point is that natural language are not perfect, while artificial language can greatly improve understanding (orders of magnitude in some cases). That is already demonstrated by Set Theory notation and by programming languages. Romans used roman numerals, and it was real pain to do any calculations with them, other nations of the time had similarly broken systems, before Indian position system got widespread. Same reasoning can be applied to natural languages in general, since they leave a lot of ways for misinterpretation or get too verbose when representing some non-trivial concepts.
Alphabet can also be greatly improved, although Ithkuil's one looks too scary to me, like some actual alien glyphs.
For artificial languages, the proof of the pudding is in the eating it. What would happen when you release this language to hole nation?
I think it could start mutating very fast to meet need. How you could keep unambiguous when people start using mems, irony or subverting meaning of words.
English is somewhat static for the last 100 years, compared to previous stages of its development. But yeah, it got new words, like "meme", which is a shortcut for what previously require larger sentence. With Romance languages it is far more complicated.
Could you show some snippets of you code? You could even do some highlight of its capabilities.
It is a Common Lisp based language, but with modified garbage collection algorithm to guarantee real-time performance for interactive apps like games.
Typical snippet would be
wsite.add_unit UnitType hired/1 leader/0 garrison/0 noItems/0 =
| U = $world.units.alloc
| U.init{UnitType Me}
| less Hired: leave U
| U.hired <= 1
| when Leader:
| U.leader <= 1
| when $type><party: $set_spr{"[UnitType]"}
| less NoItems:
| Type = U.type
| when Type.upto{5}><unit_: Type <= Type.drop{5}
| V = $world.visitors.Type
| when got V: for [_ ItemType Count] V.items^~{[]}:
| U.add_item{ItemType count/Count}
| U
I made major error in object system design, since I planned to minimize object use (OOP was just a quick made convenience for widget system), but found it near impossible to organize large system, like video game, without objects. So I have to use `$` to access members, while compilation unit variables are accessible by default and clutter method's scope. I have to do the opposite - make member variables easily accessible, but global variable to require `$`. That is really hard to do, considering the dynamic typing nature of the language - I can't do that using statistical analysis methods, but will have to go over every single line of code.
Aside from that. I was still thinking about your idea of global spell cooldown for whole team. It feel to much gamely, some artificial limit to make game work and be balanced. Lot better would be if limits go from game word.
Yeah. I thought about a system where casting the same spell over limit would cause aberrations, potentially wasteful and harmful to the caster. But that is a bit hard to implement, without random dice roll.
One way I see this could be fixed is that we have some "elemental mana field" that spreed whole map. And each time you cast spell you drawn power from local area. This mean if you spam spells of one element to much in one place each spell will be lot of weaker than one before. You could counter act it by spending more resources to drawn power from bigger arena but cost would grown exponentially. After couple rounds field will regain its power.
The problem with that is that I want it to be per spell base, not per large group of spells. Its purpose is to break the positive feedback loop - i.e. to prevent the player from casting say Armageddon spell several times to kill all enemies in a single turn, or to spam the heal spell with 10 spell casters on a single tank, without risking anything:
https://arcaderage.co/2018/02/11/game-design-feedback-loops/I already have reagent system in place to limit the number of spell casting by gold and carrying capacity. The one solution would be to make repetitive cast of the spell to cost more reagents. That is a common game design trick to solve feedback loop. Can be similarly explained to player that magic forces of the area got depleted and so need more resource to get invoked. In addition, economy should have some supply-demand simulation going on, so if game has some dis-balance, and player starts buying some healing/resistance potion, which was made OP by a design mistake, the cost of the potion will quickly skyrocket. Unfortunately I've no idea how it would work in multiplayer.
This is basic idea and I see it could be even expanded. Spells could could affect this field too (aside form consuming it). Different elements could have iteration between them that encourage spell rotations (image that lighting is transfer of power from electric to earth element, then on place of impact casting earth spells will be more powerful).
While the game is indeed inspired by Lords of Magic, There are no usual earth/air/fire/water elements, but instead just chaos, order, life and death magic schools, where chaos includes direct damage spells and spells like flood, life gets blessings and cures, death curses and sacrifice spells, order spells like telekinesis and teleportation. Each school has associated with it spellcaster unit type, and a few jack-of-all-trades spellcasters, that can't cast the most powerful spells (i.e. Ifrit can cast only basic chaos spells). The reason for that is elemental schools typically duplicate each other, having boring copies of the same spell. Now all schools have some damage inducing spells, but for say Order School that wont be some "spirit arrow" spell, duplicating "flame arrow" and "ice shard" from elemental schools, but instead "force push" spell that would be more powerful than flame arrow, but require some way to push target from the cliff or into the water, and also the target to be light enough to be pushed (no way you can push huge stone golem), and it would also make no sense to push flyer from the cliff, since they can fly, but for all other units force push would likely be the fall to death.
I've also considered the idea from Final Fantasy Tactics, where terrain affects spell power. In fact, FFT had Geomancer class, which casted different spells based on the target cell terrain type. Then again, FFT had a lot of innovative ideas, but was totally unbalanced (on top of nasty grinding), with Calculator class just ripping everyone to shreds on the whole map with a single spell cast.