Forum

Flash Quake Source Code and SVN

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

Moderator: InsideQC Admins

Postby Baker » Wed Dec 02, 2009 1:54 pm

Spirit wrote:According to http://www.microsoft.com/downloads/deta ... laylang=en it is "just" 300MB. I use several apps built with it on Windows so I need it. I always liked those apps so I cannot say bad things. I am very much against it generally because of the patent issues (as in Mono) of course.

If this really is the only thing keeping you from having fun with Flash Quake, I'd say "bite into the foul apple". :)


Just curious, what .NET apps do you run on Linux?

(Btw, I'm rebuilding my compile procedures step by step for my Vista machine which does have .NET on it. This inconvenience is just causing me to document my work better.)
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Spirit » Wed Dec 02, 2009 6:41 pm

Spirit wrote:I use several apps built with it on Windows so I need it.
;)
Computer Hardware Control (nice dynamic cpu clock tool)
Inssider (WLAN thing)
dunno what else

I do not have Mono installed.
Improve Quaddicted, send me a pull request: https://github.com/SpiritQuaddicted/Quaddicted-reviews
Spirit
 
Posts: 1031
Joined: Sat Nov 20, 2004 9:00 pm

Postby frag.machine » Wed Dec 02, 2009 11:19 pm

Baker wrote:It is slow and interpreted, runs only on Windows and apps using it take forever to load. That's a future that isn't what I want.


Not willing to start yet another language war and/or to put the thread off rails, but there's something not correct in your phrase above. .NET is not interpreted. That said I must make clear I am not a Microsoft fanboy (I am more a Java fanboy ;) ), and I agree with everything else about .NET being bloated and slow like molasses.
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
User avatar
frag.machine
 
Posts: 2090
Joined: Sat Nov 25, 2006 1:49 pm

Postby Baker » Thu Dec 03, 2009 3:56 am

frag.machine wrote:
Baker wrote:It is slow and interpreted, runs only on Windows and apps using it take forever to load. That's a future that isn't what I want.


Not willing to start yet another language war and/or to put the thread off rails, but there's something not correct in your phrase above. .NET is not interpreted. That said I must make clear I am not a Microsoft fanboy (I am more a Java fanboy ;) ), and I agree with everything else about .NET being bloated and slow like molasses.


Ironically, Microsoft will eventually go down in history as a company that fundamentally misread the market.

In the same way that the company they displaced in the 1990s, IBM, had misread the market in the 1980s.

IBM had a fundamental belief that mainframes would continue to be the future and that desktops would never mature and they would control that mainframe world, treating them as secondary. They tried to exploit their "monopoly"-like power in the desktop market, eventually making them irrelevant. And pursued a business model with that mindset, eventually relinquishing the market to Microsoft.

Microsoft had a fundamental belief of a desktop-centric world and ignored advances in small devices, treating them as secondary. And this shows in Vista and .NET. Vista was designed in a very application-oriented manner ("Programs and Features" in the control panel --- like people are going to be keeping CDs and DVDs around of a physical library of software to add features off a CD. Talk about unrealistic.) And .NET was their everything, thinking they could use monopoly like power to maintain a desktop monopoly. If it's slow on a desktop and gigantic, how can it be nimble enough to run on any other devices and how could they ever port it to a significantly different platform with that kind of overhead? And their web stuff doesn't even do 80% of the things that free alternatives like PHP do by default.

It's just sad to think of how magnificent their older products were (Windows XP was really incredible, so much so it was easy to take it for granted) and think of the direction they were pointing and then what they did when they got the idea they could just mandate to the market. A few times I have kind of giggled when an application written in C++ in recent Visual Studio.NET needs the user to down some Microsoft run-time library, just like a stereotypical old Visual Basic application.

Maybe I shouldn't have even more derailed the thread (it's all good, when I'm done I'm making something for the tutorial section) but I do remember in the mid-1990s that if you bought something Microsoft it was going to be far better and more organized than anything any other company put out and it was amazing.

Today it is just slop. And they try to push it on people, like putting that FireFox plug-in for .NET 3.5 involuntarily in a Windows update and the thing couldn't be uninstalled.

