EntityPlus - A single player Q3 mod

Discussion for Level editing, modeling, programming, or any of the other technical aspects of Quake
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

Don't think that's correct either? It doesn't seem to make a difference. In the original source, s.pos.trType is set to TR_LINEAR for func_rotating and TR_SINE for func_bobbing.
Silicone_Milk
Posts: 2237
Joined: Sat Mar 12, 2005 10:49 pm

Re: Here's a wild idea: EntityPlus

Post by Silicone_Milk »

To make things easier, here's a script I wrote today I use at work when dealing with git:

Automatically adds all modified files, echos a status on what's staged, the commits the changes after getting a commit message from you.

It then proceeds to push the freshly committed changes to the remote branch based on the local branch you currently have checked out.

Code: Select all

 
git add .;
git status;
echo 'Commit Message:';
read msg;
git commit -m "\"$msg\"";

current_branch=`git branch 2>/dev/null | grep -e '^*' | sed -E 's/^\* (.+)$/\1 /'`;
git push origin $current_branch;
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

I went ahead and wrapped things up for a 0.2 release. A few new features have been added, of which a list can be found here:

https://code.google.com/p/entityplus/wiki/EntityPlus

Most notable new additions are:
  • the target_botspawn entity, which spawns a new bot into the game.
  • the target_disable entity, which can disable or enable trigger entities
  • the target_playerspeed entity, which can set the triggering player's base movement speed.
The mod can be downloaded here.

Something I failed to mention before is that the mod comes with an example map which shows the new features in a basic, isolated set up.

If you use the entityplus.bat that comes in the ZIP package to start the mod, the map will automatically be loaded.

Enjoy!
User avatar
Hipshot
Posts: 1547
Joined: Sun Jan 20, 2002 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Hipshot »

This is just great.

Can I trigger something from a bots death and/or spawn?

So, when I spawn him, I can disable the spawn. And when I kill him, I can open a door?

Also, a "key" item would be super, that can be spawned, picked up and used for triggering something.



But already now, I see great potential for great puzzle levels.
Q3Map2 2516 -> http://www.zfight.com/misc/files/q3/q3map_2.5.16_win32_x86.zip
Q3Map2 FS_20g -> http://www.zfight.com/misc/files/q3/q3map2_fs_20g.rar
GtkRadiant 140 -> http://www.zfight.com/misc/files/q3/GtkRadiantSetup-1.4.0-Q3RTCWET.exe
neoplan
Posts: 125
Joined: Thu Jun 05, 2008 9:47 pm

Re: Here's a wild idea: EntityPlus

Post by neoplan »

love it! its great work eraser. One thing: I get huge lags when a bot spawns.

An entity that would force holdable_teleporter to a specific spot would be fun. :)
EmeraldTiger
Posts: 392
Joined: Fri Sep 17, 2010 1:53 am

Re: Here's a wild idea: EntityPlus

Post by EmeraldTiger »

Just took a look at it today, very nice work! There were a few things I noticed, however:

- When you first approach the jump pad, it`s not playing it`s flashy effect, which is cool when you turn it on and it starts flashing. However, if you restart the map (which some players will inevitably do if they are stuck) it`s still playing the effect even when it is off. It`s a pretty minor visual issue but I thought I`d let you know.

- The green armor skin is way too bright and oversaturated. Reduce the brightness and saturation a bit, so that it resembles QL`s green armor entity a bit more. (of course don`t rip the actual skin from QL, you might get into some legal trouble for that) Once again, purely aesthetic.

- If you spawn the bots and you restart the level, the bots will still be there, fighting. Probably won`t always be a bad thing but in some cases this could be unwanted if the player is supposed to backtrack and shouldn`t meet the monsters until after he comes back.

Other than these issues (all except the third being of little importance) it`s starting to take the baby steps of possibly being the first true single player Q3 mod. I like how you implemented my shooter_bfg idea btw. ;-)

Here`s some more suggestions, once again you don`t have to use them, these are just to spark your creativity: :)

