Re: New: games/warsow

2019-06-09 Thread Leonid Bobrov
I can't believe it, I've fixed FPS limiter! I only had to remove code :P

Now this game will never sleep and that's ok.


warsow.tar.gz
Description: Binary data


Re: New: games/warsow

2019-06-03 Thread alf
On Mon, Jun 03, 2019 at 10:25:06AM +0300, Leonid Bobrov wrote:
> On Mon, Jun 03, 2019 at 08:38:02AM +0200, alf wrote:
> > Hello, 
> > On Sun, Jun 02, 2019 at 10:58:39AM +0300, Leonid Bobrov wrote:
> > > So, I've made some progress in my fork. snd_openal module is removed,
> > > snd_qf should do a great job. I've also got rid of all GNU extentions
> > > and deprecated registers in C++17. So far this game compiles with one
> > > warning, but compiler prints a mess, so I've silenced it with
> > > -Wno-user-defined-warnings flag, now it can be built with -Werror flag.
> > > The install target is added to CMakeLists.txt, also warsow_2.1 branch
> > > from https://github.com/Qfusion/qfusion/ is merged (note: I didn't
> > > bother applying patches from that branch to Android because Android
> > > support was not ready in this game anyway).
> > > 
> > > All relevant patches are sent to https://github.com/Qfusion/qfusion/
> > > and this game was tested at OpenBSD, DragonFly BSD and NetBSD (couldn't
> > > test at FreeBSD due to kernel panic coming from radeonkms module).
> > > 
> > > Note that FPS limiter is buggy: if you set limit to 60 you'll get 33 FPS
> > > and if you set limit to 500 you'll get 100 FPS, so far it happened only
> > > at OpenBSD, so I have no idea is that a problem in game or in OpenBSD.
> > 
> > 
> > Most likely there's some usleep somewhere with very small sleep intervals.
> > Since OpenBSD's default tic-rate is 100 on most machines, it can not
> > sleep for shorter periods then 1/100 sec.
> > I ran into this in fodquake (QW client), try to use a custom kernel with
> > a ticrate > 1000 (I used 5000 to 1 without any problems).
> > IIRC its
> > HZ 1
> > in the kernel config.
> > 
> > Good luck,
> > 
> > Alf
> > 
> 
> Hi!
> 
> I don't understand why OpenBSD has such a default, but how do other
> games implement FPS limiters to avoid such problem?
> 
(Actually I think I encountered this in quakespasm, not fodquake, there it
manifested as immense packet loss).

Linux uses a ticless kernel, I guess Windows too.
OpenBSD goes with conservative defaults for its ticrate since it wants to run
on many platforms and machines without too much knob fiddling.

It just sprang to my mind when you mentioned it as a OpenBSD only problem.
Also I ran into this years ago.

As what other games do, sorry, no idea:)

Alf



Re: New: games/warsow

2019-06-03 Thread Leonid Bobrov
On Mon, Jun 03, 2019 at 08:38:02AM +0200, alf wrote:
> Hello, 
> On Sun, Jun 02, 2019 at 10:58:39AM +0300, Leonid Bobrov wrote:
> > So, I've made some progress in my fork. snd_openal module is removed,
> > snd_qf should do a great job. I've also got rid of all GNU extentions
> > and deprecated registers in C++17. So far this game compiles with one
> > warning, but compiler prints a mess, so I've silenced it with
> > -Wno-user-defined-warnings flag, now it can be built with -Werror flag.
> > The install target is added to CMakeLists.txt, also warsow_2.1 branch
> > from https://github.com/Qfusion/qfusion/ is merged (note: I didn't
> > bother applying patches from that branch to Android because Android
> > support was not ready in this game anyway).
> > 
> > All relevant patches are sent to https://github.com/Qfusion/qfusion/
> > and this game was tested at OpenBSD, DragonFly BSD and NetBSD (couldn't
> > test at FreeBSD due to kernel panic coming from radeonkms module).
> > 
> > Note that FPS limiter is buggy: if you set limit to 60 you'll get 33 FPS
> > and if you set limit to 500 you'll get 100 FPS, so far it happened only
> > at OpenBSD, so I have no idea is that a problem in game or in OpenBSD.
> 
> 
> Most likely there's some usleep somewhere with very small sleep intervals.
> Since OpenBSD's default tic-rate is 100 on most machines, it can not
> sleep for shorter periods then 1/100 sec.
> I ran into this in fodquake (QW client), try to use a custom kernel with
> a ticrate > 1000 (I used 5000 to 1 without any problems).
> IIRC its
> HZ 1
> in the kernel config.
> 
> Good luck,
> 
> Alf
> 

