EntityPlus - A single player Q3 mod

Discussion for Level editing, modeling, programming, or any of the other technical aspects of Quake
EmeraldTiger
Posts: 392
Joined: Fri Sep 17, 2010 1:53 am

Re: Here's a wild idea: EntityPlus

Post by EmeraldTiger »

Wow! Nice job on redesigning q3dm7. I must admit it was somewhat more challenging than most official Quake 2 maps I`ve played - not as much health or armor to keep you stocked, and the lack of ammo which means you have to be really careful to make your shots count. It was quite fascinating.

I`m thinking of making a Q2/Q4-based mission with your mod, where the player has to fight off Strogg. Only problem is the lack of any real Strogg-esque models in Q3, though Visor / Gorre / TankJr should do the job, and maybe a reskinned Bitterman to recreate the Tactical Transfers from Q4. I`m truly grateful that someone has produced a genuine single player experience for this great game, thank you so much Eraser! I need to convince the guys over at QuArK to add some support for your mod. :D

EDIT: Just figured, it would be nice to have a monster be able to use two weapons rather than just one.
[color=#00FF00][b]EmeraldProductions[/b][/color]
http://emeraldproductions.weebly.com/index.html
User avatar
Eraser
Posts: 19177
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

You can spawn an enemy with multiple weapons but it's up to the bot AI to pick whichever he wants to use and I think the AI is pretty straightforward in that it just picks the weapon the bot prefers and sticks to that.

I've really come to the point where some bot AI tweaks are really needed, so I'm really grateful for the patch cyr posted.

As for the difficulty... I've been constantly testing with skill level 2 (g_spskill 2) and it's indeed still quite tough. It's really hard to strike a balance on that difficulty curve.
DaEngineer
Posts: 210
Joined: Fri May 28, 2010 2:30 pm

Re: Here's a wild idea: EntityPlus

Post by DaEngineer »

That's what I call a milestone. Thanks a lot for all the time and effort you put into this! The example map was fun to play, although I had to set the skill level down to 1. I think the damage could still be scaled down a bit, because the damage done to the player on skill level 1 feels almost fair, but the bots are by far too stupid on this difficulty to be fun. On the second difficulty, they behave alreay like I would SP bots expect to behave, but the damage they do is a too high for my taste.
But I'll test that out in some testing areas I'll prepare for myself and give you more detailed feedback later.


The PDF looks really nice. But there's one thing I would change in the install instructions in the readme. You wrote
You can either overwrite the existing entities.def or configure GtkRadiant 1.4 or ZeroRadiant 1.6 to use the entityplus folder as working folder
I never used a mod folder for mapping and thus had to find out what to do now. After uninstalling Radiant multiple times (errors, crashes and so on - things that happen when you do something very wrong) I figured out I only had to go to Project Settings, leave the basepath as it was (that was the mistake - I changed it to Quake 3\EntityPlus) and choose Custom Quake III Modification in the Select Mod field. Then, the only thing one has to do, is to type "EntityPlus" in the fs_game field. I think that is a mistake other people can do too, so you could add this information to the readme.


When I took a look at the map you made, I couldn't figure out how you trigger the lava drain when Klesk is dead. How did you do that?

//EDIT: Forget about that. Found it it was done by the trigger_death with the count set to 23.

//EDIT: Is there already a possibility to let bots drop (multiple) items on their death? Or trigger things when they die another way than with a trigger_death (to make things only happen when a certain bot dies, and not when a total amount of enemies is killed)? Could this be implemented by adding a key (for example "ondeath") and a value (targetname of the target_botspawn) in the trigger_death?


This evening I'll upload new models for wooden debris and modified old ones for stone (they'll be more angled and not as smooth as before - and have fewer polys).
[url=http://www.victorkarp.com]Portfolio[/url] - [url=https://victorkarp.com/tutorials/quake-3-mapping-tutorials/]My Quake 3 mapping tutorials[/url] - [url=http://www.lvlworld.com/author/DaEngineer]My Quake 3 maps[/url]
User avatar
Eraser
Posts: 19177
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

DaEngineer wrote:That's what I call a milestone. Thanks a lot for all the time and effort you put into this! The example map was fun to play, although I had to set the skill level down to 1. I think the damage could still be scaled down a bit, because the damage done to the player on skill level 1 feels almost fair, but the bots are by far too stupid on this difficulty to be fun. On the second difficulty, they behave alreay like I would SP bots expect to behave, but the damage they do is a too high for my taste.
But I'll test that out in some testing areas I'll prepare for myself and give you more detailed feedback later.
Yeah the difficulty balancing is really... erm... difficult. I was continually testing at skill level 2 but I designed the level so I knew what was coming, which makes quite a difference because I could anticipate everything. I think it is indeed a good idea to scale down the damage even further.
DaEngineer wrote: The PDF looks really nice. But there's one thing I would change in the install instructions in the readme. You wrote
You can either overwrite the existing entities.def or configure GtkRadiant 1.4 or ZeroRadiant 1.6 to use the entityplus folder as working folder
I never used a mod folder for mapping and thus had to find out what to do now. After uninstalling Radiant multiple times (errors, crashes and so on - things that happen when you do something very wrong) I figured out I only had to go to Project Settings, leave the basepath as it was (that was the mistake - I changed it to Quake 3\EntityPlus) and choose Custom Quake III Modification in the Select Mod field. Then, the only thing one has to do, is to type "EntityPlus" in the fs_game field. I think that is a mistake other people can do too, so you could add this information to the readme.
Sure, I'll elaborate a bit further on that in the readme.
DaEngineer wrote: When I took a look at the map you made, I couldn't figure out how you trigger the lava drain when Klesk is dead. How did you do that?

//EDIT: Forget about that. Found it it was done by the trigger_death with the count set to 23.

//EDIT: Is there already a possibility to let bots drop (multiple) items on their death? Or trigger things when they die another way than with a trigger_death (to make things only happen when a certain bot dies, and not when a total amount of enemies is killed)? Could this be implemented by adding a key (for example "ondeath") and a value (targetname of the target_botspawn) in the trigger_death?
I was thinking of similar functionality as well. In my example map, if you decide to rush past a bot without killing it, you'll never be able to finish the map because of those trigger_death entities. I'll probably add additional functionality to the target_botspawn so you can trigger an entity when a bot that has been spawned by that botspawn dies and/or have the bot drop a specific item.
DaEngineer wrote: This evening I'll upload new models for wooden debris and modified old ones for stone (they'll be more angled and not as smooth as before - and have fewer polys).
Cool :up:
DaEngineer
Posts: 210
Joined: Fri May 28, 2010 2:30 pm

Re: Here's a wild idea: EntityPlus

Post by DaEngineer »

Here are the new models *click me*

I've reduced the poly count of almost all old concrete debris models (some of them were already low-poly enough), added five wooden debris models (they don't have the dark edges you can see on the picture - that's caused by the lighting) and another three bright and dark big debris models; just in case you want to hunt down some bunker walls.

Image

The texture I used for the wooden debris is a picture of a plank taken by me. So there are no copyright problems with it.
[url=http://www.victorkarp.com]Portfolio[/url] - [url=https://victorkarp.com/tutorials/quake-3-mapping-tutorials/]My Quake 3 mapping tutorials[/url] - [url=http://www.lvlworld.com/author/DaEngineer]My Quake 3 maps[/url]
User avatar
Eraser
Posts: 19177
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

Nice. However, the stone models seem to refer to a shader located at models\entityplus\debris\debris_stone and there's no such thing included in your package. Also, could you put the models in a "models\debris" folder, without the "entityplus" in there, because right now the paths to the textures are incorrect.
DaEngineer
Posts: 210
Joined: Fri May 28, 2010 2:30 pm

Re: Here's a wild idea: EntityPlus

Post by DaEngineer »

Eraser wrote:Nice. However, the stone models seem to refer to a shader located at models\entityplus\debris\debris_stone and there's no such thing included in your package.
My fault. I overwrote an old zip file with the new models and didn't notice that the ones for stone were still in there. Just ignore them, I'll upload stone models as soon as I've found or made some license free textures.
Eraser wrote:Also, could you put the models in a "models\debris" folder, without the "entityplus" in there, because right now the paths to the textures are incorrect.
Sure, no problem.

//EDIT: Here's an updated package DOWNLOAD
[url=http://www.victorkarp.com]Portfolio[/url] - [url=https://victorkarp.com/tutorials/quake-3-mapping-tutorials/]My Quake 3 mapping tutorials[/url] - [url=http://www.lvlworld.com/author/DaEngineer]My Quake 3 maps[/url]
User avatar
Eraser
Posts: 19177
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

Ok great. The textures on the wood wouldn't show up but they do now.
spookmineer
Posts: 506
Joined: Fri Nov 29, 2002 8:00 am

Re: Here's a wild idea: EntityPlus

Post by spookmineer »

I just want to say I love all of you who are contributing to this mod.

(yeah... the post went on and on about accepting constuctive critisism and building off of eachother, or just chipping some code in, but I'll just leave it at this, so the /edit posts won't be abused on my side). (I just deleted a huge paragraph to be honoust).
DaEngineer
Posts: 210
Joined: Fri May 28, 2010 2:30 pm

Re: Here's a wild idea: EntityPlus

Post by DaEngineer »

spookmineer wrote:I just want to say I love all of you who are contributing to this mod.
/sign

I've made some more models. This time it's glass. 5 small shards and 5 big ones. Download here. Eraser, can you add the behaviour of a grenade to the models? Grenades rotate slowly and change their angle if they hit an obstacle. This would really be a cool effect.
[url=http://www.victorkarp.com]Portfolio[/url] - [url=https://victorkarp.com/tutorials/quake-3-mapping-tutorials/]My Quake 3 mapping tutorials[/url] - [url=http://www.lvlworld.com/author/DaEngineer]My Quake 3 maps[/url]
User avatar
Eraser
Posts: 19177
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

Nice. Sorry to nag about this, but the model's paths to the shader seem to use backward slashes (\) instead of forward slashes (/) so it can't find the shader.

edit:
nevermind, I changed them using a hex editor. Just something to remind of next time :)

edit2:
oh, glass_4_large.md3 seems to be missing
DaEngineer
Posts: 210
Joined: Fri May 28, 2010 2:30 pm

Re: Here's a wild idea: EntityPlus

Post by DaEngineer »

Eraser wrote:Nice. Sorry to nag about this, but the model's paths to the shader seem to use backward slashes (\) instead of forward slashes (/) so it can't find the shader.
Oh, nagging is fine. It's trial and error and there's no better way to learn things. I know about the shader problem and don't quite understand it, as the models have the red "shader image missing" texture when placed in Radiant, but look as they are expected to in-game.
I've re-exported the models now with correct forward slashed, but the texture is still missing in Radiant and still working in-game. Do you know what's the reason for this?

Here's the missing glass_4_large.md3. It seems double-checking things is still not enough. Either I have to accept being scatterbrained or need to triple-check everything next time :disgust:
[url=http://www.victorkarp.com]Portfolio[/url] - [url=https://victorkarp.com/tutorials/quake-3-mapping-tutorials/]My Quake 3 mapping tutorials[/url] - [url=http://www.lvlworld.com/author/DaEngineer]My Quake 3 maps[/url]
^misantropia^
Posts: 4022
Joined: Sat Mar 12, 2005 6:24 pm

Re: Here's a wild idea: EntityPlus

Post by ^misantropia^ »

@DaEngineer: test against a clean-slate install of Q3A, that catches most 'missing x' errors.
User avatar
Eraser
Posts: 19177
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

Heh, don't worry. It's a nice collection of debris models. I also updated the code so it's possible to make use of the gib effects in case you want to have some kind of fleshy wall be blown to bits or something.
User avatar
Eraser
Posts: 19177
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

Playing around with bot waypoints to make them patrol up and down a path. Pretty neat (tease tease) :-D
cyr
Posts: 6
Joined: Sun May 08, 2011 9:44 pm

Re: Here's a wild idea: EntityPlus

Post by cyr »

Eraser wrote:You can spawn an enemy with multiple weapons but it's up to the bot AI to pick whichever he wants to use and I think the AI is pretty straightforward in that it just picks the weapon the bot prefers and sticks to that.
Weapon preferences are calculated with the equations given in baseq3\botfiles\fw_weaps.c, this is system is painfull to work with and half broken unless you run ioquake3. If you want to alter the weapon preferences, I'd suggest to ignore the script and to hardcode the equations.
EmeraldTiger
Posts: 392
Joined: Fri Sep 17, 2010 1:53 am

Re: Here's a wild idea: EntityPlus

Post by EmeraldTiger »

Ahh, just had some thoughts (and bugs to report):

The bugs:

- In the room where you grab the master key and fight off the monsters, there is a chance that you can kill them all off but the alarm still rings, and you can`t get out. I`m not sure if it`s just a bug with the particular map, but if it`s not it could be a serious problem in other potential maps, so you might want to look into this.

- The lava, when it drains - you can drop down early and you`ll go right through it like it wasn`t there. :D

Thoughts / Ideas:

- The backpack system is a very nice idea. But what about if someone has to take a break during their journey? (eat dinner, bedtime, etc.) They`d have to quit and start all over again when they got back. Personally, I think that when you quit the game it is automatically saved, and you can load it back up when you come back. For right now you can do it through a new console command, (/loadgame ep_example) but hopefully, if someone is willing to do so and has the experience, you could have a redesigned graphical interface / main menu, with one of the options being to load a game from a list.


