Would my mod be possible?

Started by NeonInsect, November 11, 2017, 07:59:54 AM

Previous topic - Next topic

NeonInsect

Hi guys,

this week I decided to learn a couple of new things for myself and I think getting into modding my favorite game will help doing so. (Please don't tell me to start with simple stuff - that's not how I role + I have already some basic knowledge^^)

What I wanted is to create a Mod, that adds a sport into the game. The sport is called "Jugger", which I used to play. It's based on a movie.

So...to understand what I want to happen, I will quickly go over some basic rules.

Quote
- Jugger is a 5v5 Ball/Battle Game.
- Four players are armed with (soft) close combat weapons, one is unarmed and is the only one allowed to touch the ball.
- The field is square-ish with a Mal towards the end of each side, which are the goals.
- The ball is in the middle of the field and players line up behind their Mal and attack the ball, and rush towards the ball after the signal of a referee.
- Goal is to get the ball and protect the unarmed guy to allow him to score.
- A score is made, when the ball has been put into the enemy "Mal" (it's something you stick the ball into)

Battle rules:
- If you're hit by a weapon on your body, you are "stunned" for a couple of seconds and can't continue to battle.
- A stunned player can be pinned down, by guarding that player.
- Unarmed guys can wrestle for the ball, but are not allowed to attack an armed player.

Weapons:
- Two-handed sword
- 1-handed
- Shield
- Chain
- Q-tip

Further reading: https://en.wikipedia.org/wiki/Jugger
Video: https://www.youtube.com/watch?v=pY78Wwy_YPA
--------------------------------------------

Okay, so you roughly know what the game is I'm talking about. And you kinda guess why I want to have it in. Because craftable stuff, it fits into medieval and futuristic themes etc. Plenty of reasons. According to the movie the game is based on, the sport is about small teams travelling around the world and challenge other teams to collect as many dog-skulls (the ball) to be invited to a big tournament.

So, here is roughly what I want to happen for my very first version.
Quote
- You would have to build a field into your base, that is let's say 13x17 tiles big. (get to this later)
- You'd have to have a dogskull...crafted from dogskull and some stuff for the reason to make it valuable
- You would have to assign some players to be your juggernauts (I'd say via priority(?) - tell me your idea)
- If both is true, you can get visited by opposing teams
- They challenge you (you can decline or accept)
- Two days after you accepted the challenge the players would go on a "mental break" (I want to avoid the player influencing the game) and move to the field to play a game of jugger against the challengers.
- Your colony and whoever is with your guests gather around the field to watch the game.
- If your team wins, your colonists get a mood buff for a few days and the opposing team drops the dogskull which is yours.

The field:

So ultimatively I have no idea how to realize that.
My raw idea is to have different kinds of floors, categorized in Hometeam Endzone, Visitorteam Endzone and the rest of the field inbetween. It should be the size of the field. But...I really don't know.

Okay...so. The Rimworld version of the game would be like this:

- 4v4 (3 armed, 1 unarmed) .. or 3v3
- No chain weapon
- Endzones instead of the Mal
- A game of Jugger would last until one team has scored x times (probably). [so we need to count points somehow]
- Only bruises (no serious injuries)
- Players line up in their endzones and attack the field.
- There doesn't have to be any tactics involved. Players just attack the closest player on opposing team.
- Based on some math (aka melee, defense, speed influenced by weapons and armor) they battle out who gets stunned - it should include block and dodge.
- If opposing players are either down or x tiles away, the unarmed guys try to get the ball.
- If the opposing team has the ball, the defending team tries to protect their endzones and attack the ballcarrier, while the team with the ball tries to protect the carrier.
- If the ballcarrier goes down, the ball drops at his spot
- If a point is scored, the whole thing resets and starts over again, armed players switch positions randomly to bring in some differences.

So the ultimate question before I start my research is this: Is it even possible?
If so, how would you go about it? What would you recommend me to look into for certain aspects of the game. What are your ideas?

Future ideas:
- Go out and challenge other teams that spawn around x amount of travel days around your base
- A fame system (League based on fame...)
- Tournaments you can be invited to and even visit, even if you're not invited
- Tournament towns that are pre-designed to hold a couple of teams for a few days
- Trophies
- News messages that tell some results
- Practice facilities
- Banners, Jerseys, yada yada



[attachment deleted by admin: too old]

Chestergazi

It is hard make this mod possible..

Well by that i mean it can be done but only several players will dare to do it.
Also if done, it can be used to make movies/videos.

''My Opinion''.

NeonInsect

Thanks for your opinion.

There is no need for anyone being involved. I would do it myself and for myself, because I just need a hobby project I can mess around during weekends, to keep my mind busy :)

Albion

#3
Honestly? This will be a beast to code.
Not impossible but it'll take you several months even if you are a programming god.

You should probably start by creating the items you want to use by creating the xml defs for them. Those will keep you busy the first weekend I guess.

What will cost most of the time is the logic for the pawns/players and the game itself. You'll probably have to create a new job worker and a think tree for the pawns to follow during the game.
You'll also need functions to represent the game and the way scoring etc works. Have fun with that because I'm not even sure where to start with that.

Those were the first few thoughts I had in regards to this. If you have any further specific questions feel free to ask them.

It all basically boils down to this: nothing is impossible it's just a question of time, skill and commitment. However any functionality that is not already implemented in some way or deviation will increase development time by weeks or months since it has to be coded from scratch.

CannibarRechter

> Honestly? This will be a beast to code.

This is my opinion as well. This is a significant project; if complete, it would likely be one of the more complex mods released for RW.
CR All Mods and Tools Download Link
CR Total Texture Overhaul : Gives RimWorld a Natural Feel
CR Moddable: make RimWorld more moddable.
CR CompFX: display dynamic effects over RimWorld objects

Nightinggale

One big problem with modding is that it's not free. You require a certain amount of man-hours from a skilled programmer. The modding community has a somewhat fixed number of those available each month, meaning whatever you spend on this idea will be taken from other mods. Since this idea requires a lot of time, it will cause multiple other mods to not be made. Personally I would go for the other mods and I suspect most if not all other programmers would do the same.
ModCheck - boost your patch loading times and include patchmods in your main mod.

dburgdorf

Quote from: Nightinggale on November 12, 2017, 09:15:10 AMOne big problem with modding is that it's not free....

One big problem with your post is your incorrect assumption that modding is somehow a "zero sum" game. Mods aren't created by a set core of programmers always and only working on one mod or another.

NeonInsect made it clear that he wants to create this mod by himself and that he's not interested in working on smaller or different mods. Nothing's going to be "taken from other mods" if he works on it. If he actually succeeds in creating it, the game and its community have gained a complex, interesting new mod. And if he fails, the game and its community have lost nothing, while NeonInsect himself has presumably at least gained a bit more programming knowledge along the way. Your claim that working on this mod would "cause multiple other mods to not be made" is ridiculous.

Or to look at it another way, why on earth are you trying to discourage someone from learning more about modding by working on a project that interests him?
- Rainbeau Flambe (aka Darryl Burgdorf) -
Old. Short. Grumpy. Bearded. "Yeah, I'm a dorf."



Buy me a Dr Pepper?

Nightinggale

Quote from: dburgdorf on November 12, 2017, 09:26:50 AMOr to look at it another way, why on earth are you trying to discourage someone from learning more about modding by working on a project that interests him?
I'm not discouraging modding, I'm discouraging making a first mod, which will most likely end up as "modding this game is really hard and I get nowhere. I better just give up". I do not view this as a reasonable choice for a first mod.

Quote from: NeonInsect on November 11, 2017, 07:59:54 AM(Please don't tell me to start with simple stuff - that's not how I role + I have already some basic knowledge^^)
"Basic stuff" is not well defined. I say even if you know how to program already (I hope you do), you will need to make a mod to test stuff on. Set up the compiler, make a DLL, make RimWorld call your method. Try using Harmony. It doesn't have to be useful, published or even finished. You just have to figure out how to do it.

Once you have a feeling for how C# modding works for RimWorld and what can and can't be done, you can start to study the vanilla code and plan your real mod, preferably first on a concept level using pen and paper. If your plan is good enough and your mod creating testground have given you enough hands on experience, then making a mod like this could be within reach.

The reason I was so dismissive at first is because I have seen plenty of posts like this over the years for "my first mod" for multiple games. I have yet to see one ending up as an actual mod if the person jumped strait into it without doing any investigation on how to mod the game in question, which is required for a realistic plan and no big project (mod or otherwise) can really be coded without a plan.

Quote from: dburgdorf on November 12, 2017, 09:26:50 AMOne big problem with your post is your incorrect assumption that modding is somehow a "zero sum" game. Mods aren't created by a set core of programmers always and only working on one mod or another.
If the mod is of a nature where previous experience is required, then "zero sum" is not as wrong as you make it out to be. I would certainly welcome new modders, but any "is this possible" posts indicates lack of insights to me and like it or not, insights is critical to make mods.
ModCheck - boost your patch loading times and include patchmods in your main mod.

CannibarRechter

Putting it candidly, the mod concept described is more for a budding programmer than it is a budding modder. But the distinction might not that distinct. This sort of thing has been a tradition since the first computer games were made. I literally learned how to program by learning how to rewrite basic and 6504 assembly in Ultima I.
CR All Mods and Tools Download Link
CR Total Texture Overhaul : Gives RimWorld a Natural Feel
CR Moddable: make RimWorld more moddable.
CR CompFX: display dynamic effects over RimWorld objects

RawCode

Real issue with all such threads - people "want" instead of "do".
Asking questions instead of performing any research.
Asking for help BEFORE trying self.
This is not discouragement, this is harsh truth about all epic mods gone in vain for this reason.

1) Everything is possible don't ever ask, EVERYTHING.
2) Only measure of anything is time, things can be fast, slow or take ages to complete.
Drawing few jerseys is fast, learning C# is slow, implementing logic of your favorite game as AI routine and incorporate this logic into game that have zero support for such modifications will take ages.

Start from simple thing, make mental breakdown that take control over pawn and force it to build something using blueprint or procedural stuff.
Make it simple, force random pawn to go mental break and draw swastika near your base using temporal color carpets (that decay over time).
After that you will have basic understanding of AI and how long it takes to implement ever such monumentally automation.