Modding in C# feels incredibly boring and tedious.

Users who are viewing this thread

Lol it's object oriented programming. Write your own DisplayMessage method?

public void ShowMessage(string Message) {
InformationManager.DisplayMessage(new InformationMessage(Message));
}

Then call your own method: ShowMessage("Blah Blah");

Better? You have the freedom to do this. Object Oriented is tidy but comes with a price.

EDIT: Most people in here just need to learn C#. It's really a easy language compared to other programm languages like c++.
Sure whatever, you seem very smart, good on you. I am not a pro coder, so having 3 different decimals (float, double, decimals) types is beyond me. And for me, this is exactly what is wrong with this langage. Mostly having to define everything, then create it, then populate it, is overly complex for my small brain, furthermore because this doesn't exist in other langages I came across. Maybe, as I learn more, I will get to appreciate it, but so far, this is really humbling, and a total pain in the arse compared to other langages.
 
Last edited:
@Nunu Having 3 different decimals is great, because each fits different needs and choosing the right (most of the time that has been float for me) can save alot of memory when working with alot of numbers.
Here is a quick read on their differences :smile:
http://www.net-informations.com/q/faq/float.html

And yes, you will learn to appreciate it, if you take the time to learn the basics and understand how to use them. You will see they are not in your way, but these "restrictions" are there to help you.
 
Come on....Ever coded in any other langage ? And having only one float got in your way ? Seriously ? Well, I never felt "safe" or "helped" because I add to choose between multiple float types, actually, I never had to... Well, maybe that will change now :smile: I can't wait to experiment a "****, I chose double, I should have used "float" or "decimal", GREAT !" kind of help.
 
Come on....Ever coded in any other langage ? And having only one float got in your way ? Seriously ? Well, I never felt "safe" or "helped" because I add to choose between multiple float types, actually, I never had to... Well, maybe that will change now :smile: I can't wait to experiment a "****, I chose double, I should have used "float" or "decimal", GREAT !" kind of help.
It's pretty straightforward, a float is a 32bit number whereas a double is a 64bit number. Choose either depending on your application and expected values.
You will most likely use a float because 64bit numbers are big boys. All other language will probably have this feature as well, and I would be surprised if they didn't have a method of differentiating between 32bit and 64bit numbers.
 
Sure whatever, you seem very smart, good on you. I am not a pro coder, so having 3 different decimals (float, double, decimals) types is beyond me. And for me, this is exactly what is wrong with this langage. Mostly having to define everything, then create it, then populate it, is overly complex for my small brain, furthermore because this doesn't exist in other langages I came across. Maybe, as I learn more, I will get to appreciate it, but so far, this is really humbling, and a total pain in the arse compared to other langages.

It does exist in other languages, it's just hidden from you. Even in python

blabla = 1

translates more or less to (except in Python every thing is a piece of crap class I've heard)

int blabla = 1

whereas

blabla = 1.0

translates to (I assume) double blabla = 1.

As for why you'd use one or the other, it's a matter of memory but also of speed. Doubles take double the space, which allows circa 10^-16 precision, where float affords 10^-8. This has an obvious impact on RAM usage. The other thing that's less obvious, is vectorized instruction deal in half as many doubles as floats (think of it as automatic parallelization of your code).

At any rate, you'll very quickly know all about the different types of variables you can use. In doing so, you'll have some knowledge of architecture, which is always interesting to have. If you want to learn more on the subject, maybe you could follow some C or Fortran tutorials, which are low-level languages where you'll learn these fundamentals without the clutter of OOP (such as in C++, C#). If you can read french, you can read the tutorial I used to learn C way back when (it doesn't require any prior knowledge whatsoever).

On a practical level, these kinds of languages allows the compiler to tell you to **** off when you ask for something illegal, which honestly just saves you so much time down the road. In being compiled, they're also much much faster (a dumb loop is potentially 100x slower in an interpreted language such as Python than in C or Fortran).

Frankly, of all the silly high level languages that go around (Python, Julia, Rust or whatever, etc...) and of the little I've seen of C#, I think things will be rather straightforward to code here. At least it's a compiled language ! And if you look at the code, it's just so readable, every variable has a long-ass name but at least you can guess what it stands for.

Old-school Fortran code has variables with capped (short) length and no capitalization, so everything is called x12, y31, lmfro, whatever. Be grateful for these modern languages !
 