- target_difficulty. You know how in Quake 1 you had to select your difficulty from a series of hallways, rather than a by-menu system? I always thought that was so neat, and it would be cool to have an entity in Q3 which does the exact same thing. You mentioned that EntityPlus has difficulty levels which determines the difficulty of the bots. Have four spawnflags, Easy, Medium, Hard, and of course Nightmare - or you could use the Q3 system and have five spawnflags, for I Can Win, Bring it On, Hurt Me Plenty, Hardcore, and Nightmare. Attach the target_difficulty to a trigger_once / trigger_multiple and the difficulty will be changed the next time a map loads.

- On a similar note, have spawnflags so that entities only spawn in certain difficulties. That way, perhaps you can have a weak guy on lower difficulties but a rough and tough tank dude in higher ones.

- func_rotatingtrain, a combination of a func_train and a func_rotating. Mostly aesthetic, though it could be good for rotating elevators. Don`t think it would be terribly difficult to code either, just put the code for func_rotating and func_train together.

Keep up the good work man!
[color=#00FF00][b]EmeraldProductions[/b][/color]
http://emeraldproductions.weebly.com/index.html
fKd
Posts: 2478
Joined: Sat Jun 03, 2006 2:54 am
Location: Wellington
Contact:

Re: Here's a wild idea: EntityPlus

Post by fKd »

EmeraldTiger wrote:- func_rotatingtrain, a combination of a func_train and a func_rotating. Mostly aesthetic, though it could be good for rotating elevators. Don`t think it would be terribly difficult to code either, just put the code for func_rotating and func_train together,
i like this idea!
EmeraldTiger wrote:- target_difficulty. You know how in Quake 1 you had to select your difficulty from a series of hallways, rather than a by-menu system? I always thought that was so neat, and it would be cool to have an entity in Q3 which does the exact same thing. You mentioned that EntityPlus has difficulty levels which determines the difficulty of the bots. Have four spawnflags, Easy, Medium, Hard, and of course Nightmare - or you could use the Q3 system and have five spawnflags, for I Can Win, Bring it On, Hurt Me Plenty, Hardcore, and Nightmare. Attach the target_difficulty to a trigger_once / trigger_multiple and the difficulty will be changed the next time a map loads.
same as this one.
dONKEY
Posts: 566
Joined: Mon Oct 15, 2001 7:00 am

