EntityPlus - A single player Q3 mod

Discussion for Level editing, modeling, programming, or any of the other technical aspects of Quake
cyr
Posts: 6
Joined: Sun May 08, 2011 9:44 pm

Re: Here's a wild idea: EntityPlus

Post by cyr »

In order to make bots walk, set CHARACTERISTIC_WALKER to 0.5 or higher in the bot character file. Alternatively, you can clamp the forward and right values of the bot's usercommands to +-64 at the end of BotInputToUserCommand().
axbaby
Posts: 3424
Joined: Wed Dec 22, 1999 8:00 am

Re: Here's a wild idea: EntityPlus

Post by axbaby »

static bots .. used as snipers, guards.

model entities .. so they can glow, emit light, can act as a trigger when shot etc

earthquake entity .. un-possible?

if you can adjust gravity , can you temporarily reduce time .. like the Matrix
[color=#FF0000][WYD][/color]
DaEngineer
Posts: 210
Joined: Fri May 28, 2010 2:30 pm

Re: Here's a wild idea: EntityPlus

Post by DaEngineer »

axbaby wrote:earthquake entity .. un-possible?
Already implemented.
[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]
nick lol
Posts: 28
Joined: Thu Feb 10, 2011 11:19 pm

Re: Here's a wild idea: EntityPlus

Post by nick lol »

I think you could make a static bot by having them spawn in a bit of botclip.

Here are some more issues I have found:

-Bots seem to always face 0 degrees when they spawn, regardless of the botspawn orientation
-If you take the player's gauntlet with a target_removepowerups or whatever and then give it back, it won't animate correctly
-The machine gun does not have a barrel if you spawn it as a pickup
UglyFoot
Posts: 139
Joined: Fri Jul 22, 2011 12:35 pm

Re: Here's a wild idea: EntityPlus

Post by UglyFoot »

I'm the only one who have problems to spawn a bot with only gauntlet? I haven't checked any spawnflags and also tried to set spawnflags to 1 but nothing works.
Btw I've had a lot of problems to find an updated version of BSPC and I wonder why, because it's an important tool, is there another program or way to make the aas file? If not, could someone tell me a link or website which has BSPC?

About EntityPlus, a future improvement could be targeting more of two targets just writing the target's names in a single line separated by commas.
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

nick lol wrote:I think you could make a static bot by having them spawn in a bit of botclip.

Here are some more issues I have found:

-Bots seem to always face 0 degrees when they spawn, regardless of the botspawn orientation
-If you take the player's gauntlet with a target_removepowerups or whatever and then give it back, it won't animate correctly
-The machine gun does not have a barrel if you spawn it as a pickup
Thanks for the info. I've added your first two issues to the list of issues on the project page (issues 92 and 93). The machine gun missing its barrel is how it always has been in vanilla Quake 3. Not sure if I can just easily fix that.
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

UglyFoot wrote:I'm the only one who have problems to spawn a bot with only gauntlet? I haven't checked any spawnflags and also tried to set spawnflags to 1 but nothing works.
A few posts up someone reports error messages being displayed in the console when trying to do just that. Are you experiencing the same problem?
UglyFoot wrote: Btw I've had a lot of problems to find an updated version of BSPC and I wonder why, because it's an important tool, is there another program or way to make the aas file? If not, could someone tell me a link or website which has BSPC?
I have no idea if there's an updated version of BSPC, at least, nothing official. I only know that misantropia has the bspc sourcecode available here, but I'm not sure what he's changed (if anything) and you have to build that yourself.
UglyFoot wrote: About EntityPlus, a future improvement could be targeting more of two targets just writing the target's names in a single line separated by commas.
That's already possible by using both the target and target2 keys.
UglyFoot
Posts: 139
Joined: Fri Jul 22, 2011 12:35 pm

Re: Here's a wild idea: EntityPlus

Post by UglyFoot »

Yes, its the same error message.
fisty
Posts: 7
Joined: Wed Jan 05, 2011 1:18 pm

Re: Here's a wild idea: EntityPlus

Post by fisty »

nice mod, keep it up! :up:
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

Ok, I've fixed the problem with spawning bots with only a gauntlet. The console errors no longer appear and they properly spawn with just a gauntlet now.

I also fixed the problem with picking up a Gauntlet after it has been removed with target_remove_powerups, so that works properly again.
^misantropia^
Posts: 4022
Joined: Sat Mar 12, 2005 6:24 pm

Re: Here's a wild idea: EntityPlus

Post by ^misantropia^ »

Eraser wrote:I have no idea if there's an updated version of BSPC, at least, nothing official. I only know that misantropia has the bspc sourcecode available here, but I'm not sure what he's changed
Nothing major, just lots and lots of little bug fixes.

Open an issue on GitHub if you run into bugs. I don't have time to do big features but bugs I'll fix (if possible).
AEon
Posts: 1816
Joined: Sun Apr 20, 2003 7:00 am

Re: Here's a wild idea: EntityPlus

Post by AEon »

Eraser, amazing job you are doing here. Read through your really well written PDF manual manual 0.8.1.pdf (devs should take note, because that is the way things should be documented), and noted a few things that might be interesting to consider:
  • Since this is *the* EntityPlus thread renaming the first posts topic might make help make it better stand out, e.g. rename it "EntityPlus Mod - Real single gameplay/entities for Q3A" (or something along those lines), I would rename the first post, if you want.

    IMO, one could also sticky the thread.
  • Section: 2.1 – func_breakable
    It occurred to me that shooting at breakable stuff would negatively impact score, at least at first glance since you might be shooting at "walls". But since the breakable stuff has "health" it might be counted as carnage damage under 1.5 – Scoring? Would be interesting to mention how you track this in the manual. Ideas: This might be tracked as a separate stat, or integrated into the overall stats.
  • Holdable entities (Medkit, TP, and the like)
    Regarding many of the older SP games, you could switch between them (Q2 had that IIRC). No idea how much hassle this is, you would have to remember all items and also add at least one or two keyboard shortcut allowing you to switch between them (next/previous item).
  • Keys collected shown on HUD?
    Did not look into it in such detail yet, but are you showing collected keys somewhere on the HUD? If not would probably be good to remind the player.
  • Number of "Monsters" killed?
    Are you tracking the number of monsters killed? E.g. also mentioning the total number of monsters in the map? It was always interesting in DOOM to see that you not only missed secrets but monsters "in" those secrets areas. Total number of secrets also shown?
  • 2.13 – target_mapchange
    A key called "health <value>" might be of interest. E.g. if the player is really down on health in the previous level, his health would "reset" to e.g. 100 again in the next one. Item and health consistency is a good thing per se, but I seem to recall that old games would at least let you get your health back across maps. Just a thought.
  • Saving...
    Yes this is probably a nightmare to implement, and as long as you "only" play one map respawing at the nearest spawn point on death, then picking up all your stuff again, saving will not really be needed. But as soon as you play several maps in a row, it might be nice to have some way of stopping and continuing the game. E.g. save the players present loadout in a "<mapname>_save.cfg" file on a target_mapchange (much like the scores). But only save if there is a next level, and then save the file with the name of the "next" map. That way one could stop the game after finishing one level, if one continues to play/begin the next level in the campaign, the code could check for the save cfg file and read the loadout. Making it easier to continue the game.

    Presently that would require knowing the name of the "next" level and typing that into the console. This should keep everything "relatively" simple, as compared to a real quickload/quicksave implementation. Just another idea there...
Sorry if I overlooked things you have long since added, mentioning them "again" should not hurt though.

I wonder what Sock has to or said to all this concerning The Edge of Forever.
User avatar
MKJ
Posts: 32581
Joined: Fri Nov 24, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by MKJ »

thats a negative on the health reset in old games.
doom would fuck you up if you would end a map with 3% health.
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

AEon wrote:Eraser, amazing job you are doing here. Read through your really well written PDF manual manual 0.8.1.pdf (devs should take note, because that is the way things should be documented), and noted a few things that might be interesting to consider:
  • Since this is *the* EntityPlus thread renaming the first posts topic might make help make it better stand out, e.g. rename it "EntityPlus Mod - Real single gameplay/entities for Q3A" (or something along those lines), I would rename the first post, if you want.

    IMO, one could also sticky the thread.
I renamed the thread. Better? :)
AEon wrote:
  • Section: 2.1 – func_breakable
    It occurred to me that shooting at breakable stuff would negatively impact score, at least at first glance since you might be shooting at "walls". But since the breakable stuff has "health" it might be counted as carnage damage under 1.5 – Scoring? Would be interesting to mention how you track this in the manual. Ideas: This might be tracked as a separate stat, or integrated into the overall stats.
