News | Forum | People | FAQ | Links | Search | Register | Log in
QuakeDroid - Quake For Android
QuakeDroid is Android Quake that should run on any Android phone made in the last 5-6 years, but has only been tested on 2 phones (one 32-bit, one 64-bit).

Designed to have controls similar to popular mobile games (/cough Minecraft). Went deep on the documentation to try to empower the user.

Does not require Quake to install, it downloads Quake shareware on startup.

* How to put your TrenchBroom/J.A.C.K map on your phone
* Where is your Quake folder?
* Difference between shareware vs. registered Quake
* Put registered Quake pak1.pak from Steam/GOG on your phone
* How to set a startup command line.

The menu has 2 methods of navigation, you can touch items like "Single Player" or manually slide the volume slider bar or use the menu nav buttons.

* Tap-fire (double tap on an Ogre to shoot it)
* Drag-look (like Minecraft)
First | Previous | Next | Last
It's been a while but IIRC getting rid of the cache system for sound is a little more work than for MDLs. Probably the least intrusive way is to just replace it with a malloc, but if you want runtime game changing that's not going to play nice. Look at Quake II's sound loading code as well; it's instructive to try port that to stock WinQuake as it has better implementations of a lot of this stuff, but yet is not too wildly different. That should then set you up nicely for implementing similar in your own engine. 
It's been a while but IIRC getting rid of the cache system for sound is a little more work than for MDLs. Probably the least intrusive way is to just replace it with a malloc, but if you want runtime game changing that's not going to play nice. Look at Quake II's sound loading code as well; it's instructive to try port that to stock WinQuake as it has better implementations of a lot of this stuff, but yet is not too wildly different. That should then set you up nicely for implementing similar in your own engine. 
QuakeDroid Update 
Download: QuakeDroid GL - skybox/fog/etc

1) Gamma slider now available (gunter)
2) Tap during demo brings up menu (mh, qmaster)
3) Possibly exit hang fixed (qmaster)

In the future, I'm going to rewrite the cache system to work around gunter post #242.

The gamma system is texture gamma, so if after releasing the slider it takes a moment for it to apply the gamma -- that is expected. It waits 0.35 seconds after you stop adjusting to apply it.

In the future, may put "Applying gamma ..." in the middle of the screen when it is doing that. 
Hm, in the Preferences you can change the aim assist to "Off" or "Quake Default." How about "Always On," meaning that Quake's traditional keyboard vertical aim assist would function regardless of if the server has disabled it....

Servers disable it because mouse aimers hate it. It actually makes it harder to aim accurately. But keyboarders could still really use it...

And yeah, I know, having it be client-side like that starts to sound like an aim bot, but I re-iterate I'm only talking about Quake's standard sv_aim feature for keyboarders, which, for the most part, just messes you up in deathmatch, but can really help keyboarders in online coop (I have been testing Quakedroid with keyboard only; aiming up and down is difficult!). 
I don't think it's going to be easy to move sv_aim to client-side - have you actually looked at how it's used, so that you can understand what you're asking for?

The sv_aim cvar is actually only used by QC; to be more specific, the QC "aim" function, which calls into the C code. There is no other entrypoint for use of sv_aim.

Rather than making it client-side, a more useful approach might be to have each player use their own version of sv_aim, so that rather than one sv_aim cvar there are 16 of them. That might work. 
Then I suppose it would have be basically a client-side aimbot that only mimicked sv_aim behavior... which is probably beyond the scope of what Baker would want to do for QuakeDroid....

Of course, touch-aiming allows easy vertical aiming, but currently touch-aiming is disabled when the keyboard is being used. 
Esoteric Request 
Who the hell plays with only a keyboard? Quake is the grandfather or mouse look games. I'd like Baker to spend his time on meaningful code. 
I should add, I am aware we're talking about QuakeDroid. But the number of ppl who will play this I general is small. The subset of ppl who will play with a controller is smaller. The number of ppl who will play with keyboard only has to be nearly non-existent. 
ignoring keyboards, autoaim is still fairly important for gamepads too.
at its most basic, all it'd need to do is to reduce non-mouse sensitivity while the crosshair is over entities flagged with U_NOLERP (aka: U_STEP), or something (the other option is to network an additional takedamage==AIM flag).