Re: Here's a wild idea: EntityPlus

Post by dONKEY »

This mod is simply brilliant.
Couple of things to report:
I had the same issue as ET, in not being able to escape the master key room. The console reported all player slots full, I wondered if there was a bot unable to spawn?
Secondly, the entity def doesn't show any details in the entity editor in zeroradiant. The new mod entities are on my right click menu, but no details. I'm running as a project in radiant. Do I need to remove the original def file from q3 scripts folder?
tehSandwich
Posts: 64
Joined: Thu Jun 11, 2009 5:49 am

Re: Here's a wild idea: EntityPlus

Post by tehSandwich »

I'm thinking about making trains that turns to point every path_corner they are about to go to. Kinda like Half-Life, kinda like an actual train.

Also, a way to trigger the func_train.
DaEngineer
Posts: 210
Joined: Fri May 28, 2010 2:30 pm

Re: Here's a wild idea: EntityPlus

Post by DaEngineer »

dONKEY wrote:I had the same issue as ET, in not being able to escape the master key room. The console reported all player slots full, I wondered if there was a bot unable to spawn?
Do you use the outdated 0.5.0 version? Eraser wrote a new batch file for version 0.5.1 that points to a cfg to set a higher value for sv_maxclients.

EDIT: @tehSandwich: that'd be great. I thought of this some days ago. With the aid of this, the mod could even include aircrafts that fly along a pre-defined path. Equalized curves (you place three path_corner entities in a way they form a 90° angle and the brush would move along a smooth 90° curve) would be required for this. Much like the camera movement in the q3mme mod.
[url=http://www.victorkarp.com]Portfolio[/url] - [url=https://victorkarp.com/tutorials/quake-3-mapping-tutorials/]My Quake 3 mapping tutorials[/url] - [url=http://www.lvlworld.com/author/DaEngineer]My Quake 3 maps[/url]
User avatar
Eraser
Posts: 19177
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

EmeraldTiger wrote:Ahh, just had some thoughts (and bugs to report):

The bugs:

- In the room where you grab the master key and fight off the monsters, there is a chance that you can kill them all off but the alarm still rings, and you can`t get out. I`m not sure if it`s just a bug with the particular map, but if it`s not it could be a serious problem in other potential maps, so you might want to look into this.
dONKEY wrote:This mod is simply brilliant.
Couple of things to report:
I had the same issue as ET, in not being able to escape the master key room. The console reported all player slots full, I wondered if there was a bot unable to spawn?
Yeah, it's caused by the way the bar that's blocking the way out is removed again after you kill all the bots. It's triggered by a trigger_death that's set to 23 bot deaths, meaning you have to kill all of the bots you've encountered in the level so far. If you haven't done this, the way out will never open up again.

So you can run into this problem in two ways: first being to run past an earlier bot and not kill it. Second way is indeed if there aren't enough player slots open.

The first problem is pretty much a level design issue I guess, but unfortunately in the current version there aren't any tools available to make a more robust setup like this. For the next release I will implement a more robust method for this.

The second problem is a bigger one that's harder to tackle. The problem is that the Quake 3 engine (the code that ends up in the quake3.exe executable and which I can't change in a mod) forces sv_maxclients to 8 when you load a map with spmap. However, sv_maxclients is a latched cvar, which means that it isn't changed until the next map load. If you use the entityplus.bat file to load the game, it'll set the sv_maxclients cvar to 32 and then load the map. This appeared to work. However, if you manually load another map (or reload the same map) without setting sv_maxclients through the console again, the maxclients will be set to 8 again. Because the master key area in the ep_example map spawns 12 bots in there, you'll need at least 13 open player slots (unless you kill the bots fast enough). I haven't found a real solid solution to this yet, unfortunately.
EmeraldTiger wrote: - The lava, when it drains - you can drop down early and you`ll go right through it like it wasn`t there. :D
lol yes, it's a bit of a quick hack solution to a bug in Quake 3. Turns out that when you have a liquid such as lava or water and make a func_door out of it to make it "drain", when the lava is at it's lowered point and you drop down, you still get the warped water view in the area where the lava previously was. I also tried making the lava a very thin brush so you wouldn't really notice this problem, but then you still heard water splashes as you ran around.

