|
|
zammbi
|
 |
«
Reply #1 - Posted
2009-11-12 14: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.
|
|
|
|
Orangy Tang
|
 |
«
Reply #2 - Posted
2009-11-12 14: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.
|
|
|
|
Games published by our own members! Check 'em out!
|
|
krasse
|
 |
«
Reply #3 - Posted
2009-11-12 14: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 
|
|
|
|
pjt33
|
 |
«
Reply #4 - Posted
2009-11-13 13:20:40 » |
|
Then sound effects, then music, then fonts Procedurally generated fonts? 
|
|
|
|
|
krasse
|
 |
«
Reply #5 - Posted
2009-11-13 13:55:33 » |
|
Procedurally generated fonts?  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 
|
|
|
|
|
|
xinaesthetic
|
 |
«
Reply #7 - Posted
2009-11-19 21: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. I am currently exploring the JvstHost software that I plan to use to render that Midi to something that sound good  You might also consider using SuperCollider... but anything will be better than the GM sounds 
|
|
|
|
|
krasse
|
 |
«
Reply #8 - Posted
2009-11-19 23: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  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.
|
|
|
|
xinaesthetic
|
 |
«
Reply #9 - Posted
2009-11-21 00: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!
|
|
krasse
|
 |
«
Reply #10 - Posted
2009-11-21 15: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  I tested StringZ2, Synth1 and ersdrums.
|
|
|
|
xinaesthetic
|
 |
«
Reply #11 - Posted
2009-11-21 16: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  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 
|
|
|
|
|
krasse
|
 |
«
Reply #12 - Posted
2009-11-21 17:05:27 » |
|
Thanks!
All this information and pointers are very valuable to me.
|
|
|
|
xinaesthetic
|
 |
«
Reply #13 - Posted
2009-11-21 18: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
|
|
|
|
|
xinaesthetic
|
 |
«
Reply #14 - Posted
2009-11-21 22: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).
|
|
|
|
|
krasse
|
 |
«
Reply #15 - Posted
2009-11-22 03:10:58 » |
|
It would be great to be able to use some hardware for audio processing 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!
|
|
|
|
|
|
xinaesthetic
|
 |
«
Reply #17 - Posted
2009-12-14 12:09:58 » |
|
Excellent work. Music's sounding much better now.
|
|
|
|
|
|
|
krasse
|
 |
«
Reply #19 - Posted
2009-12-15 10:23:46 » |
|
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.
|
|
|
|
xinaesthetic
|
 |
«
Reply #20 - Posted
2009-12-15 14: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.
|
|
|
|
|
krasse
|
 |
«
Reply #21 - Posted
2010-01-21 19: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 
|
|
|
|
krasse
|
 |
«
Reply #22 - Posted
2010-08-05 22: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.htmlInstructions: 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  ). 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  * 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.
|
|
|
|
xinaesthetic
|
 |
«
Reply #23 - Posted
2010-08-06 10: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...
|
|
|
|
|
krasse
|
 |
«
Reply #24 - Posted
2010-08-06 12: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  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  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!
|
|
|
|
gouessej
|
 |
«
Reply #25 - Posted
2010-08-06 13: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?
|
|
|
|
krasse
|
 |
«
Reply #26 - Posted
2010-08-06 14: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.
|
|
|
|
krasse
|
 |
«
Reply #27 - Posted
2010-08-07 19: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 
|
|
|
|
gouessej
|
 |
«
Reply #28 - Posted
2010-08-12 12: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  He used a too "old" version of Java. Your software should work fine on Mac OS X 10.5 with Java 1.6.
|
|
|
|
|
|
|