Regarding keyboard users, the view already auto-pitches according to whatever slope the player is standing on (assuming mlook is off). Pitching it towards enemies too might not be too unreasonable as sv_aim basically does exactly this already.
Note that this could actually be done fully serverside inside SV_SetIdealPitch. Keyboard users would then auto-pitch while mouse users wouldn't even notice, both would be catered to without adding any new settings - but what kind of weirdo still favours keyboard-only?!?

The other option is to add some extra userinfo setting(like name/colours) to control sv_aim on a per-client basis, but personally I'd rather the actual viewangles changed instead of just the weapons. 
For reference, in QuakeWorld if the server had autoaim set, you could opt out of that by setting "noaim 1" in your client. 
Kindle Working 
Yeah, so thanks for fixing that. 
Tried it on a Pixel 2 just now. No joy so far...

On launching I get this message:

Which then leads to:

I tried rebooting the phone, didn't help.

Then I tried manually creating and populating the Quake directory.

Made the directory here:

Put pak files in it like so:

Same result when trying to run the app.

Was just curious, so I'm not raging at the sky here, but if there's anything you want me to do to help debug this let me know. 
Ah duh, it needs an id1 subfolder. For some reason I thought I saw that this app was doing that differently. 
@brassbite, @johhny 
@brassbite: Awesome, thanks for the confirmation!

@johnny: Did you get it to work? I'm thinking you did. I'm not sure why it would work differently on that phone vs. all the other phones the various others have tried, but yeah, I care of course! 
Yup works now. Didn't auto-download pak0.pak, but worked when I put the paks in. 
Yeah ... mh and Spike's comments.

I don't want to add "bot-like" behavior and cannot control what a server uses for settings or QuakeC. 
Ok, here is a demo that shows the weird centerview behavior near the end. I don't know how long the whole demo is, but it starts out in e4m7, when I reconnected with the software version because the hardware version had just crashed with that cache error. Centerview kept working fine, until we got to e1m3 at about 18 minutes in, right as we were about to exit. But around 25 minutes into e1m3 there are some good examples of me testing it and saying when I was pressing the button, then I'd wait, and then my view would be centered like 15 seconds later without me touching anything. I'm not positive I was tapping the correct button a few times before that when it didn't seem to be working at all (small android keyboard) but the other guy on the server experienced the same issue at the same time I did. 
Oh yeah, additionally, I find that gl_overbright 0 causes things like doors and ammo boxes to... uh... get extremely blurry to the point where it looks like they are textureless. 
Demo acquired.

saying when I was pressing the button


This one has my curiosity. I don't know how long it will take to develop some sort of plan, but an interesting bug and what should be enough evidence to trap it, is kind of like a 4D Rubik's cube. 
With pq_moveup 1 set, if you go in the water (I was in waist-deep) and tap jump, you just keep furiously bobbing even after you release jump. It only stops if you actually tap a +moveup key.

In android, r_bloom 1 causes a huge black square to appear and take up almost half my screen. Yeah, I know: experimental feature in development?

gl_flashblend 1 is causing many things to appear with a blue lightball instead of orange.... Watch the start demo and see the ogres and scrags glowing blue.

Tapping the power button on android (normally this would cause the screen to go to sleep) kills QuakeDroid and HARD NUKES all configs. It even erased my name, colors, and social security number. All default controls were set to ??? (nothing), and I had to delete the config.cfg file to even get those back.

I should start holding all my bug reports for ransom.... "Deliver OGG support to the dumpster outside of the Slipgate Complex, or you'll never see your precious bugs again!!" >:D 


Uhhh, In the Mark V thread, Baker said:

Gunter, I just want to point out that it is impossible to play ogg on Android or an iPhone (without unacceptably chewing up metric shit tons of CPU -- hence the frames per second would be absolute trash --- because it is an obscure format and hence does not have hardware decoding in the processor)

