Code Monkey home page Code Monkey logo

zturtleman / lilium-voyager Goto Github PK

View Code? Open in Web Editor NEW
47.0 13.0 7.0 66.71 MB

An engine replacement for Star Trek Voyager: Elite Force Holomatch (multiplayer) based on ioquake3 and ioEF.

Home Page: https://clover.moe/lilium-voyager

License: GNU General Public License v2.0

Makefile 0.41% C 97.35% CMake 0.22% Objective-C 0.14% Assembly 0.46% Shell 0.26% GLSL 0.29% HTML 0.34% Roff 0.09% Yacc 0.02% NSIS 0.05% Perl 0.05% Rich Text Format 0.01% VBScript 0.01% AMPL 0.01% C++ 0.30%

lilium-voyager's Introduction

Lilium Voyager is a fork of ioquake3 for running Star Trek Voyager: Elite Force Holomatch (multiplayer). It is based on Thilo Schulz' ioEF engine (also known as iostvoyHM). The focus for Lilium Voyager is to maintain Elite Force multiplayer support on newer ioquake3 versions.

Differences from ioEF 1.38-rc1 (2011):

  • Player origin rounding is compatible with the original QVMs (x86, x86_64).
  • Fixed "read past end of server message" error after downloading a pk3 using EF 1.2 protocol (24).
  • Network compatible with ioEF 1.37.
  • Dedicated servers are listed on official Raven master server.
  • Client and server use separate config files (from ioq3).
  • Better compatibility with newer operating systems (from ioq3).
  • VoIP uses Opus codec instead of Speex (from ioq3).
  • Support for ioquake3's OpenGL2 renderer.

Lilium Voyager code commits: compare/upstream...master

The source code for the Elite Force game, cgame, and ui code is not included as it remains under a non-free license.

Compiling

Lilium Voyager is compiled using make. For details see building ioquake3 and the ioquake3 readme.

The Visual Studio project files are not supported.

Additional make variables not in ioquake3:

  • USE_CODEC_MP3=1 - Enable MP3 support using libmad (defaults to 1).
  • USE_INTERNAL_MP3=1 - Use libmad in the local source tree (defaults to 1).

Discussion

License

Lilium Voyager is licensed under the GNU GPLv2 (or at your option, any later version).

Credits

  • Quake 3 - id Software
  • ioquake3 - ioquake3 contributors
  • ioEF - Thilo Schulz & contributers
  • Lilium Voyager - Zack Middleton

Contributing

Please submit all patches as a GitHub pull request.

lilium-voyager's People

Contributors

cmf028 avatar ec- avatar ensiform avatar icculus avatar inolen avatar jdarpinian avatar jeremiah-sypult avatar jonathangray avatar kungfooman avatar lnussel avatar lonkamikaze avatar man-at-arms avatar maxcrofts avatar mickael9 avatar miried avatar nuclearmonster avatar pan7 avatar rawr51919 avatar richard-allen avatar shearer12345 avatar smcv avatar smiletheory avatar thiloschulz avatar timangus avatar tjdub avatar tkoeppe avatar tomkidd avatar wolfwings avatar xhairball avatar zturtleman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lilium-voyager's Issues

Next Release

Hello, i really like what your doing here i was using ioEF for a while because out of the several other clients out there it was the best. Now I see this one takes advantage of all the greatest things from the newest ioquake3 updates. However seeing as Thilo's site is dead, and there hasnt been a propper release to this client in some time i was currious when the next one would be?

ARM64 for Mac

I can't seem to compile an ARM64 version for M1 Mac. Any help would be appreciated.

Windows installer

The ioquake3 Windows installer allows regular install/uninstall and includes support for URL protocol handler.

I'll probably look into porting Spearmint NSIS installer script changes to ioquake3 (and then merging to Lilium Voyager) to make it easier to rename game, binaries, etc.

Not able to open console

Not sure if its just me, but I cant seem to open the console.
Ive tried rebinding it in the cfg file but that didnt work either.

Cannot add bots if g_password is set

If g_password is set, the qagame qvm checks if "password" userinfo matches to allow player to join. For bots, it's not set. The game allocates a client but doesn't allow bot to join and play. This is an issue in Quake 3 1.16 issue as well.

Patch from @Daggolin:

