Index | FAQ | Search | Memberlist | Usergroups | Profile | Log in to check your private messages | Log in | Register

What would happen if... Goto page Previous 1, 2, 3, 4 Next

| Inside3d Forums Forum Index -> General Discussion

View previous topic :: View next topic
Author | Message
--- | ---
Wazat Joined: 15 Oct 2004 Posts: 732 Location: Middle 'o the desert, USA |

Posted: Fri Mar 28, 2008 1:22 am Post subject: |

Sorry for the long post... but answering lots of questions here lol. LordHavoc: Okay, that does seem reasonable. You get one global rune on your body that's always active, and each weapon can have an additional rune on it. My basic plan for implementation was to have several places all damage-based runes activated:
1) Near top of T_Damage, where Quad Damage takes effect. A function called here (damage = ApplyRunesPreDamage(attacker, targ, damage) ) can increase or decrease damage based on any attack/defense boosts present on the two people involved.
2) Right after T_Damage applies damage to the target, if the target is still alive, it calls ApplyRunesPostDamage(attacker, targ, damage); This is to allow for on-hit abilities such as freezing the target's legs, setting them on fire, or slowing them. By this time, damage has been reduced by armor, other runes, or invulnerability, so the on-hit runes know the actual damage vs max health to perform their random chance calculations.
3) A function called ApplyRunesOnAttack(attacker) is called each time an "attack" happens, be it firing a nail or rocket, or swinging the axe. This function is used by runes that have a % chance of activating each time the player fires something.
4) ApplyRunesOnThink is called in playerprethink or maybe post think (whichever is more appropriate). It's called every frame, so that runes like Regeneration can regenerate the player.
5) SubtractAmmo(entity ent, float amount, float type) will replace anywhere in the code where ammo is taken. Runes can modify this amount before it is subtracted out.
6) SetAttackSpeed is called whenever the player makes an attack, be it rocket or nailgun. The function is designed to work with both normal attacks in W_Attack, and with animation-based attacks such as the nailgun, so that the same function is used everywhere and all weapons can be hasted and/or slowed.
7) Several areas (with instructions) where you can insert code to add a new rune to the runes list. This will get the rune spawning normally, and then you just have to use the insertion points above to make your rune do something.
Etc.
Some runes will simply have to have their own special code somewhere when they don't fit one of the above models (and it would not be appropriate to make a framework for them), but that will be at a minimum, I think.
One decision to me be made is, do we add a .float etc for runes that need extra info (like regeneration so it only happens once per second), or do we attach the player's runes to his entity in a linked list so each rune can store its own info when pertinent? For example, you pick up the regeneration rune and it sets its owner to you and/or adds itself to a list, and then it thinks every second to heal you.
---
Rune combinations:
I am unsure about rune combinations, since the number of possible combinations rises far too quickly for my taste (exponential growth = bad), and we may add a lot of runes to this game. Not sure.
One option is to simply have each instance of the rune occur separately, so if you have two Slow runes, the chances of activation combine.
Another option is to have the effects not stack at all, so the player has to make sure the rune on his body isn't on one of his weapons, or the weapon's rune is wasted space. I don't like that one so much.
Another final option is to have each rune ask in its effects code if it's in double-effect right now, and if so, it amplifies its effect by 50% and adds a special effect (duel rage rune gives +75% damage instead of 50%, and sets enemies on fire). This has an advantage in that we only have one type of combination to worry about (each rune with itself), so the growth is very manageable.
---
New weapons, armor, powerups:
To this I am very hesitant. Just look at the difference between my mods, Dr. Shadowborg's mods, and LordHavoc's to see that no 3 people have the same idea on just how a weapon should function. If we were to introduce new weapons, we would have to agree in advance what kind of features weapons would have (primary fire + alternate fire, trifire, etc), how many weapons would be in the game (8 would be best, for various reasons, but we could do more), and what weapons there would be (for balancing issues etc).
If we wanted tons of weapons, we could have a setup where weapons spawns are purely random and the player has up to 2 weapon slots (buttons 1 and 2), and holding ALT while pressing a weapon will swap it with the one on the ground that you're pointing at. Dropped weapons would disappear quickly, and weapon spawns would switch weapons frequently.
All ammo spawns, weapon spawns, etc would become weapon spawns, and weapons do not have ammo pickups. You either pick up the weapon again to refill your ammo, or throw it away to use another (which is good because then the powerful weapons are only limited use). This is similar to my Battlemech weapons system, which was intended to allow any number of weapons to be added.
This would allow a hodgepodge of weapons of varying power and such to be added by different authors, as long as certain rules were followed, i.e. no special impulses for a weapon, no special features that are clunky to use (alt fire on a few weapons but not most), etc. And no super-overpowerednessisms! 'Nuff said.
As for ARMOR, well... that depends. Currently quake armor is an extremely simple system that works really well. What kind of armor are we talking about? If we're going to go with something obscenely complex like Conquest's armor system, good luck. However, if we have some ideas of things to add that would make all armors worthwhile pickups without overcomplicating the decision to pick them up (such as armors that are only good against fire, or that only do well against certain weapons), then sweet. Let's hear some ideas!
I am so super-hesitant about carrying health items or other things around that require a key press (and especially inventory fumbling) to use. Right now I'm planning on only a few commands the player would need to bind:
1) Swap Weapon (bind +swap_weapon to alt or some other key, then hold that key while pressing a number to swap that weapon with the one on the ground. Commands like this work just fine in vanilla quake if i remember right.)
2) Swap Weapon Rune (bind +swap_wrune to shift and press a weapon key to discard the rune bound to the weapon, or switch the rune with the one you are pointing at. The discarded rune gets tossed behind you so it's out of the way).
3) Swap Body Rune (bind swap_brune to a key. simply tap the bound key to discard the rune, and pick up the one you're pointing at)
No runes have an "activatable power" in my planning thus far, so there's no need for any "use body rune" or "use weapon rune" commands. I'm very hesitant about having more commands for item usage etc. Most stuff should maintain its "touch to use" functionality, imo.
However, that's not a final NO, since it's a community mod and I'm no god here (lol), and because you may have a really good idea I'm just not seeing.
---
Is it fun?
Erm... yea. My guess is with the right framework and a few people contributing, it could be *very* fun. Here's what I'm imagining the rules to be so far:
Runes and weapons spawn randomly throughout the level in DM. You have a few keys bound to pick these up and use them at your digression.
If we wanted (and I want to), we could combine this with CTF play, or monster swarm. Monster Swarm is monsters spawn through out the level (think Invasion from UT2004 in Quake!), and begin hunting the players. Players have to stay alive and kill off the swarms of demons and hellspawn until the current wave finishes (players have killed the number of monsters that spawn for this wave). Runes, weapons and teamplay are all essential to surviving the swarms.
Other game modes could, of course, be contributed by enterprising coders.
I'm thinking something like 10-20 weapons and 15-20 runes, a few new game modes, and some new or replaced powerups (armor, invulnerability, quad damage, etc).
Even hodgepodge and complex can be very fun. However many runes and weapons there are, our game can have a very simple base idea that we've built it off of (kill other players for points, or survive the monster waves).
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.

Back to top |

Wazat Joined: 15 Oct 2004 Posts: 732 Location: Middle 'o the desert, USA |

Posted: Fri Mar 28, 2008 1:38 am Post subject: |

edit: The correct answer to "What would happen if we all teamed up and made an über-mod..." is "Wazat writes immensely long posts". lol... -- @frag.machine:

Quote:
a) what this mod would support ? sp ? dm ? coop ? ctf ?