Soooo, I just happened to be browsing the File Explorer on my Android device, and in the "Recent" section, imagine my surprise when I found (because I had been adjusting my alert sound): "hangouts_message.ogg"

I tap that and it opens right up in a Google Play Music popup right there on my screen....

So... yeah... it seems Android is FULLY CAPABLE OF PLAYING OGG FORMAT, and at least one Google app includes sound effects in OGG format....


Just Saying....

I guess it remains to be seen if it would actually affect the frame rate, but it seems that QuakeDroid does not yet include any music support anyway -- at least I can't get it to play the MP3s.

Though with Google having OGG support built in and used in some of its major apps on Android... I'd suspect it would not be a CPU-killing format on Android... otherwise... why did Google chose to use such an "obscure" format? 
Since This Is A Good Place For Quake For Android Questions.... 
Quake For Android [EDIT]
Posted by Reyond on 2018/05/29 21:29:46
Hello. I have a question about running my quake mod on android devices. Of course, I can launch quake on android using qi4a port. After that I can replace original ID1 folder with my one.

But what should I do if I decide to distribute my game? How can I add my quake mod to Google play? Is it possible to make .apk file with my mod?

#1 posted by Spike on 2018/05/29 22:01:04 spam
Depends on the engine as to whether it already works. I implemented it into FTE, where it was really handy for touchscreen widgets etc, so maybe it'll work in qi4a(aka dp) already - check the path command to see.

apks and pk3s are basically the same thing so the bulk of the code is already there. Just remember that if you're nesting pk3s or paks inside an apk then be sure to NOT use compression when adding that file to your apk, otherwise seeking gets expensive. This is no great loss - other files can still be compressed, and any files inside the pk3 will still be compressed, just avoid paks).

#2 posted by Reyond on 2018/05/29 23:47:38 spam
Thanks for respond! I will try to do that with Qi4a. However, fte engine is my favorite quake-based engine but it has complicated and not really handy controls. I would like to use fte if it had handy control system. For instance I like how it is made in quake touch

#3 posted by Reyond on 2018/05/30 02:21:40 spam
Also, in FTE port movement buttons and rotating does not work at one time.

#4 posted by anonymous user on 2018/05/30 04:42:05 spam
"QI4A is broken for good I'm afraid. I know this because I had to fix the issue it has in order for QVR (Quake VR) to work correctly. Basically the problem is Android 5 introduced some security checking on calls to snprintf, which means a null string is returned if it detects invalid characters in the input string. As Darkplaces uses certain characters in its netcomms code, it is failing on starting the game on Android 5 and above and is unable to go any further." 
So, I acquired a USB OTG cable from ebay for under $1 (great option as long as you don't mind ordering directly from China and waiting weeks for it to arrive... and I'm a cheapo who hasn't upgraded his WinXP netbook, so that works for me!).

I hooked up a USB mouse, in an attempt to make my teeny tiny Quake device ( ) as much like a teeny tiny PC as possible.

Well, mouse control obviously hasn't been considered in QuakeDroid, but it does function at a system level in Android (just like OGG decoding! XD ), and shows a mouse cursor on the screen.

It thinks my screen on QuakeDroid is rotated 90 degrees to the left though (same with the softkeys being along the right side of the screen), so when I move the mouse up, it moves left on the screen, moving the mouse right moves the cursor up, etc.

It acts as a "touch" rather than functioning as actual mouse1 or other mouse motions. If I hold down mouse1, then I can "drag" the screen around just like with touch aiming. Double-clicking makes it fire, and I can click through the menus (sideways...).

And if I use the mouse cursor to press any of the onscreen controls, it activates that control, just like a touch.

So actual mouse controls might be viable, assuming the mouse can be separated from touch controls. But I'm not sure how possible that is.... 
I have never seen any app for android, where the mouse does more than stay a cursor. Mouse is probably not supported in a way that would enable FPS Gaming.
Though in PUBG Mobile, there are people ”hacking“ which means Android emulator users from Windows using Keyboard and Mouse. Those are not supported by the actual game and are very unfair for other players. 
relative motion requires android 7.0, and even then I've no idea how to hide the cursor itself.
android just wasn't made for mice... 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.