Quake3World.com Forums
     Level Editing & Modeling
        EntityPlus - A single player Q3 mod


Post new topicReply to topic
Login | Profile | | FAQ | Search | IRC




Print view Previous topic | Next topic 
Topic Starter Topic: Re: Here's a wild idea: EntityPlus

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 03-28-2011 12:06 AM           Profile   Send private message  E-mail  Edit post Reply with quote


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.




Top
                 

Mentor
Mentor
Joined: 12 Mar 2005
Posts: 3958
PostPosted: 03-28-2011 01:06 AM           Profile Send private message  E-mail  Edit post Reply with quote


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




Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 03-28-2011 01:45 AM           Profile   Send private message  E-mail  Edit post Reply with quote


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 :)




Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 03-28-2011 02:01 AM           Profile   Send private message  E-mail  Edit post Reply with quote


^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 03-28-2011 03:32 AM, edited 1 time in total.

Top
                 

Commander
Commander
Joined: 05 Jun 2008
Posts: 125
PostPosted: 03-28-2011 03:23 AM           Profile Send private message  E-mail  Edit post Reply with quote


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




Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 03-28-2011 03:33 AM           Profile   Send private message  E-mail  Edit post Reply with quote





Top
                 

Insane Quaker
Insane Quaker
Joined: 26 Nov 2009
Posts: 341
PostPosted: 03-28-2011 06:49 AM           Profile Send private message  E-mail  Edit post Reply with quote


Awesome mod! Maybe a team already should think about a story and start to design singleplayer levels =)

@issue 19: Add the same for buttons.




Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 03-28-2011 07:10 AM           Profile   Send private message  E-mail  Edit post Reply with quote


I've created two new entities which can be pretty useful: trigger_frag and trigger_death. Sounds like they're the same, but they're subtly different.

trigger_death is triggered when a player dies. Method of death doesn't matter. It is possible to filter through nohumans/nobots keys and red_only/blue_only spawnflags. The dying player is seen as the activator of the trigger so the keys/spawnflags are tested against the dying player.

trigger_frag is triggered when a player scores a frag. Ofcourse this automatically means a player dies, but this one will not be triggered when a player craters, drowns, steps in lava/slime or falls into a trigger_hurt. The same keys/spawnflags apply here, but with trigger_frag, the player making the kill is seen as the player that activates the trigger and thus the keys and spawnflags are tested against him.

This means that if you want to open a set of doors when a bot dies, you could use trigger_death with the nohumans key set to 1.
If you want to award the player with a weapon when he scores a frag, you could use a trigger_frag in combination with a target_give and weapon_rocketlauncher.

Both entities also have a "count" key, which will delay the trigger from firing its targets until it has been triggered [count] number of times itself. They also both have a TRIGGER_ONCE spawnflag which means it can only be used to fire it's targets once.
trigger_frag also has a NO_SUICIDE spawnflag on top of that which prevents it from being triggered by players killing themselves.




Top
                 

Mentor
Mentor
Joined: 12 Mar 2005
Posts: 3958
PostPosted: 03-28-2011 07:31 AM           Profile Send private message  E-mail  Edit post Reply with quote


Quote:
Question, should .gitignore files be inside the remote git repository?

Yes. Cool thing: you can do stuff like `*.[oa]` to ignore all *.a and *.o files.

Quote:
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?)

`git tag 1.0.0 && git push --tags`

Quote:
I also dislike GitHub's cluttered interface. As a project home it all feels a bit chaotic compared to Google Code's sleek interface.

Hah, different tastes. I always get annoyed at GC's code browser.




Top
                 

Trainee
Trainee
Joined: 10 Feb 2011
Posts: 28
PostPosted: 03-28-2011 08:05 AM           Profile Send private message  E-mail  Edit post Reply with quote


Just thought of something else, can you independently specifiy the phase for each axis of the func_bobbing? So, you could have it move along the X and Y axes, set one axis 90 degrees out of phase, and have it move in a circle?




Top
                 

I'm the dude!
I'm the dude!
Joined: 04 Feb 2002
Posts: 12498
PostPosted: 03-28-2011 09:49 AM           Profile Send private message  E-mail  Edit post Reply with quote


That's what I meant earlier by being able to team different func_entities together, like make an entity a subgroup of another.

For example, your func_bobbing could be teamed with a func_rotate to make it bob and rotate at the same time.