Yes, good point. I'll see what I can do about this. Code-wise, I think the easiest solution would be to increase the carnage score when hitting or destroying a breakable wall, but I am in doubt if it's the most correct solution. It's probably better to register a shot into a breakable wall as a hit. So if you fire two shots in the entire map, and both of them were to destroy a wall, you'd have an accuracy of 100% instead of 0%.
AEon wrote:
  • Holdable entities (Medkit, TP, and the like)
    Regarding many of the older SP games, you could switch between them (Q2 had that IIRC). No idea how much hassle this is, you would have to remember all items and also add at least one or two keyboard shortcut allowing you to switch between them (next/previous item).
It's a bit of a hassle, but not impossible. I'll have a look at it.
AEon wrote:
  • Keys collected shown on HUD?
    Did not look into it in such detail yet, but are you showing collected keys somewhere on the HUD? If not would probably be good to remind the player.
This is already the case. Keys you are holding are displayed at the right of the HUD, right under the icon of the personal teleporter/medkit.
AEon wrote:
  • Number of "Monsters" killed?
    Are you tracking the number of monsters killed? E.g. also mentioning the total number of monsters in the map? It was always interesting in DOOM to see that you not only missed secrets but monsters "in" those secrets areas. Total number of secrets also shown?
With the way things work right now, it's kind of hard to determine the number of monsters in the map, as you don't place monsters in the map but monster spawnpoints, which spawn a monster when it's triggered. The problem here is that such a spawnpoint can be triggered multiple times and there's no way for me to determine how many monsters would eventually end up in the map.
The number of secrets found and the number of secrets present in the map is something that is displayed in the end-level scoreboard though.
AEon wrote:
  • 2.13 – target_mapchange
    A key called "health <value>" might be of interest. E.g. if the player is really down on health in the previous level, his health would "reset" to e.g. 100 again in the next one. Item and health consistency is a good thing per se, but I seem to recall that old games would at least let you get your health back across maps. Just a thought.
