News
26.12.05
- Update source with danfe patches for Linux/FreeBSD compatibility
10.12.05
- Add the "+demo <demo_name.demo> [loop] [linear | spline]" argument to cake.exe command
05.28.05
- Fix problem that occured during reallocation of vertex array (could make cake crash with high tesselations).
Thanks to Ace who mentionned this bug.
05.08.05
- Debug of crash occuring in console line length overflow
- Debug of crash during unload of shaders using '$whiteimage' map like in Estatica map
- Update link section
07.09.04
- Little improvement of the smooth step climbing method
08.01.03
- Fix the shader loading problem in some maps (for example the sky in mpteam4)
- Modification of the shader loading process (should reduce the loading process by about 20%)
- Fix an error that was disabling the looping sounds
- Add support for multiple targets in entities
07.31.03
- Put world, clients and demos into app class (were defined in the main.cpp file before)
- Put collision code in the client class (this is a first step in client movement debugging)
- Fix a collision error between entities and clients that have noclip=true
- Little modification in the demo class
- Move levelshot display call into bsp loading function (should make the levelshot appear earlier in the map loading sequence)
- Fix a bug that occured with upper-case letters in texture or shader path
- Fix one minor error with background music (occured in maps that have an intro music, like q3tourney1)
- Add support for some player sounds (load a player with command loadplayer <playername> [for example "loadplayer slash"])
07.29.03
- Add trigger_multiple support
- Add target_teleporter support
- Fix one unallocation error in sounds manager
07.28.03
- Add some errors check in sound manager
- Start support for client sounds
- Add demo playback support for multiple clients simultaneous
07.26.03
- Improve jumppad support (thanks to sBibi for his physics reminder ;)
- Make camera inheritate from frustum class
07.24.03
- Start support for teleporter and jumppad support
- Fix an error with non-performance counter timer version under linux and windows
- Add func_timer support
07.21.03
- Fix an invalid frame index for animated textures under linux
07.20.03
- Debug one error on shaders parsing (layer with "lt128" alphafunc value)
- Debug one error on polygon offset support
07.17.03
- Add '\n' support to console
- Little change to texture coordinate modification function (should improve a bit speed)
- Fix a possible division by zero error when r_picmip has high value
07.16.03
- Correct boundingbox update and add frustum culling for entities
- Change patches groups generation condition. Result is still not perfect but same problems have been detected in quake3 (here an example of the problem with q3dm7)
- Apply modifications to main.cpp for linux compatibility. Thanks to Lee Hendrickson for his help.
07.14.03
- Apply Lee Hendrickson's changes to make cake linux compatible (main.cpp has not been updated yet)
- Remove an undefined pointer bug in overlay class
07.12.03
- Add LOD support for entities models
07.09.03
- Add func_rotating support
- Add func_train support
- Add path_corner support
07.08.03
- Add a first crappy version of items (powerups, health, ammos, etc.) support (needs to be debugged and optimized)
All the news |
|
Features
-
BSP (+PVS) support
-
collisions detection (with normal
faces + patches)
-
shaders + textures
-
lightmaps
-
vertex deformations
-
cloudbox + skybox (nearbox and
farbox)
-
volumetric fog
-
bezier surfaces (with variable LOD)
-
multiple viewports
-
console
-
record/playback demo support (DM3
format not supported)
-
background music + 3d sounds
-
models
-
entities (with variable LOD)
-
zip compressed files (*.pk3)
|
|
|
License
Cake is free software; you can
redistribute it and/or modify it under the terms of the GNU
General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option)
any later version.
Cake is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License (here) for more details.
Since cake uses fmod for sound,
it is also concerned by the fmod license (see
here for
details). |
|
|
Required configuration
cake requires a gfx card that
supports following extensions :
- GL_EXT_compiled_vertex_array
- GL_ARB_multitexture
The
development is made on a AMD 2400+ (512MB DDR) + GeForce 2
GTS.
|
|
Download
source code
(26.12.05 - 635 KB)
This archive contains the full source code (windows + linux + freebsd
compatible). The VisualStudio project (versions 6 and .NET) for
windows and a Makefile for linux are included. Linux version
requires a recent version of gcc (successfull compilations have
been tested with gcc 3.2.2 and newer).
win32 release (23.10.05 - 526 KB)
Here is the win32 release. The archive contains the
executable, a default configuration file, the console shader and
required dll's. The best way to "install" cake
consist in copying the
cake.exe and config.ini files (and eventually the required dll's) in quake3 folder. You can also set the quake maps
path in config.ini. Cake can read pk3
files, so you don't need to unzip them.
pak0.zip (47 MB)
If you already posess quake 3 maps, you don't have to download this
file.
This archive contains the 4 maps (q3dm1, q3dm7, q3dm17 et q3tourney2) of
quake 3 demo version. Lot of maps use textures and shaders contained in
this package. Don't unzip this file:
just put it in a directory that is set as path in the config.ini and the engine will
automatically get required ressources from the archive (this is also the
case for pak and pk3 files).
Use the "bsplist" command to know the map names contained in archive.
Look at "Usage" section for more infos.
|
|
|
Usage
Just
put a package (pk3, pak or zip file) in a directory that is
set as path in the config.ini file and run "cake.exe".
Use the console to load maps and change settings.
If you don't know where to find maps, have a look at "planetquake.com".
Of course, you can use maps distributed with quake 3. The "bsplist"
command displays the name of all available maps.
Remark: Some maps use shaders and textures distributed with
quake 3. Thoses files can be found in "pak0.zip" in
the "Download" section.
The most important commands are:
| load |
loads a bsp map (enter "load q3dm1" to load "maps/q3dm1.bsp" map) |
| bsplist |
displays the list of all available maps |
| cmdlist |
displays the list of all available commands |
| varlist |
displays the list of all available variables |
Useful keys are (the keys are defined on a "QWERTZ" keyboard):
| a or "left arrow" |
go left |
| s or "down arrow" |
go back |
| d or "right arrow" |
go right |
| w or "up arrow" |
go forward |
| q or "page down" |
go down |
| e ou "page up" |
go up |
| p |
go to next start pos |
| t |
toggles time display |
| f |
toggles fps display |
| § (key "paragraph")) |
opens/closes the console (can be redefined with consoleKey variable) |
| m |
toggles flying/walking |
| ESC |
resets current console line/close console or quit application |
| TAB |
commands/variables autocomplete in the console (two autocompletion types depending on value (0 or 1) given to "tabmode" command) |
| space bar |
zoom the camera |
| right clic |
make the current client jump |
| g |
toggles the wireframe |
| b |
toggles the bounding box view |
|
|
| Greetings
A special thank to Kaspar and Max for their
help and advices.
Thanks also to Calodox
team (and especially to Leto) for homepage hosting.
Lot of thanks to Lee Hendrickson and Danfe for their help in debug + linux/FreeBSD port.
Thanks also to all people who report
bugs and send comments on the engine. Contact me at
morbac@gmail.com
if you find bugs or have problems with "cake". Don't
forget to join the "cake_log.html" file to your
message.
|
|
|
|















|