I was originally thinking SP w/ Coop, DM and Monster Swarm. Other game modes that work well are welcome.

Quote:
b) would it require a specific engine or could it run in vanilla GLQuake?

Crap, I was afraid someone would ask. For now, engine independent so everyone can run it, and presumably it runs equally well in any engine. For this reason, we want to limit things like shrink rays and such. Scale, alpha and colormod from DP (to name a few basics) would be really, really nice, but we may have to do without given the spread of opinions in the community regarding engines. Committing to any one will likely result in hard feelings.
I don't think I played Total Destruction II. Sounds like a blast.
I like the idea of a rune spawning a pet that follows you around and protects you. Maybe it teleports to you if it can't see you for a while or has trouble reaching you. A mini player or a dog could work really well.
Another idea is the rune spawns a self-destructing dog that explodes when it gets near a target (doesn't damage owner). After the dog explodes or is killed by an enemy, it respawns 5-10 seconds later.
@goblinoid:
I admire the organized contribution system of Linux. It's usually very professional, powerful and user-friendly for both developers and end users. Unfortunately, SVN is the closest we can get while staying sane. In order to have a game that breaks down into packages like linux... that'd take a total rewrite.
That said, you mentioned having some people do sounds, some people do art, some people do code, all split by weapon/rune/etc. That's a reasonable idea, and it's worth further consideration and discussion. I just imagined several people (like me, Preach and leileilol) get together and decide on a weapon to make, split the work by skills, and did their parts. OR coders like me just do the weapon, and use stock sounds they can find that are open source, and those sounds get replaced by better stuff later.
I'm up for whatever works and inspires creativity and production instead of crushing or frustrating it. Too much or too little structure can easily prove bad.
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.

Back to top |

Wazat Joined: 15 Oct 2004 Posts: 732 Location: Middle 'o the desert, USA |

Posted: Fri Mar 28, 2008 3:20 am Post subject: |

Sorry for the double (triple?) post. I've just encountered one more thing that must be decided before I or anyone else can start making the mod framework: Quake, or QW? QW may be better if we intend to host a server & such. I personally loathe the QW engine with near white-hot rage (mostly because it is so very hard to do things in and get them to work correctly, and the way projectiles move sucks), but I am very open to doing this as a QW mod to allow proper net play. I don't remember if DP plays well over the net, but it seems like he's made enhancements as well that could make it a good candidate.
That said, if memory serves me FTE is a pretty decent engine, especially as far as QW engines go. We might even be able to make the mod so that it will run in either FTE or any normal quake based engine like Darkplaces (using a precompiler, or perhaps fte will just accept normal quake code. I don't remember).
Thoughts?
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.

Back to top |

leileilol Joined: 15 Oct 2004 Posts: 1321 |

Posted: Fri Mar 28, 2008 5:03 am Post subject: |

I don't think QW would be the way to go for this. For one thing, you miss out all the fun with the particle effect. That reason alone is why I never develop for QW. For me Darkplaces plays very well over the internet. Stock Quake on Darkplaces just doesn't play as well as it could have been if ran through and optimized like Nexuiz or so.
on second thought a DP-centric Quake game qc code base could be cool, without any gameplay element changed, but integrated into darkplaces features and functions to nexuiz-ize it a bit. Like moving the bubble functions to csqc etc.
_________________

Back to top |

frag.machine Joined: 25 Nov 2006 Posts: 728 |

Posted: Fri Mar 28, 2008 11:13 am Post subject: |

I'd vote for DarkPlaces as target engine. Vanilla Quake compatibility would be cool, but I don't think its mandatory in these days. Even people with modest hardware can run it turning off most of bells and whistles. _________________ frag.machine - Q2K4 Project
http://fragmachine.quakedev.com/

Back to top |

FrikaC Site Admin Joined: 08 Oct 2004 Posts: 947 |

Posted: Fri Mar 28, 2008 2:55 pm Post subject: |

Unless you're a crazy person and want to play on Dreamcast/GP32/PocketQuake/etc.

Back to top |

Urre Joined: 05 Nov 2004 Posts: 1073 Location: Sweden |

Posted: Fri Mar 28, 2008 3:24 pm Post subject: |

Heh, people took this thread more seriously than I figured, especially Wazat Although my idea wasn't at all restricted to even being a game. If it was just a project about adding a bunch of runes, I don't see why it would need so much collaborative effort. Now if it actually extended to all kinds of items like LH said, that'd be more interesting. But then again, I'd personally also ask "is it fun?", cause I'm not so sure.
Unless... it was made into a form of ongoing online world thing, feral-flesh-ish, but with items added by random people. That'd basicly require it to be either FTE or DP based though. Now that'd be something a bit more interesting. Imagine logging in, finding out on the server news that a new batch of items has been approved, and you can go check them out at the local vendor or hunt for them amongst the creeps, and later try them out in the arenas against other people.
_________________
Look out for Twigboy

Back to top |

Wazat Joined: 15 Oct 2004 Posts: 732 Location: Middle 'o the desert, USA |

Posted: Fri Mar 28, 2008 5:34 pm Post subject: |

I'm cool with making it more complex. My concern is the project collapsing under its own weight, as we add more and more stuff (i.e. I may be guilty of this already). It can get too complex to manage or be fun, or people could just lose interest during critical phases of development and it never reaches "playable".
Adding new runes, weapons, items, etc regularly could be very cool. I'm going to spend some time thinking about the game's main feel that we should be going for. There needs to be more than standard deathmatch driving the gameplay, or I feel the fun factor will not be present. Invasion/Monster Swarm could add a really cool drive to finding the right weapons and runes to survive and take down the demons. We'll need more additions than that though to make it more than just another mod that doesn't have lasting attraction.
Features as I'm seeing them:
1) Runes, which the player can attach to his body and weapons.
2) New weapons, which the player can swap out at will for new ones. There will be lots of weapons in the game to find throughout the level, and they are generally randomly distributed.
3) Monster Swarm: This is one game mode that is designed to drive players to work together, sharing weapons and runes so everyone survives and the swarm doesn't overtake all the players. This is inspired by (or rather, a direct rip-off of) Invasion from UT2004, with some extras thrown in.
4) Storable items. The player can carry 1-2 items in his inventory. There are three inventory-based impulses: discard item (to pick up another), swap item (if you can have two items in the inventory, this switches focus between them), and use item.
5) Armor modifications: You may find a yellow armor with two red stripes on it, meaning it has two upgrades to it. Other armor powerups may heal you when you pick them up (combo of armor and health pack). Other people will have more inventive armor upgrades.
6) New powerups, including:
-Speed - double move and attack rate for 15 seconds
-Second Life - lasts 45 seconds or until used once: dying simply teleports you to a random spawn point at full health, you don't lose any items and enemy gets no frags
-Flameyness - Your attacks deal 20% extra damage, set enemies on fire, and you deal damage to enemies around you within a radius of 600.
Some more game mode ideas:
1) Invasion: Game mode similar to Monster Swarm. Players command one area, and all players respawn to that area. Monsters spawn on the other side of the map and swarm toward the player base. The monsters are focused on destroying the players' spawn points. Once all spawn points are destroyed, if any players are left alive they have 30 seconds to kill off the monsters of the current wave or the game is over. When all player spawns are destroyed and either all players are killed or the timer runs out, it's game over and the next map loads.
2) Counter-Offensive: Sort of a short-term coop mode, the player team is focused on invading and destroying the demon base. Monsters spawn continually within the base, but do not move out to attack the player base. If the players can destroy the monster's base core, they win the game.
Anything besides stock deathmatch on the original quake dm maps, which I've played to death over many, many mods.
---
What do you guys consider a "fun" community mod? More ideas? Less ideas? More ambitious? More simple? We could scrap the idea I'm pursuing now and do something else. I don't mean to hijack the thread.
What kind of mod do we want to pursue?
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.