/End rant! At least probably!
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby r00k » Thu Dec 03, 2009 5:19 am

IBM had a fundamental belief that mainframes would continue to be the future and that desktops would never mature and they would control that mainframe world, treating them as secondary


I know I took IBM 370 mainframe programming in college :O !

Micro$oft is a follow look in the yard kinda company. If they kids are doing it then we need to sell to them kids! Apple is a company that make shit happen, yet gets overshadowed. :| Linux well they dont have a worry yet. :)
Code for linux in college, sell out to Apple, and get a job at m$ i guess that how it goes, yet i dont think Nintendo runs directx per say ;)
r00k
 
Posts: 1110
Joined: Sat Nov 13, 2004 10:39 pm

Postby ceriux » Thu Dec 03, 2009 5:38 am

the reason apple is overshadowed is because its compatible with just about nothing compared to windows. (my person belief) Windows how ever keeps just trying to spew things out hoping to make money when all they keep doing is fucking things up. when i buy a new pc im getting a copy of XP to keep on it.
User avatar
ceriux
 
Posts: 2223
Joined: Sat Sep 06, 2008 3:30 pm
Location: Indiana, USA

Postby Baker » Thu Dec 03, 2009 5:47 pm

Back on topic ...

Despite my best efforts, following the Alchemy instructions I can compile the sample Alchemy stringecho.c project and Quake.swf but neither work. The sample project creates a EchoTest.swf that doesn't show a "foo" sprite but just an unanimated blue screen and I imagine that if that isn't working, I don't stand a chance with the compiled Quake.swf failing after the loading procedure.

So I've asked for assistance with getting the sample project to compile and/or the Quake.swf in the Adobe Alchemy forums

http://forums.adobe.com/thread/534033?tstart=0

Adobe Alchemy is a fascinating project. The Windows/Cygwin instructions are "wrong" but under Mac OS X it is very easy to get setup.

But it is frustrating that the sample project in BOTH operating systems isn't working as expected.

Hopefully someone at the Adobe Alchemy forums can help.
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Thu Dec 03, 2009 6:31 pm

Actually ... I think I just compiled it successfully.

Only one way to remove all doubt ...
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Thu Dec 03, 2009 7:21 pm

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

Postby Baker » Thu Dec 03, 2009 10:50 pm

More information:

Michael Rennie's Flash Quake is a 2 part compilation process.

Stage #1: The engine [difficulty compiling = moderate]
Stage #2: Uniting the engine and the game data (single pak0.pak seems to work best) [difficulty compiling = rather trivial once setup]

Now, the engine isn't something that most people are going to mess with. Unless the idea is modding the engine. The "engine" portion is compiled into a quake.swc (think of this as the equivalent of a quake.exe).

This quake.swc "object" (not sure of the Flash technical term) is then a component in the FlashDevelop project that has what looks like a script of events and this is where the game data, the engine and whatever the script does (loading, etc.) is united into a compiled quake.swf.

Speaking of the engine source. I was shocked as to how little the source files are modified to support this. system stuff, input stuff, rendering stuff -- the usual "operating system" specific things.

But most of the rest of it is barely touched at all. I think the total changed source files was 17, which the average WinMerge differences around 6 on average with about half of them being 1 or 2 changes.
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Fri Dec 04, 2009 12:26 am

More documentation / info ....

List of files Flash Quake uses to compile ...

cd_null.c // No cd support obviously
chase.c
cl_demo.c
cl_input.c
cl_main.c
cl_parse.c
cl_tent.c
cmd.c
common.c
console.c
crc.c
cvar.c
d_edge.c
d_fill.c
d_init.c
d_modech.c
d_part.c
d_polyse.c
d_scan.c
d_sky.c
d_sprite.c
d_surf.c
d_vars.c
d_zpoint.c
draw.c
host.c
host_cmd.c
in_null.c // Should really be named in_flash.c
keys.c
mathlib.c
menu.c
model.c
net_dgrm.c
net_loop.c
net_main.c
net_none.c // no network support obviously.
net_vcr.c
nonintel.c // Because no assembly language is used
pr_cmds.c
pr_edict.c
pr_exec.c
r_aclip.c
r_alias.c
r_bsp.c
r_draw.c
r_edge.c
r_efrag.c
r_light.c
r_main.c
r_misc.c
r_part.c
r_sky.c
r_sprite.c
r_surf.c
r_vars.c
sbar.c
screen.c
snd_dma.c // sound is 44,000 khz only in Flash
snd_mem.c
snd_mix.c
sv_main.c
sv_move.c
sv_phys.c
sv_user.c
sys_null.c // should really be named sys_flash.c
vid_null.c // should really be named vid_flash.c
view.c
wad.c
world.c
zone.c