Hi!

I don't understand why OpenBSD has such a default, but how do other
games implement FPS limiters to avoid such problem?



Re: New: games/warsow

2019-06-02 Thread Leonid Bobrov
So, I've made some progress in my fork. snd_openal module is removed,
snd_qf should do a great job. I've also got rid of all GNU extentions
and deprecated registers in C++17. So far this game compiles with one
warning, but compiler prints a mess, so I've silenced it with
-Wno-user-defined-warnings flag, now it can be built with -Werror flag.
The install target is added to CMakeLists.txt, also warsow_2.1 branch
from https://github.com/Qfusion/qfusion/ is merged (note: I didn't
bother applying patches from that branch to Android because Android
support was not ready in this game anyway).

All relevant patches are sent to https://github.com/Qfusion/qfusion/
and this game was tested at OpenBSD, DragonFly BSD and NetBSD (couldn't
test at FreeBSD due to kernel panic coming from radeonkms module).

Note that FPS limiter is buggy: if you set limit to 60 you'll get 33 FPS
and if you set limit to 500 you'll get 100 FPS, so far it happened only
at OpenBSD, so I have no idea is that a problem in game or in OpenBSD.


warsow.tar.gz
Description: Binary data


Re: New: games/warsow

2019-05-17 Thread Leonid Bobrov
On Fri, May 17, 2019 at 06:04:50AM +0300, Leonid Bobrov wrote:
> On Thu, May 16, 2019 at 06:41:06PM -0400, Brian Callahan wrote:
> > *Please* tell me you're going to send these patches upstream. There's a lot
> > here and as you say, you're trying to get this into more than just OpenBSD
> > ports, and your patches do far more than OpenBSD support.
> >
> 
> Yes, I sent these patches to both upstreams.
> 
> Meanwhile Warsow's new upstream is not collaborative because I used
> wallhack in the past and because more OS support "is a minor topic that
> has nothing with actual challenges in the game development":
> https://github.com/Warsow/qfusion/pull/40#issuecomment-492069962
> (at least I got some help from that person before he banned me at his
> organization)
> 
> So, I think only qfusion's upstream will accept these patches:
> https://github.com/Qfusion/qfusion/pull/434
> (but I doubt compatibility between qfusion and its fork intended to
> continue Warsow's development)
> 
> > I'm slowly going through everything and will write back when I'm finished.
> > There are definitely some things that need tweaking.
> >
> 
> Yeah, I forgot to remove some CFLAGS from CMakeLists.txt when I was
> sending this port. Also please don't commit this port yes, I will
> fork this game's release and apply more patches if you notice something
> wrong or if for some reason I fail to build it at other *BSD, then I'll
> send this port again ready to be committed. And this fork will let me
> avoid headaches keeping patches in sync.
> 
> > ~Brian
> > 
> 

Good, I am attaching a new tarball, it should give a perfect port
without patches directory, because it fetches my fork, so it's ready
to be committed to the ports tree.

Here's what I've done in general in this fork (it's intended only for
ports systems, all necessary patches are already sent to upstreams):
* No suffixes in libraries' and binaries' name which tell about for what
OS and processor architecture they were compiled.
* Removed C and C++ flags which should be given by ports systems.
* Support for pkgsrc and Ravenports in FindSDL2.cmake
* ar(1) won't receive linker flags.
* -std=gnu11 flag reduces amount of warnings.
* -Wpedantic flag should help cleaning code in the future.
* Use sendfile() at DragonFly BSD and FreeBSD, also implement one at all
other OSes.
* DATADIR macro defined by CMakeLists.txt to point to system-wide
directory with data files instead of current directory.
* Unquote library names in CMakeLists.txt files.
* BUILDSTRING, OSNAME, CPUSTRING, LIB_DIRECTORY, LIB_PREFIX and
LIB_SUFFIX macros are defined by CMakeLists.txt
* System-wide libraries will never be dlopen(3)'ed.
* AngelScript 2.29.2 is built and statically linked.
* Windows, MacOS and Linux libraries in modules_21.pk3 are ignored.
* Many matches for ${CMAKE_SYSTEM_NAME} were changed to WIN32, APPLE and
UNIX.
*  is not only included at MacOS, but at every Unix-like
system.
*  should only be included at Linux.
* -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500 flags were removed to
fix build break at FreeBSD.
* find_package(OpenGL) should add -I/usr/X11R6/include flag.
* All #if defined() were carefully changed to something like:
```
#if defined(_WIN32)
...
#elif defined(__APPLE__)
...
#elif defined(__ANDROID__)
...
#else
...
#endif
```
* SDL_SetWindowIcon() is commented because of buffer overflow in SDL2:
https://github.com/mazocomp/openbsd-wip/blob/3924bc18d05ded21bf0f69def7f1826ae92b2150/games/warsow/BACKTRACE
* SDL2 is a required dependency.
* readdir64 and dirent64 are defined at systems other than Linux.
* Remove unnecessary files which make source tarball waste 500 MB of
disk space.

TODO:
* Remove snd_openal module because it can only dlopen(3) audio/openal,
but since I removed support for dlopen(3)'ing system-wide libraries,
this module only needs audio/openal at build time and doesn't link to
it, so we are using snd_qf anyway.
* Fix critical compiler warnings like
if (unsigned int variable == ULONGMAX)
* Merge warsow_2.1 branch from https://github.com/Qfusion/qfusion/
* Rewrite AngelScript code so that we can link to system-wide
AngelScript library (I will contact qfusion upstream on this one).
* Carefully port libRocket so that we can link to system-wide libRocket.
* Add install target to CMakeLists.txt (I don't know how to do this yet)
* Get rid of all alloca() calls (I am really surprised the game doesn't
crash).
* Get rid of GNU extensions.
* Avoid using what was deprecated in C++17 standard.


warsow.tar.gz
Description: application/tar-gz


Re: New: games/warsow

2019-05-16 Thread Leonid Bobrov
On Thu, May 16, 2019 at 06:41:06PM -0400, Brian Callahan wrote:
> *Please* tell me you're going to send these patches upstream. There's a lot
> here and as you say, you're trying to get this into more than just OpenBSD
> ports, and your patches do far more than OpenBSD support.
>

Yes, I sent these patches to both upstreams.

Meanwhile Warsow's new upstream is not collaborative because I used
wallhack in the past and because more OS support "is a minor topic that
has nothing with actual challenges in the game development":
https://github.com/Warsow/qfusion/pull/40#issuecomment-492069962
(at least I got some help from that person before he banned me at his
organization)

So, I think only qfusion's upstream will accept these patches:
https://github.com/Qfusion/qfusion/pull/434
(but I doubt compatibility between qfusion and its fork intended to
continue Warsow's development)

> I'm slowly going through everything and will write back when I'm finished.
> There are definitely some things that need tweaking.
>

Yeah, I forgot to remove some CFLAGS from CMakeLists.txt when I was
sending this port. Also please don't commit this port yes, I will
fork this game's release and apply more patches if you notice something
wrong or if for some reason I fail to build it at other *BSD, then I'll
send this port again ready to be committed. And this fork will let me
avoid headaches keeping patches in sync.

> ~Brian
> 



Re: New: games/warsow

2019-05-16 Thread Brian Callahan




On 5/14/19 7:03 AM, Leonid Bobrov wrote:

Hi!

I see my dream has become true: Warsow is finally available for OpenBSD!

I wouldn't be able to do this alone, so thanks to whesun, Lyberta,
Bryan Steele, Jan Beich, Victor Luchits, dnk777, Rene Ladan, Alexey
Dokuchaev and Juan RP.

I also have to note that Warsow is abandonware, still it got new
developers, but I don't know if Warsow 2.2 will be ever released:
https://github.com/Warsow/qfusion/

I hope my patches will go to FreeBSD ports, pkgsrc and Ravenports.


*Please* tell me you're going to send these patches upstream. There's a 
lot here and as you say, you're trying to get this into more than just 
OpenBSD ports, and your patches do far more than OpenBSD support.


I'm slowly going through everything and will write back when I'm 
finished. There are definitely some things that need tweaking.


~Brian


Enjoy!

Information for inst:warsow-2.1

Comment:
futuristic, fast-paced first person shooter

Description:
Speed and movement is what Warsow is all about.

Like a true cyberathlete you jump, dash, dodge, and walljump your way
through the game. Grab power-ups before your enemy does, plant a bomb
before anyone sees you, and steal the enemy's flag before they know what
is going on!

Our goal is to offer a fast and fun competitive first-person shooter
without hard graphical violence - Warsow has no blood or guts flying
around. Red circles instead of blood indicate hits and colored triangles
replace guts as gib effects.

We put a great emphasis on extreme customazibility and e-sports
features.

Maintainer: Leonid Bobrov 

WWW: https://warsow.net/


Information for inst:warsow-data-2.1

Comment:
Warsow game data

Required by:
warsow-2.1

Description:
This package contains the data files for the Warsow client/server.

Maintainer: Leonid Bobrov 

WWW: https://warsow.net/




New: games/warsow

2019-05-14 Thread Leonid Bobrov
Hi!

I see my dream has become true: Warsow is finally available for OpenBSD!

I wouldn't be able to do this alone, so thanks to whesun, Lyberta,
Bryan Steele, Jan Beich, Victor Luchits, dnk777, Rene Ladan, Alexey
Dokuchaev and Juan RP.

I also have to note that Warsow is abandonware, still it got new
developers, but I don't know if Warsow 2.2 will be ever released:
https://github.com/Warsow/qfusion/

I hope my patches will go to FreeBSD ports, pkgsrc and Ravenports.

Enjoy!

Information for inst:warsow-2.1

Comment:
futuristic, fast-paced first person shooter

Description:
Speed and movement is what Warsow is all about.

Like a true cyberathlete you jump, dash, dodge, and walljump your way
through the game. Grab power-ups before your enemy does, plant a bomb
before anyone sees you, and steal the enemy's flag before they know what
is going on!

Our goal is to offer a fast and fun competitive first-person shooter
without hard graphical violence - Warsow has no blood or guts flying
around. Red circles instead of blood indicate hits and colored triangles
replace guts as gib effects.

We put a great emphasis on extreme customazibility and e-sports
features.

Maintainer: Leonid Bobrov 

WWW: https://warsow.net/


Information for inst:warsow-data-2.1

Comment:
Warsow game data

Required by:
warsow-2.1

Description:
This package contains the data files for the Warsow client/server.

Maintainer: Leonid Bobrov 

WWW: https://warsow.net/


warsow.tar.gz
Description: application/tar-gz


Re: NEW: games/warsow 0.42

2009-02-21 Thread Ryan Freeman
On Wed, Feb 04, 2009 at 02:26:34PM +0900, Colin Didier wrote:
 Here is a port of the FPS game Warsow. It is working on amd64 (with the
 intel driver 2.6.1) and should work on i386 too.
 
 Description:
 Warsow is a free standalone first person shooter game for Windows
 and Linux. It is based on the Qfusion 3D engine (a modification of
 the Quake 2 GPL engine), and aimed on the competitive scene, or the
 e-sports community.
 

works good on i386 here (of course) using radeon. at least, the menus
load, i can search for servers, but none let me connect :) (seems to be
a pure issue since the modules are built more recent than the ones on
all the servers perhaps) i haven't checked running my own server just
yet. 

Pure server. Restarting media...
LoadLibrary (ui.so):(Unpure file)

regards,

-ryan



Re: NEW: games/warsow 0.42

2009-02-04 Thread Jacob Meuser
On Wed, Feb 04, 2009 at 07:43:09PM +0900, Colin Didier wrote:
 Oops, I forgot to add the dependency to openal.
 
 And I also forgot to mention that the sound doesn't really work (using
 qf or openal).

http://0pointer.de/blog/projects/pulse-glitch-free.html

while it offers a good discussion of timing issues related to audio,
the conclusion that choosing optimal buffering metrics is impossible
is questionable, and the solution offered means software authors
don't really have to consider the timing issues, which means they
probably won't.  otoh, with a decent audio API, applications can
implement glitch-free playback themselves.

can't say that's necessarily what's going on here, but reading that
objectively may give some clues on what's going on with the audio
in this and other applications where the audio isn't quite right.

-- 
jake...@sdf.lonestar.org
SDF Public Access UNIX System - http://sdf.lonestar.org



NEW: games/warsow 0.42

2009-02-03 Thread Colin Didier
Here is a port of the FPS game Warsow. It is working on amd64 (with the
intel driver 2.6.1) and should work on i386 too.

Description:
Warsow is a free standalone first person shooter game for Windows
and Linux. It is based on the Qfusion 3D engine (a modification of
the Quake 2 GPL engine), and aimed on the competitive scene, or the
e-sports community.

-- 
Colin Didierhttp://cybione.org/~cdidier/


warsow.tar.gz
Description: application/tar-gz