Back to top |

FrikaC Site Admin Joined: 08 Oct 2004 Posts: 947 |

Posted: Fri Mar 28, 2008 6:07 pm Post subject: |

I'm seriously thinking about doing something like Urre said, a web based IDE for working on Token2

Back to top |

Urre Joined: 05 Nov 2004 Posts: 1073 Location: Sweden |

Posted: Fri Mar 28, 2008 6:14 pm Post subject: |

Wazat wrote:
It can get too complex to manage or be fun, or people could just lose interest during critical phases of development and it never reaches "playable".

My idea meant that someone would code a base for the mod, with all the critical features already in it before it gets released for peoples contributions. Otherwise I'm quite liking the ideas. Must still say it feels too average-forgettable-quake-mod to be worth it. This is why it'd be cool with a collecting and advancing feature RPG style. Not with experience, leveling and skills, but rather the more fun part, item collecting (from creature drops or shops or prizes from arena battles). Not sure this would work so well in a non-mmo game, unless there was the ability to load characters from a database, making it diablo2ish. This makes it more sensible to have infinetly many items, and would make it more interesting to play, just to find out what sort of items people have made, and whatnot. Otherwise it'd be basicly Quake, with more stuff. Arena battles would be deathmatches, and so forth.
_________________
Look out for Twigboy