Just give me a . You are speaking chinese to me. I don't give a about memory, ram usage, vectorized instructions, 32 or 64 bit whatever, it being a compiler or whatever, being a tenth of a second faster for whatever, I just want to create a function that will use parameters, and call this function somewhere else and passing parameters to it, and returning one or more values. Now what's with these static and non static methods. Godammit all these are turning me crazy ! overly complex piece of langage.
 
Just give me a . You are speaking chinese to me. I don't give a about memory, ram usage, vectorized instructions, 32 or 64 bit whatever, it being a compiler or whatever, being a tenth of a second faster for whatever, I just want to create a function that will use parameters, and call this function somewhere else and passing parameters to it, and returning one or more values. Now what's with these static and non static methods. Godammit all these are turning me crazy ! overly complex piece of langage.

Maybe programming is nothing for you. If you have no patience then you are already lost
 
Just give me a . You are speaking chinese to me. I don't give a about memory, ram usage, vectorized instructions, 32 or 64 bit whatever, it being a compiler or whatever, being a tenth of a second faster for whatever, I just want to create a function that will use parameters, and call this function somewhere else and passing parameters to it, and returning one or more values. Now what's with these static and non static methods. Godammit all these are turning me crazy ! overly complex piece of langage.
You would do well to go through free CS101 classes online, or even something from udemy on C#. All of the things that confuse you would be answered with a mere week of study. People here have been pretty patient with you imo, you should either put in a week of learning to mod this game, or wait for them to release a simple scripting system. Or just quit, if your will is this low.
 
Just give me a . You are speaking chinese to me. I don't give a about memory, ram usage, vectorized instructions, 32 or 64 bit whatever, it being a compiler or whatever, being a tenth of a second faster for whatever, I just want to create a function that will use parameters, and call this function somewhere else and passing parameters to it, and returning one or more values. Now what's with these static and non static methods. Godammit all these are turning me crazy ! overly complex piece of langage.

You could just google this stuff. I use c++ every day and I still google basic things if I forget them.
 
Sure, whatever you win, C# is great.

You dont need to give in, know who you are replying to and just stop or adjust. Those that only know any type of C programming are going to worship at its alter even though the over whelming majority of game makers have abandoned it because its antiquated and limited, easy? yes, very limited hell yes. There is no changing minds here and I do believe more than a little of it is from the realization that its because it is how they made the game and nothing can be done about it. One can only hope their official toolset has some kind of developer kit like Unreals UDK or virtually any dev kit from Zenimax (or other modern company) that uses its own code, that has a script designed for games made after....2005 and is not just a walking disaster that is all C# kits. The idea anyone is actually defending the "current" state of modding is either insane or fanboy defending as the current future is set to have Bannerlord FUBAR on the mod front with incompatibilities and a limited amount of them on top of it.

At least now we know the "Why" to the question to "Why is it taking over 8 years to make this game". C# coding.

And to anyone thinking they are going to "debate" me on how easy it is to mod using C# nonsense. It took me less than 2 HOURS to figure out how to do core changes to a game in UDK with zero knowledge of Unreal's coding. I did some basic stat changes to some items to see if I could figure it out, got right the first time and on DAY 2, I designed a way to make a glowing effect appear on a sword I also designed. I do have graphics design experience, but it was still the FIRST TIME using the UDK engine for graphical work. AND THAT is the difference between a modern toolkit, and an antiquated one where you better damn well "learn to code" to do much of anything beyond the basics. This isnt 2005 anymore folks, we need a modern devkit. And dont even get me started on how vastly superior Zenimax's dev kits are for modding compared to anything you could hope to do with the Warband. Most of the total conversions for Skyrim and Oblivion were not done by professional coders.

There is no "debate" here. We just plain need a proper modern devkit least we be stuck in the past again.
 
You dont need to give in, know who you are replying to and just stop or adjust. Those that only know any type of C programming are going to worship at its alter even though the over whelming majority of game makers have abandoned it because its antiquated and limited, easy? yes, very limited hell yes. There is no changing minds here and I do believe more than a little of it is from the realization that its because it is how they made the game and nothing can be done about it. One can only hope their official toolset has some kind of developer kit like Unreals UDK or virtually any dev kit from Zenimax (or other modern company) that uses its own code, that has a script designed for games made after....2005 and is not just a walking disaster that is all C# kits. The idea anyone is actually defending the "current" state of modding is either insane or fanboy defending as the current future is set to have Bannerlord FUBAR on the mod front with incompatibilities and a limited amount of them on top of it.