So what I did was make a new lava shader that had a surfaceparm nonsolid instead of lava and have a trigger_hurt there to deal the damage. The trigger_hurt is disabled as the lava lowers so once the lava starts lowering, it's basically a non-solid brush that does nothing. Might have to see if this can be fixed easily, but it's not a priority I think.
EmeraldTiger wrote: Thoughts / Ideas:

- The backpack system is a very nice idea. But what about if someone has to take a break during their journey? (eat dinner, bedtime, etc.) They`d have to quit and start all over again when they got back. Personally, I think that when you quit the game it is automatically saved, and you can load it back up when you come back. For right now you can do it through a new console command, (/loadgame ep_example) but hopefully, if someone is willing to do so and has the experience, you could have a redesigned graphical interface / main menu, with one of the options being to load a game from a list.
Eventually I'll get to implementing some kind of savegame mechanic :)
EmeraldTiger wrote: - target_difficulty. You know how in Quake 1 you had to select your difficulty from a series of hallways, rather than a by-menu system? I always thought that was so neat, and it would be cool to have an entity in Q3 which does the exact same thing. You mentioned that EntityPlus has difficulty levels which determines the difficulty of the bots. Have four spawnflags, Easy, Medium, Hard, and of course Nightmare - or you could use the Q3 system and have five spawnflags, for I Can Win, Bring it On, Hurt Me Plenty, Hardcore, and Nightmare. Attach the target_difficulty to a trigger_once / trigger_multiple and the difficulty will be changed the next time a map loads.
Heh yeah could be neat. I'll look into it.
EmeraldTiger wrote: - On a similar note, have spawnflags so that entities only spawn in certain difficulties. That way, perhaps you can have a weak guy on lower difficulties but a rough and tough tank dude in higher ones.

- func_rotatingtrain, a combination of a func_train and a func_rotating. Mostly aesthetic, though it could be good for rotating elevators. Don`t think it would be terribly difficult to code either, just put the code for func_rotating and func_train together.

