Hi !
Featured games (85)
games approved by the League of Dukes
Games in Showcase (636)
Games in Android Showcase (178)
games submitted by our members
Games in WIP (687)
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 ... 42
1  Discussions / General Discussions / Re: Programmer jokes on: 2015-11-07 01:41:53
I think this thread might be recursive...
Well the longer it gets, the more work is needed to prevent duplication.
2  Discussions / General Discussions / GamaSutra: picking language for game dev includes nice java/libgdx plug on: 2015-11-06 22:32:45
I thought it was neat that at the end of this article (on pg. 3) there was a nice little plug for LibGDX and Java.

GamaSutra: What Programming Language Should You Learn for Game Development?
3  Discussions / Miscellaneous Topics / Re: What I did today on: 2015-11-03 21:36:27
@_basil I like the video, and the music you chose--what is the cut? The second thought was wondering if you had seen the work of "Flight404" (Robert Hogdin) on Vimeo, which I recommend. BTW he is a big Processing user.

For me: yesterday I bought a refurbished laptop at a pretty good price:
Dell Latitude with 14" screen and i3 processor. Pretty light-weight so I'll be able to do some work on long BART commutes and at coffee shops (when working at home requires a change in scenery). It runs the audio programming demos I have no problem, so I now have something to take to meetups!
4  Games Center / WIP games, tools & toy projects / Re: Audio library demos on: 2015-10-31 02:23:55
Probably rushing too fast to show this.

Download is on first post of this thread.

The Shepard Tone is a sort of sonic barber pole illusion. I did a few things differently from the classic example: only used three octaves instead of 4, allowing chords. The speed lets you push past to the point where the illusion breaks down and the looping becomes more apparent.

I want to get a continuous/steady-state (glissando) going as well. Will work on that next week.

Am most happy to receive advice or ideas for improvements, as always!
5  Discussions / Miscellaneous Topics / Re: What I did today on: 2015-10-28 17:02:24
@Icecore  I wish you the best in figuring out how to do this. Have you seen these links?

If you get nsigma's suggestion working as an alternative, that would be great to hear about as well. I've been working on other priorities, but am hoping to eventually work out some sort of VST or functional equivalent.

Last couple of days, built a GUI for a Shepard Tone builder. It is able to churn out all the needed frequencies and corresponding volumes. Now, to hook it up to a synth! I'm going to...but wait! This thread is for "what I did" not "what I am going to do".
6  Games Center / WIP games, tools & toy projects / Re: Audio library demos on: 2015-10-23 23:20:04
@ags1 asked:
Is there a way to run it without the GUI?

There's a catch-all class for the audio called "SoundHandler". The methods exposed by this class run all the audio aspects. I could make a jar with just this class (and the audio library materials called) and also supply an API. At that point, it should be possible to use it as an "external jar".

Is that what you had in mind?

EDIT: might even work if you link to the jar.

        new SoundHandler()
        public void start()  
        public void stop()
        public enum Track { BROOK, CRICKETS, BELLS, FROGS };
        public void updateVolume(Track track, float vol)  //where float vol is [0..1]
        public void upDateIntensity(Track track, float f)  // where float f is [0..1]
        public void setChimePitches(int transpose)  // where int transpose is number of half-steps, plus or minus

So you could something like this:

    SoundHandler sh = new SoundHandler();
    sh.updateVolume(sh.BROOK, 0.5f);
    sh.updateVolume(sh.FROGS, 0.5f);
    sh.updateIntensity(sh.FROGS, 0.5f);


And tell me if it works!
7  Discussions / Miscellaneous Topics / Re: What I did today on: 2015-10-23 05:32:05
Got a second audio demo jar posted. "Peaceful Brook". The original version of this one first went up a couple years (?!) ago on a thread about music to listen to while programming, and consisted of a brook and wind chime. Now there are also frogs and crickets, using a couple different methods of modeling randomness.

Part of process was learning how to use JavaFX for a limited GUI, but also as a way to display html/css formatted text ("About" button).
8  Games Center / WIP games, tools & toy projects / Re: Audio library demos on: 2015-10-23 00:45:47
A second demo has been added, pertaining to sound scapes, called "Peaceful Brook":