A WinMerge shot of differences (some of the files that are marked with differences, like sys_win.c, are not part of the above project):

Image

And just for reference, a shot of the project open in FlashDevelop.

Image

The bin folder is where the compiled QuakeFlash.swf is created, the embed folder is whatever you want bundled into the swf (like pak0.pak) and the "quake.swc" is the compiled "Flash engine" which is created using Cygwin on Windows or terminal in the other operating systems.

As far as I can tell, Adobe Alchemy appears to be something that is the equivalent of causing Flash to be an "X11" type of window system.
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby frag.machine » Fri Dec 04, 2009 1:43 am

Baker, I remember someone was complaining about poor performance when the menu is shown or something like that. If that's the case, I remember that WinQuake suffers from a serious performance hit while the menu is drawn because the dithering layer drawn between the scene and the menu itself. Try to comment it in the source (sorry, don't remember exactly what, but it's not hard to find out) to see if it results in better performance.
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
User avatar
frag.machine
 
Posts: 2090
Joined: Sat Nov 25, 2006 1:49 pm

Postby Baker » Fri Dec 04, 2009 2:17 am

frag.machine wrote:Baker, I remember someone was complaining about poor performance when the menu is shown or something like that. If that's the case, I remember that WinQuake suffers from a serious performance hit while the menu is drawn because the dithering layer drawn between the scene and the menu itself. Try to comment it in the source (sorry, don't remember exactly what, but it's not hard to find out) to see if it results in better performance.


Yeah that's (the dithering) rather noticeable. In the short term, I'm going to see what can be done, if anything, to raise the frame rate.

I've been thinking about the controls and the possibility of altering this from a WinQuake version to a 3D API version.

Flash 3D API candidate?

http://www.flashsandy.org/resources
http://www.streamhead.com/tutorial-gett ... shdevelop/

I probably wouldn't be planning on messing with the idea of a 3D accelerated version of Flash Quake anytime soon (6 months?) but at the moment I'm just exploring.

List of things that would make Flash Quake better:

1. Using Flash's download API instead of downloading a huge all-inclusive 8 MB flash. I'm thinking of this as an engine, not as "Quake". So if I say something like the ability to download mods like the Quake Injector, I'm not talking about breaking the license agreement but rather as the Quake engine + QuakeC as it's own platform.

2. Sound volume control. Or at least ON|OFF control.
3. A way to handle mouse movement better.
4. Ability to toggle to full-screen. Without 3D acceleration and using a software renderer this would be bad.

MH has a largely complete OpenGL to Direct3D API mechanism. Part of me wonders about a gl_flashfake.c OpenGL to Flash 3D API mechanism.

I do think something like Flash Quake has quite a long-term future as an engine because I'm not thinking of what it is, but what it could be.

It kind of blows my mind that Michael Rennie created this out the blue and looking at the source code, he really knew what he was doing and has a large amount of familiarity with how Flash works internally.
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Team Xlink » Sat Dec 05, 2009 10:14 pm

Would it be easy to make this run on flash player 6?

I don't think it would but I am still thinking of trying it.
Team Xlink
 
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

Postby Downsider » Sat Dec 05, 2009 10:36 pm

Team Xlink wrote:Would it be easy to make this run on flash player 6?

I don't think it would but I am still thinking of trying it.


LOL, if you're thinking of trying to run this on the PSP using it's Flash Player 6, which is the only thing I can think of doing with Flash Player 6, then you're fucking crazy.
User avatar
Downsider
 
Posts: 621
Joined: Tue Sep 16, 2008 1:35 am

PreviousNext

Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 1 guest