Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (739)
Games in Android Showcase (224)
games submitted by our members
Games in WIP (820)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
   Home   Help   Search   Login   Register   
  Show Posts
Pages: [1] 2 3 ... 52
1  Discussions / General Discussions / Re: JGO Twitter List on: 2017-10-18 18:47:38
didn't notice this thread until just now

2  Game Development / Game Mechanics / Re: JavaFX GameLoop on: 2017-10-17 17:14:52
I'd like to help, especially since JavaFX is being used. But this is a lot of material to digest (for the amount of time and brain space I have available). Is there a more specific question that can be considered?
3  Discussions / Miscellaneous Topics / Re: Career advice on: 2017-10-11 16:45:29
First off, I'd like to add my congratulations!

I'm not clear what the pro arguments for the larger company might be. Is the latter company at risk of failing? In the USA, at least, things are pretty chaotic in terms of corporate survival. Even in established companies, divisions within them are subject to reorgs and have a nasty habit of coming and going.

There is certain value to learning about databases if you haven't had much experience dealing with them. The most important things, though, IMHO, are not so much about building them or dealing with the internals, but being able to analyze real-world problems and design database structures at a higher level to accommodate them. By higher level, I'm thinking in terms of ERD diagrams and employing concepts such as "normalization" where appropriate, and organizing the data to optimize for the most important functions. Having direct experience with working with SQL is very helpful here.

I'm not familiar with PureScript. It could be a very good thing to pick up, as well. Certainly the processing of transactions, learning more about the financial operations will also continue to be hugely important.

The most successful person I know in programming has done a lot of job-hopping over the years, and now has a nice position at Adobe. At least here in the USA, a lifetime commitment to work with a single company is a thing of the past. (For example, my father spent his entire programming career at IBM.) So, as someone new coming in, I'd try to anticipate the type of work I'd like to eventually do or the industry I'd like to know more about, and treat the first position something like an "internship" or a learning opportunity and a stepping stone, rather than a final destination (but don't tell them that in the interview!).

Thus, will the type of programming you would be doing help you, going forward, or is it a technology that is going stale? I'd be worried that the "low-level" coding involved in the first job might go the way of COBOL, and not be helpful except for "legacy" programming jobs 10 years from now, say.

I imagine companies have a certain culture to them, and that could also be an issue. Is the more established company one that respects its employees and does not overwork them? The same question can be asked of the "startup." Sometimes startups can make huge demands and burn out workers, as well as have troubles meeting payroll. But from what you described, your "startup" is actually pretty well established already, so those sorts of things are probably not a concern. And, as the younger company grows, it will be more likely to hire people, near term, that you will be senior to, whereas the first company will mostly only offer promotions when people ahead of you leave.

Another "job culture" aspect not mentioned is the availability of mentoring. If the "startup" company is just going to throw you at problems in a sink-or-swim manner, that can be stressful, and personal progress can be slower as you have to learn things on your own, as opposed to having a senior who shows you the ropes.

I also don't know a lot about your own goals, for example, if something like game programming or another passion is highly important, and picking a job that supports that passion is an issue (e.g., by providing more free time to work on your own projects).

So, for the most part, from the info you gave, I agree with the others that the "startup" job looks more appealing, but I am not ruling out possible scenarios where taking the other could be the better, say as a "strategic" choice in the short term, with the assumption of moving on after a couple years into a more promising direction.
4  Java Game APIs & Engines / Java Sound & OpenAL / Re: AudioCue, an alternative to Clip, for 2D games on: 2017-09-26 20:51:12
Progress report:

Added two changes to AudioCue
  • has interface that allows it to be a "track" for an AudioCueMixer
  • added an alternate "Open" method where an AudioCueMixer is an argument.

Wanted to keep changes to API down. Above seems acceptable. Did some refactoring in the process to minimize code duplication between playing the AudioCue in its own thread vs. being part of mixer.

Two new objects that are part of the project:
  • AudioCueMixer (class)
  • AudioCueMixerTrack (interface)

Just finished round of debugging and ran a test on two AudioCue's being played via the mixer at the same time, and it worked fine. The cpu on the Windows Task Manager is staying below 0.5%, as it should.

Still some more work to do before publishing. I have to expand the API (write doc-comments) and other things like set up demo code and provide instructions.

