[FTEQW] CubiQuake

The home for dedicated threads to specific projects, be they mods, tools, or independent games.
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Re: [FTEQW] CubiQuake

Post by frag.machine »

Thanks Spike, it worked.
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
daemon
Posts: 81
Joined: Wed Nov 07, 2007 11:10 pm
Contact:

Re: [FTEQW] CubiQuake

Post by daemon »

Ok, I'm back. Got locked out for a bit due to an email change.

There's been some updates. I started putting a changelog on the github page.
New tools, texture, shape, rotation, and some other small stuff.

revision 78
https://github.com/uowaep/CubiQuake


Here you can see the ramp shape in use. (turned up fog for the sreenshot)
Image
-daemon [ daemonforge.org ]
Julius
Posts: 98
Joined: Sun Aug 29, 2010 4:32 pm
Contact:

Re: [FTEQW] CubiQuake

Post by Julius »

That's fairly cool :)

How's overall performance and any chance for advanced lighting on that?

Have a look at these for a fitting texture pack:
https://opengameart.org/content/big-pac ... g-textures
daemon
Posts: 81
Joined: Wed Nov 07, 2007 11:10 pm
Contact:

Re: [FTEQW] CubiQuake

Post by daemon »

Performance seems pretty decent considering the csqc side hasn't been optimized as far as draw order. FPS on my old machine stays around 200 at the current settings. I've set it up to draw/load more or less by tweaking the code, so there's room for experimentation. Much can be optimized on the server as well. I'm sure there's a faster way to do things than what I'm currently doing, but so far seems decent. The main issue I notice is the load/unload sequence causing a slight stutter, but I'm also running it off an old HD. The default load area is wider than it is tall, so the load/in is more noticeable when changing elevations.

Someone who knows how to write shaders would need to help out on the project to get lighting into it. That is what it needs the most, but I'm having a hard time getting into learning shaders.

Feel free to swap out textures. This project is just framework, no actual game within it. I will probably make a game with it later, but I'm mainly focusing on advancing the framework.
-daemon [ daemonforge.org ]
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Re: [FTEQW] CubiQuake

Post by frag.machine »

I hope someone at Func_MsgBoard reads this and propose a quick map challenge using only cubes. :razz:
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
daemon
Posts: 81
Joined: Wed Nov 07, 2007 11:10 pm
Contact:

Re: [FTEQW] CubiQuake

Post by daemon »

Also I should note that the source is set up to just drop into Quake or any mod. You have to edit your main.qc and client.qc source files, but I've kept those edits very minimal. Look for server/sv_main.qc and server/sv_client.qc. CSQC integration is fairly easy as well, check client/cs_main.qc and client/cs_view.qc. They are not as well commented yet though.
-daemon [ daemonforge.org ]
daemon
Posts: 81
Joined: Wed Nov 07, 2007 11:10 pm
Contact:

Re: [FTEQW] CubiQuake

Post by daemon »

New revision up with more shapes, and performance improvements.
https://github.com/uowaep/CubiQuake

r83 (clear data dir if anything is broken)

- added wedge and wedgetip shapes
- added more angles of rotation to shapes (All angles are possible now with non-symmetrical shapes.)
- chunks are now drawn from closest to furthest for 25% ish FPS increase
- greatly improved chunk and cluster lookup speed by using entity references rather than findradius()
- chunk and cluster entities are re-used where possible to reduce allocations and memfree usage
- moved face rendering functions to their own file in csqc
- moved shape functions to their own files in csqc
- no longer using dpcompat_findradiusarealinks cvar
- changed some instances of world to NULL
- removed some unused variables
-daemon [ daemonforge.org ]
Julius
Posts: 98
Joined: Sun Aug 29, 2010 4:32 pm
Contact:

Re: [FTEQW] CubiQuake

Post by Julius »

Would be really cool if this would also work with Darkplaces or if FTEQW would get VR support.

There is a Occulus Quest compatible but Darkplaces based quake engine in the works:
https://github.com/DrBeef/QuakeGVR
toneddu2000
Posts: 1395
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Re: [FTEQW] CubiQuake