--- a/code/server/sv_init.c
+++ b/code/server/sv_init.c
@@ -195,6 +195,7 @@ SV_GetUserinfo
 ===============
 */
 void SV_GetUserinfo( int index, char *buffer, int bufferSize ) {
+       static cvar_t *passwordCvar;
        if ( bufferSize < 1 ) {
                Com_Error( ERR_DROP, "SV_GetUserinfo: bufferSize == %i", bufferSize );
        }
@@ -202,6 +203,24 @@ void SV_GetUserinfo( int index, char *buffer, int bufferSize ) {
                Com_Error (ERR_DROP, "SV_GetUserinfo: bad index %i", index);
        }
        Q_strncpyz( buffer, svs.clients[ index ].userinfo, bufferSize );
+
+       // If we don't have the cvar handle try to get it. As SV_GetUserinfo is only called by the game module the
+       // G_InitGame code should've run at this point and the cvar should exist with whatever default value and flags the
+       // game module specified, so we can just specify an empty default and 0 flags.
+       if ( !passwordCvar ) passwordCvar = Cvar_Get( "g_password", "", 0 );
+
+       // Bots and looback clients should never get rejected by the game module, but some mods try to verify passwords for
+       // them anyway. To work around this issue we're going to always set the correct password for them, if the game
+       // module requires a password. NOTE: If the game module renames the cvar this workaround is going to fail.
+       if ( passwordCvar && passwordCvar->string && passwordCvar->string[0] && Q_stricmp(passwordCvar->string, "none") &&
+               // SVF_BOT is assigned by the game module. We could also check for NA_BOT as netchan type, but for typical
+               // modules it shouldn't matter and by using SVF_BOT we leave some control over the workaround to the game
+               // module, which in turn could try to workaround this workaround - whyever it would require to do so...
+               ( (svs.clients[index].gentity && (svs.clients[index].gentity->r.svFlags & SVF_BOT)) ||
+                 (svs.clients[index].netchan.remoteAddress.type == NA_LOOPBACK) ) )
+       {
+               Info_SetValueForKey( buffer, "password", passwordCvar->string );
+       }
 }

Chomenor/ioef-cmod@a6942b5

OpenGL2: Holodeck doors don't fade properly

On Windows 10 (nvidia GTX 750 Ti) when starting a map (such as rota3ctf1 with g_gametype 4) the holodeck doors model have a black wall that goes across the screen that does not fade out. It goes away after holodeck doors model are no longer drawn so it doesn't affect gameplay.

This does not occur on Debian GNU/Linux 8 (proprietary nvidia driver) on the same hardware. I still need to check if it's related related to cvars or pk3 installed on Windows.

512 file limit?

It appears the old 512 file limit happens with Illium. I can run fine if I move a bunch of maps out of BaseEF, but if I have all 540 in, it crashes on load.
illium crash log.txt

{MAC}Keysaw

ERROR: Client/Server game mismatch: baseef-1/Federation v1.16-1

Hi,

Just recently started using lilium-voyager, and in the process of optimizing, tuning, tweaking things, I now get this error:

Do you have any idea how to resolve this?

[...]
----- finished R_Init -----
Loading vm file vm/ui.qvm...
File "vm/ui.qvm" found in "/home/rcampbel/.local/share/lilium-voyager/baseEF/pakext2b.pk3"
VM file ui compiled to 1536209 bytes of code
ui loaded in 2023104 bytes on the hunk
42 arenas parsed
149 bots parsed
Loading vm file vm/cgame.qvm...
File "vm/cgame.qvm" found in "/home/rcampbel/.local/share/lilium-voyager/baseEF/pakext2b.pk3"
VM file cgame compiled to 1736938 bytes of code
cgame loaded in 3198336 bytes on the hunk
********************
ERROR: Client/Server game mismatch: baseef-1/Federation v1.16-1
********************
----- Server Shutdown (Server crashed: Client/Server game mismatch: baseef-1/Federation v1.16-1) -----
==== ShutdownGame ====
AAS shutdown.

Lower jump height on non-x86/x86_64

On non-x86/x86_64, player origin rounding causes lower jump height. (It only affects the server / offline play.)

Elite Force (and older Quake 3) use round to nearest instead of round toward zero. This is handled in Lilium Voyager on x86 and x86_64 but not other architectures. This is possible to fix in the engine but until then pak92.pk3 can be used.

It can be fixed by downloading Thilo Schulz’ pak92.pk3 (included with ioEF 1.37) and adding it to your baseEF directory. For more information about pak92 see the ioEF readme.

Single-player support?

I wonder if you are considering supporting the single-player experience of Star Trek Voyager: Elite Force.

r_lodCurveError

this cvar is cheat protected, actually this is not cheat cvar.
Its control level of detail, higher values removes LODS making them more beautiful.
Please allow to change this value to higher values but not less then 250, Thanks

Makes graphic better

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.