I am second-guessing the name AudioCueMixer. The only thing that this class does, if you get down to it, is funnel all the audio to a single SourceDataLine output. There are no other standard mixing capabilities if you are looking at this as analogous to a DAW. All that has to be done via the constituent cue classes, as before. Also, I worry about confusion with the javax Mixer class (badly named imho).

It is possible to instantiate the AudioCueMixer with a buffer size and thread priority. The buffer size will be used to set the SourceDataLine buffer size, as well as impose this buffer size on the member AudioCueTracks. When no default is specified, I put in what I think is a rational default to override the really large default in the Java API. It seems more reasonable to make all the tracks use the same buffer size rather than trying to manage individual tracks having their own buffer sizes. If someone wants to have a different buffer for a given cue, they can run it independently or in a second AudioCueMixer.

AFAIK: while merging audio lines is helpful for situations with a limited number of outputs, I'm not at all clear that the doing merging at the Java level is any better than relying on the jre or native code provided that implements javax.sound.sampled.

Am also considering putting the project on GitHub. I kind of liked the idea that the code base was small enough that it could be easily loaded from a couple .java files, and GitHub tends to suggest more elaborate projects. With the AudioCueMixer added, we are now at 5 files (not counting demo & test code files). GitHub now has tools available which make it much easier to use than before, so that is an argument in its favor.

Blah blah keeping up my word count per post. This isn't exactly something I get to chat about with local friends and family exactly, nor with any 'employer', so hopefully some slack will be cut.
5  Java Game APIs & Engines / Java Sound & OpenAL / Re: AudioCue, an alternative to Clip, for 2D games on: 2017-09-15 04:21:02
By all means, nag! I am far too easily discouraged or distracted. If people ask for things I am much more encouraged and likely to follow through. Character weakness.
6  Discussions / Miscellaneous Topics / Re: What I did today on: 2017-09-14 19:10:54
So easy for projects to get derailed, for me. My last post was about the Theremin. It's so far out of mind that I can't recall why it got back-burnered again. Ah--probably the "macro recording" feature proved too tricky to just kick out and I put it aside for that reason. I really need to get better at follow-through!!

Mostly am focused on JavaScript/VR for startup: downloaded 95 sets of 6 jpgs that form boxes that can be used as 360-degree photos, of a US WWII Navy battleship interior and deck. These could be really cool for a game, but permissions issues. Also, the photographers didn't have navigation through the space in mind. So maybe only a third have clear connections to each other. Lots of knowledge holes to fill: finished w3schools section on HTML and am progressing through CSS. Also working through book on JavaScript after finishing the basic w3schools section.

Had to take a break to work on a bit of music! (I was a music major, after all.) I think the recent remix on this tune (was posted a couple years ago?) has helped a lot. Had avoided using limiters before this for no good reason, but it turns out Audacity's limiter was great at squashing the 'gong' and allowing the overall volume to be boosted to something reasonable. Needs a title. It is a quiet piece, possibly works as background music for coding. Maybe it is strong enough to put up for sale for $1? Have been kind of scared to take that step.
7  Games Center / WIP games, tools & toy projects / Re: PFTheremin on: 2017-09-02 01:07:16
Search uncovered this:
Will check it out.

I don't remember this being here a couple years ago, last time I looked. (Date on bottom says last update 2006!)

I had a couple ideas for VST's. Wanted to do a fancy volume (key velocity) overlay (kind of like a transpose amount for key selection) to a given midi part, with tools geared to metrical patterns.
8  Games Center / WIP games, tools & toy projects / Re: PFTheremin on: 2017-09-01 23:32:29
i'd throw it in into my mix if it'd support ..

- asio
- midi-in
- midi-mapping

I had closed my mind to making plugins for DAW's because there seems to be so little in terms of Java support for this. Most audio is written in C++ afaik. But maybe if one is including a JVM in the jar, there would be a way to use Java as a VST.

Do you know of resources to learn how to do this? Did you have another plan in mind besides VST?

As far as the theremin, it seems to me there might already be good ones available. Any digital implementation of a ribbon controller, for example, could suffice.

It might be nice to have the 2D screen pop up within the DAW for live recording. In that case, I'm wondering about saving as 60fps stream data rather than converting to midi control events. But maybe interfacing the MIDI system is more practical.

One thing, though, there would be no need to worry about the built in echo or adding more effects, as it is easy to add them in the mix on a DAW.
9  Games Center / WIP games, tools & toy projects / Re: PFTheremin on: 2017-08-31 22:35:04
Progress report, and an attempt to figure out what to do next. It is hard to write about the design issues without cranking out a full article.

