procedural content generation – the megastructure development blog http://blog.megastructure.org tracking construction of megaprojects Sun, 23 Dec 2018 15:54:33 +0000 en-US hourly 1 https://wordpress.org/?v=5.0.2 Elevated – v1.88 http://blog.megastructure.org/2009/11/elevated-v1-88/ Fri, 13 Nov 2009 09:10:27 +0000 http://blog.megastructure.org/?p=155 After starting year 2 of physics at TAU, it’s been hard to find time for anything other than schoolwork or zoning out. It’s been more than a month since last code update, and not much has improved. Elevators are now usable, complete with internal colliding surfaces. Most of the development has been trying to fix bizarre stability issues as they arise; I’m not sure they have been addressed properly. Please let me know if this version crashes.

As always: get the latest version from the Megastrata information and download page.

]]>
screenshot smorgasbord, elevators http://blog.megastructure.org/2009/10/screenshot-smorgasbord-elevators/ http://blog.megastructure.org/2009/10/screenshot-smorgasbord-elevators/#comments Sun, 18 Oct 2009 21:54:13 +0000 http://blog.megastructure.org/?p=135 Slowly but surely, scriptable objects (like elevators) are being incorporated into the engine.

Here are some new screens, reflecting changes in lighting and modeling. Also, the new elevator shaft rooms are visible.

(Wolfgang discovered the ceiling pillars that go on forever.)

]]>
http://blog.megastructure.org/2009/10/screenshot-smorgasbord-elevators/feed/ 1
Collisions and Cosmetics – v1.87 http://blog.megastructure.org/2009/10/collisions-and-cosmetics-v1-87/ Sun, 11 Oct 2009 01:03:02 +0000 http://blog.megastructure.org/?p=120 Version 1.87 released: as usual, to be found on the information page.

Major changes in this version include a newer, less degenerate collision engine. The player now collides with surfaces, instead being manually bound to a certain volume.

Also, steps have been taken towards making the corridors more visually interesting. This means adding chamfering to some corners, and variable heights to the corridors. (Suggestion in part by @zdanielz.)

Some screenshots:
screenshot-09-10-11_1

screenshot-09-10-11_2

]]>
Version 1.86 Released, corridor-enabled http://blog.megastructure.org/2009/09/version-1-86-released-corridor-enabled/ Tue, 29 Sep 2009 20:52:52 +0000 http://blog.megastructure.org/?p=115 Collisions are coming together, even if they are simplistic. This means we can now explore an infinitely-generated space, full of corridors and rooms. The latest version has been uploaded, the very same one from the teaser vid.

Please note that there are disabled stubs for working with ffmpeg, but I decided it was far too bulky to add to the project. I only used it for a few export clips, for the teaser.

Also, as Wolfgang points out, the Mac version does not look the same as the Windows version (most of the walls are transparent). This is evidently because of some nonstandard usage of OpenGL that Windows is willing to forgive. Any thoughts or suggestions on how this might be solved would be quite welcome.

Regardless, the project is moving forward, and new and exciting features are coming. Stay tuned.

]]>
Megastrata teaser video http://blog.megastructure.org/2009/09/megastrata-teaser-video/ http://blog.megastructure.org/2009/09/megastrata-teaser-video/#comments Tue, 29 Sep 2009 18:21:21 +0000 http://blog.megastructure.org/?p=108 Despite the patina of silence, the NoiseViewer project has been progressing in leaps and bounds these past few weeks. The internal modeling has begun to take shape, and it is actually possible to start exploring a few of these endless corridors.

The name has gradually started becoming “Megastrata”, as it morphs away from being an experiment, and starts getting more serious.

Here is a short teaser video:

A new build will be prepared soon, and we’ll continue the unending task of bringing this impossible structure to life.

]]>
http://blog.megastructure.org/2009/09/megastrata-teaser-video/feed/ 1
Junctions and Overhauls [version 1.84] http://blog.megastructure.org/2009/09/junctions-and-overhauls-version-1-84/ Sun, 13 Sep 2009 07:41:11 +0000 http://blog.megastructure.org/?p=98 The NoiseViewer has come a long way since its inception some months ago, but there is still much to do. The code is about to undergo another radical reconfiguration, this time extracting ourselves from the original 2d-oriented architecture, and cementing the World object as master over 3D entities.

The “ConnectingBoxes” layer has been retired, having been superseded by the JunctionBoxes layer. This is by no means a completed structure, but we are certainly getting closer:

junction boxes

Head on down to the NoiseViewer information page to grab the latest version.

]]>
Disjoint sets and connectivity (version 1.83) http://blog.megastructure.org/2009/09/disjoint-sets-and-connectivity-version-1-83/ Tue, 01 Sep 2009 19:47:35 +0000 http://blog.megastructure.org/?p=85 This version of the NoiseViewer provides a new layer type: ConnectingBoxes. Connecting boxes build a rudimentary network of paths throughout the visible render window. It does this by taking advantage of a data structure called Disjoint Sets, using the Union and Find algorithms. Cells try to be connected as much as they can, and paths tend to form only when needed. This behavior will surely change in future versions, but it is a nice start.

The XML format has been broken again (that is, will not read XML files generated by older versions), and will probably be broken again soon.

disjoint-connectivity