All it has is a simple GUI with a bunch of sliders--nothing to look at. It would be cool though to have a small 3D area with a brook, frogs, crickets and wind chime. At best, I might be able to create a simple JavaFX 3D something myself, but I do have other priorities (like possibly coding a Shepard Tone builder).

The main thing that happens when you twiddle the sliders (on the right-hand side) is to affect the number of beings that are active (frogs, crickets) or how often they speak or sound (frogs, chimes).

The brook should sound continuous without looping. This is done by stringing together half-second slices from a 4-second sample of a local creek. The slicer also uses 1/10th second overlapping with interpolation for smoothness.

The frogs derive from a single croak, also recorded at the creek. The chimes and crickets are synthesized. There is more about the randomizing that controls playback that can be read via the "About" button.

file size: 841 K
brook sample: 709 K (after compression)
frog sample: 62 K (after compression)
total: 841 - 771 = 70 K for the supporting GUI, library and "About" content.
9  Discussions / Miscellaneous Topics / Re: Programming Laptops on: 2015-10-21 20:12:18

Looks like a good option! I'm starting to nose around for a laptop or really good tablet of some sort. My main goal is to have something to show demos of what I'm doing (mostly involving sound), and to offer some limited ability for coding (using Eclipse, but not for extended amounts of time) and for correspondence.

My problem with laptops in the past has always been the hinges. Not clear to me if they are just designed obsolescence or if I am abusing them somehow. This kind of makes the notion of a detachable keyboard somewhat attractive. Screen size doesn't have to be huge.
10  Game Development / Newbie & Debugging Questions / Re: Placing a Swing JComponent inside an LWJGL Display on: 2015-10-18 19:39:55
Sounds like an answer has already been found and is satisfying to the OP.

But I am wondering, would another possible answer be to use JavaFX? Converting a Swing component to a JavaFX correlate is usually very easy. And JavaFX implements many (what percentage?) of the elements of LWJGL, e.g., things like shaders, 3D, etc. I don't know how difficult it would be to convert existing code using LWJGL to JavaFX.

Lastly, I don't know if there would be a performance hit or not. But at least the components and RPG elements should play together nicely. How is this as a theoretical solution? I'm just wondering about JavaFX as an option.
11  Game Development / Newbie & Debugging Questions / Re: Best Way to Implement Music and Effects in Java 2D Game on: 2015-10-14 17:35:48
I was asking around about implementations for javax.sound and JavaFX's Media & MediaPlayer and got a slightly more specific answer than nsigma's. Yes, Linux JavaFX uses GStreamer, but the responder points to native DirectX for Windows.

Thanks for the assumption he's more correct!  Tongue  The answer is likely both.  GStreamer is a cross-platform API, which will use elements of DirectX on Windows.  The bug report linked above is on Windows with AudioClip and shows errors in the GStreamer layer.  Oracle maintain their own fork of GStreamer 0.10 in JavaFX.  Discussions going on within OpenJFX show them looking at an update to GStreamer 1.0 across all 3 platforms.

@nsigma - "More specific" doesn't necessarily mean more correct! I very much appreciate your expertise and taking the time to clarify what was an ambiguity for me. This all takes place at a level of coding where I am pretty much at sea.
12  Game Development / Newbie & Debugging Questions / Re: New to the Java scene and looking to begin developing games on: 2015-10-13 23:17:20
I really hope they stop and take a big, deep breath on the 3D part, and then go and scrutinise Unity. Very, very closely.
Could you elaborate? JavaFX 3D is the first 3D system that has really appealed to me as an option. But I'm not up on the pros and cons of it or Unity. I can't tell from the comment if Unity is a good example or an example of how things could go wrong.
13  Game Development / Newbie & Debugging Questions / Re: Best Way to Implement Music and Effects in Java 2D Game on: 2015-10-13 23:08:23
I was asking around about implementations for javax.sound and JavaFX's Media & MediaPlayer and got a slightly more specific answer than nsigma's. Yes, Linux JavaFX uses GStreamer, but the responder points to native DirectX for Windows.

One thing different (improved) about the JavaFX Clip is that it is possible to play it multiple times, concurrently, without having to link to a different memory copy for each playback. As to how this relates to nsigma's concern about opening a pipe for each iteration, that's a bit over my head.