At least now we know the "Why" to the question to "Why is it taking over 8 years to make this game". C# coding.

And to anyone thinking they are going to "debate" me on how easy it is to mod using C# nonsense. It took me less than 2 HOURS to figure out how to do core changes to a game in UDK with zero knowledge of Unreal's coding. I did some basic stat changes to some items to see if I could figure it out, got right the first time and on DAY 2, I designed a way to make a glowing effect appear on a sword I also designed. I do have graphics design experience, but it was still the FIRST TIME using the UDK engine for graphical work. AND THAT is the difference between a modern toolkit, and an antiquated one where you better damn well "learn to code" to do much of anything beyond the basics. This isnt 2005 anymore folks, we need a modern devkit. And dont even get me started on how vastly superior Zenimax's dev kits are for modding compared to anything you could hope to do with the Warband. Most of the total conversions for Skyrim and Oblivion were not done by professional coders.

There is no "debate" here. We just plain need a proper modern devkit least we be stuck in the past again.

What we are currently doing with the modding is not expected. The full toolset will not be released until the games final release, and until that point anything we do is exploratory. Taleworlds have made their own engine, which is an extremely hard and time-consuming process. So saying you modded some stuff in UDK is not even comparable, that is an engine designed to churn out games.

The groundwork they have laid down is amazing. Having many different DLL's we can use is great and being able to explore them so easily with RE tools is a bonus. A testament to their engine's modability is that fact the game itself is a mod.

Despite having a CS degree I did most of my learning before in school modding Minecraft with Java, another proper OOP language. For anyone learning to code modding games, it's a quick way of showing progress which gives immediate rewards and motivates continued learning.
In the same vein modding in Bannerlor in C# will produce better programmers, which is only going to be good for the modding scene.
 
What we are currently doing with the modding is not expected. The full toolset will not be released until the games final release, and until that point anything we do is exploratory. Taleworlds have made their own engine, which is an extremely hard and time-consuming process. So saying you modded some stuff in UDK is not even comparable, that is an engine designed to churn out games.

The groundwork they have laid down is amazing. Having many different DLL's we can use is great and being able to explore them so easily with RE tools is a bonus. A testament to their engine's modability is that fact the game itself is a mod.

Despite having a CS degree I did most of my learning before in school modding Minecraft with Java, another proper OOP language. For anyone learning to code modding games, it's a quick way of showing progress which gives immediate rewards and motivates continued learning.
In the same vein modding in Bannerlor in C# will produce better programmers, which is only going to be good for the modding scene.

1. I named more than UDK, I was giving them as an example of why we need a modern toolset...and why the person I was replying to needs to chill and realize who he is debating against.

2. I do hope they have a modern toolset as I stated and I realize current mods are outside the norm. I am speaking about the present with hopes of the future.

3. If their toolset pushes out .DLLs, its antiquated. The only time a game should ever need .DLLs for mods is for script extenders and new animations IF the game maker locked their animations that is (which they actually should for legal protections since making animations of doing the funky deed is the norm now). .ESPs, BSAs, PAKs, XMLs are the norms for "mods"...nothing that requires an OS to "unblock" or could be used to adversely affect a PC.

4. Requiring coders for the modding "scene" creates a "scene" of elitist pricks like we saw here from 2014 to today of modders being driven out of modding by other modders wagging their e-peens around...it created "teams" that worked against each other and a few too many times, attacked each other. A great modding scene is where there are many, they share, they grow the community. There is no modding community that compares to the Fallout/Elder Scrolls community or even the Ark/Conan Exiles community where there is a constant influx of new people trying their hand at modding which is why to this day you will find 100s of new mods a month for Oblivion which is as old as M&B. Even the newer heavily modded Unity games are showing a modding community that goes above and beyond if they have great toolsets that give a low entry level for modders. **** man, Empyrion Galactic Survival allows for virtually every stat in the game to be modded outright via XML files and will have a simplified Unity devkit by launch where you dont need to know unity to use it...The lower the entry level, the more diverse the community is and the richer the mod diversity will be. No chance for elitists to control or push anyone out.
 
