Skip to content

Releases: roge-rm/ScorchDroid

ScorchDroid 1.2.2

Choose a tag to compare

@roge-rm roge-rm released this 01 Oct 00:12

Small fixes, and the Original aim sight finally looks like the real thing.

Fixed

  • Name plates stay by their tank when you zoom in close.
  • Browser console no longer shows stray hosting errors during solo games.

Changed

  • Original aim sight now looks like Scorched3D's, with its real textures, and starts at the gun's muzzle.
  • Default aim sight starts at the gun too.
  • Browser play only downloads the Apocalypse mod when you play it, so the first load is about 37MB.

Installs over 1.2.1, same signing key.

ScorchDroid 1.2.1

Choose a tag to compare

@roge-rm roge-rm released this 30 Sep 13:25

Keyboard controls, in the browser and on phones with a keyboard, and you can change them.

New

  • Keyboard controls. The same keys as Scorched3D. The arrows turn and raise the barrel, + and - (or Page Up and Page Down) change the power, and Space fires. Hold Shift to aim slower, Ctrl to aim faster, or both to aim very slowly. Tab changes weapon, d, p and b use your shield, parachutes and battery, 1 to 4 and 9 switch camera views, t opens chat, s shows the scores and Esc leaves the game. The full list is in the README.
  • Change the keys. Settings, then Controls, then Customize keys. Tap an action and press the key you want for it. If another action had that key, it moves over. Reset puts them all back.
  • Invert up/down keys, also under Controls. Up raises the barrel by default. Turn this on if you want it the other way round.

Installs over 1.2.0, same signing key. If you got the first 1.2.1 (it had the keys but no way to change them), this one installs over it too.

ScorchDroid 1.2.0

Choose a tag to compare

@roge-rm roge-rm released this 30 Sep 03:47

You can play ScorchDroid in a browser now, and browser players can play in the same games as phone players.

New

  • Play in a browser. It's the same game with the same menus, at roge-rm.gitlab.io/play/scorchdroid. Play solo against bots, or join a server. It needs a recent browser with WebGL 2, and the first load is about 45MB.
  • Browsers on the dedicated server. The server's web page has the game at /play/, so on your own network that's http://<server>:8080/play/. Browser players join the same games as phones. Rebuild the containers with docker compose up -d --build to get it, and see the server guide for the details.

Changed

  • The menus, HUD and game logic are now shared between the app and the browser version. Nothing should look or play any differently, but it's a big change under the hood, so let me know if something's off.
  • Canadian spelling in the in-game text (colour, centre, defence and so on).
  • The README has an Installing section that points at the F-Droid repo.

Installs over 1.1.x, same signing key.

ScorchDroid 1.1.1

Choose a tag to compare

@roge-rm roge-rm released this 24 Sep 02:14

Rewrote all the in-game text so it's shorter and easier to read. Nothing about how the game plays has changed.

Changed

  • All the in-game text has been rewritten. Menus, settings, the tutorial, game setup, dialogs, status messages, the multiplayer help and the connection errors are all shorter and plainer now. The graphics settings say what they do instead of how they work, "moves" are "turns" everywhere, and the setup screen calls landscapes "maps" and computer players "bots". Scorched3D's own text (weapon descriptions, game options, announcements) hasn't changed.
  • The About screen and README credit the port to Dan Hunke, and the About screen has a proper copyright line for the port next to Scorched3D's.
  • The README has been rewritten to match.

Installs over 1.1.0, same signing key.

ScorchDroid 1.1.0

Choose a tag to compare

@roge-rm roge-rm released this 20 Sep 16:35

A dedicated server you can leave running on a spare machine, and three fixes to chat in a network game.

