Pages: 1 [2]
  Print  
Author Topic: Does the engine even build anymore?  (Read 81917 times)
stigmha
Nub


Cakes 0
Posts: 24


Bit by bit


WWW
« Reply #25 on: February 04, 2014, 03:10:04 AM »

Sorry for the long wait, but I've been busy.

libcurl issue

I eventually found a solution to the libcurl issue which was as simple as upgrading the library, both the include files and the *.a files. It could have been done by downgrading my version of GCC as well, but I am not a big fan of that kind of fallback solutions - at least not for an engine I'm supposed to get up to code. I then got a new and a bit cryptic error message which was related to a struct having a member variable with the same name as a #define, full details can be found on the official ioquake3 forums.

OpenArena with the latest version of ioquake3

I have now managed to merge OpenArena with the latest version and updates from the ioquake3 game engine source. The engine and QVMs can now be built using either the Make or Visual Studio 2013. It is currenlty only tested and confirmed working on Windows 7/8 using either Make through MinGW or the Visual Studio 2013 project located in /misc/msvc/ioq3.sln. The Visual Studio project have been reconfigured to reflect the actual Makefile of ioquake3 and builds everything except *.qvm files.

I created a new Git repo for the merge, and I will continue working there instead of the previous posted branch: https://bitbucket.org/shalvorsen/ioquake3-oa. It has a dedicated ioquake3 branch that is purely intended for pulling engine updates from the official ioquake3 repository. The master branch (OpenArena branch) is to be merged with this branch occasionally.

UPDATE 1: Changes as of 04.02.2014 - 15:24 CET

  • MinGW now compiles the *.qvm files. It failed due to a slightly outdated bg_lib.
  • Make tested and confirmed working on OSX Mavericks, builds the *.qvms too.

Changes as of 03.02.2014

  • Created a new repository
  • Updated the Visual Studio project
    • Now Visual Studio 2013. You can download the Express edition for free from their official webpage.
    • Updated to contain and build the actual projects used by ioquake3:
      • cgame (client QVM)
      • game (server QVM)
      • q3_ui (ui QVM)
      • ioquake3 (engine exe)
      • ioquake3_dedicated (dedicated server edition of engine)
      • All three missionpacks
      • Standalone renderers; opengl1 and opengl2
    • I got lots of help doing this by reading Jonathan Young's (jpcy) custom https://github.com/jpcy/ioq3-mono/blob/master/misc/premake5.lua script file. I originally wanted to use his Premake script to generate the project files, but it was too incomplete.
  • Fixed a build error in the engine caused by a deprecated Win32 API call (IsWindowsVersionOrGreater()) that checked if the client was Windows NT or older. It was fixed by adding a ``#pragma ignore'', but it should ideally be replaced with the newer Windows API calls. They require the C++ compiler, and won't be supported by our pure C project.
  • Added a patch setting video driver to "windib" for debug builds in Sys_GLimpInit() in sys_win32.c line 693. It was originally set to "directx" which actually enforces SDL to use the DirectX v.5 API. This caused a dead-lock like behavior when setting a breakpoint in Visual Studio, resulting in a freezed cursor and an unstable Visual Studio. It freezed the entire machine on OSX hardware.
  • Upgraded the cURL code to 1.34.1 (was 1.30.4). Contains many of fixes including patching multiple security vulnerabilities.
  • Added the QVM sources from the official OA source downloads.
  • Fixed some double to float truncation warnings in the QVMs

Known issues

  • Compiling the QVMs into *.qvm
    • MinGW: Q3ASM throws strange errors in cgame complaining about undefined symbols atoi, Q_vsnprintf, strcmp, and others. I haven't spent too much time trying to figure this out yet.
    • Visual Studio: does not compile the QVMs into *.qvm files yet. This can be done by adding post build steps.
  • OpenGL 2 renderer fails to runtime compile a shader so it fails. Works in ioquake3 branch with Quake III Arena though. I haven't investigated this yet.
  • Makefile should be tested on all other supported platforms. Especially Linux and OSX.
  • XCode project haven't been touched and is really outdated.