- If someone wants to make a multi-level mission where the player may have to travel back and forth between maps, ala Quake 2, I think it would be neat to make it so that it would be possible to go back to a map and have all the entities be what they were as you left, i.e dead bots are still dead, weapons that you collected don`t respawn (unless you specify them to), etc. I`m not sure how difficult it would be to implement though - if this is out of reach you could always do a info_player_checkpoint entity which saves your current position so you don`t have to start all the way over if you die / get stuck.

- What if you want a bot to fight on your side, as with the case of assisted missions? Perhaps have a goodguy spawnflag similar to the one in Lazarus. It could use code similar to what makes teams in TDM / CTF function, but without the ugly blue / red skins, etc.

- func_conveyor - Self-explanatory, makes brushes move along the func_conveyor in a mapper-specified direction and speed. Could be great for warehouse environments.

- func_pushable - Basically a brush in which force can be applied to make it move; affected by gravity. Level designer can specify the mass of the brush, which will affect how fast it can be pushed. Perhaps you can "recycle" the code that makes gravity work upon the player and apply it to brush geometry. You can also specify whether getting hit on the head by a falling func_pushable will result in death. (indiana jones style? lol)

- Cooperative mode?

Good luck with your project, I just know it`s going to be the next big thing. :up:
[color=#00FF00][b]EmeraldProductions[/b][/color]
http://emeraldproductions.weebly.com/index.html
User avatar
Hipshot
Posts: 1547
Joined: Sun Jan 20, 2002 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Hipshot »

EmeraldTiger wrote: - func_conveyor - Self-explanatory, makes brushes move along the func_conveyor in a mapper-specified direction and speed. Could be great for warehouse environments.
You use func_train now.

A func_conveyor should make the player move when he stands on a surface.
Q3Map2 2516 -> http://www.zfight.com/misc/files/q3/q3map_2.5.16_win32_x86.zip
Q3Map2 FS_20g -> http://www.zfight.com/misc/files/q3/q3map2_fs_20g.rar
GtkRadiant 140 -> http://www.zfight.com/misc/files/q3/GtkRadiantSetup-1.4.0-Q3RTCWET.exe
User avatar
Hipshot
Posts: 1547
Joined: Sun Jan 20, 2002 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Hipshot »

The mod needs a display text thing too... or maybe that's already possible.
like info_text or something.

Crist, we can keep counting up good things to have in a SP mode, soon the mod can be called Quake2.
Q3Map2 2516 -> http://www.zfight.com/misc/files/q3/q3map_2.5.16_win32_x86.zip
Q3Map2 FS_20g -> http://www.zfight.com/misc/files/q3/q3map2_fs_20g.rar
GtkRadiant 140 -> http://www.zfight.com/misc/files/q3/GtkRadiantSetup-1.4.0-Q3RTCWET.exe
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

Hipshot wrote:This is just great.

Can I trigger something from a bots death and/or spawn?

So, when I spawn him, I can disable the spawn. And when I kill him, I can open a door?
Not yet, but I was planning on having some entity that's triggered by a player's death or a player making a frag. This will definitely be part of a next version.
Hipshot wrote: Also, a "key" item would be super, that can be spawned, picked up and used for triggering something.
I'm planning on doing this as well. I was thinking about this earlier but wasn't sure how to exactly implement this on a functional level. But I'll get around to doing this for a next release as well.
neoplan wrote:love it! its great work eraser. One thing: I get huge lags when a bot spawns.
Yep, it simply calls an addbot command to the server, just like you would when you add a bot through the menu or the console. The thing is that the game has to load the assets for the bot (model, sounds, etc). I could look into preloading assets for target_botspawns that spawn a specific bot but it's probably a bit tricky to do that.
neoplan wrote:An entity that would force holdable_teleporter to a specific spot would be fun. :)
I could probably do that.
EmeraldTiger wrote:- When you first approach the jump pad, it`s not playing it`s flashy effect, which is cool when you turn it on and it starts flashing. However, if you restart the map (which some players will inevitably do if they are stuck) it`s still playing the effect even when it is off. It`s a pretty minor visual issue but I thought I`d let you know.
I see. I used Q3's own targetshader and targetnewshader functionality for this, it's nothing I added with EntityPlus, so it's a problem with Q3 itself. I'll look into seeing if this can be fixed.
EmeraldTiger wrote:- The green armor skin is way too bright and oversaturated. Reduce the brightness and saturation a bit, so that it resembles QL`s green armor entity a bit more. (of course don`t rip the actual skin from QL, you might get into some legal trouble for that) Once again, purely aesthetic.
That's my lousy hue recolor skillz at work there :) I'll look into it.
EmeraldTiger wrote:If you spawn the bots and you restart the level, the bots will still be there, fighting. Probably won`t always be a bad thing but in some cases this could be unwanted if the player is supposed to backtrack and shouldn`t meet the monsters until after he comes back.
Hmm, I'll have to come up with a good solution for this one.
EmeraldTiger wrote:Here`s some more suggestions, once again you don`t have to use them, these are just to spark your creativity: :)
Ideas are always welcome.
EmeraldTiger wrote: If someone wants to make a multi-level mission where the player may have to travel back and forth between maps, ala Quake 2, I think it would be neat to make it so that it would be possible to go back to a map and have all the entities be what they were as you left, i.e dead bots are still dead, weapons that you collected don`t respawn (unless you specify them to), etc. I`m not sure how difficult it would be to implement though - if this is out of reach you could always do a info_player_checkpoint entity which saves your current position so you don`t have to start all the way over if you die / get stuck.
Sounds complex but probably not impossible :)
An idea for having an entity that switches to a different level is a good idea though.
EmeraldTiger wrote:What if you want a bot to fight on your side, as with the case of assisted missions? Perhaps have a goodguy spawnflag similar to the one in Lazarus. It could use code similar to what makes teams in TDM / CTF function, but without the ugly blue / red skins, etc.
Maybe I could port over Daikatana's sidekick code :olo:
EmeraldTiger wrote:- func_conveyor - Self-explanatory, makes brushes move along the func_conveyor in a mapper-specified direction and speed. Could be great for warehouse environments.

