Mod map generator?
Are we going to have the ability to mod the random map generator? If so, would we get to see + modify the original map gen code?
I think it might be fun to tweak it, maybe to increase the chance of certain monsters, etc.
Are we going to have the ability to mod the random map generator? If so, would we get to see + modify the original map gen code?
I think it might be fun to tweak it, maybe to increase the chance of certain monsters, etc.
I imagine will be able to create our own maps, but to mod the generator will prob need python skill.
I'm hoping that the map generator is in Python; it could just be built into the engine and we wouldn't have access.
Given everything else is moddable, I'd be surprised if it wasn't.
I think you can design "tiles" for the maps, and when you make a random map your tiles can be used
I think that was talked about in one of the PAX video's.
Let's hope the random map functions somewhat like Civ4's random map function. For those without Civ4, it has as series of python scripts you can choose from (eg tectonics, archipello, pangea, lake), which all have variables (wet, dry, number of islands, etc), and modders can create their own map scripts which can be added by placing them in the map-script folder.
Map Generation is not currently hooked up through Python, but I'm sure it could be at some point ![]()
I need to bring this up from time to time, but remember that most of the 'python moddability' of Civ4 came for free with the Gamebryo engine. Any time we spend hooking up and testing python compatability with a feature is time not spent on somethign else, so we want to pick and choose the best areas for intergration when developing the main game. Other features, both in the gameplay and engine areas, will get hooked up to python over time.
Good point, Boogie. Just curious, but does adding in the ability to mod things increase overhead? For instance, why don't you write anything that could be moddable in Python first, rather than adding in that function with something else and backporting the feature in? (yes, this post reveals my naive view of coding)
What you have already committed to allowing to mod is amazing. In essence, you're allowing people to make their own games, just without all of the legwork you've been doing. You guys are so generous!
edit:
That it most certainly is.
Let's say what we want to mod is simply not a part of the Python part of the game. What sort of ability will we have to mod the game outside of Python? Going back to Civ 4 (again), you had access to the CvGameCoreDLL.dll source code. You could rewrite large portions of the game completely, doing things that weren't possible inside what they allowed in Python. You then recompiled it and released that as part of your mod.
From what I'm hearing, it's very possible that many parts of the game might not be moddable. Can we expect something similar in the form of limited source code for a .DLL? What plans, if any, are there to allowing modding outside of what you've ported to Python?
My experiences with Civ4 indicate that this can add a great deal to the game. I went all out on the map scripting and I've been told many times it's like playing a whole new game. Also, different mods will have different needs when it comes to different random maps.
Here's an example of the things I did with Civ4 map scripting, none of which would be possible without access to the process. http://members.socket.net/~ricardo/
You guys will be heroes if you can pull it off. I'm really looking forward to seeing what you guys can come up with!
Awesome.
Got to say, i'm very impressed with your community/fanbase relation skills.
Python is easier to read (and therefore alot easier to mod) than C/C++ but it's not nearly as fast. I think that's part of the reason why civ4 can get so slow after a few turns.
Definitely you should add map generation in python. It's not that much work if you look at Civ IV code, and many user-made map scripts have been included into Civ IV patches, which means they were quite popular. I don't think I've played a single standard Civ IV map for years, only modded ones.
I've been asking for this since the start anyway... But if your model is tile based, generating a binary or xml file format for the map shouldn't be hard in python even with an external program.
Elemental maps will be much larger and more detailed than Civ4 maps. My Civ4 maps tend to be pretty slow in python, I can imagine for Elemental it might be alot slower! Still, if a map is good, you only have to generate it once. A good map is worth the wait.
If you have to, maybe you could have a system of modular DLL's or something. So instead of a map script, you have a map 'plug in' or something.
If it isn't hook up-able through Python, will it be exposed via SDK so we can write our own mapgens in C++?
(I'd be happier. I hate whitespace aware languages... >_<)
In general, is the plan to only do modding via Python, or is there any chance of actually getting a SDK? (I don't know your architecture, but depending on how engine functionality is exposed for internal development, it could just be possible to expose a subset for external development) - or just some way of hooking a custom dll up to the game (if we want to mod in things that might be performance intensive - as a map-gen very well could be)
I imagine that enabling dll based mods could be more easily enabled than Python, as they could potentially be developed in the exact same way as internal development, at least in terms of the APIs one could build against. I guess the plugin management aspect would be the difficult part, unless the engine was already built to load dlls dynamically.
Also, I imagine it's just the ways my eyes have been trained, but I find C++ much easier to read than Python. I think it's the whitespace thing again, though. I'm so trained to use curly brackets or some other block delimiter that it's very difficult to change the habit.
I hated Python at first, the significant whitespace drove me crazy. It's even worse when you are editing someone elses file and they mixed tabs with spaces, and the IDLE ide won't show whitespace. However, since I've been modding Civ4 for a couple years, I really like Python now. Once you install it, it's so fast to get something up and running. It also has a great library of built in functions. Lists, Dictionaries, everything you can think of. Once you start to get familar with them, you almost don't have to write your own code at all for anything that is commonly done.
I think the difficulty distinguishing tab whitespace and space whitespace was the single largest issue I had at first. (Thankfully, a good IDE can help with the issue immensely)
That said, I do appreciate its flexibility as a language - it didn't take that long to get decently proficient with it and get some pretty neat things done (even though I know I was often doing things the wrong way by Python standards). Even so, I'm still much less comfortable working in it than in a more formal language such as C++ - or even another scripting language like Perl. I think Python just feels too unstructured to me, and I find myself having a harder time getting my head around how I need to structure a program.
Welcome Guest! Please take the time to register with us.