Updated project file: PFTheremin.jar.

I've started collecting YouTubes of famouse examples, and then try to duplicate the sounds. It's been an interesting exercise.


Can I publish a video with short clips from famouse uses: clip of Theremin himself playing, clip from "Day the Earth Stood Still", "My Favorit Martian", "Dark Shadows", wav clip from Beach-Boys "Good Vibrations" and keep the shots under something like 5-10 seconds and have it be considered a "Fair Use"?

It would be nice to show this theremin recreating those sounds, to the best of its ability. Seems like a video like this could be made inexpensively (assuming the only additional footage is just deskcam and screenshots). I have a decent microphone, so it seems like it should be possible to make something like this to support sales without spending multiple thousands on video production. As an indy programmer, we get some latitude on video "polish", yes?

Mulling (need to prioritize):

1) Maybe make a finer discrimination on the pitch width: to the nearest 0.5 or 0.25 octave rather than just a number of octaves. [EDIT: Just changed it to 0.5. Haven't uploaded yet.]

PURPOSE: can more finely tune the screen to spread an intended note range (e.g., you have a specific song in mind) over as much screen real estate as possible.

The <Shift> function also addresses the pitch-range vs. accuracy problem, by allowing one to move the screen location of a pitch.

2) Make the window resizable. This was partially addressed by making the settings panal have two sizes. To do this, I made the horizontal width a variable rather than a constant. That gets us partially there.

PURPOSE: again, addressing the pitch range vs accuracy issue.

3) Add a couple more synths? I came across an algo for making an FM synth have a "formant". If it works, it would be possible to make the Y-axis cover a range of vowel sounds. Could be going oooh-aaah-eeee-aaah with the synth. IF it works as a synth. Algo was from Bill Schottstaedt, mentioned in Charles Dodge's "Computer Music" book.

Other synths might be an actual sawtooth or square via wave-table synthesis + filter, or some nice string synth options.

PURPOSE: more tonal qualities possible.

4) Add another "effect", e.g., a flanger with standard modulator controls. Flangers are relatively easy effects to code. Or add some other effect? Chorus and distortion come to mind. If so, and a question in general: should the effects settings be part of the save/load? Or separate save/loads?

5) Record mouse/keyboard events as macros. Allow playback of macros. Allow export to wav of macros. (I am reluctant to simply try to put in a direct save-to-wav for various reasons.) I did some refactoring so that the data going to the audio player comes exclusively via the AnimationTimer (JavaFX) and not from the asynchronous inputs. This makes the input data 60FPS, and it should be straightforward to read from a "macro" file rather than from the "control" level variables.

6) Mouse tails? Design mouse cursors? What to do about skins on the design. Keep this color-scheme, keep it simple, or do something to give it a cooler look?

7) Ability to move or stretch the keyboard guide vertically?

8 ) Add an alternative "vibrato" key? (V? I am reserving <SpaceBar> for macro recording.) This would be used as an alternate way to intensify the vibrato for given pitches. The configuration could get complex: as we have both the amount it would add and the rate at which this additional vibrato would come on and drop off.

PURPOSE: theremin players often reserve vibrato for given notes, like a musician or singer would. On a real theremin, this is done with a separate hand, not with the mouse doing everying. Clear example: listen to "Good Vibrations" where the vibrato is mostly on the third note of the pattern that is played.

9) Come up with a better name for the program?

10) Free or $1 version and "deluxe" version (only a couple more $)? If so, what features would go on each?

I'm thinking of marketing on, for starters.

