Sunday, April 28, 2013
NOWHERE - Alpha 54 - Synth
NOWHERE Alpha 54 is now available for players who are preordering / alphafunding the game. As usual, you'll find the new download on your account page.
Windows, Linux and Mac OS X builds are available.
Changes:
- NEW: Full support for XBOX 360 Gamepads.
- NEW: Sound and music are back; shield absorber produces a dynamic effect (try colliding with walls).
- NEW: The menu has been simplified. A new settings menu allows to toggle fullscreen on/off.
- NEW: readme.txt contains a quickstart guide. Windows users beware: please open readme.txt in Wordpad (or any other editor), not Notepad for now. Notepad can't deal with UNIX line endings.
- NEW: A loading screen.
- NEW: Smoother transitions between menu and game.
- NEW: Logging output is always written to debuglog.txt
- FIX: On some systems, window resize events caused the game to crash.
- FIX: Shadermodel 1.30 was broken, which made the game fail with older Intel drivers.
Under The Hood:
- Support for libpd has been added to allow writing procedural audio soundtracks. libpd allows building complex synthesizer and effect DSP chains for dynamic acoustic feedback.
Known Problems:
- Fullscreen toggle: even though toggling fullscreen within the game works, some elements don't use the correct aspect or disappear. You need to quit / restart the game to make sure these artifacts are gone.
- Occasional small freezes on Linux and OSX are caused by the PyPy garbage collector. The GC can be tuned with environment variables. If you manage to get a good tweak, let us know.
- Restarting the game from the menu is broken. You need to restart the executable.
- Win32: XBOX Gamepad support is possibly broken and will be fixed in the next alpha.
- Win32: pthreadGC2.dll was missing from the release. Alpha 54b has been uploaded promptly.
Up ahead:
- Continous development on both editor and game as we move forward.
- Flesh out the colony in which the sentients will be living and create places where there's something to do.
- 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.
Monday, April 22, 2013
What NOWHERE Is Actually About
In this post, I will tell how Nowhere came about, why I think such a game is important and give you a short outline of the story, setting and gameplay (which are intertwined, as it should be). It is a temporary post that I will take offline in a month, as it contains quite a few spoilers; but I felt it is important to tell you what's going on as we need your money to be able to work on this project full time.
Until now, I discussed the story and design of Nowhere only with friends. You may have noticed that the concept of the game has changed dramatically over the course of the past year. This is due to the evolutionary design process that we follow, which goes down to the concept as well. We keep what is fun and fits the goal and change what isn't quite spot-on and has grown stale. Eventually, we had to end up at something that works. Well, in theory, at least ;-)
The idea for Nowhere (which started out as Project Ginshu, of which the moniker is a malapropism of Shulgin) ultimately needed three key ideas to come together. It started out from my desire to create a three dimensional game that confronted the player with key aesthetics and emotions of the psychedelic experience (what a lofty word, but I can't bring myself to say "acid trip") as I had witnessed it a few times in my twenties. Getting your mind blown is amazing, but if it happens only in your head, you will remain rather lonely with what you saw. Words don't do this thing justice. So in a way, most of my previous work had in one way or another circled, or shall I say spiraled around this desire to relate the impossible. Yet I had the feeling that only an interactive experience, a true trip, would begin to scratch the surface; judging by what hallucinatory marvels CGI has brought on in the past ten years, and factoring in recent technological developments such as the Oculus Rift, a curated trip should also be a lot more pleasurable. For one, you can pause it whenever you like; but more importantly, you can share the dream (or nightmare) with someone else.
But that just accounts for the aesthetics; where is the gameplay? What would the playful equivalent of these cerebral presentations be? It took an awful lot of senseless rummaging in contemporary trends until I remembered an older idea I had originally acquired while playing GTA IV, which was to turn an open world single player game into a multiplot story where every citizen of the clockwork had a persistent identity; This was in 2007. After a few prototypes and technical considerations I gave up on it because I deemed it simply too hard to do. Well, whaddayaknow. If you give up the pretense of AAA realism, an ambitious design becomes manageable by a two headed team.
YES YES OLD MAN, QUITE RIGHT, SO WHAT IS THIS ABOUT. Eh, don't shove me. I'll get right to it. I should also add that I was born 1980, the year that John Lennon was shot, so I'm not particularly old - yet. The third key influence was this peculiar book here. Someone on Twitter recommended it to me when I began to have the notion that the tides of history are procured - brought on by generational friction. Regarding historic science (and possibly a lot of other topics) I'm a quack, and I embrace that quackness. While it renders conversation with pundits impossible, it allows me to indulge in ivory tower fantasizing, and considering that the natural laws of our universe would border on the fascist were they man-made, isn't dreaming the last refuge of the downtrodden? But I digress. In a nutshell, the book presents the moods of history as a four-staged seasonal cycle that lasts about an average human life, or 80 years. Every 20 years, one of four generational archetypes sees the light of day and seeks to distinguish itself from its elders. It's a fascinating read; the idea may seem completely bonkers to fanboys of scrutiny (only a part-time club for me), but know that the authors have been advising Disney in the 90's on how to prep the upcoming Millenials for their pivotal role in the crisis we are currently in, so, like any good prophecy, this one fulfills itself rather neatly. We have all been subjected to the ideas of this book already, you could as well read it - or read this one (much more grounded, amazing stuff, quite influential on me). Or play our game. [Addendum: I remember more books I have read where inspiration went into the design, more or less: Story, The Design of Everyday Things, A Fire Upon The Deep, The Book: On the Taboo Against Knowing Who You Are, I Ching The Book of Changes, The Electric Kool-Aid Acid Test, House of Leaves, Ready Player One]
What is this now all coming down to? Here is the breakdown:
Nowhere is a procedural single player, open world, sandbox game; You incarnate as a floating sentient orb, a machine-being in a post-singularity society of vaguely self-conscious mechanical entities; for lack of a better word, I call them drones. You live the full life of that one drone in this closed ecosystem, which is represented as a giant otherworldly colony suspended in space. When you die, you reincarnate, and you live the next life, until all lives are played out. The lives you live are distributed across the equivalent of a drone's lifespan - randomly. Occasionally you meet a former self of yours, younger and older. You go back and forth in time and as every member of that society, you shape what you are as a collective. As the game progresses, you and the system become one.
Nowhere has no fixed plot line, but provides emergent goals. The player creates his own narrative. The concept is highly AI dependent. It is a "civic" sandbox game. You can go with the flow of society, obstruct it, destroy it or mold it into something else. You are going to experience the system from both sides: conservative and progressive, rich and poor, creator and inhabitant. You will pass laws and be forced to live under them. You will instigate against yourself, become a victim of your own indifference, or enjoy the rule of your state-building foresight. The game can reach one of six extreme outcomes, of which each one is honored as a unique ending to your karmic ascension.
I'm doing design and programming, my wife does concept art, texturing, co-design and play testing. Early technological work started 2011, it took another whole year to get to a sustainable idea and develop an engine around it that would help us speed up development. I estimate the first complete beta to be delivered in 2014, and the final game to be released in 2015. There's still an awful lot to do.
I think that's about it. We run an ongoing alphafunding campaign to crowdsource enough financing to be able to work on Nowhere full time; it's not a requirement for completion but it would help to speed up development time tremendously. So, please, if you love what we are working on, let others know we exist. I'll gladly answer questions and address objections in the comment section.
Thursday, April 18, 2013
NOWHERE - Alpha 53 - Survival
![]() |
| Roaming through canyons to find some energy to absorb |
Windows, Linux and Mac OS X builds are available.
Controls:
- WSADRF: accelerate forward / backward / left / right / up / down
- Space: decelerate / brake
- WSADRF+Space: maneuver mode (precise, but takes more energy)
- QE: roll left/right
- Shift: boost speed to 2x (will slow down when navigating)
- Left mouse click: interact with objects
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:
- NEW: The colony has been fleshed out. Spaces have become canyons. Textures are darker and more detailed.
- NEW: Your lifetime is now bound to your energy level. If you run out of energy, the game returns to the menu.
- NEW: You lose a small percentage of energy all the time.
- NEW: Movement costs energy. As with actual space, only acceleration, course changes and deceleration require power. Drifting at linear velocity is free.
- NEW: Colliding with the walls activates the shields and costs energy.
- NEW: Preliminary HUD displays for speed (in km/h), energy, and some other stuff ;-)
- NEW: "Spacier" movement controls (see top part of article for manual). It takes a while to get used to but feels quite natural after some time, almost like diving.
- NEW: The colony is now more elongated and slightly larger.
- FIX: Two NVIDIA related bugs have been fixed.
- Lots of dead code removed, a bunch of smaller optimizations.
Known Problems:
- 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.
- 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.
- Continous development on both editor and game as we move forward.
- Flesh out the colony in which the sentients will be living and create places where there's something to do.
- Sound!
- 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.
Sunday, April 7, 2013
NOWHERE - Alpha 51 - Colony
![]() |
| Rolling through the colony |
Windows and Linux builds are available, Mac OS X build follows soon.
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:
- Game: The "City" test map has now replaced the old "Rock" test map, and become the "Colony" test map.
- Game: The algorithm for the city generator has been vastly improved and features lush mock structures and surfaces that are early precursors to what the colony will look like. The colony is randomly generated on each launch and covers about 1600 cubic meters of ground. There is no collision code yet.
- Game: The player movement physics has been changed from movement-based to force-based and works now a lot more like a multidirectional matter exhaust drive; your vehicle accelerates up to 120 km/h. When doing hard turns or not pressing one of the directional keys (WSAD), the motor applies correctional and braking force to stay on course or bring the vehicle to a halt.
- Game: The cameras FOV has been increased from 75 to 90 degrees.
- Game: post processing shaders are back, and enabled by default.
- Game: sentients have been taken out on short notice. The code needs to be optimized further.
- Game: Fixed game not launchable on win32 if path contained spaces.
- A few smaller optimizations.
Known Problems:
- 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.
- Nvidia cards (some? all?): I got reports that at least one of the shaders does not compile correctly; As I did all work on an AMD past week I didn't notice. The problem will be fixed in the next alpha.
- 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.
- 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 colony in which the sentients will be living and create places where there's something to do.
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 |
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.
Tuesday, February 26, 2013
NOWHERE - Alpha 46 - Liminal
NOWHERE Alpha 46 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.
This release features our new in-game IDE Liminal, which is being designed with strong support for stereoscopic visualization, rapid prototyping/live coding and a low latency edit & continue working cycle. 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
- Ctrl+Tab: Release mouse control
- Ctrl+^: Switch between world / workspace controls
- (In world) WSAD Q/E R/F: navigate
- (In workspace) Shift+Slide: pan across UI
- (In workspace) Ctrl+Mousewheel: zoom UI in/out
Changes:
- First release of Liminal, our new live-coding game IDE (Windows/Linux only for now, see Known Problems below).
- Game: The menu has been re-skinned. Nothing else has changed. The game is in process of being ported to the editor, which allows us to get a better grip on the scale the project is about to reach.
Under The Hood:
- Wrote Python bindings for Awesomium, a commercial library that allows to embed Webkit-based browsers in 3D applications and games. The library has been tremendously helpful with integrating complex and responsive UI code in the editor. Liminal exposes a web server internally that the UI connects to. The bindings are MIT licensed and available at our bitbucket site.
- Wrote a new cross-platform build script that is guaranteed to perform clean from-scratch builds of NOWHERE and the Liminal game editor. The script has configurations for five of our machines (of which three are virtual), and builds a combination of our source repositories and packed archives of pre-built dependencies on a shared network location. The result is archived and put back on the fileserver for publishing.
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. I'm looking into resolving this issue ASAP.
- 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; I'm dodging the task of having to rebuild X11 just to get this).
- Linux: Last minute discovery: Double-clicking the run-script in Nautilus didn't work for me. I had to 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.
- Post processing FX have been disabled because the underlying blender game engine inspired technique performs rather badly, because it uses glCopyTexImage2D. They will be replaced with better, render-to-texture based implementations.
- Missing Feature: 3D sound. We use OpenAL but sounds are currently not attached to a location and will appear to emanate from the center of the screen.
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.
Wednesday, February 20, 2013
NOWHERE - Liminal Activities - Part 2
It's time for a development update. I've been eagerly working on Liminal in the past week, you know, the one with this logo:
It's probably best to explain everything with a screenshot, so this is how the editor looks at the moment:
The IDE is being designed with strong support for stereoscopic visualization, rapid prototyping/live coding and a low latency edit & continue working cycle. Using a 3D monitor or headset, you should be able to maintain deeply productive editing sessions over longer periods of time, without having to switch to a different program. The workflow is of course hand-tailored to my preferences, but will be User-configurable.
What you see are two distinct layers on top of each other: the world and the workspace. The world displays the actual game world, and can run in an interactive (also known as: "the running game") or introspective mode. The introspective mode is very much like Firebug or the Chrome debugger, and interacts heavily with the views opened on the workspace.
The workspace is a large 2D desktop, on which all views are hosted by draggable windows. It can be panned and zoomed, to reveal a larger portion of the data you're editing, or focus on a detail you're interested in. Each view is a Webkit control implemented by Awesomium and offers all functionality of the Chromium browser engine.
Using the classic console hotkey Ctrl+~ (Ctrl+^ on German keyboards, or whatever key is below the Escape key), you can toggle between controlling the in-game camera and interacting with the game world, or browsing and altering the game's internal structure on the workspace. As you alter node parameters or source code, the game updates accordingly. You can also write and test new node types as the game is running.
The node editor allows to glue together modules that encapsulate game logic and engine functionality, with immediate feedback. The game we are working on has a strong focus on procedural content, and this kind of work is easier to organize with a visual graph that assists to both create and understand dependencies.
The workspace also hosts a Python console through which you can also retrieve and alter editor and data model values, or quickly try out a particular idiom you would like to put in your code.
These are my current TODO's for this week:
- The source code editor is just a stub and doesn't actually work yet. There's also a file explorer-like component missing to actually load code into the editor. Therefore, finish the file manager and source code editor. Committing source code with a hotkey should immediately reload dependent resources in the game and allow you to see changes as they happen.
- Making builds is currently an annoying disruption. I need to switch to three different platforms, boot into different computers, load up different VM's, update the codebase and make packages. Usually, as code hasn't been tested on platforms for a longer time, hunting down and fixing those issues often costs hours and lowers morale. Therefore, we have to setup a build server to produce daily builds of Nowhere and Liminal for all three platforms, so it becomes less of an annoyance to prepare builds, and new deployment issues become apparent within hours.
- Once the build server stands, make a release.
Subscribe to:
Posts (Atom)









