Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (527)
Games in Android Showcase (127)
games submitted by our members
Games in WIP (594)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1] 2
  ignore  |  Print  
  Yet another "do it all within one system"-system using procedural content gen.  (Read 13629 times)
0 Members and 1 Guest are viewing this topic.
Offline krasse
« Posted 2009-11-12 12:24:05 »

... but this one is actually going to be awesome!

Edit: A dated online demo with some presets to play around with:

http://www.springworldgames.com/applets/nodesystem_demo.html

The "manual":
* Use right mouse key to open the menu. You can select the presets or add nodes.
* Use + and - to zoom in and out
* Click on the nodes to show their attributes


Here are also some lame Youtube video that show a few of its powers:

http://www.youtube.com/watch?v=2AlIfPWM-HQ : Overview of a lot of different features
http://www.youtube.com/watch?v=xZdfpO6uVT4 : Strokes and Light/Bumpmap nodes
http://www.youtube.com/watch?v=RTDs5wNaOrs : Generate "Sprites"
http://www.youtube.com/watch?v=Ac4sV4TlLsY : Procedural Levels and Vehicles WIP and some more
http://www.youtube.com/watch?v=RZpLliBkCdU : Procedural Trees and Particle Systems
http://www.youtube.com/watch?v=fP-1WEkMw94 : Music
http://www.youtube.com/watch?v=B_2sDYVILL8 : Music II (More Variation)
http://www.youtube.com/watch?v=LV21DViKilI : Graphics

It is developed in Java using LWJGL.

When the system is ready (in about hundred years), I plan to include parts of the editor within my future games so that one can modify every sprite/texture, sound, music etc. inside the game. It might also end up as a standalone tool, who knows...

And yes, I have taken a lot of inspiration from Genetica when it comes to the procedural texture stuff Smiley

Offline zammbi

JGO Coder


Medals: 4



« Reply #1 - Posted 2009-11-12 13:02:49 »

Very cool. I hope you do get it finished. You may want to release what you have, I'm sure some people will find what you have now handy.

Current project - Rename and Sort
Offline Orangy Tang

JGO Kernel


Medals: 56
Projects: 11


Monkey for a head


« Reply #2 - Posted 2009-11-12 13:15:46 »

Looks good - are the material trees generated too or are they made by hand? It would be great to have a game where the actual surface details were never the same between different levels/plays.

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline krasse
« Reply #3 - Posted 2009-11-12 13:30:59 »

Thanks for the comments!
The materials/heightmap are manually made but are easy to modify dynamically by varying the seeds, offsets etc. but you one could also build more sophisticated materials that have smarter parameters and let the game vary those.

The plan for the future is to add more procedural model nodes such as trees/plants, hills/mountains and make them all look good using shadow maps, environment maps, and even raytracing. Then I would also add animation for the generated 3D models so you can make nice-looking animated sprites. Then I would like to add a node that is similar to the Canvas node in Genetica where you can design with bezier curves/areas. Then sound effects, then music, then fonts, then particle systems, and then finally a game that uses all this! Like I said, a hundred years Smiley

Offline pjt33
« Reply #4 - Posted 2009-11-13 12:20:40 »

Then sound effects, then music, then fonts
Procedurally generated fonts? Wink
Offline krasse
« Reply #5 - Posted 2009-11-13 12:55:33 »

Procedurally generated fonts? Wink

Yes!
But I only plan to generate that texture grid that is one of the standard approaches for adding text in OpenGL (which I currently use).
The idea is that you start with an existing font and extract the glyphs from it. Then you simply render your first grid in some way and then you add the image transformation nodes that you want. You might have to apply different transformations to subsets of the grid but that is just details...
I also plan to add nodes that can place pictures into the grid that you want to have closely mixed with text, which is just a simple way to add images when you draw text but it is sure useful for adding key icons, powerup icons etc.

But... You will be able to design your own fonts within the system when I add proper support for editing curves, but that does not feel very procedural Smiley

Offline krasse
« Reply #6 - Posted 2009-11-18 16:50:00 »

Hello,

I added some music nodes that are perhaps not that impressive in their current form, but I think there is a lot of potential in this type of non-linear and generative music:

http://www.youtube.com/watch?v=B_2sDYVILL8
http://www.youtube.com/watch?v=fP-1WEkMw94

I am currently exploring the JvstHost software that I plan to use to render that Midi to something that sound good Smiley

Offline xinaesthetic

Senior Devvie