Post by toneddu2000 »

I'm pretty sure FTE does have some basic VR support
Meadow Fun!! - my first commercial game, made with FTEQW game engine
daemon
Posts: 81
Joined: Wed Nov 07, 2007 11:10 pm
Contact:

Re: [FTEQW] CubiQuake

Post by daemon »

Julius wrote:Would be really cool if this would also work with Darkplaces or if FTEQW would get VR support.

There is a Occulus Quest compatible but Darkplaces based quake engine in the works:
https://github.com/DrBeef/QuakeGVR
From what I understand Darkplaces doesn't support addtrisoup_simple() which is required for this functionality. I could be wrong though.
-daemon [ daemonforge.org ]
daemon
Posts: 81
Joined: Wed Nov 07, 2007 11:10 pm
Contact:

Re: [FTEQW] CubiQuake

Post by daemon »

Preview of lighting and torch blocks in next update:

Image
-daemon [ daemonforge.org ]
toneddu2000
Posts: 1395
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Re: [FTEQW] CubiQuake

Post by toneddu2000 »

Supercool! How did you add light, though dynamiclight_add()?
Meadow Fun!! - my first commercial game, made with FTEQW game engine
daemon
Posts: 81
Joined: Wed Nov 07, 2007 11:10 pm
Contact:

Re: [FTEQW] CubiQuake

Post by daemon »

Spike helped me set up a basic shader which allows trisoup_simple to interpret the color values set on the polygon vertexes. Any time polygons are added/removed to/from csqc or lights added/removed, I recalculate the static light values on each vertex within range on the client. There's some optimization to be done, but it's running good.

No use of dynamiclight_add() here.
-daemon [ daemonforge.org ]
toneddu2000
Posts: 1395
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Re: [FTEQW] CubiQuake

Post by toneddu2000 »

ok, thanks
Meadow Fun!! - my first commercial game, made with FTEQW game engine
daemon
Posts: 81
Joined: Wed Nov 07, 2007 11:10 pm
Contact:

Re: [FTEQW] CubiQuake

Post by daemon »

https://github.com/uowaep/CubiQuake

r96
- added ambient, static, and dynamic light
- added a torch cubic object, using the torch model from Quake
- T toggles a dynamic light around the client (impulse 150)
- cvar ambientlight takes a vector ('0.2 0.2 0.6' in default.cfg)
- [ and ] keys for cubic Y rotation are swapped in default.cfg
- added console command "worlds" to list existing worlds
- added console command "resetlights" for debugging (don't need it anymore, but don't need to remove it)
- removed fog from the world.hmp map file
- added a very basic shader to allow csqc to light/color polygons drawn with trisoup_simple
- hacked in some animation code for the torch
- added chunk entities that can use models/lights or any custom code
- added cs_cubicobjects.qc for defining custom objects
- removed some draw sorting code. wasn't helping as much as perceived ;)
- added cluster matrix on client that is created as needed for chunks
- moved most csqc defs to cs_cubicdefs.qc
- moved most svqc defs to sv_cubicsdefs.qc
- the cubic tool can now place custom entity type cubics along with normal trisoup_simple polygon cubics
- added an arg to DrawFaceGroup() that is unnecessary. FIXME
- worldsize is sent with the first set of chunk csqc/svqc entities before running InitGameVariables()
- fixed a texture bug in wedge shape
- now drawing engine crosshair
- fixed a bug where chunks arriving out of order would arrive before worldsize is set on the client
- added maxchunksloadedperframe and maxchunksghostedperframe to smooth out cluster/chunk load in/out
- added maxlightradius setting. can be any value, but default is recommended for performance. (192 with default world settings)
- added ambientlight setting using autocvar_ambientlight acting as the base light color
- added lightupdatedelay_static settting. 0.5s default
- added lightupdatedelay_dynamic setting. 0.02s default
- iseven settings are now automatic
- .lightradius .lightbrightness .lightcolor for lighting
- fixed some bugs with placing chunks and clusters
- added centerprint warning when trying to edit while chunks are loading
-daemon [ daemonforge.org ]
Post Reply