Keep up the good work man!
These are good ideas. Don't know if a func_rotating train is as trivial as you assume it is but it certainly is a worthy addition.
User avatar
Eraser
Posts: 19177
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

dONKEY wrote:Secondly, the entity def doesn't show any details in the entity editor in zeroradiant. The new mod entities are on my right click menu, but no details. I'm running as a project in radiant. Do I need to remove the original def file from q3 scripts folder?
Sorry, I haven't really tested with ZeroRadiant yet. It uses the same type of def file as GtkRadiant doesn't it? Not the weird XML based variant GtkRadiant 1.5 used? Or are there significant differences in there. Maybe you could send me your original entities.def file that comes with ZeroRadiant?
User avatar
Eraser
Posts: 19177
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

tehSandwich wrote:I'm thinking about making trains that turns to point every path_corner they are about to go to. Kinda like Half-Life, kinda like an actual train.

Also, a way to trigger the func_train.
If you're thinking of actually implementing that, be my guest. You can either check out the code from SVN and submit a .diff patch file to me or I could give you commit access to the repository.
These seem like very cool ideas.
User avatar
Eraser
Posts: 19177
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

DaEngineer wrote:Much like the camera movement in the q3mme mod.
lol this made me think. Wouldn't it be great if we could have in-game cutscenes? :D
Post Reply