Jump to content

creating a completely new game using gemrb?


Guest Coolio

Recommended Posts

Guest Coolio

I'm interested in using GemRB as an engine for a non-D&D game in the future, when it's complete. I was wondering a few things about not just GemRB, but IE. Could the engine handle concepts via the scripting interface such as NPCs that go about their business without the player's interaction? Ie. offscreen AI. Can it be used to simulate battles between NPCs or is there no event system or object/global variable system to handle things going on in the background. And if this is possible, are the locations of NPCs, their inventories, stats, etc. stored with the map that they're located on, or are the characters' data once loaded stored outside of any location? When Bodhi appears in different parts of BGII, like in the asylum or whatever, is it the same Bodhi that you meet originally, or is it a different NPC with the same art assigned to it?

 

If the answer to all of this is no, my next question is, would it be worth using GemRB as a base and customizing the source to basically create a realtime simulation of town economies and politics? I'm very interested in creating a game where every NPC operates on a schedule, can interact with each other while the player is in another town, and when the player comes back have the results of the background simulation determine the current state of the map? Ie. store inventories would not be periodically restocked with certain items - instead, the background simulation would have the shopkeeper buying and selling items from other NPCs/monsters and that would determine what's left in stock. Or, in the vein of politics, if the game's storyline called for a quest to save a town from an evil dragon, and the player took off without finishing the quest, having a party of NPCs receive the quest from the mayor just as the player did, and kill the dragon while the player's off in another town. When they come back, they're told someone else took care of the dragon problem for the town.

 

I'm not asking how to do any of this, just whether GemRB would be a suitable codebase to develop this type of game on when GemRB is 100% IE compatible? Or would it be easier to develop an isometric graphics engine from scratch?

Link to comment

With good scripting skills, you can create actors that work offscreen. Maybe even several maps loaded in the same time. It is mostly a performance constraint (even with the IE).

 

The creatures are ALL (well, with exceptions) saved when the area is swapped out. This includes their target location, current stats, etc.

