Monday, March 25, 2013

NOWHERE - Alpha 50 - Prim City

Behold, the feeble beginnings of what is one day going to become a procedural floating city
NOWHERE Alpha 50 is now available for players who are preordering / alphafunding the game. As usual, you'll find the new download on your account page.

Windows, Mac OS X and Linux builds are available.

Windows and Linux users also have access to our in-game IDE called "Liminal". See this and this blog post for more details. The editor is young and relatively limited, but can be toyed with a little already. Here are the most important hotkeys:
- F12: Exit immediately (also works in the regular game)
- F1: Toggle between IDE / Game
- (In workspace) Middle Mouse Button+Drag: pan across UI
- (In workspace) Ctrl+Mousewheel: zoom UI in/out

Changes:

- IDE: Script editor. Double-click any Python file or shader in the project, edit and save with Ctrl+S. Wherever possible, game objects and shaders will update immediately on the fly.
- IDE: Python prompt. The special "lim" object gives you access to a few important top level objects.
- IDE: Python VM inspector. Type "lim.inspect(any_obj)" to open an inspector UI.
- IDE: PyDoc browser. See "lim.pydoc()".
- Menu: "Client" menu point has been split up in the existing "Rock" and the new "City" test maps.
- Game: New "City" test map. The city (which is just a 4x4x4 block of boxes, actually) is randomly assembled every launch by a very primitive Wang Tiles algorithm.
- Game: "Rock" test map uses an alternative, more rectangular approach to rock generation.
- Game: Drones/Sentients spawned in both test maps now prefer building axis aligned pathways over random directions. This is in preparation of the street canal building.

Under The Hood:

- A few smaller optimizations.
- Removed the Blender Game Engine compatibility layer, as we're moving more towards working with the in-game IDE; added the ability to translate blend-files on the fly.
- Published glue.py, a collection of language extensions for Python often used across the code base.

Known Problems:

- OSX: The game is currently not deployed within an .app folder yet. You'll need to launch the run-nowhere script from the root folder of the unpacked archive instead. Double-clicking works.
- OSX: No Liminal editor yet, due to a fairly messy situation where PyPy stock builds are 64-bit, but Awesomium which Liminal depends on is 32-bit, thus rendering both components incompatible to each other. As long as PyPy offers no 32-bit macosx builds and Awesomium sticks to 64-bit, this issue can not be resolved.
- Linux: On dual monitor setups, the engine may not recognize the screen resolution correctly. The launcher script explicitly starts the game in a 1280x720 window for now. (a problem caused by SDL missing a X11 feature on the older 32-bit Debian machine I have to use for building; this has low priority for now).
- Linux: If double-clicking the run-script in Nautilus does not work, launch the script from the terminal (./run-nowhere, ./run-liminal).
- Linux: The build is for 32-bit systems. Some 64-bit platforms do not provide 32-bit support libraries out of the box. 64-bit Ubuntu e.g. requires the ia32-libs package to be installed, which is part of the official repository. Other distros may require additional libraries.

Up ahead:

- Continous development on both editor and game as we move forward.
- Drive the backstory forward and rearrange the gameplay around our new terrain techniques, starting with populating our space with the sentient swarm AI. The sentients are not hostile, but they inhabit the world, and interaction with them is a key element of the gameplay.
- Flesh out the city in which the sentients will be living and create places where there's something to do.