Wednesday, April 23, 2008

Do you golem?

"The ancient teachers of this science promised impossibilities, & performed nothing. The modern masters promise very little.. but these philosophers, whose hands seem only made to dabble in dirt, & their eyes to pore over the microscope or crucible, have indeed performed miracles. They penetrate into the recesses of nature, & show how she works in her hiding places.. they have discovered how the blood circulates, & the nature of the air we breathe, & they have acquired new & almost unlimited powers"

A bit more than 9 months later, here's the name of the game: Golemizer

Finding a name was probably one of the hardest thing in this project (well, beside having to code with a machine I should have thrown out the window a long time ago...). It's not as fancy as Chasing Tortoise but I feel it sums up well what the game is about.

Players will play the role of mad scientists experimenting with life and mechanic to create creatures roaming the world, spreading chaos on their path: Golems

The main aspect of the game is crafting. Crafting golems, houses, furniture and such. The second aspect of the game is the ongoing war between the creatures created by players.

Once a golem is created, it will roam the world and do as it wants, even when it's creator is offline. However, when players are online, golems can also be used as pets, allowing involvement of players in combat.

While all the mechanic allowing players to get into direct combat with weapons is part of the framework, I decided to let this aspect for now, a day still having only 24 hours in it. I'm keeping this for after release, allowing players to play characters à la Van Helsing.

That's not much info for now but more in the next days/weeks.

Oh and I'll probably be looking for more beta testers in a not so distant futur so stay tuned!


Alehkhs said...

Hmmm... player-independent combat in a persistent-world?

Sounds awesome.

Questions: Will there be "breeding" among these golems? and better yet, would this breeding also be player-independent?

Adding a Darwinian environment to this game would be very... interesting.

I really can't wait to see how this whole project turns out.

Over00 said...

Well, in theory, breeding could be possible. Here's what I mean:

See, all AI are scripted with LUA. The ai of an NPC can be changed in real time in the game by someone with the right access, making it easy to create custom AI.

From there, I gave access to specific game commands to LUA. Things including move, doskill, say that allow an NPC to interact with the world.

Three existing commands could allow breeding: sayto, getheard and createnpc

NPCs can talk to each other using the sayto command. The getheard command check for messages received from sayto commands. With those, we could get 2 npcs to mate. The male sending a signal to the female.

The last command (createnpc) really do what it says. It just create an NPC of the desired type.

So there you go. Two monsters could mate and get a cute baby monster. From there, things like aging could be "easily" handle by LUA scripts. All of this without changing a line of code to the game.

This won't probably be in the game for release but as you can see, the way AI works, it opens a lot of possibilities and don't require any change to the game.

You can check Maple's blog for more info about how AI LUA scripting works in this game:

Alehkhs said...

wow... that is really an interesting AI system. Simple, yet it can be used to carry out many complex tasks.

So... if a "mating pair" created n offspring, would the coding create a NPC that carried traits of its parents? or just a new, random NPC?

Obviously, some traits would see some Golems beating others more often, and if the "mating" process creates an offspring with the traits of its parents, then we would begin to see "natural selection," if you will. Genetic drift and "evolution."

I've been into digital evolution programs for a while now, and they continue to interest me, so I was wondering if we would ever see emergent evolution (even if unintentional) in the NPC population of the game.

Hmmm... now I have a new question (sigh). Since you speak of adding such items as aging and mating, will other NPC's besides the Golems be mating on their own? What if the human NPCs would have lifespans, and they were able to have children? Add such items as a name generator, NPC relationships, and family businesses, and a dynamic persistent-world could include whole families and bloodlines (what if there were hero NPC's?)

Sorry, I'm way out there now...

Over00 said...

An NPC can save values into it's own variables (what speed it is moving, HP, damages and such) with the "setvariable" command. All I would need to do to allow the children to carry on his parents properties would be to allow the "setvariable" command to be able to change values of others NPCs.

So male meet female. Male send message to mate. Female create children and change the default values of the variables.

Slight modification of the code here but would take 5 minutes to do.

The same system (AI scripts) applies to all NPCs, may they be humans, golems or even rabbits. So yep, it would be possible. It would require quite some work to create all appropriate scripts but all of this can be done in the actual state of the game.

The AI system has been the most interesting feature to work on. And now that I got it all working, I probably won't be able to resists to use it in different ways.

The initial plan was to let players build their own AI with LUA. Something like a bot building game. This won't be the case since I have to set the line somewhere but that doesn't mean it won't happen one day, probably in another project. Or maybe I'll just set another instance as a toy to play with and see what players are able to come up with.

Maple said...

"Questions: Will there be "breeding" among these golems? and better yet, would this breeding also be player-independent?

Adding a Darwinian environment to this game would be very... interesting."

Sounds like someone had the same idea as me, eh, over00? How about a Breeder skill track that takes advantage of this kind of thing? It would give people more options for things to do in the game if they aren't as much into creating as much as guiding their development.

To tell the truth, alehkhs, a few of my suggestions for script functions have been to allow your idea. So far neither over00 or myself have tried it out yet. I'm a bit hesitant to go and create something I know has a decent chance of running amok in a project that isn't mine. (In other words, I don't want to be that jerk who broke the game, because I most likely won't be the guy who'll have to fix it.)

I do have a basic plant-spawning script sitting on the back-burner right now. Maybe I'll just stick it in the game somewhere far from the main bustle and see what happens. There are some restrictions put in place so that it won't get too much out of hand.

Over00 said...

Depending on how things goes, I'd like to set up another server that would be used for script experimentation.

With a stripped down version of LUA (without any system functions) I could give access to scripters that could experiment with new AI.

Anyway, one thing's sure, this system is too great (thanks to Maple for bringing me to code it) to be left in a corner so there will be more coming. The current game will be a great experiment.