Definite TO-DO list:
  • Clean up the use of .properties file. [I've been avoiding finshing/testing the details of save/load.]
  • Add JVM so it can be stand-alone.
  • Add "Help/instructions" (how much? post online link instead?) and "About" info.
  • Make some patches to go along with the instrument.

Current GUI:

10  Discussions / Miscellaneous Topics / Engineer/Programmer? sentenced in VW emissions fraud case on: 2017-08-27 02:13:32

"Volkswagen has admitted it used software to deceive regulators in the United States and Europe from 2006 to 2015."

"Liang's lawyer...urged [Judge] Cox to consider a sentence of house arrest, saying Liang was not a 'mastermind' of the emissions fraud. Liang 'blindly executed a misguided loyalty to his employer...'

"Federal prosecutor ... countered that Liang was a pivotal figure...

"A prison term 'would send a powerful deterrent message to the rest of the industry'..."


I'm not sure, but it seems like Liang is one of the first to get sentenced here. There are eight VW executives, mostly above him, that have been charged, so it's not like the programmer alone was getting scapegoated. He probably provided valuable testimony on the higher ups. I think further sentencing remains to occur.

In any event, probably good to say no if asked to code something that contributes to an illegal activity. Or at the least, make sure you at least have plausible deniability if you do so.

[Edit: last line, awkwardly written, should have been more clearly ironic/sarcastic, so as not to be taken as an actual suggestion. I've been angry about the use of "plausible deniability" tactic since I first came across the concept in a William Safire column about Reagan and the Contras.]
11  Game Development / Newbie & Debugging Questions / Re: Polygons are not moving... on: 2017-08-22 15:35:32
If you want to give JavaFX a try, JGO has a tutorial that will take you through the basics. There are a couple gotcha's, like the fact that there was an earlier version that was discarded, and some of those tutorials are still floating around, confusing people. Once you see the basic setup in action, it is pretty straightforward to learn and use.
12  Game Development / Newbie & Debugging Questions / Re: Polygons are not moving... on: 2017-08-22 02:01:39
I think you have to add to each vertices' point data. In other words, each point in the x[] has to have the amount added to it for a horizontal movement.

Sometimes it makes sense to make a wrapper class that has the location that you can just give the X and Y movement amounts in a "normal" fashion, and have this class call the methods needed to handle updating the polygon point arrays.

(Reminding me why I'm glad I switched to JavaFX.)
(Been a while since I fussed with polygons--I hope I'm not totally off base.)
13  Discussions / Miscellaneous Topics / Re: What I did today on: 2017-08-18 18:29:25
Congratulations ra4king!

This week I settled on trying to polish the FM Theremin I wrote a while back, to get it up to a quality where I might post it on So far, have made improvements to the GUI, including making panels resizable (giving more "playing" room when the control panel is not needed), and an easier-understand checkbox for whether the "expression" attribute controlled by a slider is a fixed value (independent of Y-axis location) or ranges with the mouse Y position.

I've been slowed down a bit with implementing a decision to eliminate Nyquist aliasing. Am working out a way to automatically scale back the amplitude of the modulator (source of overtones in FM) that takes into consideration the frequency and the degree of modulator feedback. Had to spend time manually listening and charting the frequencies where aliasing kicks in for various modulator Index and Feedback settings, and then on working out good equations/algorithms to fit the data points. It is close to working--last attempt covers the endpoints well but "sags" in the middle. I suspect fixing it is a matter of changing the point at which I reference the data which can be either linear or exponential depending on the stage of the calculation. (E.g., midi notes, piano notes are linear, but the Hz value doubles every 12 steps--do we calculate using the Hz or the midi values?)

Am reminded how important it is as a programmer to learn math for sequences, series and curve-fitting polynomials, as having this handier in memory would have made this much easier to do.
14  Game Development / Newbie & Debugging Questions / Re: prevent a clip get closed on: 2017-08-11 22:37:34
Your first play method is opening a new Clip every time you want to play a sound, even if it's the same file?  You're also never closing the Clips after playback.  Basically, this code is all wrong, and you'll eventually run out of resources on any platform, just much quicker on the Pi.

When I saw that the start method call that is at the end of the play method in the code was commented out, I forgot that there was still a start method call embedded in with the load and open sections. So nsigma is right and I blew it by saying "the code looks fine." Combining a Clip load, open and start in one code block is likely always the wrong way to do things.

If you only need 8 different sounds, load and open each and hold them as ready to go as instance variables or something. Then you can use the start() method call on an as-needed basis and the sound will play with a minimum of latency.

A clip does not close when it reaches the end of a playback. You can take that same clip, and replay it by setting the framePosition to 0 and then calling start again.

Garbage collection for Line (Clip extends Line) is different than other classes. "Resources" obtained by the line need to be closed before the instance is garbage-collected. If you are done with a Clip, it is important to close it. Stopping and Closing are not the same!

The Sound Tutorial that Oracle provides is not very clear at all on demonstrating simple use cases. Lots of people get messed up and discouraged trying to make sound work as a result.
15  Discussions / Miscellaneous Topics / Re: What I did today on: 2017-08-10 23:53:05
I finally reconnected to the git project SiVi, yesterday. Haven't done an update since 2014! Today, was playing around with "fixing" a couple things--wanted to have the channel outputs and master on the mixer display numbers that were easier to use/more informative. While changing that (have yet to upload changes back to the project), I took a little time to play with the "gif making" tool. This one is about 44MB.
Click to Play

Also, played a bit with Glitch and A-Frame, and loaded SiVi-generated png graphics to see if they would work as textures:

I'm hiding the border lines (rotated away). I *think* I can use a variant of the algorithm similar to what is being used to "wrap" the gifs into smooth loops to make the edges of the texture graphics meet up smoothly. Looking forward to having time to test that out.
16  Game Development / Newbie & Debugging Questions / Re: prevent a clip get closed on: 2017-08-10 23:20:54
Thanks for the ping!

The code looks fine, so I'm guessing you ran into the 8-output-line limit on PI. You might try closing any sound that is not being used. (Close both the AudioInputStream and the Clip.)

TinySound is a good solution. This library mixes all sounds into a single output line.

The code I wrote is called AudioCue. It has a smaller footprint than TinySound, and you can do some extra things, like real-time pitch variation, volume fading and panning. You'll probably only be able to load 8 AudioCues at one time, but the way the class is made, you can play as many instances of those sounds (with pitch variations) as your cpu can handle. In other words, 5 gunshot bullets made and heard at the same time 9rapid succession) will only count as a single output.

I'm working on (and off) on figuring out how to create an option for mixing AudioCue's together, letting them share an output line. It is a little tricky. I could hack something out in a day, but I'm trying to get the API to make sense rather than have it be kind of cloojy. Juggling a lot of things at the moment and might not figure it out for a while.
17  Game Development / Shared Code / Re: Mp3 Player with Jlayer on: 2017-08-08 17:22:49
Is it okay to put a related wish-list item here?

I'd like to see OGG and MP3 decoders that give us the decompressed file back and let us handle the SourceDataLine for the final playback step. By doing just one less thing, it would allow us to get at the data for all sorts of effects, including varying the speed of playback or echo/chorus/distortion/filtering.
18  Discussions / Miscellaneous Topics / Good Game Patterns book: Game programming Patterns, Robert Nystrom on: 2017-08-04 05:36:07
Every now and then I come across a book that I makes me want to stop programming and read it as fast as possible because there is so much to learn and incorporate.

Game Programming Patterns by Robert Nystrom

Examples are in C++, not Java, unfortunately. But otherwise this book is really promising, so far. I've read up through FlyWeight on my first sitting. I came across it via a reference to the Component chapter of the Decoupling section earlier in the day -- something quite relevant to the AFrame/JavaScript stuff I'm learning/cramming.

Part of why I like it: for every recommendation there is also an acknowledgement of the downsides. No panaceas or cure-alls. It's balanced. (Though, he does seem to have a significant antipathy to Singleton.)

Maybe I shouldn't recommend something until I've read more. But I am wondering if others have seen it or read it.

[EDIT: another oops for me. Should have done a search first. This post is a duplicate of yet another. Lots of good comments in the original discussion.]
19  Game Development / Game Mechanics / Re: SimpleXnoise Translation. on: 2017-08-03 23:58:41
By the way, I never tested that particular noise generation algorithm, and it might be breaking down for certain input values.

If I understand it correctly, it is designed to always produce the same relationship between the overlays, where each higher (faster varying) octave has half the weight of the previous.

I think it is useful to specify scalings and weights to individual overlays of the noise, and to use as few overlays as necessary to make the desired effect, as each "octave" adds significantly to cpu expense. For example, a graphic with "octaves" of 1, 2, 4, 8 might also work with "octaves" of 1, 3, 8, costing 25% less.
20  Game Development / Game Mechanics / Re: SimpleXnoise Translation. on: 2017-08-03 23:33:09
First off, I apologize for not reading your question more closely. I didn't notice that you want the chunks to be contiguous. I also didn't notice that you had consulted SiVi!  Roll Eyes  I need to slow down.

Maybe get rid of the roughness calculation? Or make roughness = 1. I think this is complicating things in an unhelpful way.

So, your first solution was correct.
totalNoise[x][y] += (float) SimplexNoise.noise((x + xTrans) * layerFrequency,(y + yTrans) * layerFrequency) * layerWeight;

When calling the generatedOctavedSimplexNoise function, the xTrans argument should equal a multiple of width, and yTrans should equal a multiple of height. The multiple would correspond to the number of chunks distance from the original chunk where xTrans and yTrans are both 0.

What does it mean when you say the chunks are "empty"? Are they drawing black? white? Is there literally no data in the returned array? Is it all 0? Is there data > 1 or < -1?

21  Game Development / Game Mechanics / Re: Loading audio in LWJGL2 with OpenAL? on: 2017-08-03 19:05:14
I don't have the time to watch videos right now. Can you post something closer to a simple example of the problem?

Sometimes, when trying to figure out where the default file locations are, I make a file and use .createNewFile(), then do a search with File Explorer or the equivalent on Mac.

22  Game Development / Game Mechanics / Re: SimpleXnoise Translation. on: 2017-08-03 18:31:01
[EDIT: Basically this post was quite off base, so the simplest thing is to just delete it.]

23  Discussions / Miscellaneous Topics / Re: What I did today on: 2017-08-02 16:42:10
The last couple of days, I've mostly been doing non-Java stuff: I worked through the A-Frame School tutorial for web VR/AR. It looks like I might get a chance (paid) to write code for a gallery of 360-degree photos that allows a virtual tour of a local battleship. Will learn more about that gig on Thursday. Meanwhile, will continue brushing up on JavaScript and work through more of the "Guides" provided at the site.

A-Frame reminds me a lot more of how JavaFX works than Swing, that's for sure. I'm glad I took time to get more acquainted with JavaFX.

If the contract is landed, I will stop accepting Java tutorial students through the online tutorial service I signed up with. Turns out it is possible to teach online and make a bit of side money. The competition is kind of steep though, as there are hotshots from all over also teaching. (One profile I saw: EE/CS "Cum Laude" graduate from Duke. And here I am with a Music Bachelors.) But they can't all teach at the same time, and student requests sometimes come in clumps. So I've managed to accumulate about 25 hours of work over the last 6 weeks. Every little bit helps. (All my ratings have been 5-stars, so that helps!)

I can't recall if I posted about finding a book "Digital Audio with Java" (Lindley) from 2000, at Half-Price Books. Over half the book is devoted to creating graphical interfaces PRE-Swing! But the algorithms that handle the actual processing are decent, and good starting points for rewrites. I made a Schroeder reverb a few weeks ago. The Lindley book references a truly standout book for learning about digital audio: Charles Dodge's "Computer Music, Synthesis, Composition, and Performance" from 1997. This book does the best job of any that I've seen of teaching about digital audio.

Having the Schroeder reverb (similar to the Freeberb implemented by @nsigma, but configured slightly differently) has me working a bit (on and off) once again on real-time mixing of music from live synths and samples. This reverb is decent sounding if you don't push it, but definitely has weaknesses for things like snare hits (can get a little "metallic") or when mixed high (one can hear ringing). I'm reading elsewhere about a later development with another layer of feedback (term for it escapes me at the moment) that should be codeable when the time comes.
24  Game Development / Newbie & Debugging Questions / Re: javafx canvas like swing on: 2017-07-28 04:19:05
I'm not sure I understand the question.

With JavaFX games, usually the best choice is to have an AnimationTimer class handle the update and render. Except, many render steps needed in Swing occur behind the scenes with JavaFX. You just change properties of the objects that have been loaded to the root group node.
25  Discussions / General Discussions / RuneScape going mobil on: 2017-07-19 19:06:35

Any word on the tech they are using? The original RuneScape was Java-based.
26  Game Development / Newbie & Debugging Questions / Re: JavaFX Resizing Undecorated Window on: 2017-07-18 21:27:08
It seems like the error has a 2:1 relationship of some sort (width and height are changed half as much as the mouse is moved).

Is there some sort of scaling going on for the display of either the resizeButton or the editorWindow?

dx and dy are constant during the mouse drag, yes?
27  Game Development / Game Play & Game Design / Re: Patchy/Non-Smooth Perlin Noise? on: 2017-07-06 04:27:21
I can't tell if the functions you have are generating gradient noise or not. You are over my head, in terms of writing your own implementation. I've always used the Gustafson implementation. We also have an implementation available on JGO, which should be searchable or in the wiki area.

I have some suggestions, just based on what I am seeing.

It seems to me you might be doing some sort of "clamping" to the data, to keep it within bounds. Yes, I see it on line 73-78.

I think you will get a more rounded look if the values that you generate are set up so that they never need clamping. Whenever you clamp, you are going to get plateau effects.

Secondly, the target image looks very much to me like something generated with a single octave of Perlin Simplex noise. You are using six octaves of whatever it is you have implemented, as far as I can tell. The higher octaves are going to add a lot of business and jitter to the images.
28  Game Development / Game Play & Game Design / Re: Patchy/Non-Smooth Perlin Noise? on: 2017-07-05 02:32:20
There are a number of ways the problem could be coming up. Can you tell us more about what Perlin function you are using and what parameters you are giving this function?

The target diagram looks to me like a single octave using the "smooth" scaling algorithm. Perlin functions usually return values from -1 to 1. This output has to be turned into a color or greyscale value. Color functions take values that range from 0 to 1 (or 0 to 255 if ints). Perlin called the following scaling "smooth" noise:

    // I am making up the Perlin functions here, to get a value (ranges from -1 to 1) 
    pValue = PerlinFunction.getNoise(x, y);

    // "smooth" scaling (obtaining resulting range of 0..1)
    colorValue = (pVal + 1) / 2;

    // use color value as argument to color -- if using 0 to 255, then multiple colorValue by 255 first
    pixelColor = new Color(colorValue, colorValue, colorValue);

He also calls a function that uses an ABS value "turbulent" noise:
    // I am making up the Perlin functions here, to get a value (ranges from -1 to 1) 
    pValue = PerlinFunction.getNoise(x, y);

    // "smooth" scaling
    colorValue = Math.abs(pVal);

29  Java Game APIs & Engines / Java Sound & OpenAL / Re: AudioCue, an alternative to Clip, for 2D games on: 2017-07-04 20:58:23
Having a master single output at the static level might eliminate the need for some dynamism for polyphony or buffer size at the cue level (one can add/remove additional cues to achieve this rather than change the buffer or polyphony of individual AudioCues), but having a master also reduces some flexibility in that everything will have to use the same buffer size. I'll have to do some thinking and testing. Unclear if I can make this work if different cues use different buffers (or if even having different buffers is relevant to the situation).

The major OS implementations, I think, are able to handle multiple outputs pretty efficiently. There are some Linux systems, and Raspberry PI that have limits that cause problems. One can manage a large bank of AudioCues and just be sure that a maximum of 8 are open at once (for Raspberry) via the open and close methods. For a system that only has one output line allowed (not many of them around any more, AFAIK), something like TinySound does become mandatory.
30  Java Game APIs & Engines / Java Sound & OpenAL / Re: AudioCue, an alternative to Clip, for 2D games on: 2017-07-04 19:32:44
I would again highly recommend this to anybody who wants a better alternative to TinySound.

If this isn't mixing down to a single line, it's not a better alternative to TinySound!  @philfrei how easy in your architecture would it be for you support that?

I agree that 'better' is not exactly accurate. There are tradeoffs. AudioCue reduces the number of output lines required (compared to making a unique Clip for each concurrent instance), but there are still many output lines being run at once.

Actually, it would be fairly straightforward to make a static master loop which iterates through all AudioCue's and their individual instances. As I mentioned in an earlier post, handling requests to add/remove additional AudioCue's could occur at the head of the master mixer run method's outer loop.

One aspect which I do NOT know the answer to: how are multiple output lines being handled by the Java implementation that merges SourceDataLines? It could be that what is underlying is already quite efficient. If that is the case, implementing this would be redundant except for situations where there are a limited number of lines allowed, for example, with Raspberry PI (I think FabulousFellini mentioned running across a limit of 8 audio lines in that case.)
Pages: [1] 2 3 ... 52
Ecumene (50 views)
2017-09-30 02:57:34

theagentd (76 views)
2017-09-26 18:23:31

cybrmynd (183 views)
2017-08-02 12:28:51

cybrmynd (181 views)
2017-08-02 12:19:43

cybrmynd (188 views)
2017-08-02 12:18:09

Sralse (195 views)
2017-07-25 17:13:48

Archive (746 views)
2017-04-27 17:45:51

buddyBro (880 views)
2017-04-05 03:38:00

CopyableCougar4 (1429 views)
2017-03-24 15:39:42

theagentd (1319 views)
2017-03-24 15:32:08
List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05

SF/X Libraries
by SkyAphid
2017-03-02 06:38:56

SF/X Libraries
by SkyAphid
2017-03-02 06:38:32

SF/X Libraries
by SkyAphid
2017-03-02 06:38:05

SF/X Libraries
by SkyAphid
2017-03-02 06:37:51 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‑
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!