New

  • A dedicated server. The same engine the phone runs, built without SDL or OpenAL, so ScorchDroid clients and desktop Scorched3D 44.3 clients both connect to it as they would to any other Scorched3D server. Two containers, one command. Phones on the same network find it by themselves, with no address to type.

  • A browser admin page beside it: every setting the engine defines, with upstream's own descriptions, bounds and validation rather than a hand-written subset; the connected players with kick, ban, mute, slap, take-their-money and kill; new round, kill all tanks and add a bot; and the live log and chat. It owns no game state, so restarting it does not disturb the game.

  • Nothing to clone to run one. The compose file builds straight from the repository, so setting a server up is downloading one file, putting an ADMIN_PASSWORD beside it and starting it:

    curl -O https://raw.githubusercontent.com/roge-rm/ScorchDroid/master/dedicated-server/docker-compose.yml
    echo 'ADMIN_PASSWORD=pick-something' > .env
    docker compose up -d --build
    
  • Documentation for running one — setup, configuration, bridge networking for Docker Desktop, mods, updating, backups and troubleshooting — in dedicated-server/README.md.

  • A Discord for questions, help running a server, bug reports and arranging a game: https://discord.gg/9Wun47jGC6

Changed

  • The server speaks under its own name. A message from the admin page used to arrive labelled localaccount, which is what upstream calls its local account. It now carries the server's own name, which is what players know it by.
  • Built with Android Gradle plugin 9.4.1.

Fixed

  • Your own chat message appeared twice as a client in a network game. The line was shown the moment you sent it and again when the host echoed it back. The host's copy is the one kept — it is also the filtered one every other player is shown.
  • A bot's taunt appeared twice, the second time with no name against it. A joined client replays the action that raises a taunt, so it was adding its own nameless copy beside the host's.
  • A message from the server admin arrived with nobody's name on it. An admin has no tank, so the name has to come from the message's own admin field, which the client never read.

Installs over 1.0.x — same signing key.

ScorchDroid 1.0.1

Choose a tag to compare

@roge-rm roge-rm released this 19 Sep 22:56

A rendering fix for the landscapes that rain or snow, found while taking the 1.0 screenshots.

Fixed

  • Rain and snow drew as hard dark squares across the sky on any landscape using the snow or storm texture sets. The particle pass was fogging them, which Scorched3D does not: its fog is switched on around the targets alone and off again afterwards, so its rain and snow are drawn unfogged. A flake is 0.2 units across, so the whole quad ends up one flat colour - and on a landscape whose fog is dark grey, that colour is a dark square. Precipitation is drawn unfogged now, and looks like the pale specks it should.

Also in this build: the README's screenshots come from 1.0 rather than 0.9.2, so they show the tank arrows, the name plates as the renderer draws them, and the rest of the scene work that landed for 1.0.

Installs over 1.0.0 - same signing key.

ScorchDroid 1.0.0

Choose a tag to compare

@roge-rm roge-rm released this 19 Sep 20:48

Every subsystem has now been reviewed against Scorched3D feature by feature - the ground, the water, the wind, the whole 3D scene, the client layer and the audio - and what those reviews turned up is either built or written down as a deliberate departure. The reviews live in docs/.

New

  • The mini map, with the terrain, every tank and the camera's own arrow. Double tap it for a proper look, and draw on the enlarged one - the lines cross to other players as upstream's ComsLinesMessage, in the sender's tank colour, and fade after three seconds the way upstream's do.
  • Save and load games. Save any game this device hosts, from More actions; pick it up later from Single Player, or from Multiplayer to host it again for other people - over Wi-Fi or Bluetooth, asked after you choose the save. Saves are listed newest first with a bin beside each one.
  • Gift money, from the Shop where Scorched3D keeps it - its own amounts, its own rules about who is eligible.
  • Skip all moves, for when you have to walk away: each of your turns then passes itself after a five-second countdown you can cancel.
  • The tank card. Hold a tank's name plate for its life, shield, lives, score, skill and rank - the same lines Scorched3D shows when you rest the mouse on a tank.
  • The sound every shell makes in flight. Scorched3D hums through nearly every projectile and this port was silent for all of them; the hum now follows each shell, rises as it comes at you and falls as it goes away.
  • Stereo. Every sound is placed left and right against the camera, not just made quieter with distance.
  • Upstream's scene, finished: the laser as a beam with volume and its rings, shield meshes with spirals on a magnetic one, two layers of cloud on a sky dome, the arena wall's grid and the splash where a shot hits it, Scorched3D's own arrow over each tank, and camera shake from the four weapons that ask for it.
  • New switches in Settings: tank info, countdown beeps, message sound and the turn cue.

Changed

  • Name plates, arrows and health bars are drawn by the renderer now, in the same frame the tanks are projected - they keep up with the camera instead of stepping along behind it.
  • A tap aims, however long you hold it. The tank card costs a hold on the plate rather than a tap, so aiming at someone is never a question about them.
  • The Shop's Close button sits bottom right, with Gift money beside it.
  • Recoil was built, measured and taken back out: Scorched3D's own recoil moves nothing the player can see.

Fixed

  • Name plates lagged behind the view when the camera turned - they were read ten times a second while the scene drew at sixty.
  • A loaded game played on Scorched3D's blank startup landscape: real hills under a black ground.
  • A loaded game published nothing, so nobody could join one - and Load Game was missing from Multiplayer entirely.
  • A drag on the mini map half-drew a line that went nowhere.
  • The ground texture could latch onto an attempt made before the landscape existed.

Installs over 0.9.x - same signing key.

ScorchDroid 0.9.2

ScorchDroid 0.9.2 Pre-release
Pre-release

Choose a tag to compare

@roge-rm roge-rm released this 12 Sep 19:31

A privacy fix, and a tutorial that describes the controls this version actually has.

Fixed

  • A single-player game no longer advertises itself. It was registering an NSD service on the network and forming a Wi-Fi Direct group — which holds the radio, can keep the device off its normal Wi-Fi, and announces a solo game to anyone looking. Every game on this port runs a server, because there is one engine and it is always the host, but that is an implementation detail and is no longer treated as permission to publish. The listening socket stays open, so a solo game can still be joined by someone told the address by hand — it just isn't announced to the room.
  • The HUD no longer spends a line on your own IP address in a solo game, and the Wi-Fi Direct status messages no longer fire there. One of them is how this was found: "No Wi-Fi Direct: the nearby devices permission was refused" greeted the player over the tutorial's opening card.

Changed

  • The tutorial teaches 0.9.1's controls. It still described separate weapon and FIRE buttons; there is now one wide bar that names its weapon, tapped to fire and held to change weapon. A new step covers the hold, which is the one control in the game that announces itself to nobody.
  • Its slider step stopped lying by omission. It named the two aiming sliders by their readouts, but a readout only appears while the slider is moving — so at the moment the card is on screen, neither slider reads anything. Two of the three sliders read degrees in any case. It now says how to tell them apart: drag one and watch.
  • README corrections. Desktop cross-play now has a test guarding its two foundations (the protocol strings and the mod manifest), the suite is 413 checks rather than "over 200", the client/host join runs twice — over TCP and over a socket pair through the same bridge Bluetooth uses — and there are twenty-three patches, not eighteen.

Notes

413 host-test checks pass. The solo/hosting split was verified as an A/B inside one process on an API 34 emulator: a single-player game logs nothing from either LanDiscovery or WifiDirectTransport, while a Host Game started from that same process logs addLocalService succeeded, createGroup succeeded and Registered LAN service.

Signed with the same key as every release since 0.5.0 (b9ae6490…3bafbb), so it installs over a previous one.

ScorchDroid 0.9.1

ScorchDroid 0.9.1 Pre-release
Pre-release

Choose a tag to compare

@roge-rm roge-rm released this 12 Sep 17:43

The sea has been reflecting the wrong thing on every map since reflections landed, the fire button is now one bar that both fires and picks the weapon, and every action the engine can refuse now says so instead of doing nothing.

Changed

  • One bar fires and picks the weapon. A tap sends the shot, a hold opens the weapon list, and the bar turns red with an hourglass at each end once the shot is in. It is as wide as the row of icons beneath it and its centre no longer moves — it used to slide sideways with the length of the weapon's name, which is a poor habit in the most-pressed control in the game.
  • The bottom of the screen regroups. The overflow button sits in the middle of the icon row with a gap either side, so undo and skip read as one group and defences and the shop as another; "Done buying" is out on the far right where it cannot shove the others about when the buying phase starts and ends. The aim slider is part of that strip now rather than a separate thing positioned to clear it, which also means it finally fades with the opacity setting like everything else.
  • Controls default to 80% opacity, so there is more battlefield behind them. The slider still reaches 100%, and the number it shows is the one actually applied.
  • The hosting status is one line. It was up to five wrapped lines across the battlefield; what it says now is the address, because that is the part worth reading out to someone. The rest — whether Wi-Fi Direct came up, and why not — is said once when the game starts.
  • "All" on the map list toggles. Pressing it when everything is already selected clears the ticks, so picking two maps no longer means untapping the other twenty.