The engine resets these because of balance reasons (heals enemies over time, restores their starting location so they won't vanish in obscure places, etc).

Currently GemRB doesn't even reset these stats (but it will do so).

 

The reason why bodhi and most of the actors are different creatures is mostly technical. It would cause problems if all the scripts/dialogs would be in a single file. And early bodhi incarnations should be unkillable, for example.

If your goal is to make persistent but consistent actors, you could implement that even with the current engine.

But large and numerous persistent maps take up much more memory and cpu time.

 

Measuring time spent with a quest would be possible with the current IE. So your dragon quest could be implemented in the current engine.

 

Store manipulation isn't really implemented in IE. It could be implemented in GemRB.

 

My guess is that you intend to make an mmorpg? There is one big problem with that, and it isn't the scripting part.

GemRB is not multiplayer. The internal objects would need lots of work to make it multi connection. And it is also one team based. I don't even dream about supporting multiple teams.

Otherwise, if you want the above stuff in single player, GemRB or even the original IE is able to do it.

Link to comment
When Bodhi appears in different parts of BGII, like in the asylum or whatever, is it the same Bodhi that you meet originally, or is it a different NPC with the same art assigned to it?

 

Different. Strictly speaking this isn't necessary as a feature/limitation of the engine but it does make things a lot easier.

 

If the answer to all of this is no, my next question is, would it be worth using GemRB as a base and customizing the source to basically create a realtime simulation of town economies and politics? I'm very interested in creating a game where every NPC operates on a schedule, can interact with each other while the player is in another town, and when the player comes back have the results of the background simulation determine the current state of the map?

 

If you're looking to build arrays or lists of data and perform complex math on them, Infinity really isn't an excellent choice at the scripting level. You could fake a lot of this, but a quick glance over Infinity scripting actions and triggers (conditions) should reveal that it's not going to be very sophisticated and will result in a lot of repetitive scripting. This would almost undoubtedly be a GemRB feature request to add some "weighted state of the world" math functions to the scripting library, which Avenger is accepting in another thread.

 

I'm not asking how to do any of this, just whether GemRB would be a suitable codebase to develop this type of game on when GemRB is 100% IE compatible? Or would it be easier to develop an isometric graphics engine from scratch?

 

Between the reasons you stated above, and various other ease-of-operation issues and the still-unanswered question of how well GemRB would work with a hypothetical new ruleset you're proposing (which Avenger has long said is possible but nobody to date has taken advantage of, to my knowledge) mean that if you're serious about these requirements, it would probably benefit you to use something more purpose-built. That's the conclusion we reached, in any case. You could in theory use the GemRB renderer but swap in a completely different scripting system, I suppose. Provided you don't have a problem with using GPL code.

Link to comment
With good scripting skills, you can create actors that work offscreen. Maybe even several maps loaded in the same time. It is mostly a performance constraint (even with the IE).

 

The creatures are ALL (well, with exceptions) saved when the area is swapped out. This includes their target location, current stats, etc.

The engine resets these because of balance reasons (heals enemies over time, restores their starting location so they won't vanish in obscure places, etc).

Currently GemRB doesn't even reset these stats (but it will do so).

 

The reason why bodhi and most of the actors are different creatures is mostly technical. It would cause problems if all the scripts/dialogs would be in a single file. And early bodhi incarnations should be unkillable, for example.

If your goal is to make persistent but consistent actors, you could implement that even with the current engine.

But large and numerous persistent maps take up much more memory and cpu time.

 

Measuring time spent with a quest would be possible with the current IE. So your dragon quest could be implemented in the current engine.

 

Store manipulation isn't really implemented in IE. It could be implemented in GemRB.

 

My guess is that you intend to make an mmorpg? There is one big problem with that, and it isn't the scripting part.

GemRB is not multiplayer. The internal objects would need lots of work to make it multi connection. And it is also one team based. I don't even dream about supporting multiple teams.

Otherwise, if you want the above stuff in single player, GemRB or even the original IE is able to do it.

 

 

Nope, definitely single player, but with a world that changes dynamically like an mmorpg or mud. Something in a futuristic Wasteland/Fallout type universe. Because a lot of the nonlinear storyline would best be implemented as the results of the effects on the towns that your actions or inactions bring about. If you slaughter everyone in a town (or the important NPCs) that supplies the rest of the game world with medical supplies, then every NPC in the rest of the game should be impacted in some way - the unhealthy would die off, the healthy would avoid dangerous situations. If you assassinate the Mayor of a town, the town might hold an election and whoever has political stats/skills and high reputation/popularity in that town will be elected his replacement. If you talk to the new mayor, he'll probably give you a lot of the same dialogue because the town has the same rumors, quests, problems, but the rest of his stats and his opinion of you will modify how he reacts to you and how much he'll say.

 

I've never looked through any IE scripts. Thanks for the heads up, it sounds like the engine's capable of a whole lot of what I'd want to use it for. The biggest issue is that it sounds like I'd need to have all the world's maps loaded persistently and simultaneously? Is this as much of a RAM issue as it sounds? Can the inactive maps have variables and NPCs modified while on disk, or only while resident in RAM? They wouldn't have to be walking around offscreen, as long as the engine/scripts can make calculations about their basic motives/actions offscreen.

Link to comment

When Bodhi appears in different parts of BGII, like in the asylum or whatever, is it the same Bodhi that you meet originally, or is it a different NPC with the same art assigned to it?

 

Different. Strictly speaking this isn't necessary as a feature/limitation of the engine but it does make things a lot easier.

 

If the answer to all of this is no, my next question is, would it be worth using GemRB as a base and customizing the source to basically create a realtime simulation of town economies and politics? I'm very interested in creating a game where every NPC operates on a schedule, can interact with each other while the player is in another town, and when the player comes back have the results of the background simulation determine the current state of the map?

 

If you're looking to build arrays or lists of data and perform complex math on them, Infinity really isn't an excellent choice at the scripting level. You could fake a lot of this, but a quick glance over Infinity scripting actions and triggers (conditions) should reveal that it's not going to be very sophisticated and will result in a lot of repetitive scripting. This would almost undoubtedly be a GemRB feature request to add some "weighted state of the world" math functions to the scripting library, which Avenger is accepting in another thread.

 

I'm not asking how to do any of this, just whether GemRB would be a suitable codebase to develop this type of game on when GemRB is 100% IE compatible? Or would it be easier to develop an isometric graphics engine from scratch?

 

Between the reasons you stated above, and various other ease-of-operation issues and the still-unanswered question of how well GemRB would work with a hypothetical new ruleset you're proposing (which Avenger has long said is possible but nobody to date has taken advantage of, to my knowledge) mean that if you're serious about these requirements, it would probably benefit you to use something more purpose-built. That's the conclusion we reached, in any case. You could in theory use the GemRB renderer but swap in a completely different scripting system, I suppose. Provided you don't have a problem with using GPL code.

 

 

Changing the code would definitely be a part of the process. The combat system would have to be redone because the combat would be based on firearms and explosives and hand to hand combat, instead of spells and projectiles. Building the framework that is GemRB/IE seems overwhelming to me, but rewriting a few pieces of GemRB and enhancing the scriptability as part of the creative process of level/character/story/AI design is okay with me. I would even avoid using much if any original art, as creating the art for a entire game also sounds overwhelming.

Link to comment

If you intend to change the code, then you must be aware that GemRB is GPL licensed.

This limits (but not denies) commercial applications.

You just have to make available your source to people whom you gave the binaries, and allow them to redistribute the source/binary :(

This essentially means, you cannot do anything about piracy (of the engine).

You can of course keep copyright for the dataset.

 

GemRB will not contain ANY of the original game files, so it won't come with avatar animations, among other things. This means, you'll need the original game if you want those. I will try to find out if Bioware allows distributing of their original artwork, but i wouldn't be surprised if the answer is no.

Link to comment
If you intend to change the code, then you must be aware that GemRB is GPL licensed.

This limits (but not denies) commercial applications.

You just have to make available your source to people whom you gave the binaries, and allow them to redistribute the source/binary :(

This essentially means, you cannot do anything about piracy (of the engine).

You can of course keep copyright for the dataset.

 

GemRB will not contain ANY of the original game files, so it won't come with avatar animations, among other things. This means, you'll need the original game if you want those. I will try to find out if Bioware allows distributing of their original artwork, but i wouldn't be surprised if the answer is no.

 

I have no interest in commercial anything - I'm going to steal all the art from other games anyways. Since I own the games, and other people potentially own the games, it will be legal for those who own all of the games I would borrow artwork from to use the artwork in a GemRB-based open source game.

Link to comment
I have no interest in commercial anything - I'm going to steal all the art from other games anyways. Since I own the games, and other people potentially own the games, it will be legal for those who own all of the games I would borrow artwork from to use the artwork in a GemRB-based open source game.

Whoever downloads it is in the clear if they own it, but you still aren't allowed to distribute it. The only way to make it legal would be to extract the art work on the fly during installation.

 

------------

edited this because it was looking like i said something i didn't :(

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...