I really don't want to step to far into the controversies. I haven't used Clips in years and haven't tested them out either. But it seems pretty likely that a problem with sound files shorter than a second would have been fixed after so many years and releases.

I'm wondering about piping a stream directly to the JavaFX sound implementation. That was the gist of the link above. Looks like I will be waiting for someone else to come up with a work around, or waiting for Java/JavaFX 9. My level of expertise is being tested enough trying to get better encapsulated envelopes working for my dang synthesizer patches...(been working on this for two days now).
14  Game Development / Newbie & Debugging Questions / Re: Best Way to Implement Music and Effects in Java 2D Game on: 2015-10-12 18:25:36
'ang on a minute... I know I probably suddenly sound even more like a broken record than usual but doesn't JavaFX have a completely revamped API for sound? Which should satisfy the OP's requirement for "pureness".

Cas Smiley

As with much in JavaFX, the sound commands are both simpler to use and have more features than the corresponding Java version (

I have no idea how the underlying code is implemented, if it is different from's or not.

Now that Java is on the move again, with definite positive developments, one hopes that the Open versions find a way to keep up!
15  Game Development / Newbie & Debugging Questions / Re: New to the Java scene and looking to begin developing games on: 2015-10-12 00:54:22
I'm with princec!

JavaFX is the main graphics system now for Java, and has many benefits over AWT/Swing/Java2D.

I'd start with "JavaFX for Dummies" (the best written presentation of several I've tried, actually), and get to the chapter on Animation/Bouncing Balls as soon as you get past the basics. Lowe's "the hard way" is to be preferred and is not at all hard.
16  Game Development / Newbie & Debugging Questions / Re: Advantages of games created with JAVAFX on: 2015-10-12 00:45:10
I'm intrigued by the positives, and am not well acquainted yet with the limitations of JavaFX.

JavaFX has support for 3D and both it and the capabilities for 2D drawing are well integrated with the use of standard controls (text fields, sliders, etc.). I think trying to use Swing Controls with Libgdx or LWJGL is a bit of a nightmare. Someone please correct me if I am wrong.

I'm finding the graphics tools for special effects are quite nice, and easier to use than the parallel system Java2D.

JavaFX also plays well with CSS, and XML via FXML, reminding me of a lot of the benefits of the way Android deals with resources.

There are growing indications of expanded cross-platform support, now that JavaFX is the "go to" graphics system rather than Swing. RoboVM for example claims to be working on JavaFX support, though I don't know how that effort is progressing.

JavaFX has had a lot of high-level thought and considerable expertise go into developing its syntax. I find it much easier to hold in my brain, as a result, than libgdx. Working with it feels like using I still writing Java code, rather than having to learn a whole new paradigm or language. Others who have made the leap to libgdx and have younger and more flexible brains than me will probably object to this comparison.

Probably, it is still lagging a bit in performance, and in the number of platforms supported. But I'm keeping an eye on it as there is new energy being put into improving it. I haven't seen much in the way of performance comparisons yet, but I haven't looked for them either. They are probably out there.
17  Game Development / Newbie & Debugging Questions / Re: Best Way to Implement Music and Effects in Java 2D Game on: 2015-10-12 00:20:34
TinySound might indeed be the best option available right now, depending upon your target machines. One of the big benefits is that it funnels all the sounds you play into a single sound line output. Thus, there is no additional thread management needed beyond giving TinySound its own thread (something one has to do in any event when playing a sound).

I think TinySound only supports compressed sound files in ogg format, not mp3 which is proprietary. A tool such as Audacity can be used to compress wav files to ogg. I could be wrong about TinySound supporting mp3.

David Brackeen's now ancient book "Developing Games in Java" has a very good section on sound and sound tools. It includes provisions for a SoundManager, for supporting 3D, and for working with compressed sound (he uses libraries from JavaZoom for MP3 and Ogg Vorbis). As far as I know, most people supporting MP3 or Ogg are still using JavaZoom, a decade later.
18  Game Development / Shared Code / Re: Extremely Fast sine/cosine on: 2015-10-06 18:35:15
Personally I think it's a good idea to periodically think about the opportunity cost associated with any decision you make and decide from there if it's a good idea.

This also applies to the reader's decisions about what to read!

Yes, organizing the presentation of material so that it can be grasped easily takes time, is at the heart of a good writer's craft.