1. I named more than UDK, I was giving them as an example of why we need a modern toolset...and why the person I was replying to needs to chill and realize who he is debating against.

2. I do hope they have a modern toolset as I stated and I realize current mods are outside the norm. I am speaking about the present with hopes of the future.

3. If their toolset pushes out .DLLs, its antiquated. The only time a game should ever need .DLLs for mods is for script extenders and new animations IF the game maker locked their animations that is (which they actually should for legal protections since making animations of doing the funky deed is the norm now). .ESPs, BSAs, PAKs, XMLs are the norms for "mods"...nothing that requires an OS to "unblock" or could be used to adversely affect a PC.

4. Requiring coders for the modding "scene" creates a "scene" of elitist pricks like we saw here from 2014 to today of modders being driven out of modding by other modders wagging their e-peens around...it created "teams" that worked against each other and a few too many times, attacked each other. A great modding scene is where there are many, they share, they grow the community. There is no modding community that compares to the Fallout/Elder Scrolls community or even the Ark/Conan Exiles community where there is a constant influx of new people trying their hand at modding which is why to this day you will find 100s of new mods a month for Oblivion which is as old as M&B. Even the newer heavily modded Unity games are showing a modding community that goes above and beyond if they have great toolsets that give a low entry level for modders. **** man, Empyrion Galactic Survival allows for virtually every stat in the game to be modded outright via XML files and will have a simplified Unity devkit by launch where you dont need to know unity to use it...The lower the entry level, the more diverse the community is and the richer the mod diversity will be. No chance for elitists to control or push anyone out.

There is nothing inherently wrong with a DLL as much as there is a Jar file. Your computer should warn you that you have just downloaded a DLL and are trying to run it, that's the OS's job to protect you from running potentially sketchy code, it should probably be doing that for more than just .exes/DLLs.

The major advantage is that it's compiled code, so the game doesn't have to do any processing at runtime to execute. I completely agree there is a place for files such as XML or JSON for storing values/creating items. But for anything more advanced, i.e. changing AI behavior, creating new UI widgets, other gameplay overhauls, they need to be implemented in code.

If people don't want to learn to program then that is fine, but the functionality of their mod will be severely limited.

Anyway, I believe the original purpose of this thread has gone of track.
 
Tx adrakken, I was feeling kind of lonely. I think I made my points many times. I freaking modded rigale for warband, Frontieres for NWN2, the lost continent for legend of grimrock, was toying with godot before bannerlord launch, and a few minor others. I am not against learning a new langage, quite the contrary, I like the intellectual challenge it provides. But the fact that some people consider that C# is cool or whatever, is beyond me. So far, this is a bulky, unintuitive, redundant crap. The only thing saving it is VB, because that intellisens stuff is amazing. Although I don't see how it can make me a better codder. Driving a totally assisted car won't make me a better driver...I might be wrong, but so far, I am on the verge on giving up on this ****, and going back to godot. But man, I have been waiting for 8 freaking years to mod this game :sad: , so I will persevere a little bit. Sigh...

Anyway, I believe the original purpose of this thread has gone of track
Well, my opinion was that I totally agree with OP unpopular opinion, and explained why :smile:
 
If people don't want to learn to program then that is fine, but the functionality of their mod will be severely limited.

Only with a game that does not have a modern devkit/toolset. I would place any single total conversion of Oblivion/Skyrim or even Conan Exiles Age of Calamitous well above any M&B mod created...while the "work" done for mods here is "more", what has been done in other games is not. The original game was hampered by a lack of tools and vastly limited to how a mod had to be made. That can be seen by the amount of work that had to go into creating a magic system...compare that to what was done for Skyrim, a game with what was a system added in at the end with no love (and designed around a console controller on top of it) and blown up well beyond what Oblivion had, when it was a system that was focused on heavily by the makers...and all done by players with next to no coding experience at all.

And before you try to claim I am hating on M&B modders, look at my sig. I still fully endorse both the mod, and GSanders for all his amazing work and giving up so much of his time to do it...more time than modding should ever take. And I think that those already making mods for Bannerlord are to be commended.