« Last Edit: February 04, 2014, 08:34:49 AM by stigmha » Logged
hairball
Half-Nub


Cakes 2
Posts: 52


« Reply #26 on: February 04, 2014, 04:48:06 PM »

Hi stigmha,

I took a look at your project.  It looks like you are only merging in the game code changes because I don't see tr_bloom.c or any other renderer changes.  Upstream renamed their renderer so that may be why you're missing the changes if you are trying to incorporate the engine changes too.

It looks like you applied a patch based on oax on top of ioquake3.  I wish it was that easy but it's not.  You're reverting a lot of changes that ioquake3 made on purpose.  Besides reverting the work, it will be a bigger pain to keep in sync in the future since you undid changes that they made.
Logged
stigmha
Nub


Cakes 0
Posts: 24


Bit by bit


WWW
« Reply #27 on: February 05, 2014, 03:44:00 AM »

It looks like you applied a patch based on oax on top of ioquake3.  I wish it was that easy but it's not.  You're reverting a lot of changes that ioquake3 made on purpose.  Besides reverting the work, it will be a bigger pain to keep in sync in the future since you undid changes that they made.
Oh... Sad ...thanks for the heads up! Smiley I recall reading that the latest version of ioquake3 was fully compatible with OpenArena, so I slight blindly merged the OA source QVM code with the latest ioquake3 engine and expected things to be good.

The reason why I choose to do this blind/naive approach was because not all changes to the QVMs in OpenArena (from ioquake3) are documented, and I was afraid to remove such additional functionality. Examples are your implementation of additional game modes and your changes to the UI where you have changed the text color and added an addtional "effects" bar on "Player Settings". An overview of such changes would be great to have. I could use various "diff" utilities as an attempt to track them all down, but it would be a really time consuming and painful task.