Back to top |

Wazat Joined: 15 Oct 2004 Posts: 732 Location: Middle 'o the desert, USA |

Posted: Fri Mar 28, 2008 6:46 pm Post subject: |

Well, in those terms we could also have randomly generated items, or rather, items with one or more randomly chosen properties. These show up in shops, are given as arena prizes, and are dropped from monsters. You may find a nailgun that deals extra fire damage, a healthpack +5 that cures poison when used, or a shotgun that gives haste, bonus ice damage, and bonus hit points while equipped. There would also be specifically created items that an admin or other privileged user creates for special arena battles or quest items.
Likewise there could be accessories ("Runes" in the Quake context, but it's fine to use something more standard like rings and amulets) that have random properties on them.
Another option is crafting your own items using elemental essences gathered from monsters. You could make your own nailgun that deals elemental damage of your choice and gives several other properties, based on the elements you use to craft it.
For example, Neverwinter Nights 2 has various items that monsters may drop (ice memphit hide, ghoul claw). If you distill these items, you get one of 6 essences: fire, ice, air, water, earth, and power.
Essences come in 4 different flavors: faint, weak, glowing, and radiant. 2 essences of the same strength can be combined to get the next power level:
2 Faint = 1 Weak
2 Weak = 1 Glowing
2 Glowing = 1 Radiant
Then you basically have a bunch of recipes for crafting items, like a Flaming Nailgun +3 (+3 damage, and deals +25% fire damage) or an Empowered Launcher of Haste (+50% damage and user is hasted while using it). You gather up items like a Shambler Claw, a Grunt's Head, and a Fiend's Claw, distill them for the basic components, and craft a nailgun.
So...If we want to do a crafting system of some sort, there's all kinds of systems from other games we could use for inspiriation (like Vagrant Story).
Anyway...
With a variety of items, there should be a bunch of things to do with them. Arena battles are great, and leaving town to kill monsters for quests etc would be cool too.
--
Saving and loading characters on the server is entirely possible with DarkPlaces. Its file IO commands are quite easy to use, and FrikaC has shown us (with Frikbot and TokenQuake) how to load pre-generated characters from files on the client's machine.
So a player could create a character on his local machine and export it, or build it on a web page, and then import it to the server to play. Once it's on the server, it stays there and the player basically gives a username and password to choose that character when they connect (the username is the filename, the password is the first thing stored in the file).
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.

Back to top |

Urre Joined: 05 Nov 2004 Posts: 1073 Location: Sweden |

Posted: Fri Mar 28, 2008 10:30 pm Post subject: |

Not sure about the random part, and minor elemental differences, I was more after making it feel more Quake by lots of entirely unique things created by actual people, than lot's of shotguns with the same look but minor statistical differencies. There could obviously be some form of standard and code of conduct for items, but generally not limit it too much. The idea is that there would be admins who approve all new items added, so bad things don't happen too much.
Storing on client machines is bad, as that can lead to cheating, and as the main idea is to store the player's inventory of items, that'd more than likely lead to lots of cheating. But it's very limiting to restrict oneself to only one server machine, it'd be awesome to be able to access a database where your character is, no matter where you create the server. But the ability to cheat with the data sent to the database would still persist, specificly as it'd be an opensource game, so that needs to be figured out.
_________________
Look out for Twigboy

Back to top |

Wazat Joined: 15 Oct 2004 Posts: 732 Location: Middle 'o the desert, USA |

Posted: Sat Mar 29, 2008 1:11 am Post subject: |

Well, what I meant about the client machine is you can originally craft your character on the client end (by game or by website), and import the character to the server, ala Token Quake. You then play from there and your character is stored on the server. If you try to import a character that's too powerful (over the number of points etc), the server recognizes this and tells you no. That way there's no cheating, since a client import can only add certain things, and anything you gain from playing (items etc) is server only.
As I think about it, I've realized I'm thinking more along the lines of building a character's stats and such, when you're talking more about items. So unless we do stats and special powers on a point-buy system, there's no need for client import.
---
The more I think about it, the more I want to do Token Quake 2 as one of our community projects. It has all the framework for the special powers, stats, and weapons that I want to give a player. That way I'm not hijacking Urre's idea to get my stuff into it. Maybe we could do 2-3 community projects in parallel? Whoever builds a really workable framework and enrolls people starts a new project.
If we could combine TQ2 with some special game mode besides deathmatch (such as CTF or Monster Swarm) then it gets even better.
FrikaC: You've got me signed up!
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.

Back to top |

Urre Joined: 05 Nov 2004 Posts: 1073 Location: Sweden |

Posted: Sat Mar 29, 2008 8:09 am Post subject: |

I didn't really have an idea/project initially, still don't really, I just wondered what'd happen... But I've had the idea of an mmo-like in Quake for ages. Not like it's going to happen, but it's a neat idea. _________________ Look out for Twigboy

Back to top |

Wazat Joined: 15 Oct 2004 Posts: 732 Location: Middle 'o the desert, USA |

Posted: Sun Mar 30, 2008 1:39 am Post subject: |

Is there a base Quake/DP source code that already has CSQC elements implemented, i.e. for bubbles, gibs, and other items that really need to be moved off the server? Gibs and bubbles are probably easy to do myself, but the other stuff I'm not so sure on.
I'm about to start picking at the source in hopes of starting Monster Swarm with the ideas I've been developing; however, I've been outside of the quake community for so long I'm really not sure what new resources are available.
I've decided on DarkPlaces, possibly with a dependency on advanced compilers like FrikQCC that can handle special features like arrays.
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.

Back to top |

Display posts from previous:

| Inside3d Forums Forum Index -> General Discussion | All times are GMT Goto page Previous 1, 2, 3, 4 Next
Page 2 of 4

Jump to:

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Powered by phpBB © 2004 phpBB Group