All this said, I have found many of Roquen's posts to be helpful. Some could be more helpful, but that is an ongoing challenge for all of us.
19  Games Center / WIP games, tools & toy projects / Re: Audio library demos on: 2015-10-05 05:57:49
Does this library support the loading and playing of sound files like wav and ogg?

So far, I have wav input and playback, not ogg.

I plan to have, for both desktop and android:
  - ability to load data via "CD quality" wav files,
  - ability to load data via a 16-bit, 44100 fps stereo PCM stream.

With the latter, the programmer can read ogg, decompress it themselves, and present the result as a PCM stream for loading. I wasn't planning to support playing back from compressed files as that chews up a lot of the audio thread's capacity, and is inherently inflexible (compared to composing and manipulating sequences for live playback--my main interest). But it could still be used for loading resources (with the programmer handling the decompression step).

For direct ogg playback, something like TinySound makes more sense.
20  Games Center / WIP games, tools & toy projects / Re: Audio library demos on: 2015-10-05 05:40:51
One thing I haven't tried yet is setting the priority of the busy audio thread to high.

This has been suggested by some on other posts on audio questions. Theoretically, it
should work, because I think the audio thread is in a blocked [state] most of the time.

Absolutely!  The audio thread should have maximum priority.  It's not when it's blocked
that's important, it's when it isn't!  Wink  I can think of at least one Java audio project
that goes as far as using native bindings to increase the thread priority above what can
be achieved normally.  My bindings to JACK also have that, although the thread in
question is created externally to the VM.

Incidentally, you don't have to block on the audio write either - you can use a larger
buffer and write smaller amounts to it based on System.nanoTime() or
line.getLongFramePosition() -

Quick experiment #1, I set my audio thread to Thread.MAX_PRIORITY and nothing blew up. The graphics remained smooth. It's getting late (dinner was served two hours ago and I'm still trying to get to it). Maybe I will send a copy with the MAX_PRIORITY to ags1 and see if she still gets the dropouts while running Vanguard...?

I'm not a very good code reader and am not sure about what I am looking for in the example you linked. Is your code counting frames or elapsed time and then putting itself to sleep? How should that help, theoretically? Or, is this needed because you are not using java sound and thus don't have a blocking line of any sort between your processing and the native playback?

I read and process one frame at a time from the core audio mixer, returning the stereo audio values to a "wrapper class". These output values are accumulated in an array in the JavaWrapper (or AndroidWrapper). For the JavaWrapper, I accumulate about 1/20th of a second's worth of data and then write that via the method. Android has a similar output method.

In both Java and Android, these write methods use blocking lines. I let them handle the rate at which their respective audio systems process the audio data.

I previously was having trouble with dropouts when using arrays holding less than 1/20th of a second, but perhaps by making the priority of the thread higher, a smaller buffer is both possible and helpful?

Quick test #2, with HIGH_PRIORITY, I can run the program with a write buffer of 4096 bytes instead of 8192, but I did get one dropout over the course of two minutes. However, running with a buffer of 8192 bytes and HIGH_PRIORITY for over five minutes, I have yet to hear a dropout.
21  Discussions / Miscellaneous Topics / Re: What I did today on: 2015-10-03 03:34:57
Don't get me wrong, I think getting an internship at Google is great, especially for just starting out.

I was contacted by a fellow who does recruiting for Google and I was thinking maybe I had some job prospects based on a demonstrable history of tackling difficult and unusual problems and having some success with them. Some of the high level blather from Google that you see online seems to suggest this has replaced clever puzzle solving as a hiring metric. But when the recruiter started asking about whether I was a fast programmer or not, I figured this wasn't a good environment for me. I am as fast as I am, and that includes stops and starts and wrong turns when you are trying to figure out stuff for the first time. Figuring out proper architecture/structure so you end up with a decent framework, sometimes it takes doing it wrong a few times just to grow enough new brain cells around the problem to be able to see it properly. Not a production programmer. Besides, isn't a better question more like along the lines of how reliable the code is that you produce?

