User Tools

Site Tools



for free! 9th Aug'09, v1.7.1 now available on the AppStore.

multiplayer: “different protocol”, no servers - this port is intended as a technology demo, and v1.7 is incompatible with the standard server. We hope to eventually release the server as a desktop application or as built-in to the next iPhone version

I'm one of the part-time developers of the Sauerbraten (Cube 2) fps, and while I sorely wanted to port Sauerbraten, I've decided to compromise and instead port the original Cube.

The features of this port are that everything has been ported to the iphone (including networking and editing - though there is no practical interface to use it) and that all the content of the desktop version (Cube 'final' of August 2005) is available.

The objective of this little project are:

  • To make Cube available to more people (which hopefully will make them look at Sauerbraten)
  • Making some of the code modifications open and available for other projects to build upon
  • For me to gain more experience with iphone porting and performance issues

Game Play Video


v1.7.1 - 9 Aug 2009

  • ### Current version available from AppStore ###
  • Performance enhancements
    • More efficient model rendering
    • More beautiful and efficient geometry rendering (now uses lightmaps)
    • Slightly more efficient geometry creation/culling
    • Slightly more efficient collision checking
  • Usability enhancements
    • Movement control is variable based on tilt rather than simply go/stop
    • Better font
    • Fisheye style menu
  • Bonus features
    • Blob shadows
    • Glow maps (automatically generated by textures with “lig”/“lit” in their name)
    • Weapon “flares”
  • Bug fixes
    • Invalid textures resulting in crash
    • Better memory management of textures

v1.6 - 17 Jan 2009

  • Cube Source Code is available
  • Multiplayer support requires downloading and compiling the standard Cube source, and then running a server from the desktop
  • fixed so can select rifle
  • fixed bug so /lightmap actually works
  • added /screenflip command to rotate the screen 180 degrees

v1.5 - 12 Jan 2009

  • Overlay indicators for touch areas
  • Indicator for current tilt amount (/showtilt 0 - to disable)
  • Menu to change music/sound levels

v1.4 - 18 Dec 2008

  • Finally have decided on a working (i.e. more usable) control scheme
  • Can now just touch menu items
  • Performance tweaks to model rendering
  • Located fatal error when using gamespeed command

v1.3 - 3 Dec 2008

  • Experimental changes sometimes give a respectable performance increase (18fps up from 12fps)
  • Located fatal error in server code that caused lockup behavior
  • Implemented 3 different control schemes - but proving very hard to get something playable

v1.2 - 11 Nov 2008

  • Compressed majority of textures so that they load faster and take far less memory (approx 1/8th)
  • Eliminated low memory warning?
  • Smaller overall size for download

v1.1 - 3 Nov 2008

  • Fixed minor bug in text rendering
  • Tweaked performance a little
  • Fixed issues with keyboard and console orientation
  • Added wireframe/lightmap modes to aid performance debugging
  • Pause during phone calls
  • Finally found a workaround for the Apple accelerometer bug

v1.0 - 2 Oct 2008

  • Show UIAlertView if accelerometer doesn't seem to be working
  • Fixed serverbrowser crash issues (via sauerbraten version of code)

v0.7 - 1 Oct 2008

  • Fixed issue with all the debug messages coming from Apple music lib
  • Disabled stdout so console messages won't flood the system log
  • Decoupled touch handling from frame update to improve usability
  • Fixed crash when missing texture
  • Added UITextField popup so can enter console commands
  • Added UIAlertView for fatal messages
  • Discovered iphone file system is case sensitive - renamed all assets to lowercase

v0.6 - 30 Sep 2008

  • Loading screen shows where/how to touch on the screen
  • Fixed touch area placement
  • Added mesh optimization for models

v0.5 - 29 Sep 2008

  • Added openAL support so as to replace SDL_mixer (but no ogg support for music)
  • Removed 'quit' button from menu
  • Minor 'mod' so that can open URL from menu for Aard's homepage
  • Saves config when quit app via iphone button
  • Converted title track ogg files into mp3 (to work around lack of ogg support)
  • Fixed bug where couldn't run and jump at same time
  • Good performance boosts by using VBOs for models (as we don't have display lists)

v0.4 - 28 Sep 2008

  • Improved “Loading…” messages
  • Fixed iphone specific hacks regarding file access and saving
  • Designed suitable icon
  • Re-enabled all of editing code - no one will ever use it on the iphone, but it works
  • Implemented SDL thread code enough to make server browser work

v0.3 - 27 Sep 2008

  • Fixed issues with screen rotation aspect ratio
  • Eliminated image loading bugs so it now stretches npot textures to fit and limits texture size
  • Tweaked accelerometer behaviour so that 'mouse-look' feels more natural
  • Optimised model rendering code for static frames/models
  • Added 'mod' code that builds the font texture using CoreGraphics instead of using an image, i.e. use Apple fonts
  • Utilised Carbon runloops and and added hooks to monitor when loading textures/models, then shows a “Loading…” text label on top of the opengl context

v0.2 - 26 Sep 2008

  • Rotated screen 90 degrees
  • Added basic accelerometer and touch support so can at least move around and access menus
  • Announced intentions on sauerbraten forum

v0.1 - 25 Sep 2008

  • Modify desktop codebase to remove all intermediate openGL calls
  • Disabled editcursor rendering - not needed at the moment
  • Remove SDL_mixer dependencies (replaced with stubs for now - so no sound in short term)
  • Remove SDL_image dependencies, replaced with CoreImage code
  • Replaced SDL thread code with stubs - only used for networking anyway
  • Add #ifdef IPPHONE so as to have dual compilation paths - remove remaining SDL dependencies within iphone path
  • Added to basic iphone project

Gave a brief demo at local Mac developer meeting this evening.

Known Issues

  • Multiplayer “Update from server” option freezes the device for several minutes - so don't do that!
  • Fix clicking that occurs at the end of playing a sound sample
  • Low memory warning
  • Performance…
  • Multiplayer: “different protocol”, no servers - this port is intended as a technology demo. You can download the standard Cube source, compile, and then run a server from the desktop if you need. IMHO you'd just be walked over and wasted if you tried to play against normal desktop clients because of the lower fps and less control you have on the iphone


Will it stay free / why is it free?

Cube is open source, and while the engine could be used in a paying game, all the content is with different licenses and is care of members of the Cube community. The idea of making people pay for this port was never considered, and I certainly don't want to detract from or disgruntle fellow members of the Cube community either. I do admit to considering putting a donate button on this web page - but that is against the spirit too. (I'VE GOT ENOUGH FAN MAIL ABOUT IT BEING FREE - THANK YOU…)

Why are the controls so terrible?

Hopefully v1.5 will make people happier. It's a big change, and some people will complain about change, but we believe the new controls are easier - plus we now provide strafe and backward movement, more consistent weapon changing, and an easier to use menu.

How can I stop the horrendous music?

v1.5 provides a new menu 'sound..' off the main menu, alternatively you can use the /soundvol, or /musicvol commands.

Can you change XXX in the gameplay or content?

This is a port and so the objective is to preserve the original Cube gameplay and content as much as possible.

iphone/cube/start.txt · Last modified: 2009/08/11 17:05 by robert

©fernLightning 2014 Recent changes RSS feed Powered by PHP Made on a Mac Valid XHTML 1.0 Valid CSS Terms Of Use/Privacy/Credits