[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4787: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4789: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4790: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4791: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
InsideQC Forums • View topic - Multiply / clone enemies

Multiply / clone enemies

Discuss programming in the QuakeC language.

Moderator: InsideQC Admins

Multiply / clone enemies

Postby Seven » Wed Oct 17, 2012 6:37 pm

Seven
 
Posts: 301
Joined: Sat Oct 06, 2007 8:49 pm
Location: Germany

Re: Multiply / clone enemies

Postby ooppee » Thu Oct 18, 2012 2:13 am

Will have to give this a try sometime.

You should have all enemies take damage at the start of the function too (both the spawner and the spawned). Even make it 0 damage. This would make them run around and make the game even more chaotic.
ooppee
 
Posts: 70
Joined: Thu Oct 28, 2010 2:57 am

Re: Multiply / clone enemies

Postby frag.machine » Thu Oct 18, 2012 5:09 am

There are a number of ways to"improve replay value" in Quake in theory. None of them usually results in good gameplay tho.

Example: Some time ago me and Entar tried to add some "unpredictability" to existing maps, just making monsters "walk away" from their start point after some time. No big deal in terms of gameplay balance, one would think. This leaded to funny situations, usually monsters facing walls in a pathetic way. Unfortunately, most of time the net result wasn't better than original.

I still believe random monster roaming has a big potential to add replay value in a map, but the map must be projected to support it. Most id maps don't fall on this category, so it's not just a case of QuakeC work IMHO.

The first big problem with simple monster cloning is to break the resource x obstacle balance: place fewer monsters and the map loses a lot of challenge; place too many monsters, and it becomes impossible to play.

Another alternative would be to replace monsters with others more or less in the same difficulty scale: a dog for a soldier, an ogre for a hell knight. Problem is, this quickly becomes complicated, because one monster usually won't replace another directly (it's not only a matter of "how many hp does the monster have x how many ammo do I have" - an ogre is basically a melee monster, a hell knight is more challenging at ranged combat, etc.).

As I said, it's quite a challenge. But is an interesting one. I'd like to hear about other experiments and/or theories...
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
User avatar
frag.machine
 
Posts: 2120
Joined: Sat Nov 25, 2006 1:49 pm

Re: Multiply / clone enemies

Postby goldenboy » Thu Oct 18, 2012 5:26 am

You could write a wrapper for something like Quoth that replaces id1 monsters in strategic spots with Quoth monsters. I once did something like that for RMQ, simply by intercepting the spawn functions, grabbing some monster's origin (can be found via GPL maps) and bending the spawn function towards an RMQ monster.

This allows you to fine tune where what replacement is spawned without changing it in the actual maps, and without upsetting the balance.

Theoretically you could even insert Lardarse's randomizer in the same way and get truly randomized monsters in id1 maps, again without upsetting the balance.

Unfortunately there is no Quoth source. 8) Ouch.
User avatar
goldenboy
 
Posts: 924
Joined: Fri Sep 05, 2008 11:04 pm
Location: Kiel

Re: Multiply / clone enemies

Postby Spirit » Thu Oct 18, 2012 9:20 am

Keep in mind that randomising monsters on each map launch is drastically different from the vanilla game. At least for me learning a map and trying again and again is a huge part of the fun nowadays (not on my first playthrough obviously, there I used quickloading). "Volatile" monster placements make the game much more random and unpredictable. I am not saying that it would be bad at all, just very different.

edit: Of course different monster placement affects the balance. When I map I try to think of the ways a player takes until he encounters specific monsters and place items accordingly.
Improve Quaddicted, send me a pull request: https://github.com/SpiritQuaddicted/Quaddicted-reviews
Spirit
 
Posts: 1037
Joined: Sat Nov 20, 2004 9:00 pm

Re: Multiply / clone enemies

Postby Seven » Thu Oct 18, 2012 6:19 pm

Thank you very much for your comments.

A real monster replacement (in terms of exchanging monster types) will indeed most probably lead to a gameplay change in that map.
It will amplify the variation, but you will have to pay a price for it.
I think this is what gb and spirit are saying. I fully agree.

That was the reason why I wanted to keep it subtle and as close to original map-makers idea as possible.
Cloning the same monster and place it near the original is maybe a good compromise...
The backpack throwing is also enabled for the clones, so the ammo resupply should be sufficient (at least in ID1 maps)

The cloning itself works also fairly well in fan-made maps. The probelm with ammo supply gets serious though,
due to high difficulty, which is unfortunately common in fan-made maps (even on easy)... (at least for me :roll: )


@ frag.machine

I am not sure if I understood your last sentence correctly.
If you asked for more ideas to make the gameplay more varied, I also tried these:
- add semi-transparent monsters (which brings back the shocking moments which we all had when playing Quake the 1st time)
- multimodel and multiskin support for each monster-type (every monster is spawned with randomly use of external replacement skins/models)
That brings some variation into the game, but keeping the original feel.


@ OoPpEe

I made something similar by accident and the result was that the monsters walked in chaotic ways. Also where they should not walk, lol.
If a map has no waypath declared for them, an ai_walk(x) ing monster is dumber than dumb, hehe.

Kind regards,
Seven
Seven
 
Posts: 301
Joined: Sat Oct 06, 2007 8:49 pm
Location: Germany

Re: Multiply / clone enemies

Postby wjbr » Thu Oct 18, 2012 11:02 pm

You could try controlling the cloning with some AI.

Following the Left for Dead example.

If you have lots of health and ammo, spawn more monsters.


I've been playing Wolfire's Receiver recently and the random monsters are great fun.
wjbr
 
Posts: 2
Joined: Sat Oct 06, 2012 12:57 am


Return to QuakeC Programming

Who is online

Users browsing this forum: No registered users and 1 guest