Anyway, I am glad Google didn't hire you princec. We all have benefited tremendously by your being here and not there. That includes the gaming public and fans of PuppyGames. Also, how is ownership of new games that you write (during the 10% or 15% time they supposedly give you to do your own projects) handled? I think it is much better to be your one's own boss, if you are one is clever enough to pull it off.
22  Games Center / Showcase / Re: Christ on: 2015-10-02 03:37:32
I was thinking, once you collect all 66 books, all zombies are removed.
You have to kill Satan. Grin

Satan would be the boss level?

Maybe Jesus should cure the zombies, not kill them.
23  Games Center / WIP games, tools & toy projects / Re: Audio library demos on: 2015-10-02 03:27:16
Now there are six sounds -- added a lower, slower voice. And I changed the wrap-around to be a fixed amount. Before, I was making the wrap occur as soon as the circle went off screen, regardless of size, making the off screen area inconsistent.

There was one other behind-the-scenes change. One of the faster parts required 14-note polyphony to play, but it only played 3 different pitches. I did some changes so that the pitches are restarted, so now this part only requires 3-note polyphony. Getting this to work required adding a way also enable transposition of pitches, even with the pitch set predefined.

One thing I haven't tried yet is setting the priority of the busy audio thread to high. This has been suggested by some on other posts on audio questions. Theoretically, it should work, because I think the audio thread is in a blocked most of the time.

But I also have to acknowledge, the approach I am taking will at first be limited in the number of notes polyphony that can be used. This demo has 44 synth notes being read every sound frame. There is still a fair bit of richness one can achieve with careful composing, but this does limit things, for now. More will eventually be possible as computing power continues to increase.
24  Games Center / WIP games, tools & toy projects / Re: Audio library demos on: 2015-09-29 05:56:26
I uploaded a slightly modified version. On the bottom left are little squares for turning individual circles on or off, color coded to the circles.

I am starting to switch over to JavaFX, so I think I'm going to stop investing in this GUI for a bit until I get a chance to rewrite it. Still going back and forth about adding a couple more concurrent themes/circles.

Meantime, am working on another demo that is more of an environmental soundscape.
25  Discussions / Miscellaneous Topics / Re: What I did today on: 2015-09-28 08:16:06
@SHC - Neat! I'm kind of wishing the logo was maybe 3/4" higher so that it doesn't obscure the blocks as they go furthest into the distance.

Happy birthdays!

Debugged what I'm calling a "Blinker" sound tool. Found an error which involved mixing up relative vs absolute frame numbers. I'm using it to "blink" a set of continuous sounds. The example I'll post soon is a set of four "cricket" synths. The "Blinker" picks one or another of the sounds and turns it off for a short while, then restarts it. Also found some decent settings and added a slight random pitch change to the cheeps so they are not strictly uniform.

Have commenced on a rewrite of a more generic "Sound Field" tool that works kind of like a wind chime (or can be set to do so). Am trying a setup where a base set of frequencies, volumes and pans are entered for the various sounds (and can be changed anytime), but also a variance range for each can be entered. Thus the option exists to have the sound to randomly play back at a volume or pan or even pitch speed that is off of the baseline one entered for that sound. Motivation: I don't want to be writing multiple versions of this code, each with a different amount or type of variability.

Spent a little time composing/coming up with ideas for a couple more audio motifs for the sound demo I recently posted, and have been mulling some good ideas presented by ags1.
26  Games Center / WIP games, tools & toy projects / Re: Vangard on: 2015-09-28 07:56:59
I played through a pretty neat game from Steam called "The Banner Saga" which has a strong Norse theme, and good writing. The AI on the character interaction seemed pretty good, too, though it was entirely through dialog choices. I got it as part of a combo package, so it is probably inexpensive. The main draw for me was that the composer was the same one who wrote the score for "Journey." You might find it interesting to peruse, though the basic layout is very different from your game.

Am looking forward to seeing where you go with this.
27  Games Center / WIP games, tools & toy projects / Re: Audio library demos on: 2015-09-28 07:44:32
28  Games Center / WIP games, tools & toy projects / Re: Audio library demos on: 2015-09-28 00:38:00
@ags1 Thanks for the very useful feedback.
I'm curious what Vanguard is. I did a search but had multiple hits.