- func_pushable - Basically a brush in which force can be applied to make it move; affected by gravity. Level designer can specify the mass of the brush, which will affect how fast it can be pushed. Perhaps you can "recycle" the code that makes gravity work upon the player and apply it to brush geometry. You can also specify whether getting hit on the head by a falling func_pushable will result in death. (indiana jones style? lol)
These are good ideas.
EmeraldTiger wrote: - Cooperative mode?
Technically speaking that's already possible. You could play with a friend in one level. Only thing I might have to do is disable friendly fire.
EmeraldTiger wrote: Good luck with your project, I just know it`s going to be the next big thing. :up:
Thanks :up:
Right now I'm actually thinking of ditching the whole deathmatch basis of Quake 3 altogether and see if I can force all of this into being a single player (with coop! ;)) game.
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

Hipshot wrote:The mod needs a display text thing too... or maybe that's already possible.
like info_text or something.
Erm, there has always been target_print... :shrug:
User avatar
Hipshot
Posts: 1547
Joined: Sun Jan 20, 2002 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Hipshot »

Yea, sorry bout that. Just never thought there was, then I remembered that Sock used it in his level.

And, a level change would that not be a good thing to put in the target_intermission ent?
You specify a bsp name, then it switches to that bsp. There's a timer that if 0 switches w/o delay. Also, a spawnflag that is "change level 1/0". Or, that could just be 0 if you haven't specified a bsp.


The load of bot assets could be done with spawning the bots needed in the level in a separate room in the start of the match, remove them and their spawns. This ofc only works if it's possible to remove bots and spawn points.
Q3Map2 2516 -> http://www.zfight.com/misc/files/q3/q3map_2.5.16_win32_x86.zip
Q3Map2 FS_20g -> http://www.zfight.com/misc/files/q3/q3map2_fs_20g.rar
GtkRadiant 140 -> http://www.zfight.com/misc/files/q3/GtkRadiantSetup-1.4.0-Q3RTCWET.exe
phantazm11
Posts: 362
Joined: Tue Jan 31, 2006 12:03 am

Re: Here's a wild idea: EntityPlus

Post by phantazm11 »

I always found the key/value triggerFirst for triggers very handy in SP. It is simply a condition where this trigger doesn't fire until the trigger specified in the key/value pair has been tripped.
ShadoW_86
Posts: 270
Joined: Tue Jan 08, 2008 1:20 pm

Re: Here's a wild idea: EntityPlus

Post by ShadoW_86 »

Didn't check last version yet, but all sounds great so far! Now add info_botnavigationpoint, so we can control spawned bots :).
[url]http://shadowsdomain.wordpress.com/[/url]
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

phantazm11 wrote:I always found the key/value triggerFirst for triggers very handy in SP. It is simply a condition where this trigger doesn't fire until the trigger specified in the key/value pair has been tripped.
I could add that, but it's technically already possible with target_disable
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

I've taken all suggestions from this thread and turned them into "request for enhancement" issues in the issue tracker at Google Code.

You can view the list and progress on the issues here:
http://code.google.com/p/entityplus/issues/list

Disclaimer: The fact that I added your idea to the list doesn't mean it will be implemented any time soon. It's just a way for me to keep track of all the ideas people have in one place.

Feel free to add new issues over there as well, but posting in this thread is fine too.

Also, if I've missed any of your ideas and you feel they should be added to the list, let me know.
neoplan
Posts: 125
Joined: Thu Jun 05, 2008 9:47 pm

Re: Here's a wild idea: EntityPlus

Post by neoplan »

Here some more brainstorming:
- support more audio formats (mp3,...)
- Store, restore current player status (health, ammo, oxygen...)
- able to interconnect func's (bobbing on a train,...,jumppads on a rotating)
- more surfaceparms like (metalsteps, flesh...)
- a display entity that shows current status of a game on a screen (frags, players, time left...)
Kaz
Posts: 1077
Joined: Wed Mar 08, 2006 3:43 am

Re: Here's a wild idea: EntityPlus

Post by Kaz »

Does the public have commit access?

I posted a comment under issue 7 (keys). Hope it's cool if I do some initial work on it. Here is some progress:

-new holdable_key entity
-new trigger_lock entity
-trigger_lock gets fired only if player has holdable_key

Looking into having multiple keys and allowing the LD to specify the model, name, and which key "unlocks" which trigger.

[lvlshot]http://student.cs.appstate.edu/freemanc ... ot0001.jpg[/lvlshot]

More shots here: http://student.cs.appstate.edu/freemanc ... ntityplus/
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

Good ideas!
There is no public commit access to the svn. You have to sign up for a Google account and let me know so I can add you to the project.
I am still looking for a public commit permission option somewhere but I can't find it or it doesn't exist.
nick lol
Posts: 28
Joined: Thu Feb 10, 2011 11:19 pm

Re: Here's a wild idea: EntityPlus

Post by nick lol »

Does anyone remember the Hunt mod?

http://www.quakeunity.com/file=2580

The Escape from Hell mode was way cool because it would randomly generate levels. Anyway, might be something to look into for ideas. I think the source code is here: http://eliteforce.gamebub.com/quake3.php

Also

I've always figured that for a bare-bones Quake 3 SP mod there are 2 things you need:

-a generic monster entity (you could set model, skin, health, weapon, etc.)
-trigger_changelevel

I would be stoked with those alone. Just my two cents though, this is looking awesome so far, 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 »

target_mapchange is implemented. It's the old target_intermission entity with a new name but you can now specify a BSP name to switch to and whether or not you want to show the intermission screen before changing maps.
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:Does anyone remember the Hunt mod?

http://www.quakeunity.com/file=2580

The Escape from Hell mode was way cool because it would randomly generate levels. Anyway, might be something to look into for ideas. I think the source code is here: http://eliteforce.gamebub.com/quake3.php

Also

I've always figured that for a bare-bones Quake 3 SP mod there are 2 things you need:

-a generic monster entity (you could set model, skin, health, weapon, etc.)
-trigger_changelevel

I would be stoked with those alone. Just my two cents though, this is looking awesome so far, keep it up! :up:
Thanks for the input. I actually remember playing this mod once. I've downloaded the source and I'll have a look at it some time.
^misantropia^
Posts: 4022
Joined: Sat Mar 12, 2005 6:24 pm

Re: Here's a wild idea: EntityPlus

Post by ^misantropia^ »

Eraser wrote:There is no public commit access to the svn. You have to sign up for a Google account and let me know so I can add you to the project.
I am still looking for a public commit permission option somewhere but I can't find it or it doesn't exist.
GH -> fork/pull
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

EmeraldTiger suggested saving the state of a level between level switches (see here).

I've just implemented persistent player stats (health/armor/weapons/ammo) between level switches so I'm pretty confident that I could actually implement something like this for entities within a specific map.

The player's stats only persist if the level change is triggered by a target_mapchange entity, so this allows a mapper to really transfer a player as he is to another map to continue the single player adventure :)
User avatar
Eraser
Posts: 19174
Joined: Fri Dec 01, 2000 8:00 am

Re: Here's a wild idea: EntityPlus

Post by Eraser »

^misantropia^ wrote:GH -> fork/pull
Hang on, I'm giving this another shot.
Question, should .gitignore files be inside the remote git repository?

edit:
Holy frick! How about that! :toothy:

edit2:
I'm going to keep the Google Code SVN repository as my main development repository for now. I'll first play around a bit with Git some more to figure out how stuff works (like tagging?)
I also dislike GitHub's cluttered interface. As a project home it all feels a bit chaotic compared to Google Code's sleek interface.
Last edited by Eraser on Mon Mar 28, 2011 11:32 am, edited 1 time in total.
neoplan
Posts: 125
Joined: Thu Jun 05, 2008 9:47 pm

Re: Here's a wild idea: EntityPlus

Post by neoplan »

- Possibility to remove sounds from doors and being able play own sound instead.
Post Reply