While I don't really agree with the functionality, it wouldn't be very hard to put it in so I might as well go ahead and do just that.
AEon wrote:
  • Saving...
    Yes this is probably a nightmare to implement, and as long as you "only" play one map respawing at the nearest spawn point on death, then picking up all your stuff again, saving will not really be needed. But as soon as you play several maps in a row, it might be nice to have some way of stopping and continuing the game. E.g. save the players present loadout in a "<mapname>_save.cfg" file on a target_mapchange (much like the scores). But only save if there is a next level, and then save the file with the name of the "next" map. That way one could stop the game after finishing one level, if one continues to play/begin the next level in the campaign, the code could check for the save cfg file and read the loadout. Making it easier to continue the game.

    Presently that would require knowing the name of the "next" level and typing that into the console. This should keep everything "relatively" simple, as compared to a real quickload/quicksave implementation. Just another idea there...
Err, yeah, saving. Not something I'm eager to get into but I can see the appeal. I may have a look at some basic save functionality some time. Yeah that sounds rather vague, I know.
AEon
Posts: 1816
Joined: Sun Apr 20, 2003 7:00 am

Re: EntityPlus - A single player Q3 mod

Post by AEon »

I was thinking it might be fun to create a "test" map using q3dm7 and try to turn that into an interesting single player map. But I am so out of mapping, it would take me weeks to get into all that again, so this is unlikely. Oh, well...

Thanks for taking the time to go through my suggestions. About the total monster counts... indeed... after posting that occurred to me as well, multi-triggered spawns.
obsidian
Posts: 10970
Joined: Mon Feb 04, 2002 8:00 am

Re: EntityPlus - A single player Q3 mod

Post by obsidian »