Re timing--there might be more that can be done to help. Timing issues occur on multiple levels. At the lowest level is playback continuity, which relates to the audio frame rate. Here, the low level audio frame rate is 44100 frames per second. At a higher level is the "pulse", which is happening about 8 times a second (plus or minus, depending on tempo selected). Many decisions or states don't become manifested as audio until the next pulse. So, a buffer system that supported the first level but didn't interfere with the second could be a good addition. (This is pushing a bit beyond the edges of my current abilities.)

Yes, it is hard to figure out what circle goes with which motif. I have to curb my enthusiasm for complexity if the goal is to make a "demo" where things are clear.

Coding various shapes could work. Another idea I'm getting is to give each circle an image that gets resized/redrawn. (Main prejudice against images, they require lots of bytes, and might weaken the point that the audio heard is done with very little. Having a jar with a complex system at 80KB is more impressive than 80KB + several hundred KB in images.) (OK then, draw something unique in each! Hmm. Spiral sprites!)

I could also start the thing off in a state where there is less going on initially. Couple ideas along those lines to ponder (I am open to others):

1) have a slider that controls the number of circles, or a control can turn circles on/off (makes them invisible and inaudible)

2) animate the "audible area" (gold background ring) so that it ranges from very small (where it is clearer what is passing through it, but will leave more silence or thinner textures) to very large (where everything is babbling at the same time). It is possible to manually change this area's size, but most people won't think to do so.

[EDIT -- added] Another solution: make a piece where the parts don't sound so similar! Instead, am playing around with composing and adding another track, more slow paced and deeper, compared to the others. It will probably be easier to spot compared to the others (aurally) but the others will still crowd a certain perceptual space.
29  Games Center / WIP games, tools & toy projects / Re: Skullstone - a dungeon crawler game on: 2015-09-27 02:04:49
From the Facebook link, I see that you have a collaboration going with this composer/musician. Very cool. The music has a lot of atmosphere and makes good use of ambient sound effects. The last dungeony sort of game I played was "Prince of Persia" with a pretty solid guitar/metal music track, that I liked. I haven't experienced many of these sorts of games. But I do think your collaboration could lead to a really nice, immersive experience, especially to the extent that there is mutual positive feedback between the game/graphics and music.

[Tangent alert.] Some really neat music coming out of Poland. I ran across a band I like called 'Moonlight' while listening to an Ethereal/Goth stream at called "In Dark Faith Eternal". For example, I like this song, called "Ergo Sum" a lot. <a href=";hl=en_US&amp;start=" target="_blank">;hl=en_US&amp;start=</a> I'm not recommending this particular song/style for your game (or any game), just sharing it because it's a beautiful piece. It's one of their slow songs, most are more guitar-based/metal, more uptempo. There are a few other bands on that stream (IDFE) that seem to be in as similar neighborhood stylistically as your collaborator.
30  Discussions / General Discussions / Re: Make Android Apps with Java SE coding !!! on: 2015-09-26 12:23:05
Have you seen RoboVM?

I like their approach of ditching Swing/AWT and working towards implementing JavaFX instead. JavaFX is more similar to Android's GUI than Swing. Also, it has 3D support, and overall is getting attention and development where Swing is basically going nowhere.
Pages: [1] 2 3 ... 42
Dwinin (72 views)
2015-11-07 13:29:08

Rems19 (81 views)
2015-10-31 01:36:56

Rems19 (77 views)
2015-10-31 01:32:37

williamwoles (107 views)
2015-10-23 10:42:59

williamwoles (93 views)
2015-10-23 10:42:45

Jervac_ (110 views)
2015-10-18 23:29:12

DarkCart (135 views)
2015-10-16 00:58:11

KaiHH (117 views)
2015-10-11 14:10:14

KaiHH (156 views)
2015-10-11 13:26:18

BurntPizza (172 views)
2015-10-08 03:11:46
Rendering resources
by Roquen
2015-11-13 14:37:59

Rendering resources
by Roquen
2015-11-13 14:36:58

Math: Resources
by Roquen
2015-10-22 07:46:10

Networking Resources
by Roquen
2015-10-16 07:12:30

Rendering resources
by Roquen
2015-10-15 07:40:48

Math: Inequality properties
by Roquen
2015-10-01 13:30:46

Math: Inequality properties
by Roquen
2015-09-30 16:06:05

HotSpot Options
by Roquen
2015-08-29 11:33:11 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!