I am not against learning a new langage, quite the contrary, I like the intellectual challenge it provides. But the fact that some people consider that C# is cool or whatever, is beyond me. So far, this is a bulky, unintuitive, redundant crap. The only thing saving it is VB, because that intellisens stuff is amazing. Although I don't see how it can make me a better codder. Driving a totally assisted car won't make me a better driver...I might be wrong, but so far, I am on the verge on giving up on this ****, and going back to godot. But man, I have been waiting for 8 freaking years to mod this game :sad: , so I will persevere a little bit. Sigh...


Well, my opinion was that I totally agree with OP unpopular opinion, and explained why :smile:

Godot? Why WHHHHHHHHHYYYYYYYYYYY!!!!!

Unity is free for personal use, cheap (if you are actually making a game to sell) and has surpassed Unreal Engine in terms of what it can do in "almost" every gaming aspect...the tools are amongst the best available. To give you an example...a two man team created Osiris: New Dawn using it and they did it using Unity 2011-2016, back when it was much more difficult to use. 2 people, deep detailed game in 5 years...Empyrion Galactic Survival is upgrading their unity tools as they make the game, currently using Unity 2019 and the latest Alpha update coming is blowing people away, again a small team making the game and its insane what they can do with Unity, not being coding experts.
 
There's two kinds of modding going on here.

One is the mods that are kind of supported. This is the ability to create a submodule with a compiled dll like the example provided on these forums, as well as XML changes.

The other is the kind that is not so much supported. This is the ability to change the behavior of existing modules through reflection.

The situation that people are running into here is that the game's still in a very early state. "Supported" mods are very limited in how they can interact with the game, tools don't yet exist, documentation doesn't yet exist, and there are some bugs in how they actually load in and work.

Because of this, the majority of the current modding effort happens in the second, unsupported side of things, which is basically people going through existing code, and basically using hacks to learn about it or change it to do what we want it to do, and kind of using the bits and pieces of the supported modding system only kind of as a launching off point because it's easier to distribute mods that do so.

Any efforts taken in the second category shouldn't be attributed to Taleworlds giving a too complicated or too confusing system of modding the game, because these are things that go way above and beyond the way that mods are intended by them to be built. The only reason that people are kind of able to do this kind of modding at all is because most of the game code is written in .net, which compiles to IL (common intermediate language) and can be decompiled with a fair bit of metadata intact. And doing this kind of modding is possible and has been done for games that have had no intention of allowing players to mod their game at all just because all a modder would need to do is determine how to have the game start to execute some of their own code, and then how to patch existing code to do what they want.

If I were TaleWorlds, I would be expecting that this second kind of modding is going to happen, and in some ways embracing it for letting modders do things faster than we could let them. But my model for providing tools to do supported modding would be basically what they've already done, however, providing API documentation, moving more information from code to XML, and making the XML processing a bit more robust.

And this is what they've said they will be doing. They don't require you to use C#, they give the option to load your own custom code through a dll, you can write that however you want, as long as the game is able to call it when it goes to do so.
 
If I were TaleWorlds, I would be expecting that this second kind of modding is going to happen, and in some ways embracing it for letting modders do things faster than we could let them. But my model for providing tools to do supported modding would be basically what they've already done, however, providing API documentation, moving more information from code to XML, and making the XML processing a bit more robust.

This x10

And this is what they've said they will be doing. They don't require you to use C#, they give the option to load your own custom code through a dll, you can write that however you want, as long as the game is able to call it when it goes to do so.

This is the kind of information I have wanted to hear and I hope it is true. I so want this game to not have to go through the pains the original went through with modding. This game should be mainstream popular and a robust modding community with a large amount of mods can help make that happen.
 
What TaleWorlds ought to do, is instead of C# .dlls having to rely on Harmony, just have the game compile and load .cs files at runtime instead. Source code for mods should be freely available, as others can build off of it, and incorporate it into other mods. We gotta build a cathedral as a community, rather than individual modders just having their wee parlour. The modding communities for Morrowind and Oblivion vs Skyrim and Fallout 4 demonstrate that: http://wryemusings.com/Cathedral vs. Parlor.html

As for C#, there's nothing out of the ordinary for scripting languages in it. It's really no different than Pascal, and scripting languages also have variable type declarations. The ones that don't, have horrific performance that rule them out for any serious real-time applications. Moreover, declaring your variable types is a great safety check for when you've ****ed up and using math on the wrong data type.
 
Back
Top Bottom