I haven't been that naive though, taken account for the following from your DO NOT LINK[/b]) h t t p s : / / openarena . wikia . com/wiki/DeveloperFAQ#Coding]DeveloperFAQ.
  • Changed defines in q_shared.h (PRODUCT_NAME etc.)
  • Removed pak0 check from files.c (this by using the STANDALONE macro)
  • Changed defines in qcommon.h (PROTOCOL, AUTH server, UPDATE server and MASTER server)
  • Increased DEF_COMHUNKMEGS (56 is not enough for bloom)
  • Added g_humanplayers + g_needpass in client* and removed g_punkbuster from the same places
  • Changed the save path in sys/*. Replace "Quake3" with "OpenArena" and ".q3a" with ".oa"
So what I in theory need to do is to fix the following:
  • Implement the missing Bloom support
  • Add the extra protocols to comon.c
  • Patch snd_codec.c so the engine will look for ogg files if no wav is found.
  • Change default sound from sound/feedback/hit.wav to sound/misc/silence.wav (so missing sounds are not to annoying
  • Change ".oa" to ".openarena" in the save settings.
I have two options now:I personally think #1 is the best option. Tongue
Logged
Gig
In the year 3000
***

Cakes 45
Posts: 4394


WWW
« Reply #28 on: February 05, 2014, 04:00:07 AM »

Note: I can guess that list in "developerfaq" may be incomplete/outdated. I think it's a lot of time Sago or Fromhell do not edit that page. For example, it does not mention 0.8.8 GLSL support...
Logged

I never want to be aggressive, offensive or ironic with my posts. If you find something offending in my posts, read them again searching for a different mood there. If you still see something bad with them, please ask me infos. I can be wrong at times, but I never want to upset anyone.
hairball
Half-Nub


Cakes 2
Posts: 52


« Reply #29 on: February 05, 2014, 04:29:39 PM »

I have two options now:I personally think #1 is the best option. Tongue
You have more options than that. Smiley  Recent ioquake3 builds are capable of being used by standalone games without any modification unless the game is heavily modified which OA isn't.  You can set everything through +set command line options.  If it doesn't detect the quake3arena pk3 files, it enables standalone mode.  It won't have bloom or any of the modified parts of OpenArena but those don't prevent you from playing the game.

p.s. I'm also working on migrating the OA 0.8.8 engine code to ioquake3 trunk.  The FAQ is missing items.
Logged
stigmha
Nub


Cakes 0
Posts: 24


Bit by bit


WWW
« Reply #30 on: February 06, 2014, 02:33:37 PM »

p.s. I'm also working on migrating the OA 0.8.8 engine code to ioquake3 trunk.  The FAQ is missing items.

Let me know if I can help you out.  Smiley I am actually almost done merging in the OA stuff into the engine. sago007 mentioned undeadzy's git repo in the Gitorious post, so I found undeadzy's initial commit and merged everything but the renderer stuff with my working and up to date ioquake3 git branch. Then I went through his commit history (after the initial post) and merged what I found relevant from his non-ioquake3 merges. There were ~4-5 in total.

My last change was to copy his latest renderer_oa directory and used WinDiff to extract the OA specific render changes and implement them into the opengl1 renderer from ioquake3 - yes, this includes bloom, GLSL, and the other changes. I currently have to fix some errors in the renderering, and I will be done with the engine stuff. The errors are posted at the end at this post for your interest, but I will be able to figure them out on my own later... I'm not doing more today. Once fixed, I will start diffing the QVMS and hopefully be able to merge things in place. My current progress is available in my OpenArena git branch.

NB: all my merges have been done manually.

The current errors are:

Code:
In file included from code/renderergl1/../renderercommon/tr_common.h:27:0,
                 from code/renderergl1/tr_local.h:31,
                 from code/renderergl1/tr_animation.c:23:
code/renderergl1/../renderercommon/qgl.h:487:29: error: conflicting types for 'q
glVertexAttrib4fvARB'
 extern void     (APIENTRY * qglVertexAttrib4fvARB) (GLuint, const GLfloat *);
                             ^
In file included from code/renderergl1/../renderercommon/tr_common.h:27:0,
                 from code/renderergl1/tr_local.h:31,
                 from code/renderergl1/tr_animation.c:23:
code/renderergl1/../renderercommon/qgl.h:108:26: note: previous declaration of '
qglVertexAttrib4fvARB' was here
 extern GLvoid (APIENTRYP qglVertexAttrib4fvARB) (GLuint index, GLfloat *v);
                          ^
In file included from code/renderergl1/tr_animation.c:23:0:
code/renderergl1/tr_local.h:87:16: error: redefinition of 'struct image_s'
 typedef struct image_s {
                ^
In file included from code/renderergl1/tr_local.h:31:0,
                 from code/renderergl1/tr_animation.c:23:
code/renderergl1/../renderercommon/tr_common.h:50:16: note: originally defined h
ere
 typedef struct image_s {
                ^
In file included from code/renderergl1/tr_animation.c:23:0:
code/renderergl1/tr_local.h:103:3: error: conflicting types for 'image_t'
 } image_t;
   ^
In file included from code/renderergl1/tr_local.h:31:0,
                 from code/renderergl1/tr_animation.c:23:
code/renderergl1/../renderercommon/tr_common.h:65:3: note: previous declaration
of 'image_t' was here
 } image_t;
   ^
In file included from code/renderergl1/tr_animation.c:23:0:
code/renderergl1/tr_local.h:1384:11: error: conflicting types for 'R_FindImageFi
le'
 image_t  *R_FindImageFile( const char *name, qboolean mipmap, qboolean allowPic
mip, int glWrapClampMode );
           ^
In file included from code/renderergl1/tr_local.h:31:0,
                 from code/renderergl1/tr_animation.c:23:
code/renderergl1/../renderercommon/tr_common.h:123:14: note: previous declaratio
n of 'R_FindImageFile' was here
 image_t     *R_FindImageFile( const char *name, imgType_t type, imgFlags_t flag
s );
              ^
In file included from code/renderergl1/tr_animation.c:23:0:
code/renderergl1/tr_local.h:1386:11: error: conflicting types for 'R_CreateImage
'
 image_t  *R_CreateImage( const char *name, const byte *pic, int width, int heig
ht, qboolean mipmap
           ^
In file included from code/renderergl1/tr_local.h:31:0,
                 from code/renderergl1/tr_animation.c:23:
code/renderergl1/../renderercommon/tr_common.h:124:10: note: previous declaratio
n of 'R_CreateImage' was here
 image_t *R_CreateImage( const char *name, byte *pic, int width, int height, img
Type_t type, imgFlags_t flags, int internalFormat );
          ^
In file included from code/renderergl1/tr_animation.c:23:0:
code/renderergl1/tr_local.h:1417:11: error: conflicting types for 'RE_RegisterSh
aderFromImage'
 qhandle_t RE_RegisterShaderFromImage(const char *name, int lightmapIndex, image
_t *image, qboolean mipRawImage);
           ^
In file included from code/renderergl1/tr_local.h:31:0,
                 from code/renderergl1/tr_animation.c:23:
code/renderergl1/../renderercommon/tr_common.h:130:11: note: previous declaratio
n of 'RE_RegisterShaderFromImage' was here
 qhandle_t RE_RegisterShaderFromImage(const char *name, int lightmapIndex, image
_t *image, qboolean mipRawImage);
           ^
In file included from code/renderergl1/tr_animation.c:23:0:
code/renderergl1/tr_local.h:1926:22: error: unknown type name 'md4Surface_t'
 void RB_SurfaceAnim( md4Surface_t *surfType );
                      ^
code/renderergl1/tr_animation.c: In function 'R_AddAnimSurfaces':
code/renderergl1/tr_animation.c:42:2: error: unknown type name 'md4Header_t'
  md4Header_t  *header;
  ^
code/renderergl1/tr_animation.c:43:2: error: unknown type name 'md4Surface_t'
  md4Surface_t *surface;
  ^
code/renderergl1/tr_animation.c:44:2: error: unknown type name 'md4LOD_t'
  md4LOD_t  *lod;
  ^
code/renderergl1/tr_animation.c:48:12: error: 'md4Header_t' undeclared (first us
e in this function)
  header = (md4Header_t *) tr.currentModel->modelData;
            ^
code/renderergl1/tr_animation.c:48:12: note: each undeclared identifier is repor
ted only once for each function it appears in
code/renderergl1/tr_animation.c:48:25: error: expected expression before ')' tok
en
  header = (md4Header_t *) tr.currentModel->modelData;
                         ^
code/renderergl1/tr_animation.c:49:9: error: 'md4LOD_t' undeclared (first use in
 this function)
  lod = (md4LOD_t *)( (byte *)header + header->ofsLODs );
         ^
code/renderergl1/tr_animation.c:49:19: error: expected expression before ')' tok
en
  lod = (md4LOD_t *)( (byte *)header + header->ofsLODs );
                   ^
code/renderergl1/tr_animation.c:51:13: error: 'md4Surface_t' undeclared (first u
se in this function)
  surface = (md4Surface_t *)( (byte *)lod + lod->ofsSurfaces );
             ^
code/renderergl1/tr_animation.c:51:27: error: expected expression before ')' tok
en
  surface = (md4Surface_t *)( (byte *)lod + lod->ofsSurfaces );
                           ^
code/renderergl1/tr_animation.c:52:23: error: request for member 'numSurfaces' i
n something not a structure or union
  for ( i = 0 ; i < lod->numSurfaces ; i++ ) {
                       ^
code/renderergl1/tr_animation.c:53:40: error: request for member 'shaderIndex' i
n something not a structure or union
   shader = R_GetShaderByHandle( surface->shaderIndex );
                                        ^
code/renderergl1/tr_animation.c:55:28: error: expected expression before ')' tok
en
   surface = (md4Surface_t *)( (byte *)surface + surface->ofsEnd );
                            ^
code/renderergl1/tr_animation.c: At top level:
code/renderergl1/tr_animation.c:64:22: error: unknown type name 'md4Surface_t'
 void RB_SurfaceAnim( md4Surface_t *surface ) {
                      ^
Logged
hairball
Half-Nub


Cakes 2
Posts: 52


« Reply #31 on: February 06, 2014, 03:49:22 PM »

sago007 mentioned undeadzy's git repo in the Gitorious post, so I found undeadzy's initial commit and merged everything but the renderer stuff with my working and up to date ioquake3 git branch. Then I went through his commit history (after the initial post) and merged what I found relevant from his non-ioquake3 merges. There were ~4-5 in total.
FYI I am also undeadzy. Wink  I went by undeadzy in Urban Terror and hairball in OpenArena.  I'm only hairball now.  UrT's competitive scene completely imploded and there aren't many players left.  I played off and on since UrT 2.5 and this is the first time there hasn't been at least one North American league.

Since I'm already off-topic, I don't see a lot of the OpenArena people that I used to know. Sad  I haven't seen a /V/ or oaN person in a server in a while now.

My current progress is available in my OpenArena git branch.
I'll take a look.  I finished merging the client/server changes and was testing it yesterday.  I regenerated a diff of the changes in OA 0.8.8 and a diff of my old openarena_engine against ioquake3 to see if I missed anything.

I plan on pushing the changes to the new OpenArena engine repository tonight (experimental branch).  There's still some work to do with making sure it builds on non-Unix systems.

I haven't done too much with the QVM/game code yet.  I'm waiting to see what Sago wants to do with oax.  He may want to continue using the current code rather than rebasing on top of ioquake3.
Logged
hairball
Half-Nub


Cakes 2
Posts: 52


« Reply #32 on: February 06, 2014, 06:15:21 PM »

NB: all my merges have been done manually.
I took a look again at it.  I think there are still too many changes that you don't want to maintain or need to revert.

This one reverts a change that has a helpful gcc attribute which catches format string bugs:

Code:
@@ -1199,8 +1386,8 @@ extern    vmCvar_t                cg_obeliskRespawnDelay;
 const char *CG_ConfigString( int index );
 const char *CG_Argv( int arg );
 
-void QDECL CG_Printf( const char *msg, ... ) __attribute__ ((format (printf, 1, 2)));
-void QDECL CG_Error( const char *msg, ... ) __attribute__ ((noreturn, format (printf, 1, 2)));
+void QDECL CG_Printf( const char *msg, ... );
+void QDECL CG_Error( const char *msg, ... ) __attribute__((noreturn));
 
 void CG_StartMusic( void );
 

This one looks like the introduction of a bug.  It removes where, follownext and followprev.  It correctly adds getmappage which is OpenArena specific but it removed stuff it shouldn't have.  In this case, I don't know for sure whether the #ifdef checks were removed appropriately or not.  I'd have to look into it more since a number of them are intentionally removed in oax:

Code:
@@ -552,7 +595,6 @@ void CG_InitConsoleCommands( void ) {
        trap_AddCommand ("say");
        trap_AddCommand ("say_team");
        trap_AddCommand ("tell");
-#ifdef MISSIONPACK
        trap_AddCommand ("vsay");
        trap_AddCommand ("vsay_team");
        trap_AddCommand ("vtell");
@@ -560,20 +602,17 @@ void CG_InitConsoleCommands( void ) {
        trap_AddCommand ("vosay");
        trap_AddCommand ("vosay_team");
        trap_AddCommand ("votell");
-#endif
        trap_AddCommand ("give");
        trap_AddCommand ("god");
        trap_AddCommand ("notarget");
        trap_AddCommand ("noclip");
-       trap_AddCommand ("where");
        trap_AddCommand ("team");
        trap_AddCommand ("follow");
-       trap_AddCommand ("follownext");
-       trap_AddCommand ("followprev");
        trap_AddCommand ("levelshot");
        trap_AddCommand ("addbot");
        trap_AddCommand ("setviewpos");
        trap_AddCommand ("callvote");
+       trap_AddCommand ("getmappage");
        trap_AddCommand ("vote");
        trap_AddCommand ("callteamvote");
        trap_AddCommand ("teamvote");

Those 3 traps that are deleted above were added in ioquake3 to fix missing completion entries:

Code:
commit 2834a586000566ce7b2094215493e0708cae693b
Author: Zack Middleton <zturtleman@gmail.com>
Date:   Mon Jun 18 16:11:35 2012 +0000

    add missing commands to autocompletition
    
    found by Ensiform

diff --git a/code/cgame/cg_consolecmds.c b/code/cgame/cg_consolecmds.c
index c0421b5..0d29588 100644
--- a/code/cgame/cg_consolecmds.c
+++ b/code/cgame/cg_consolecmds.c
@@ -563,8 +563,11 @@ void CG_InitConsoleCommands( void ) {
        trap_AddCommand ("god");
        trap_AddCommand ("notarget");
        trap_AddCommand ("noclip");
+       trap_AddCommand ("where");
        trap_AddCommand ("team");
        trap_AddCommand ("follow");
+       trap_AddCommand ("follownext");
+       trap_AddCommand ("followprev");
        trap_AddCommand ("levelshot");
        trap_AddCommand ("addbot");
        trap_AddCommand ("setviewpos");

« Last Edit: February 06, 2014, 06:40:28 PM by hairball » Logged
fromhell
Administrator
GET A LIFE!
**********

Cakes 35
Posts: 14520



WWW
« Reply #33 on: February 06, 2014, 07:39:54 PM »

Do we really need ioq3's cgame/game/ui qvm code?
Logged

asking when OA3 will be done won't get OA3 done.
Progress of OA3 currently occurs behind closed doors alone

I do not provide technical support either.

new code development on github
hairball
Half-Nub


Cakes 2
Posts: 52


« Reply #34 on: February 06, 2014, 10:56:12 PM »

fromhell: It's up to you. Smiley  I think having the client/server updated and in sync with ioquake3 is important because of all the changes.  I haven't read the cgame/game/ui code changes to know if it's worth it.

Stigmha: I updated my changes (client/server only) to github.
Logged
fromhell
Administrator
GET A LIFE!
**********

Cakes 35
Posts: 14520



WWW
« Reply #35 on: February 07, 2014, 12:39:02 AM »

yeah i wasn't a big fan of ztm when he removed 16-bit color support....
Logged

asking when OA3 will be done won't get OA3 done.
Progress of OA3 currently occurs behind closed doors alone

I do not provide technical support either.

new code development on github
fromhell
Administrator
GET A LIFE!
**********

Cakes 35
Posts: 14520



WWW
« Reply #36 on: February 07, 2014, 01:37:15 AM »

SUCCESS - I have compiled that openarena/engine github sources with mingw and it is working in Windows 7.  renderer_openarena1 shows my envmode/specmode changes.

There was a bit of trouble getting libogg and libvorbis to work however since those are static now?
Logged

asking when OA3 will be done won't get OA3 done.
Progress of OA3 currently occurs behind closed doors alone

I do not provide technical support either.

new code development on github
hairball
Half-Nub


Cakes 2
Posts: 52


« Reply #37 on: February 07, 2014, 01:58:08 AM »

I'm not sure why they don't handle it better.  I can't cross-compile OA on Debian to Windows because of the ogg/vorbis problem in the tree.  If I add USE_CODEC_VORBIS=0, then it cross-compiles fine.  In the past, OA had extra files/Makefile entries to help with ogg.  I think upstream ioquake3 should fix it though since it's not OA specific.

I didn't fix any of the compiler warnings except for the memset problem from OA 0.8.8 that gcc 4.8.2 reported.  Trying to keep minimal changes until it gets more widespread testing.
Logged
Neon_Knight
In the year 3000
***

Cakes 49
Posts: 3775


Trickster God.


« Reply #38 on: February 07, 2014, 02:38:05 AM »

I do see a lot of complaints about the Wiki not being updated, but... do you know Gig and I aren't the only ones who can update the Wiki? And that we don't know everything about OA? I'm a mapper, not a coder, and Gig is a "jack of all trades" but even then there are things even he doesn't know at all.

What if the coders themselves also help us to update the wiki?
Logged


"Detailed" is nice, but if it gets in the way of clarity, it ceases being a nice addition and becomes a problem. - TVT
Want to contribute? Read this.
Gig
In the year 3000
***

Cakes 45
Posts: 4394


WWW
« Reply #39 on: February 07, 2014, 02:45:20 AM »

I know more or less nothing about coding. I know more or less nothing about modeling. I do not have knowledge about many shader commands. There are tons and tons of things I don't know about the game, especially about how it works internally. I just try to help how I can.  Smiley
Logged

I never want to be aggressive, offensive or ironic with my posts. If you find something offending in my posts, read them again searching for a different mood there. If you still see something bad with them, please ask me infos. I can be wrong at times, but I never want to upset anyone.
Neon_Knight
In the year 3000
***

Cakes 49
Posts: 3775


Trickster God.


« Reply #40 on: February 07, 2014, 02:47:01 AM »

Well, that's even more reason of why they should help us in that regard!
Logged


"Detailed" is nice, but if it gets in the way of clarity, it ceases being a nice addition and becomes a problem. - TVT
Want to contribute? Read this.
stigmha
Nub


Cakes 0
Posts: 24


Bit by bit


WWW
« Reply #41 on: February 07, 2014, 05:37:37 AM »

FYI I am also undeadzy. Wink

Cool, both nice to meet you and to learn some OA history.  Wink

I took a look again at it.  I think there are still too many changes that you don't want to maintain or need to revert.

Thanks, I might have been a bit too quick, but I think I'll use your Git repo as base from now on.

---------------

Do we really need ioq3's cgame/game/ui qvm code?

I would consider it a huge advantage both for easier debugging, maintenance (including stability) and for tidiness. There are probably tons of bugfixes waiting to be merged from ioquake3.

---------------

There was a bit of trouble getting libogg and libvorbis to work however since those are static now?
I can't cross-compile OA on Debian to Windows because of the ogg/vorbis problem in the tree.  If I add USE_CODEC_VORBIS=0, then it cross-compiles fine.  In the past, OA had extra files/Makefile entries to help with ogg.  I think upstream ioquake3 should fix it though since it's not OA specific.

I contacted Zack Middleton (zturtleman), an ioquake3 maintainer,  regarding this issue yesterday. I wrote the following to him:

Quote from: stigmha
I know you have kept the USE_CODEC_VORBIS option for backwards compatibilities, but you have removed the vorbis headers, thus enabling it will make the build fail; grep -r "#include <vorbis/vorbis.h" ./code/* reveals that ./code/client/snd_codec_ogg.c attempts to use the missing header if the macro is set.

He replied:

Quote
USE_CODEC_VORBIS=1 has always required installing the libvorbis and libvorbisfile headers and libraries outside of ioquake3. Some standalone games use it.

---------------

What if the coders themselves also help us to update the wiki?

I would love to help, but I thought you didn't like strangers (unofficial devs) editing stuff there. Tongue

---------------

I recall reading somewhere you have an official IRC channel, may I be lazy and ask for the details here?
Logged
Gig
In the year 3000
***

Cakes 45
Posts: 4394


WWW
« Reply #42 on: February 07, 2014, 06:05:29 AM »

I recall reading somewhere you have an official IRC channel, may I be lazy and ask for the details here?
The official one is this one:
irc://irc.anynet.org/#openarena

There are also some unofficial channels, you can give a look here:
(DO NOT LINK) h t t p s : / / openarena . wikia . com/wiki/Main_Page#IRC

PS: The wiki is open to everyone. Of course, working as registered users instead of IPs is better, however IPs are allowed, too.
Some hints for who wants to edit the wiki in this page: (DO NOT LINK) h t t p s : / / openarena . wikia . com/wiki/WikiWorks
And the forum thread for talking about the wiki: http://openarena.ws/board/index.php?topic=4046.0
« Last Edit: February 07, 2014, 07:37:42 AM by Gig » Logged

I never want to be aggressive, offensive or ironic with my posts. If you find something offending in my posts, read them again searching for a different mood there. If you still see something bad with them, please ask me infos. I can be wrong at times, but I never want to upset anyone.
Neon_Knight
In the year 3000
***

Cakes 49
Posts: 3775


Trickster God.


« Reply #43 on: February 07, 2014, 07:21:22 AM »

What if the coders themselves also help us to update the wiki?

I would love to help, but I thought you didn't like strangers (unofficial devs) editing stuff there. Tongue
Where did you get that impression?
Logged


"Detailed" is nice, but if it gets in the way of clarity, it ceases being a nice addition and becomes a problem. - TVT
Want to contribute? Read this.
stigmha
Nub


Cakes 0
Posts: 24


Bit by bit


WWW
« Reply #44 on: February 07, 2014, 07:29:12 AM »

It's just in my polite nature. Wink You are a well established open source community with various routines and unwritten rules that I have no idea of. I would almost consider it rude to be an external guy just showing up from nowhere one day, starting to edit your Wiki and demand change. Tongue I'll correct the changes I've suggested for the Wiki so far.

Btw, can't really find you in anyone of the IRC channels. Do you have different nicks there or are you just not using them?
Logged
fromhell
Administrator
GET A LIFE!
**********

Cakes 35
Posts: 14520



WWW
« Reply #45 on: February 07, 2014, 07:43:10 AM »

I don't do IRC period.
Logged

asking when OA3 will be done won't get OA3 done.
Progress of OA3 currently occurs behind closed doors alone

I do not provide technical support either.

new code development on github
Neon_Knight
In the year 3000
***

Cakes 49
Posts: 3775


Trickster God.


« Reply #46 on: February 07, 2014, 08:20:02 AM »

It's just in my polite nature. Wink You are a well established open source community with various routines and unwritten rules that I have no idea of. I would almost consider it rude to be an external guy just showing up from nowhere one day, starting to edit your Wiki and demand change. Tongue I'll correct the changes I've suggested for the Wiki so far.

Btw, can't really find you in anyone of the IRC channels. Do you have different nicks there or are you just not using them?
Oh, in that case, no problem!

I was asking because people in the IRC seems to have a strong tendency to badmouth us because of many reasons, among them that DO NOT LINK) h t t p s : / / openarena . wikia . com/wiki/DeveloperFAQ]OA has its own set[/url] of DO NOT LINK[/b]) h t t p s : / / openarena . wikia . com/wiki/NOTTODO]development rules and DO NOT LINK[/b]) h t t p s : / / openarena . wikia . com/wiki/GoodPractices]direction[/b] and some demand us to break that and that "What shell be done is determined and who does it is already determined" (which is plainly wrong, though OA not being anymore a "throw everything you can find on the net as long as it's free" project is a good thing; that mentality by a certain past contributor who isn't here anymore made the 0.x versions the mess OA is today, so OA3 is about fixing that).

Just thought you may know this.
Logged


"Detailed" is nice, but if it gets in the way of clarity, it ceases being a nice addition and becomes a problem. - TVT
Want to contribute? Read this.
hairball
Half-Nub


Cakes 2
Posts: 52


« Reply #47 on: February 07, 2014, 04:34:10 PM »

He replied:
Quote
USE_CODEC_VORBIS=1 has always required installing the libvorbis and libvorbisfile headers and libraries outside of ioquake3. Some standalone games use it.
Ok, in this case let's bundle it in OA's git.  I would like for this to properly cross-compile so I can make sure it works for Windows users.
Logged
wing0
Half-Nub


Cakes 0
Posts: 72



WWW
« Reply #48 on: April 14, 2014, 08:01:20 AM »

Cloned, build, tried, got error 'game mismatch'.
Enabled LEGACY_PROTOCOL, re-build, got an error like 'server parse string'.

Is this a known issue?

If you like, contact me in #openarenahelp @quakenet I know how to write c code and modded some things too.
Logged

L!ve* is life - na na nana na
fromhell
Administrator
GET A LIFE!
**********

Cakes 35
Posts: 14520



WWW
« Reply #49 on: April 14, 2014, 04:24:48 PM »

There shouldn't be a game mismatch.  I have it working with VMs from OA 088, OA3 and even Q3A 1.32
Logged

asking when OA3 will be done won't get OA3 done.
Progress of OA3 currently occurs behind closed doors alone

I do not provide technical support either.

new code development on github
Pages: 1 [2]
  Print  
 
Jump to: