Dash is a complete, full-stack endless runner in Java. A runner dashes down a track of lanes, jumping hurdles, sliding under barriers and dodging traffic, and a level can start side on like a platformer and swing behind the runner into 3D halfway down the track. Around the run is everything a live game needs: accounts, levels with stars, leaderboards, live races between friends with voice chat, ghosts and replays, a track editor, crews, a shop and a console for running the game. Use it to build your own game with Codename One, or to see how a Codename One app and server share one codebase.

Generate your project · Read the guide · Browse the source

In the Initializr, choose the Dash endless-runner template, set your application name and package, and generate the project. The application source is licensed under MIT-0: you can modify it, use it commercially and keep your changes private without royalties. The runners, the track and the city are built in code: there are no third-party models or textures to license.

What comes with the application?

PartIncluded workflows
The runA 3D track drawn with com.codename1.gaming and runners built and animated in code, swipe, tap and keyboard controls, power-ups, particles, and camera cues that blend between a side view, a chase view and a top-down view
Shared rulesOne deterministic Java module, with no floating point, that the app, the server, the replays and the tests all run
LeaderboardsAll-time, weekly, daily, friends and crew boards for every level, holding only runs the server played again from their input logs
RacesQuick races and parties with share links, in lockstep over WebSocket, peer-to-peer voice chat through WebRTC, text chat, emotes, spectating and replays
City runsPick two points on a street map and run the route between them: every street a stretch of track with its name overhead, every turn a corner, and the landmarks along the way beside the track
Track editorLevels painted on a timeline: obstacles, pickups, camera cues and the coach’s lines, custom pieces, instant playtests, and publishing that requires the bot to finish the level
SocialCrews with their own boards and one-tap parties, invitations, and pushes when a friend beats your score
MonetizationGem packs and outfits through the platform stores with server-side receipt checks, rewarded and interstitial ads
EngagementDaily quests, a daily dash, weekly boards, chests, levels, trophies and achievements, and a seeded field of rivals on every board
Live operationsReports, a player query, hourly engagement pipelines (pushes and gifts to a segment), broadcasts and the home-screen spotlight
AdministrationLive races, the level moderation queue, automatic and reported flags, player lookup, and audited actions, as a phone app or a desktop console

What does it look like?

The home screen A run in the chase view A city run down a real street A landmark beside the track A party lobby with chat A live race The level editor A leaderboard The admin console on a desktop

From first run to customization

  1. Run the project. The development profile needs nothing installed: an in-memory database, demo accounts and a simulated store, so you can run, race the bots, or race a second simulator straight away.
  2. Tour the game. The guide opens with what the game does, from the first level to races and the editor.
  3. Make it your own. The same guide then covers levels and their camera, new obstacles and runners, re-skinning, store products, ads, push and moderation.

What does a live game still need?

Dash supplies the game and its source. Publishing one also requires your own hosting, store products, ad units, a push key, and a TURN server for voice between players behind strict networks.

Looking for another kind of game?

Skirmish is the real-time card battler on the same architecture.