_________________
GtkRadiant | Q3Map2 | Shader Manual


Top
                 

Trainee
Trainee
Joined: 10 Feb 2011
Posts: 28
PostPosted: 03-28-2011 10:19 AM           Profile Send private message  E-mail  Edit post Reply with quote


With the phase thing though you can have it move in any ellipsoid (not just circle), and it will also maintain its orientation.

Tying entities together would be cool too though, like a pendulum and func_bobbing to make a piston.

VVVV Ah yes I see




Last edited by nick lol on 03-28-2011 02:11 PM, edited 1 time in total.

Top
                 

I'm the dude!
I'm the dude!
Joined: 04 Feb 2002
Posts: 12498
PostPosted: 03-28-2011 11:10 AM           Profile Send private message  E-mail  Edit post Reply with quote


Well, same thing, it would be two func_bobbings together.



_________________
GtkRadiant | Q3Map2 | Shader Manual


Top
                 

Insane Quaker
Insane Quaker
Joined: 16 Sep 2010
Posts: 391
PostPosted: 03-30-2011 12:12 PM           Profile Send private message  E-mail  Edit post Reply with quote


Just thought of something.

I think it might be a good idea to import the Team Arena weapons into this mod. I`m assuming it`s legal since it`s essentially GPL-licensed code, not sure about the models but I think it`s okay since they`re in Quake Live.

If it is legal, it`d be great because when this project gets to a certain point I`m thinking of creating a Strogg-infested, Quake 2 / Quake 4 style mission and the chaingun could help enhance that feeling a bit. I doubt it would be difficult to implement either, it would involve simply copying and pasting the code for those weps and then importing the models.



_________________
EmeraldProductions
http://emeraldproductions.weebly.com/index.html


Top
                 

I'm the dude!
I'm the dude!
Joined: 04 Feb 2002
Posts: 12498
PostPosted: 03-30-2011 12:28 PM           Profile Send private message  E-mail  Edit post Reply with quote


Technically, it's not legal (as far as the models are concerned).



_________________
GtkRadiant | Q3Map2 | Shader Manual


Top
                 

Immortal
Immortal
Joined: 12 Mar 2005
Posts: 2205
PostPosted: 03-30-2011 12:39 PM           Profile   Send private message  E-mail  Edit post Reply with quote


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


Funny, misantropia actually helped me do just that back in around 2002. Modified the +50 health entity to load up a new level with persistent states.

I forget why, but it actually didn't work very well from what I remember.




Top
                 

Mentor
Mentor
Joined: 12 Mar 2005
Posts: 3958
PostPosted: 03-30-2011 01:46 PM           Profile Send private message  E-mail  Edit post Reply with quote





Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 03-30-2011 11:55 PM           Profile   Send private message  E-mail  Edit post Reply with quote


Thanks man. I merged it into the SVN codebase. I also used it to implement similar functionality for func_button.




Top
                 

Immortal
Immortal
Joined: 02 Jun 2006
Posts: 2476
PostPosted: 03-31-2011 04:06 AM           Profile Send private message  E-mail  Edit post Reply with quote


ok this is going amazing! i raise my hand. im gonna make a sp episode using this mod.




Top
                 

Insane Quaker
Insane Quaker
Joined: 08 Jan 2008
Posts: 270
PostPosted: 03-31-2011 04:41 AM           Profile Send private message  E-mail  Edit post Reply with quote


Looks amazing so far. Don't forget to add save/load options ;).



_________________
http://shadowsdomain.wordpress.com/


Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 03-31-2011 05:36 AM           Profile   Send private message  E-mail  Edit post Reply with quote


I think we'll all have to bug misantropia to implement some sort of controllable bot AI so we can have bots patrol areas through predetermined paths.

I'm sure he's down with that kind of stuff. I wouldn't know where to begin.




Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 03-31-2011 05:39 AM           Profile   Send private message  E-mail  Edit post Reply with quote


Oh, and where is Kaz? He had some good ideas and I gave him access to the project but now he's disappeared...




Top
                 

Señor Shambler
Señor Shambler
Joined: 07 Mar 2006
Posts: 849
PostPosted: 03-31-2011 06:37 AM           Profile Send private message  E-mail  Edit post Reply with quote


I'm around! Just got a little busy with school - I'll commit what I have here in a few hours! :P




Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 03-31-2011 07:48 AM           Profile   Send private message  E-mail  Edit post Reply with quote


ok great :D




Top
                 

Señor Shambler
Señor Shambler
Joined: 07 Mar 2006
Posts: 849
PostPosted: 03-31-2011 07:59 AM           Profile Send private message  E-mail  Edit post Reply with quote


Alrighty, just committed the changes. I'm not really happy with how the key/lock works at the moment, but it's a start. Let me know if anything got screwed up :)




Top
                 

Mercenary
Mercenary
Joined: 28 May 2010
Posts: 210
PostPosted: 03-31-2011 01:15 PM           Profile Send private message  E-mail  Edit post Reply with quote


Here are some new suggestions:

Speed
Another important single player element came to my mind we did not talk too much about yet - speed. Quake was designed as a multiplayer shooter and thus has no level transitions or linear leveldesign you have to follow. The arenas are meant to be played running and jumping and to be visited over and over again.
That's something singleplayer doesn't have. Usually you start at A and want to get to B, but not back and forth endlessly. I really think the player's speed should be adjusted. Eraser, the target_playerspeed entity serves well for this purpose and should - in my eyes - always be used. I think a playerspeed of 170 would be fine (I know, compared to 320 this feels very strange when you try running around with it). But imagine walking through a real SP map, with missions, secrets, enemies that behave a bit more tactical than usual - dashing around like hell would be even more weird and distracting.

Why this is so important to me although there already IS this entity and I should have nothing to compain about? Because the animations don't fit the player's speed. I have never made animations so far and thus have no idea if they are baked into the md3 or stored somewhere else and are changeable without having to re-export the model after changing the animations. Is there a way to adjust the animation's speed easily?

Debris of broken brushes
After around 6 attempts with several months between them to learn modeling I'm finally getting used to Blender now. Debris models are low-poly, have very simple textures and are not really something you would call a major task. I'll work on them in the next days and upload the models in md3 format, as well as the model's textures and textures for the ejected sprites, if I can manage to create these too.

Enemies
I'm not so sure about the enemies the SP mod will feature. I think the same Bots the MP has with the same weapons would be rather boring. Let's pretend we find enough people who are experienced enough to create new enemies - what type of enemies do we need? Melee enemies who attack the player with their claws (or whatever they use to get their meal) would definitely be needed. And the ones who use ranged attacks would need to be tweaked, if they use standard Q3 weapons. They would have to shoot by far more infrequently and stop running around like insane when not firing or when they have not yet spotted the player.
I can offer to draw everything that comes to my mind when I have some spare time and to try making models by myself in the future when my capabilities of modeling have improved.

Feedback & other stuff
The viewshake that was implemented in the q3mme camera mod would be a nice addition. And what about hitzones? Not too much, maybe just two - one for the head and one for the rest of the body.



_________________
Portfolio - My Quake 3 mapping tutorials - My Quake 3 maps


Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 03-31-2011 10:37 PM           Profile   Send private message  E-mail  Edit post Reply with quote


DaEngineer wrote:
Why this is so important to me although there already IS this entity and I should have nothing to compain about? Because the animations don't fit the player's speed. I have never made animations so far and thus have no idea if they are baked into the md3 or stored somewhere else and are changeable without having to re-export the model after changing the animations. Is there a way to adjust the animation's speed easily?


That's part of the models unfortunately. Would be a heck of a lot of work to change all their animations. Besides, I don't think it's allowed to redistribute them. Maybe an easier solution is to force players into normal walk mode and disable running. The models do have both run and walk animations.

For that same reason I'm starting to doubt whether I should include the green armor. It doesn't add all that much and it includes an edited version of the original yellow armor model, which I'm probably not allowed to redistribute either...

DaEngineer wrote:
Debris of broken brushes
After around 6 attempts with several months between them to learn modeling I'm finally getting used to Blender now. Debris models are low-poly, have very simple textures and are not really something you would call a major task. I'll work on them in the next days and upload the models in md3 format, as well as the model's textures and textures for the ejected sprites, if I can manage to create these too.


Yeah that'd be awesome. I've been looking into ejecting debris for func_breakable and I think that I can simply reuse the code that spews out gibs when a player is gibbed. Replace the gib models with debris models and we're done I think.

DaEngineer wrote:
Enemies
I'm not so sure about the enemies the SP mod will feature. I think the same Bots the MP has with the same weapons would be rather boring. Let's pretend we find enough people who are experienced enough to create new enemies - what type of enemies do we need? Melee enemies who attack the player with their claws (or whatever they use to get their meal) would definitely be needed. And the ones who use ranged attacks would need to be tweaked, if they use standard Q3 weapons. They would have to shoot by far more infrequently and stop running around like insane when not firing or when they have not yet spotted the player.


Yes all this is correct. Me, I have no idea how the bot AI works (not on a technological level nor the theory behind it's maths) so I'm probably not the one that can be much of use in this department.




Top
                 

Mercenary
Mercenary
Joined: 28 May 2010
Posts: 210
PostPosted: 04-02-2011 04:01 PM           Profile Send private message  E-mail  Edit post Reply with quote


Eraser wrote:
DaEngineer wrote:
Why this is so important to me although there already IS this entity and I should have nothing to compain about? Because the animations don't fit the player's speed. I have never made animations so far and thus have no idea if they are baked into the md3 or stored somewhere else and are changeable without having to re-export the model after changing the animations. Is there a way to adjust the animation's speed easily?


That's part of the models unfortunately. Would be a heck of a lot of work to change all their animations.


I have absolutely no coding knowledge at all, but I found something that might could help solving this problem. Around two hours ago I found German coding tutorials for Quake 3. One tutorial explained how to let a player always have the Haste Rune equipped directly after spawning and thus increasing his speed to 1.3. Something in my head made *click*, I started Quake 3, switched to 3rd person mode and typed /give speed into the console. Every animation the character does - and his weapons do - play with a speed of 1.3.

I downloaded Microsoft Visual C++ 2010 and opened up the file mentioned in the tutorial to change the value and see if the animations slow down if I use 0.5. But as I said, I have no coding experience and no clue how to compile these files or even work with them. So I had no idea what to do after changing the code. That is something you could try out in seconds I guess.

Here's the tutorial (don't panic, it's the English version): *click me*.

If this really works, you would just need to implement the functionality of Haste without effecting the player's weapons and we'd have adjusted player speed AND correct animations at the same time. Hopefully.


Oh, and by the way: I already started drawing some foes (I'll show pictures of them when I got more different enemies) and making the debris models. Here are some ideas I have for them:


Stone
Chunks of rock. Textures:
1.) bright grey (concrete)
2.) dark grey (concrete)
3.) grey stones you'd encounter when blasting away rocks
Sprites: grey dust

Dirt
Chunks of dirt and soil. Textures:
1.) a deep wet brown
Sprites: brown particles

Glass
Shards of glass. Textures:
1.) transparent white
Sprites: tiny glass shards

Clay (could be used for clay pots)
Shards of clay. Textures:
1.) a loamy ocher
Sprites: small clay shards

Metal
Not sure about that. Shards? Textures:
1.) silver-grey
2.) a rusty brown
Sprites: sparks?

Wood
Shards of wooden planks. Textures:
1.) a bright tone like the one press board has
2.) dark wood
3.) rotten greyish wood
Sprites: small shards of wood



_________________
Portfolio - My Quake 3 mapping tutorials - My Quake 3 maps


Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 04-05-2011 06:09 AM           Profile   Send private message  E-mail  Edit post Reply with quote


neoplan wrote:
An entity that would force holdable_teleporter to a specific spot would be fun. :)


This is in. holdable_teleporter can now point towards a spawn point.




Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 04-05-2011 06:13 AM           Profile   Send private message  E-mail  Edit post Reply with quote


DaEngineer wrote:
Oh, and by the way: I already started drawing some foes (I'll show pictures of them when I got more different enemies) and making the debris models. Here are some ideas I have for them


If you got some md3 models for this then I'd love to have them. Even something simple like dark textured bits of rock would be great. I currently have func_breakable entities spew out gibs when they're broken and while the blood's gone, it looks a bit odd to have bits of intestines flying through the air :D

edit:
I added a relatively dense smoke trail which looks pretty damn awesome :toothy:




Last edited by Eraser on 04-05-2011 06:46 AM, edited 1 time in total.

Top
                 

Commander
Commander
Joined: 05 Jun 2008
Posts: 125
PostPosted: 04-05-2011 06:36 AM           Profile Send private message  E-mail  Edit post Reply with quote


Eraser wrote:
neoplan wrote:
An entity that would force holdable_teleporter to a specific spot would be fun. :)


This is in. holdable_teleporter can now point towards a spawn point.


Can you link holdable_teleporter to a target_position/teleporter_dest aswell?




Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 04-05-2011 06:48 AM           Profile   Send private message  E-mail  Edit post Reply with quote


I guess the teleporter_dest would work. It doesn't specifically check that it's pointing towards a spawnpoint entity, it just copies it's origin and angles value.

That's why I think the teleporter_dest will work but target_position probably doesn't because it normally doesn't have an angle associated with it.




Top
                 

Mercenary
Mercenary
Joined: 28 May 2010
Posts: 210
PostPosted: 04-08-2011 05:27 AM           Profile Send private message  E-mail  Edit post Reply with quote


There won't be flesh coming out of bursting walls any longer - now you can use stone and concrete instead! There were more problems than I thought to model these stones and make them work in-game, as is still had to figure out a lot of things. But these times are over, and now I know how everything has to be set up. Here's a picture of the new models:

Image

I've uploaded the archive to Mediafire. There are no sprites yet, as I finally wanted to release at least the models. I'll try to add debris for wood this weekend, but I can't promise.


Eraser, can you make the number of models that come out of a broken brush random? Or make the scaling of the models dependent of the brush size?



_________________
Portfolio - My Quake 3 mapping tutorials - My Quake 3 maps


Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44131
PostPosted: 04-12-2011 12:12 AM           Profile   Send private message  E-mail  Edit post Reply with quote


I've made a 0.3 release package. It can be downloaded here.

Quite a few changes have been made, here's the complete list:
  • [Added] IMMEDIATELY spawnflag for target_disable.
  • [Added] mapname key for target_mapchange.
  • [Added] SHOW_INTERMISSION spawnflat for target_mapchange.
  • [Added] Health, armor, weapons and ammo are retained through a map change if it was caused by a target_mapchange.
  • [Added] trigger_death and trigger_frag entities.
  • [Added] count key for spawnpoint entities to limit the number of times a player can spawn there.
  • [Added] startsound and endsound keys to func_door
  • [Added] sound key to func_button
  • [Added] trigger_lock and holdable_key entities
  • [Added] Example map for trigger_lock and holdable_key entities called "keytest"
  • [Added] teleporttarget key to holdable_teleporter
  • [Added] target_debrisemitter entity
  • [Added] target key for func_breakable
  • [Fixed] target_mapchange leaving single player mode when current level is loaded with spmap.
  • [Fixed] Bots are left in the game when a map_restart is issued or the map is changed (note: bots are only kicked when in single player mode)
  • [Fixed] target_mapchange doesn't properly end a map_restart command with a newline character, messing up the next command.
  • [Fixed] Green armor texture is too bright and too saturated
  • [Changed] trigger_disable now links and unlinks entities from the world instead of tagging them with a FL_DISABLED flag.
  • [Changed] Removed START_OFF spawnflag from trigger_hurt.
  • [Changed] Renamed target_intermission to target_mapchange.
  • [Changed] Example map uses target_mapchange instead of target_intermission.
  • [Changed] Bots no longer drop items when in single player mode (g_gametype 2)
  • [Changed] Bots are removed from the game when fragged when in single player mode (g_gametype 2)
  • [Changed] "FIGHT!" message is no longer shown when in single player mode (g_gametype 2)
  • [Changed] Bots defined in arena files are no longer announced when in single player mode (g_gametype 2)
  • [Changed] EntityPlus startup batch file now loads entityplus example map in single player mode

DaEngineer, your models aren't included yet because I hadn't seen your post yet. I will be including them very soon though, and once that's done release a 0.3.1 or something. I did notice in the readme file you included that you took textures from a source that does not allow redistribution. Since it's just concrete and rock textures, I'm sure you can find alternatives that are available under a creative commons license or something similar?




Top
                 

Immortal
Immortal
Joined: 02 Jun 2006
Posts: 2476
PostPosted: 04-12-2011 12:38 AM           Profile Send private message  E-mail  Edit post Reply with quote


how about making it so items dont respawn? or can you already do that? i forget..




Top
                 
Quake3World.com | Forum Index | Level Editing & Modeling


Post new topic Reply to topic


cron
Quake3World.com
© ZeniMax. Zenimax, QUAKE III ARENA, Id Software and associated trademarks are trademarks of the ZeniMax group of companies. All rights reserved.
This is an unofficial fan website without any affiliation with or endorsement by ZeniMax.
All views and opinions expressed are those of the author.