Medals: 1



« Reply #7 - Posted 2009-11-19 20:39:44 »

Hello,

I added some music nodes that are perhaps not that impressive in their current form, but I think there is a lot of potential in this type of non-linear and generative music:
YES!!! Definitely.  I wish there was more generative music in games.  Pretty impressive work you've done there.

Quote
I am currently exploring the JvstHost software that I plan to use to render that Midi to something that sound good Smiley
You might also consider using SuperCollider... but anything will be better than the GM sounds Wink
Offline krasse
« Reply #8 - Posted 2009-11-19 22:38:13 »

YES!!! Definitely.  I wish there was more generative music in games.  Pretty impressive work you've done there.
You might also consider using SuperCollider... but anything will be better than the GM sounds Wink
Thanks!

I'll probably take a good look at SuperCollider sometime in the future but I have some previous experience with VST filters and instruments that I want to take advantage of first.

I can recommend JVSTHost if any of you want to use VST stuff using Java. The filter part seems to be pretty stable, I have tested 8 different filters so far and they all worked. I'll soon test some of my synths as well.

Offline xinaesthetic

Senior Devvie


Medals: 1



« Reply #9 - Posted 2009-11-20 23:25:33 »

Thanks!

I'll probably take a good look at SuperCollider sometime in the future but I have some previous experience with VST filters and instruments that I want to take advantage of first.

I can recommend JVSTHost if any of you want to use VST stuff using Java. The filter part seems to be pretty stable, I have tested 8 different filters so far and they all worked. I'll soon test some of my synths as well.
Probably very sensible to use VST, especially since you're doing relatively 'normal' music.  I may well try out that library at some point (actually, I have other code in C# that I'd like to use with VSTs, so maybe I'll look into .NET alternatives in the short term).

Your system would potentially lend itself quite naturally to building synthesisers with Supercollider.  Could be useful for making sound effects.  In terms of just using it as a more normal midi style synthesiser, it wouldn't necessarily be a bad fit, but you may do better with VSTs.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline krasse
« Reply #10 - Posted 2009-11-21 14:29:20 »

Probably very sensible to use VST, especially since you're doing relatively 'normal' music.  I may well try out that library at some point (actually, I have other code in C# that I'd like to use with VSTs, so maybe I'll look into .NET alternatives in the short term).

Your system would potentially lend itself quite naturally to building synthesisers with Supercollider.  Could be useful for making sound effects.  In terms of just using it as a more normal midi style synthesiser, it wouldn't necessarily be a bad fit, but you may do better with VSTs.

Sound effects was the first thing I started to make with the node system, but back then I did not know so much about filters and I just made pure procedural or so called "acausal" system then. Now I have a few causal filters implemented like all the biquad variants with adjustable parameters and also oscillators and all the VST effects that are compatible.

I will start to dig in the SFX area soon again but this time I will try to analyze existing SFX with spectrograms etc. and try to mimic the results with noise, oscillators and filters. I guess that this is a reasonable approach?
BTW, the JvstHost seems to work with all the synths I have tested so far as well Smiley I tested StringZ2, Synth1 and ersdrums.

Offline xinaesthetic

Senior Devvie


Medals: 1



« Reply #11 - Posted 2009-11-21 15:16:36 »

Sound effects was the first thing I started to make with the node system, but back then I did not know so much about filters and I just made pure procedural or so called "acausal" system then. Now I have a few causal filters implemented like all the biquad variants with adjustable parameters and also oscillators and all the VST effects that are compatible.

I will start to dig in the SFX area soon again but this time I will try to analyze existing SFX with spectrograms etc. and try to mimic the results with noise, oscillators and filters. I guess that this is a reasonable approach?
BTW, the JvstHost seems to work with all the synths I have tested so far as well Smiley I tested StringZ2, Synth1 and ersdrums.
You might want to take a look at the book "Real Sound Synthesis for Interactive Applications" by Perry Cook.  I've only dipped into it briefly, but it seems to be quite good - it is written with these kinds of applications in mind.

For experimentation with synthesis and prototyping things, I find ChucK very easy to use and expressive (easier than Supercollider, but not as mature, complete or CPU efficient); this is a music scripting language incorporating Cook's synthesis toolkit STK, and as such has some high-level 'physically inspired sonic modelling' type stuff to play with.  Since you're taking a visual patching type approach, you should certainly take a look at pd if you haven't already (I recommend the 'pd-extended' release http://puredata.info/downloads).