Fixed

  • Water reflections were being sampled from outside their own buffer. Upstream's virtual-plane trick drops the lookup twelve world units, which is a couple of pixels at three hundred units away and most of the screen at three — and this port's camera sits at sea level where upstream's never does. Past the edge, the texture repeats its border pixel: pale on a light-sky map, where it passes for haze, and black on a dark one, where the sea turns to near-black with a violent specular sparkle over it. The drop now fades with distance. This affected every map.
  • The sea read a mip level that does not exist at Water detail Low or Medium. That is undefined behaviour, and the texture in question supplies vertex positions.
  • Actions the engine refuses now say so. Fire, Skip, Resign, done-buying, selecting a weapon, raising a shield, lowering one, using a battery and tap-to-aim could each do nothing at all, indistinguishable from the tap not registering. Fire distinguishes the three reasons it can refuse. The one message that did exist, for a failed chat send, was written to a line the tick loop overwrites ten times a second, so it had never once been seen.
  • A typed address with no port closed the dialog and returned to the menu without a word. It uses 27270 now, which is what a Scorched3D host listens on, and the status line names the port it dialled.

Also

It turns out this port can join a desktop Scorched3D server and play alongside PC clients — enter the server's address under Join Game. That was never a goal and nothing was done to achieve it: the port compiles upstream's own protocol code and ships upstream's own data, so the handshake and the mod checksums simply match. It holds only while both sides agree on Scorched3D's version and protocol, so there is now a test that fails the moment either moves.

Installs over 0.9.x — same signing key.

ScorchDroid 0.9.0

ScorchDroid 0.9.0 Pre-release
Pre-release

Choose a tag to compare

@roge-rm roge-rm released this 12 Sep 01:06

Multiplayer stopped needing a network. Two phones side by side can now play with every radio but Bluetooth switched off — and Wi-Fi Direct, which shipped in 0.7.3 and had never actually worked on hardware, does.

New

  • Play over Bluetooth. "Host over Bluetooth" and "Join over Bluetooth" on the multiplayer menu: no router, no hotspot, no Wi-Fi at all, and no Google Play Services. Underneath it is a real Scorched3D network interface over an abstract transport, so the engine cannot tell Bluetooth from a socket — the whole join handshake, the 1130-file mod check included, is exercised over a socket pair in the test suite before a radio is involved. Tested on two phones, paired and unpaired, in both directions.
  • Bluetooth gets its own search, rather than a third row in "Find Games". A Bluetooth scan cannot be narrowed to devices running the game, so it lists every speaker, headset and car in range — which buried the two phones it exists for.

Changed

  • Skipping locks the Fire button, as firing does. A skip is a committed move like any other, and it was the one move that looked like nothing had happened.
  • The status text shares the top row with the buttons instead of running underneath them. It takes whatever width the buttons leave, so it stays right on any screen shape and however many buttons that player has.
  • Hosting and searching say what is actually true. A Bluetooth host reports whether other devices can genuinely find it, not merely that it asked to be findable; a search names any radio that sat it out and why; refusing the visibility prompt now offers the choice it implies rather than silently hosting a game only paired devices can join.

Fixed

  • Wi-Fi Direct finds games. Three separate faults: the service request asked the supplicant to match a type, which several stacks answer with nothing; peer discovery was never started, so neither device answered the other's probes; and a device that owns a group cannot join another one — two phones that had each hosted sat inviting each other until both gave up.
  • Unpaired Bluetooth discovery. Every found-device broadcast was being dropped: the Bluetooth stack has been its own module with its own user id since Android 12, and the receiver was registered for same-app broadcasts only. The radio scanned perfectly and the game was never told.
  • The Fire button unlocked itself a tick after firing on a joined device, so a committed shot looked like it had not registered. It waits for the host to grant a new move now, rather than for the old one to be cleared.
  • The sea read a mip level it does not have at Water detail Low or Medium. That is undefined behaviour, and the texture in question supplies vertex positions.
  • A game whose other end vanished left its Bluetooth link open, because the teardown was gated on a thread that had already stopped.

Installs over 0.8.x — same signing key.