Note the “Reload defaults” button – it loads the screen you see here.

The new version is available on the download page, in Windows and OS X binaries, and source code distribution.

]]>
NoiseViewer Version 1.8: leaping to the third dimension http://blog.megastructure.org/2009/08/noiseviewer-version-1-8-leaping-to-the-third-dimension/ Thu, 27 Aug 2009 17:47:50 +0000 http://blog.megastructure.org/?p=75 The NoiseViewer has been improved once again. Today’s version brings 3D pattern generation capability. Albeit a simple implementation, but nonetheless a start.

Building in 3D is available by choosing the “Boxes” layer type, and clicking “Change base”. (Boxes are not available as a sub-layer.) Here is a screenshot of the boxes in action. Here, their widths are controlled by an underlying Noise layer:
Improved noise-driven boxes

And here, we see noise driving two variables: width and height. This demonstrates how future layers will have a multitude of variables, each allowing a plug-in style approach to building complex patterns.

Improved noise-driven boxes with height

This version has also been built in Release mode for the first time (Windows). Among other things, performance gains a significant boost.

A great deal of code has been refactored, including the XML writer/reader. Please note that older XML files will not load in this version.

In order to download this latest version, see the information and download page.

]]>
NoiseViewer, version 1.75 http://blog.megastructure.org/2009/08/noiseviewer-version-1-75/ Wed, 19 Aug 2009 06:37:19 +0000 http://blog.megastructure.org/?p=45 Overview of version 1.75

Certain breakthroughs have led us to a plethora of new and amazing noise! We have made the leap from continuous noise to discrete noise patterns, which will help us later.

Here is a nice island, which is trivial to make in the latest version:

nice islands

(XML)

And here are some shots of discrete noise:

Squareland

Squareland2

(XML)

Discrete layers (like the squares and circles) are exciting because they represent actual structural entities in the future Megastructure simulation.

And if that wasn’t enough for this version, Wolfgang fixed XML input and output on OS X, as well as a number of annoying visual bugs! Due to a “CTRL” button issue on mac, we also added right-click as an alternative way to zoom in and out of the image.

Features on the way

The upcoming immediate goals are:

  • Easy image output
  • More layer types
  • Beginning 3D layers built on top of discrete layer types

Standard boilerplate

From what I understand of the licenses, I am allowed to use these libraries. Please understand that the code and programs linked to below are provided “as-is”. Also note that running any program found on the internet carries risk, and the responsible user always scans for viruses, etc.

Click and drag to pan the current layer. Right-click-drag or CTRL+click-and-drag adjusts the zoom level. Shift+click-and-drag adjusts the current layer’s selected parameter.

Compiled executable (Windows, ~379KB): NoiseViewer_v1.75.zip

Source code, libraries and projects (Visual Studio 2008/OS X, ~4,277KB): NoiseViewerSource1.75.zip

Feedback would be greatly appreciated!!

]]>
Circles and Squares http://blog.megastructure.org/2009/08/circles-and-squares/ Fri, 14 Aug 2009 12:59:13 +0000 http://blog.megastructure.org/?p=32 Overview of version 1.6

Hello, and welcome to version 1.6 of the famous NoiseViewer. This “release” has a number of new and amazing surprises. For instance: thanks to the TinyXML library, now you can save and load your creative patterns to an XML file (not yet supported on OS X).

Also, new layer types are starting to emerge. Not only can you mix layers of noise, but now infinite planes of circles and squares have stepped into the ring!

Here are some trippy circles, made by using noise as the input for the radii of the circles:

trippy circlesThis will probably change in the near future (ie. it will break). But I like how it pans. You can view this yourself by importing the XML that describes it:

<?xml version="1.0" ?>
<NoiseViewer>
<Layers>
<Layer TypeID="2" x="5.288616" y="-5.674968" zoomx="21.007694" zoomy="21.007694">
<Variables>
<Variable name="Radius" MaxValue="10.000000" MinValue="0.001000" OverrideValue="2.000000">
<Layer TypeID="0" x="0.507875" y="-1.262280" zoomx="3.183013" zoomy="3.183013">
<Variables>
<Variable name="Cutoff" MaxValue="1.000000" MinValue="-1.000000" OverrideValue="0.500000" />
</Variables>
</Layer>
</Variable>
<Variable name="Spacing" MaxValue="10.000000" MinValue="0.001000" OverrideValue="2.000000" />
</Variables>
</Layer>
</Layers>
</NoiseViewer>

Or, you can download the XML here: Trippy circles.xml

Features on the way

The upcoming immediate goals are:

  • More layer types
  • More flexibility in layers
  • More general layer options

Standard boilerplate

From what I understand of the licenses, I am allowed to use these libraries. Please understand that the code and programs linked to below are provided “as-is”. Also note that running any program found on the internet carries risk, and the responsible user always scans for viruses, etc.

Click and drag to pan around the noise. CTRL+click-and-drag up and down adjusts the zoom level. Shift+click-and-drag adjusts the noise cutoff point.

Compiled executable (Windows, ~379KB): NoiseViewer_v1.6.zip

Source code, libraries and projects (Visual Studio 2008/OS X, ~4,376KB): NoiseViewerSource1.6.zip

Feedback would be greatly appreciated!!

]]>