I don't think that Entity Plus is wholly single player only, I can imagine some pretty cool multiplayer maps or coop campaigns if anyone is inclined to build them. Just wanted to stick that out there.
[size=85][url=http://gtkradiant.com]GtkRadiant[/url] | [url=http://q3map2.robotrenegade.com]Q3Map2[/url] | [url=http://q3map2.robotrenegade.com/docs/shader_manual/]Shader Manual[/url][/size]
Pext
Posts: 4257
Joined: Thu Aug 28, 2003 7:00 am

Re: EntityPlus - A single player Q3 mod

Post by Pext »

I have not really followed the discussion so fat but:

Have you considered to enable items/powerups that change the player's movement.
This would allow Metroidvania Games - Certain Areas become only accesible after getting a certain Item:
- Jump boots (Add jump height)
- Strafe Jump Boots(don't know about the mechanics here but i think you cound change the amount of speed gained, right?)
- Speed Boosters (Usable/Time based /Permanent)
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: EntityPlus - A single player Q3 mod

Post by Eraser »

obsidian wrote:I don't think that Entity Plus is wholly single player only, I can imagine some pretty cool multiplayer maps or coop campaigns if anyone is inclined to build them. Just wanted to stick that out there.
Going to have to disappoint you there, because multiplayer support is officially out (already is in v0.8 and onward). Until now, that primarily means that there's no multiplayer option in the menu and there's no guarantee from me that all the entities work properly in multiplayer. You can still start a multiplayer server through the console and that should run standard Quake 3 maps just fine.
The problem with multiplayer is two-fold.

First of all, a good number of the entities I've added may not work properly when multiple clients are connected to the server. It might be possible to work all of this out, but I've decided to not waste time doing that (and it's pretty hard to properly test those things in multiplayer all by myself). I don't want to run the risk of having the whole game collapse in on itself in multiplayer because things aren't properly tested.

The second thing is that with a Quake 3 mod, you are limited to interfaces and constraints put in by the executable itself. So expanding some things is tricky sometimes. By cutting multiplayer from the equation, I can re-use a lot of multiplayer related bits and bytes which makes it easier to introduce new things. I haven't actually gone and technically broken multiplayer yet (I think) but I decided to cut MP support while still in alpha releases so people making MP maps for this won't get really disappointed down the line.

I don't think it's much of an issue. I don't think people will be interested much in creating MP levels for a Q3 mod just because it offers a few new entities. It already is a big question mark if people will actually release SP maps for this. Also, the lure of Quake Live and high profile competitions like the maverick mapping competition is too great for people to focus on making maps that require a mod that has only been downloaded roughly 60 times. I think the only reason people would map for this is because it's single player and they can finally build SP maps without having to learn the intricacies of a new engine or even a new game.
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

Eraser wrote:
AEon wrote:
  • 2.13 – target_mapchange
    A key called "health <value>" might be of interest. E.g. if the player is really down on health in the previous level, his health would "reset" to e.g. 100 again in the next one. Item and health consistency is a good thing per se, but I seem to recall that old games would at least let you get your health back across maps. Just a thought.
While I don't really agree with the functionality, it wouldn't be very hard to put it in so I might as well go ahead and do just that.
I went ahead and expanded on the idea little further. I implemented a whole new target_playerstats entity which, when triggered sets the activator's health and/or armor. It can be configured to only set the player's health and/or armor if the player has less of it than specified by the entity.
Silicone_Milk
Posts: 2237
Joined: Sat Mar 12, 2005 10:49 pm

Re: Here's a wild idea: EntityPlus

Post by Silicone_Milk »

Eraser wrote: I went ahead and expanded on the idea little further. I implemented a whole new target_playerstats entity which, when triggered sets the activator's health and/or armor. It can be configured to only set the player's health and/or armor if the player has less of it than specified by the entity.
I could see that being interesting to use for something such as having a crash landing scene and instead of leaving the wreckage all buffed and armed to the teeth, you come stumbling out with no armor and just barely enough hp to not die from being shot at with a nerf gun.
MrLego
Posts: 67
Joined: Tue Jul 21, 2009 11:00 pm

Re: EntityPlus - A single player Q3 mod

Post by MrLego »

I know it's a little late in the game, but did you ever consider putting all of your entity changes in a seperate .def file?

In radiant 1.4 you can have multiple *.def files which will all be loaded when you start the editor.

You could put all of the entityplus definitions in a new file - ie: eplus.def.

This preserves the original entity.def file from errors, typos, etc. while incorporating the new entities in a smaller, more managable file.

One more thing, if you ever want to take on how Q3 handles shaders, a enhanced surfaceparm would be a nice addition, right now we only have metal, flesh or none for sound choices.

Grass steps, wood steps, snow steps, carpet steps, roof steps, and gravel steps would be a welcome addition to the SP experience.
[color=#4040FF][b]www.mrlego.com[/b][/color]
obsidian
Posts: 10970
Joined: Mon Feb 04, 2002 8:00 am

Re: EntityPlus - A single player Q3 mod

Post by obsidian »

Flesh doesn't work, or rather id Software never bothered finishing that feature. Legacy code still exists so it shouldn't be too hard to fix or to add additional mods for it.
[size=85][url=http://gtkradiant.com]GtkRadiant[/url] | [url=http://q3map2.robotrenegade.com]Q3Map2[/url] | [url=http://q3map2.robotrenegade.com/docs/shader_manual/]Shader Manual[/url][/size]
MrLego
Posts: 67
Joined: Tue Jul 21, 2009 11:00 pm

Re: EntityPlus - A single player Q3 mod

Post by MrLego »

I think it would depend to how many surfaceflags the Q3 game code allocates for.

Currently there are 20 being defined in surfaceflags.h - working or not.

Enemy Territory has 32 - with comments stating this is the max.

RTCW also has 32 and is also commented as that being the max.

It would be nice to hear something other than boots on concrete.

Maybe something for version 1.1 - I know Eraser is close to releasing v1.0 in the near future.
[color=#4040FF][b]www.mrlego.com[/b][/color]
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: EntityPlus - A single player Q3 mod

Post by Eraser »

MrLego wrote:I know it's a little late in the game, but did you ever consider putting all of your entity changes in a seperate .def file?

In radiant 1.4 you can have multiple *.def files which will all be loaded when you start the editor.

You could put all of the entityplus definitions in a new file - ie: eplus.def.

This preserves the original entity.def file from errors, typos, etc. while incorporating the new entities in a smaller, more managable file.
I didn't know this. But to be honest, I hacked up a pretty large portion of the entities that are there in the original entities.def as well (for instance to add keys like target2 and targetname2 and remove deathmatch/team play related keys and spawnflags).
MrLego wrote: One more thing, if you ever want to take on how Q3 handles shaders, a enhanced surfaceparm would be a nice addition, right now we only have metal, flesh or none for sound choices.

Grass steps, wood steps, snow steps, carpet steps, roof steps, and gravel steps would be a welcome addition to the SP experience.
I think the limits you talk about in the other post are defined by the engine, not the mod. So I'll try to see if id Software allocated any bits for currently unused surfaceparms, but if that's not the case then we're probably out of luck.

Another thing, I'm also unsure if q3map has to know about these surfaceparms as well, because if that's the case then you'd need a custom q3map as well, which is pretty much out of the question.
fKd
Posts: 2478
Joined: Sat Jun 03, 2006 2:54 am
Location: Wellington
Contact:

Re: EntityPlus - A single player Q3 mod

Post by fKd »

hi, so ive started looking into this mod.

//////
im using entityplus-0.8.1.

so i load the mod, np im in the menu, if i hit new game the dink sound goes on infinite loop, its crashed. i ctrl alt del to bring up the task manager and the mouse is not drawing lol. so i run it again and load the example map via console. all good, shoot the wall, kill a few bots and then bam! crasssssh! no error screen thrown up by q3 or anything :(

running 1.32c, win7 64.
////// fixed, i had too many maps in my base3q dir

chur :up:

also, random question, with :

"2.18 – target_skill

This sets the skill level for the next map that will be loaded. The changed skill level is not applied
immediately, so usually this will be used in a level that also implements a target_mapchange entity.
Keys:
• targetname : ativating(typo?) entity points to this.
• skill : the skill level to apply. 1 is easiest, 5 is hardest (default = 2)."

is this overrun by individual skill levels applied to bots through the target_botspawn ent?
Post Reply