All of the things I've mentioned are open source, btw (STK is permissive, but with some caveats that some things may be covered by patents, ChucK is GPL, PD is BSD but many extensions are GPL) and quite well documented through academic papers etc.  See also JASS for pure Java implementation of modal synthesis and other things.

You can probably get quite far with noise, oscillators, filters... and envelopes, of course...

Have fun Smiley
Offline krasse
« Reply #12 - Posted 2009-11-21 16:05:27 »

Thanks!

All this information and pointers are very valuable to me.

Offline xinaesthetic

Senior Devvie


Medals: 1



« Reply #13 - Posted 2009-11-21 17:44:46 »

My pleasure.

Another project that may be of interest is jMax, which is a member of the PD / Max/MSP family written in Java.  I remember it looking quite nice a few years ago when I was getting into this stuff, it was 'resting' for a long while but apparently rumours of it's demise were exaggerated; development is happening again under LGPL.  It's not at release stage, but since you're doing related things in Java you should probably take a look.  http://www.jmax-phoenix.org/wiki/doku.php
Offline xinaesthetic

Senior Devvie


Medals: 1



« Reply #14 - Posted 2009-11-21 21:24:47 »

Another thing occurred to me.  If you do carry on implementing your own audio synthesis stuff from scratch, you could consider implementing some DSP in OpenCL or similar, if that's of interest.  GPU should be able to make mincemeat of a lot of audio processing.  In fact, I just did a bit of googling, and it seems even things like IIR filters, which are inherently quite sequential, can still benefit with appropriate cleverness (http://s-space.snu.ac.kr/bitstream/10371/6177/3/Digital%20Signal%20Processing%20Filtering%20with%20GPU.pdf).
Offline krasse
« Reply #15 - Posted 2009-11-22 02:10:58 »

It would be great to be able to use some hardware for audio processing Smiley
The only problem is to make it work on many platforms, but for the first game that I use generative music in, I will probably stick with a pure software (or built in native) synth and find a good tradeoff between speed and sound quality.

Thanks for even more useful links!

Offline krasse
« Reply #16 - Posted 2009-12-12 19:01:27 »

I have added some more features into this tool: Trees and Particle Systems

http://www.youtube.com/watch?v=RZpLliBkCdU

Offline xinaesthetic

Senior Devvie


Medals: 1



« Reply #17 - Posted 2009-12-14 11:09:58 »

Excellent work.  Music's sounding much better now.
Offline CommanderKeith
« Reply #18 - Posted 2009-12-15 00:47:10 »

Very nice music and trees!


EDIT: By the way, this came up in gamedev recently:

http://www.gamedev.net/reference/music/features/brfOrchGuide/

Kind of weird because it mentions nothing about games, but it could be useful for choosing the right ratios of instruments maybe  Smiley

Offline krasse
« Reply #19 - Posted 2009-12-15 09:23:46 »


http://www.gamedev.net/reference/music/features/brfOrchGuide/

Kind of weird because it mentions nothing about games, but it could be useful for choosing the right ratios of instruments maybe  Smiley

Yes, certainly! Thank you for that link!

I am currently reading the books "Composition for Computer Musicians" and "Dance Music Manual", which will probably help me create much better procedural percussions and "music style attributes".

EDIT: Just wanted to point out that the music in that tree video is not generated by my node system, it is just a random song I selected from Youtube audioswap.

Offline xinaesthetic

Senior Devvie


Medals: 1



« Reply #20 - Posted 2009-12-15 13:02:42 »

EDIT: Just wanted to point out that the music in that tree video is not generated by my node system, it is just a random song I selected from Youtube audioswap.
Ah, I see... assumed it was.  Well, that would have been pretty impressive.  Good work on the trees and particles, nonetheless.  Would be nice to hear some VST music.
Offline krasse
« Reply #21 - Posted 2010-01-21 18:46:12 »

I have worked with procedural level and vehicle creation, spectrograms, custom spectrums + some more.

Here is a video:
http://www.youtube.com/watch?v=Ac4sV4TlLsY

.... and this time I use my own generative music in the video, but no VST effects/instruments are used. It is just Gervill and its emergency sound bank Smiley

Offline krasse
« Reply #22 - Posted 2010-08-05 20:17:18 »

I have made an Applet version of the system that you can try if you like!

It is available here:
http://www.springworldgames.com/applets/nodesystem_demo.html

