[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4787: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4789: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4790: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4791: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
InsideQC Forums • View topic - Porting ProQuake To Flash in the blink of an eye

Porting ProQuake To Flash in the blink of an eye

Discuss programming topics for the various GPL'd game engine sources.

Moderator: InsideQC Admins

Porting ProQuake To Flash in the blink of an eye

Postby Baker » Tue Dec 08, 2009 5:12 pm

Last edited by Baker on Tue Dec 08, 2009 5:48 pm, edited 1 time in total.
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Tue Dec 08, 2009 5:13 pm

User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Tue Dec 08, 2009 9:06 pm

Stage One

After messing around with countless small differences and compiler complaints and small weirdnesses of all sorts, I got it to compile.

I am annoyed it took 4 hours. I was shooting for 3 hours.

One things that speeds up porting ProQuake is that half the features can be instantly disabled by precompiler directives, which I have since I have so many builds (d3d, gl, win, osx, linux, osx software, dx8) which allows me to flip operating system specific features off quickly.

Will it run? Hmmm. My guess is not the first time, there is always something.
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Tue Dec 08, 2009 9:17 pm

It didn't run, but the more surprising thing is that it didn't run with a situation that MSVC6 wouldn't allow to happen upon compile, the missing symbol.

Not used to something compiling with that situation existing.

I'm not sure if Adobe Alchemy is allowing that or if it is gcc that permits that (I'm thinking not).

I think I have 3 or 4 of these situations. Either way I'll have to wrap this up in a few hours because I don't have time to continue right now.
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Downsider » Tue Dec 08, 2009 9:26 pm

Porting JoeQuake in a "Flash" :D
User avatar
Downsider
 
Posts: 621
Joined: Tue Sep 16, 2008 1:35 am

Postby Baker » Tue Dec 08, 2009 10:00 pm

Built and running with a couple of weirdnesses.

http://www.quake-1.com/docs/flashquake/ ... Source.rar
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Wed Dec 09, 2009 3:53 pm

I just wanted to learn about the limits and capabilities of Adobe Alchemy and Flash concerning Michael Rennie's Flash Quake port.

Flash ProQuake 4.00
Download: |

Features software ProQuake has above and beyond WinQuake without a network connection:

1. 32 MB RAM allocation instead of 8 MB.
2. A particular chasecam fix for WinQuake
3. Demo fast forward and rewind using PGUP and PGDN
4. cvarlist and cmdlist commands
5. r_viewmodeloffset (gun shifting)
6. WinQuake and DarkPlaces looking gun placement
7. pq_maxfps to cap frames per second
8. pq_drawfps 1 to show the current FPS
9. Advanced Preferences menu
10. Raised max_edicts
11. centerprint logging (like FitzQuake)
12. Anti-wallhack sv_cullentities 1
13. hunk_print command
14. time command
15. viewpos and other commands
16. writeconfig
17. Other miscellaneous bug fixes.

Observations

a. The "time" command prints 5 hours ahead of me, so apparently Flash's access to the system clock doesn't know the timezone.
b. I believe I read that Flash operates at 24 frames per second. There isn't a way to increase that it would seem.
c. The current FlashQuake doesn't have volume control, but I did notice that the sounds correct fade in the distance so I think I can eventually enable sound control via volume.
d. Apparently increasing the memory allocation from 8MB to 32MB isn't causing Flash grief. If you think of Flash as a virtual machine, other than lack of network this isn't that bad.
e. The saved config.cfg isn't available locally from session to session. Supposedly this is a feature of FlashQuake according to Michael Rennie.
f. Flash didn't mind doing the sv_cullentities 1 thing, which is enabled by default in ProQuake.

I'm going to maintain this build as part of future ProQuake 4 releases simply because it is easy to maintain --- no more work than the OS X build. Despite the lack of immediately obvious uses for FlashQuake beyond a candidate for an SDA demos viewer or the novelty of being able to use Quake via Flash, it is a very well built port.

I haven't dug into Spike's CSQC modification to see if network changes are involved, but there may be nothing preventing CSQC finding it's way into this. And regardless of whether or not the FlashQuake currently or will ever have a practical use, this was a great alternate "operating system" test port of ProQuake. I had to disable and rework a few things here and there, like for Linux and OS X.

If improved mouselook could be made for this, it would be a better port. One barrier is that WinQuake and GLQuake snag the mousepointer and continually force to the middle of the Quake window as a "hack" when DirectInput is not being used. Flash cannot do this.

Future upgrade ideas:

1. FTEQW 24 bit color software renderer
2. Exploring better mouse look
3. Sound
4. Ability to use data files outside the self-contained Flash
5. Seeing about Flash cookies to store the config.
6. Map menu
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Wed Dec 09, 2009 5:44 pm

User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Tue Dec 22, 2009 1:33 pm

A much better Flash ProQuake in the mouse control sense of the matter. Added Rennie's improvements (sound lag removal).

http://www.quake-1.com/docs/flashquake/ ... 400_v2.swf

Source: http://www.quake-1.com/docs/flashquake/ ... v2_src.rar

Probably the best way to further improve the mouse look is to completely remove the FlashQuake mouse1 behavior and let toggle console "release" the mouse --- which since FlashQuake can get ahold of the mousepointer like other engines can -- just means make it visible. Then see about making mouse1 a standard bindable command. (Some I found about ASNative .. which may make binding at least mouse 3 possible?)
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Teiman » Fri Jan 08, 2010 4:22 pm

Teiman
 
Posts: 309
Joined: Sun Jun 03, 2007 9:39 am

Postby Baker » Wed Jun 09, 2010 8:36 am

The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby gnounc » Wed Jun 09, 2010 6:43 pm

User avatar
gnounc
 
Posts: 424
Joined: Mon Apr 06, 2009 6:26 am

Postby Baker » Wed Jun 09, 2010 8:15 pm

Note mostly for self:

in_null.c
snd_dma.c
snd_mix.c
sys_null.c
Main.as
Preloader.as

These files were the ones that Rennie changed to get rid of the sound delay.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Thu Jun 10, 2010 4:51 pm

The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Thu Jun 10, 2010 5:25 pm

The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Next

Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 2 guests