Instructions:
Right click with mouse to open menu. From there you can select one of the presets or add nodes (not documented in any way yet Smiley ). Zoom in and out with '+' and '-' and pan with arrow keys. Click on a node to show and edit its properties.

I am very curious about the following:

* Does it work on Mac? I have never tested any of my code on a Mac before Tongue
* Is the music playing in the "Music 1" preset? Just click on the little green "play" button on the node that says something about reverb/chorus. It is visible when the node is selected. A short delay (5 seconds) before the music starts is normal.

Offline xinaesthetic

Senior Devvie


Medals: 1



« Reply #23 - Posted 2010-08-06 08:56:06 »

Excellent!

Music preset works on my Vista box.  Still playing now after I loaded another preset... I must admit I find the music a bit twee, but it does charm me nonetheless... I have a big soft spot for generative music.

It would be nice to have more indication of what kind of data the various inputs / outputs take; maybe tooltips or a status bar could be useful here, also perhaps different graphics on different types of plug - colour coded should be fairly simple?

It did get stuck grinding my CPU at some point... nothing very complicated was going on as far as I could tell, it happened shortly after adding a gaussian blur to a star & increasing radius but I doubt that was the cause.

Anyway, it's coming along really nicely.  I'm interested where you plan to take this.

EDIT: and another thing... I reckon you should add the ability to put things into (reusable) sub-patches ASAP...
Offline krasse
« Reply #24 - Posted 2010-08-06 10:39:22 »

Thanks for trying it out xinaesthestic!

Yeah, the music is quite boring since there is really no variation in it. I have better examples that I am going to add but they are rather large Smiley

The color coding for data types are a little bit tricky since there is no one-to-one match of colors. A simple method would be to color the ports green when you hover the mouse over a port or drag a connection. And yes, tooltips is a very good suggestion even for me since there are so many nodes now that is hard to keep track of. The application version has probably four times as many nodes Smiley

The procedural gaussian blur has horrible performance. The fix image-based blur is much better since it makes a lot of simplifications.

Subpatches is actually available in the application version but then you have to save a graph first and add input and output nodes to it. Subpatches that can be part of a graph is coming since this is much easier to work with.


Thanks for all the comments!

Offline gouessej
« Reply #25 - Posted 2010-08-06 11:01:16 »

Hi

It is an excellent procedural content generator and a source of inspiration for WYSIWYG game editors. The GUI is really intuitive. Is it possible to add its own nodes with its own new outputs and inputs?

Offline krasse
« Reply #26 - Posted 2010-08-06 12:09:49 »

Is it possible to add its own nodes with its own new outputs and inputs?

It has limited support for this and you have to be able to save a graph to do that at the moment. You simply add input and output nodes (not available in the Applet) and then you can use it as a subnode.

Offline krasse
« Reply #27 - Posted 2010-08-07 17:22:03 »

I am very curious to test this on a mac. Has anyone done that?

I sent it to a friend but he got an UnsupportedClassVersionError.

Yes, I will get a mac myself soon Smiley

Offline gouessej
« Reply #28 - Posted 2010-08-12 10:46:36 »

I am very curious to test this on a mac. Has anyone done that?

I sent it to a friend but he got an UnsupportedClassVersionError.

Yes, I will get a mac myself soon Smiley
He used a too "old" version of Java. Your software should work fine on Mac OS X 10.5 with Java 1.6.

Offline krasse
« Reply #29 - Posted 2010-11-02 23:07:05 »

I found some code for doing more advanced strokes here:
http://www.jhlabs.com/java/java2d/strokes/

Great stuff! I didn't know how to draw text along curves before or how to use the Stroke interface.

I just had to put that into the node system and make another video. The video first shows some new light features and the stroke stuff starts at 1:11.
http://www.youtube.com/watch?v=xZdfpO6uVT4


Pages: [1] 2
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

PocketCrafter7 (14 views)
2014-11-28 16:25:35

PocketCrafter7 (10 views)
2014-11-28 16:25:09

PocketCrafter7 (10 views)
2014-11-28 16:24:29

toopeicgaming1999 (76 views)
2014-11-26 15:22:04

toopeicgaming1999 (67 views)
2014-11-26 15:20:36

toopeicgaming1999 (17 views)
2014-11-26 15:20:08

SHC (30 views)
2014-11-25 12:00:59

SHC (28 views)
2014-11-25 11:53:45

Norakomi (32 views)
2014-11-25 11:26:43

Gibbo3771 (28 views)
2014-11-24 19:59:16
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!