Java-Gaming.org Hi !
Featured games (84)
games approved by the League of Dukes
Games in Showcase (593)
Games in Android Showcase (168)
games submitted by our members
Games in WIP (646)
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
1  Games Center / WIP games, tools & toy projects / Re: Brutal Fighters - 2D Competitive Action Game on: 2015-06-22 16:28:54
Cool, I'm looking forward to giving it a go! Multiplayer games are the best.

A few questions about your multiplayer implementation:
1. Do the clients' simulations run some milliseconds behind the server or do they all run concurrently with the server but the clients do "dead reckoning" to simulate where the game state would be assuming nothing has changed.
2. When a new packet arrives which shows an enemy player did a mouse click and a change in direction, do the other clients 'teleport' the enemy player to his new position instantly or do you smooth the transition?
3. How do you stop the clients' game worlds becoming out of sync with the server? Does the server send the whole world every few frames?
Sorry for the detailed questions. No need for detailed answers.
I'm always interested in how multiplayer code works under the hood. I find it one of the hardest and most interesting things.

I appreciate the questions, and discussing about how multiplayer works under the hood is always helpful.

1. I suppose the clients do "dead reckoning" although it's a bit more than just extrapolation and updating the players position using their velocity and direction, clients also calculate collision detection and such, so the clients won't be "extrapolated" into a wall for instance.

2. Good question, thanks to a good client prediction, this rarely happens, although flickering is starting around 220ms latency, which in most competitive games is a death sentence anyway.
However, if a client is experiencing a bad lag spike, the other players in his screen are teleported, I suppose in a competitive game, players want to recover as fast as possible from a lag spike, transition and "lerping" may take too long compared to teleporting. Please correct me if I am wrong Smiley

3. By the whole world you mean all players info? Then yeah, the server sends all players info every few frames in the client, the client always extrapolate all players and sync accordingly after each server packet.

I agree, multiplayer it's one of the most interesting things in game development!
I hope it's clear, let me know if you got more questions or something is not clear.
Thanks!
2  Games Center / WIP games, tools & toy projects / Re: Brutal Fighters - 2D Competitive Action Game on: 2015-06-21 23:52:22
Got it, magic.

But seriously, this looks really fun Smiley great work!

Haha thank you man! Smiley
3  Games Center / WIP games, tools & toy projects / Re: Brutal Fighters - 2D Competitive Action Game on: 2015-06-21 20:47:24
Looks great on the videos. The graphics are bright and have a nice softness.
I'm not a fan of mortal-combat street fighter type games but this one looks interesting.
For noobs like me, maybe you could make the combos executable with on-screen buttons with icons so they can all be seen.
How did you implement the multiplayer code?
Thanks a bunch! The graphics are somehow a bit more brighter in the videos actually.

Haha do not worry, I am not a fan of Mortal CKombat style either, this game is about strategy, capture the enemy flag and bring it to your base, using teamwork, dodging enemy skills and unleashing tons of damage while defending your flag. Not similar to Mortal Kombat actually, which lacks teamwork, in fact there aren't any teams at all.. Smiley

Regarding making HUD for the skills, yep it's right on my to-do list, and I even have already a basic concept of it ready.
Combos are not possible to show on the HUD, you probably meant skills, combos are a set of skills and actions that dish the most amount of damage in the least amount of time, combos are planned ahead, and are trained because executing them requires great timing, and fast decision making.

How did I implement the multiplayer code? (did you mean the netcode or the actual server code?)
Well that will take pages to explain, but briefly I have a matchmaking system implemented, similar to League of Legends, Dota 2, or CSGO..
Each match runs in the server completely, all the collision detection, velocity calculations, everything runs and calculated in the server, the client gets information(in the form of UDP Packets) and interpolates what will happens next till the next packet set of information.
I tested it with a pretty low amount of people, but it showed no lag or netcode problems nonetheless.
4  Games Center / WIP games, tools & toy projects / Re: Brutal Fighters - 2D Competitive Action Game on: 2015-06-21 01:36:48
It looks really cool, I think you're using the assets from Little Fighter 2, right?
First of all thanks!
And no, I am not using the assets from Little Fighter 2 directly, I use sprites that the community of Little Fighter 2 created, I asked the moderator, and he said if I attribute those sprites to the community site, then it's ok to use them. And I did on my main game site.
5  Games Center / WIP games, tools & toy projects / Brutal Fighters - 2D Competitive Action Game on: 2015-06-20 23:50:47
What's going on Java game developers?!
I've been working for the past months on a 2D competitive action game called Brutal Fighters.

Trailer:
https://www.youtube.com/watch?v=MXCVy5i2ABg
Yup 60fps trailer is awesome!

What is Brutal Fighters?
Brutal Fighters is a game made with Java, LibGDX, Kryonet, and some other tools. For the PC, Mac and Linux(and every other OS that able to run JVM should be fine too).
An action packed game, where teamwork is key to claim victories.
Each fighter in the game is tough to master, you need to train and learn your main fighter's combos and skills, know when to execute which skills and combos, how to dodge enemy attacks with each fighter and eventually how to outplay the enemies with your team and claim victory.

Can we test the game?
The game has a Linux VPS, which runs the server, I would be very happy to let you test my game, I know you will enjoy it, but currently I update the server so much, that it will ruin the experience with all those disconnections and patches, but soon though! let me know if you want to test it and I will arrange something, please Smiley

Will it be free?
Possibly, I planned to sell it, but to be honest, I tested the game with friends, it was both intensive and so much fun, that I just want to give it away for free, no in game transactions, fully for free. So currently I am swinging between fully free or I will ask a small amount of money for my effort, consider it like buying a cup of coffee for the hard work I've done Smiley

Will the game be open source?
Doesn't matter if the game will be free or not, it WILL BE open source on Github! for sure! (Yup, I am an open source guy, aren't you too?).

I also added the trailer and some screenshots from the game, check it out below or in the main game site; the development blog contains bunch of these, so be sure to check it out too if you are interested!

Sites:
brutalfighters.com - The main game site
blog.brutalfighters.com - The development blog that also features a kind of a personal blog to me, I am posting everyday haha, let me know if you like it Smiley (and bookmark it if you do!)

Facebook
Twitter
Google+


Pictures








Sorry for the image quality, due to the lack of the resize feature, I reuploaded the images, and they lost some quality, here is an album on IMGUR with better quality pictures Smiley

So what do you think? Comments will be much appreciated, especially constructive feedbacks! Because this game just really deserves it! Wink
6  Game Development / Newbie & Debugging Questions / Re: LibGDX and Scene2d - simple menu issue on: 2015-04-17 00:13:39
It's a table, so it'll align to rows and columns. If you want it centered, try colspan() to make a cell extend horizontally.

I will try it now, sounds like the answer!
Yeah I just figured out it's a table :0
I guess that's what happening when you binge a programming session on your game haha Smiley
7  Game Development / Newbie & Debugging Questions / LibGDX and Scene2d - simple menu issue on: 2015-04-16 02:23:11
I am using LibGDX and Scene2D to create a simple menu for my game.<br />
Here is a simple example that works for me:

1  
2  
3  
4  
    table.add(gameLogo).row();
    table.add(button1).row();
    table.add(button2).row();
    table.add(button3).row();

I didn't include the irrelevant code(including the table into the stage for example).<br/>

If I don't include `.row()` to each object that I add to the table, then the menu isn't aligning to the center, which is very odd, for example:

1  
2  
3  
4  
    table.add(gameLogo).row();
    table.add(button1);
    table.add(button2).row();
    table.add(button3);

Why is the menu behaving like that? should I use more `Tables` or add some `HorizontalGroups` perhaps?

If you need any additional information, or images I can provide, although it does the same for even the simplest menu implemention possible with LibGDX and Scene2d.
8  Discussions / Business and Project Management Discussions / Brutal Fighters || Let's build a team! on: 2015-02-04 10:14:15
What's going on indie developers?

I am developing and working on a project for quite a while, the name is Brutal Fighters.
Check some screenshots here - http://imgur.com/a/u5VRI#0

All right so what is Brutal Fighters?
Brutal Fighters is a multiplayer 2D fighting game, expected to be competitive, and probably the most popular mod will be capture the flag.
At the start of every match you will choose a fighter(currently there is only one as I don't have any artists whatsoever), and then 2 teams will fight against each other, trying to catch the flag and bring it to their base. this is the main idea at the moment but it might change.

With what the game is developed?
The game is developed with Java, LibGDX, Kryonet, some GLSL for shaders and Tiled. that's all basically.

So is the game almost ready?
YES. the game has fully implemented multiplayer, with a real hosted linux server, fully functional matchmaking, game launcher, main menu, settings menu, full skill system, fast paced smooth combat, no lag even with 200ms ping, and much more. just look at the screenshots.

So what is left to do?
Well I am not much of an artist, so I need someone to make sprites, some fighters, map tiled blocks(look screenshots), backgrounds, and that's basically all for now.

I am the only one working on this project at the moment, and I need more people to join the team, especially artists/pixel-artists, but everyone is welcome.

It's not a paid job, but when the game is going to be released, which is going to hit Alpha after we'll have some sprites, and backgrounds, we might sell the game and share income.

So if you want to join, write a comment below.
Thanks and see you out there indie developers.



9  Game Development / Newbie & Debugging Questions / Re: Libgdx Death animation on: 2014-08-04 12:48:03
make a check and see if it is on last frame?

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
public void doingAnimation(){

   if(frames == 5){
       stopAnimation();
       animation = false;
   }

   //make an int to plus or something
   frames++;

   or
   while(animation){
       frames++;
   }

}


btw just trying to help Smiley hope you get it

There must be more effective way to achieve this..
10  Game Development / Newbie & Debugging Questions / Libgdx Death animation on: 2014-08-04 12:23:29
Hello, I want to make death animation for my character.

Here is a basic example -
1  
2  
3  
4  
5  
stateTime += Gdx.graphics.getDeltaTime();          
currentFrame = deathAnimation.getKeyFrame(stateTime, true);  
spriteBatch.begin();
spriteBatch.draw(currentFrame, 50, 50);            
spriteBatch.end();


So the problem is that the character is looping the animation over and over again.
and I want it to do the animation and stay on the last frame(which is when the character lays on the ground) instead of looping it.

Any ideas?
11  Game Development / Newbie & Debugging Questions / Re: Runnable jar doesn't play WAV formats on: 2014-07-25 16:24:08
well we would assume that files are found since 2 are playing, and there are no errors, however fileNotFound would be the goto problem.
next problem could be the format: make sure they all have the same format or at least a format that works. however why that wouldnt work in a jar but from the project itself, I'm not sure

Sorry didn't see your reply, well all the files are the exact same format (wav), and they almost all identical. but for some reason only 2 worked, but see my previous comment for the fix.
12  Game Development / Newbie & Debugging Questions / Re: Runnable jar doesn't play WAV formats on: 2014-07-25 16:21:29
I found the problem, I needed to extract the sound folder from the jar and place it near the jar. now it plays all the sounds.
I really don't get it, gonna check it in advance.
13  Game Development / Newbie & Debugging Questions / Runnable jar doesn't play WAV formats on: 2014-07-25 16:07:01
I exported runnable jar from my libgdx desktop project.
To my surprise, the jar file doesn't play most of the WAV formats, it plays only 2 out of 5.

I executed the jar file from the command line to check for errors, but it was perfectly fine, i checked the files, and it looks like bit rate is not the problem.

Any ideas folks?
14  Game Development / Newbie & Debugging Questions / LibGDX Tiled map rendering issue on: 2014-06-18 11:58:20
Rendering the tiled map in LibGDX isn't a problem but when the camera moves there are some lines between the tiles, now those lines aren't the background, just random green lines (my background isn't green).

similar to this video - https://www.youtube.com/watch?v=hSvGadQit7Q

I read that padding should fix it.. but i couldn't understand how should i pad the tileset.

Any ideas?

EDIT : the game running on resolution of 1680*1050 as my screen, but if i change the game resolution to 1280*720, the problem is gone. ANY IDEAS?! But it's a good hint

EDIT : I FIXED IT LONG TIME AGO (3 days ago) just wanted to update it was a problem in the camera resolution.
15  Game Development / Networking & Multiplayer / Re: Collision detection - server side on: 2014-06-12 13:07:51
I believe for that it would be something like:
1  
((TileLayer)Map.getLayer(int i)).getTileAt(int tx, int ty);

It looks like the methods you've written are pretty close to the original. I will say I'm surprised by the lack of documentation for the library (libtiled-java, not yours), but the source is straightforward and compact enough that a quick "find" command is usually enough to get pointed in the right direction.

Either way, it may be something to keep in mind in case you hit a hiccup with implementing a feature in your library, and need to see how it was done before.

Cheers. Grin
Hey thanks, i tried this command in lots of ways, and i did exactly what you wrote here.. but it still didn't work and returned null.. does it work for you? if it does i will try again

Anyways, I really like my library, it has a lot more features then libtiled and imo its more flexible, effective and useful, so i don't really see why should i switch to libtiled.
16  Game Development / Networking & Multiplayer / Re: Collision detection - server side on: 2014-06-11 18:26:04
Hello,
So as nobody could really help me, and i couldn't find any documentation or libraries to use tiled maps, i don't mean libraries like libgdx, i mean libraries for easy checking, customizing the maps and tiles, collision detection, and everything you want. but a library without any textures to load or using OpenGL and your graphics card in order to work. just a library to work with the map without rendering it (like server sided collision detection).

So basically you want libtiled-java.
Yeah.. i couldn't understand how to get cells in the map.
As you can see in what i did, you have this function
1  
map.getTile(i,x,y)

I couldn't find something like this in libtiled so i decided to create a `library` myself.
17  Game Development / Networking & Multiplayer / Re: Collision detection - server side on: 2014-06-11 13:49:07
Hello,
So as nobody could really help me, and i couldn't find any documentation or libraries to use tiled maps, i don't mean libraries like libgdx, i mean libraries for easy checking, customizing the maps and tiles, collision detection, and everything you want. but a library without any textures to load or using OpenGL and your graphics card in order to work. just a library to work with the map without rendering it (like server sided collision detection).

So extremely long story short, i created a basic library, which i can give to you all if you want.
It works like this, exactly how i want it -
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
TMXMapLoader.Load(); // Loading the TMXMapLoader
TiledMap map = TMXMapLoader.readMap("assets/maps/foo.tmx"); // We reading the map

// Get Tiled Layer, which is basically the layers you create inside Tiled
map.getTiledLayer(i); // Get Tiled Layer with an index, returns TiledLayer.

// Get a tile/cell
map.getTile(i, x, y); // First parameter = layer index, Second parameter = X axis of the tile, Third parameter = Y axis of the tile. returns Tile.
map.getTiledLayer(i).getTile(x,y); // Same as above.

// Check if the tile has the `blocked` property, if yes we can't move through it or collide it (wood, stone), if not we can move through it (like air, water).
map.isBlocked(i, x, y);  // First parameter = layer index, Second parameter = X axis of the tile, Third parameter = Y axis of the tile. returns Boolean
map.getTile(i,x,y).isBlocked(); // Same as above
map.getTiledLayer(i).getTile(x,y).isBlocked();  // Same as above

// Get whatever you want
map.containsKey(i,x,y, key); // Get any property of the tile
map.getTile(i,x,y).containsKey(key); // Same as above
map.getTiledLayer(i).getTile(x,y).containsKey(key); // Same as above

// Get Tileset
map.getTileset(i); // Just get a Tileset with an index

// Get properties of the Tileset
map.containsKey(i, key) // Get any property of the tileset
map.getTileset(i).containsKey(key) // Same as above


That's what i remembered, you can do basically everything, very easy to use. i added bunch of useful functions and more advanced than those, but no time to show.
tell me what you think. its not pro or something just created something fast that is exactly what i needed, and couldn't find something like this nowhere.

If you want i can give it to you all.
18  Game Development / Networking & Multiplayer / Re: Collision detection - server side on: 2014-06-11 13:16:52
What do you do when two or more entities try to move to the same location at the same time, or nearly the same time. Your collision detection logic is not instantaneous, so both calculations will start (not knowing about the rival move) and calculate that the new location is clear... the end result is two entities now intersect. (I'm assuming your server is multithreaded here.)
Basically, in my game the players can collide each other, in my game it looks completely fine, just every player will see his player on top. additionally it even looks illogical if the players can't move through other players. i tested it by the way.
19  Game Development / Networking & Multiplayer / Re: Collision detection - server side on: 2014-06-09 23:35:23
How are you going to handle races to occupy locations?
I don't understand can you explain more? thanks
20  Game Development / Networking & Multiplayer / Re: Collision detection - server side on: 2014-06-09 23:34:45
Dont use collission detection server side, install libgdx or implement your own system.
What do you mean? you think i should make client-side collision detection? if that's what you meant, you are right, but i will make the client side collision detection for prediction / interpolation, but the actual collision detection will be server side, other wise hackers will hack the collision detection without problem, and will cheat the game and ruin the multiplayer experience.
21  Game Development / Networking & Multiplayer / Collision detection - server side on: 2014-06-09 13:42:55
Hello, I am making a multiplayer game with LibGDX, but the libgdx only installed in the client. which means the server is a complete pure java project.
I use Tiled maps for the game, with libgdx its really easy to do collision detection with all the tiled classes, but with pure java project its nightmare (the server).

So how can i do server-side collision detection? or to simplify the question, how can i read tiled maps without any libraries but with pure java?

I have some ideas in mind, i will test them and share them is they are helpful, but please post yours either. thanks Smiley
22  Game Development / Newbie & Debugging Questions / Re: get cell in tiled map on: 2014-06-08 15:53:26
I'm not quite familiar with libtiled since I use Libgdx but this getTileAt(int tx, int ty) seems to do the trick
Wow..Looks great, thanks!
but how should i use it? getTileAt() returns null everytime i use it. any ideas?
23  Game Development / Newbie & Debugging Questions / Re: get cell in tiled map on: 2014-06-08 11:11:49
Here how you can get a tileset tile (doesn't related to the actual map) -
1  
2  
3  
TMXMapReader reader = new TMXMapReader();
Map map = reader.readMap("assets/map.tmx");
map.getTileSets().get(index).getTile(index);    // That's how you get a tile / cell


Didn't you answer your question yourself right there?
To be honest it is really difficult to understand what you are asking...
It's hard to understand probably because you dont really know what tileset is.. tilesets are the tiles that are going to be used in the map, like this  -http://nethackwiki.com/mediawiki/images/7/7c/Vanilla_tiles.png
I showed you an example how you can take tile in a tileset.. not in a map, in a tileset.

Now what i am asking is how can i get a tile / cell inside my map.
for example, if i want to get the tile / cell in my map at the position (x=5,y=6), how can i do that? without libgdx?

Hope you understand, Thanks
24  Game Development / Newbie & Debugging Questions / Re: get cell in tiled map on: 2014-06-07 21:06:01
No idea with the library you are using but with libgdx is something like this:
1  
((TiledMapTileLayer)map.getLayers().get(0)).getCell(x,y);

The thing is i want to do collision detection in the server, and installing libgdx in the server its not a good idea.. so how can i make collision detection of tiled map in the server?
25  Game Development / Newbie & Debugging Questions / Re: get cell in tiled map on: 2014-06-07 08:23:44
Ohh come on.. how did u make multiplayer with tiled maps? how the server handled collision detection?
26  Game Development / Newbie & Debugging Questions / Re: get cell in tiled map on: 2014-06-07 08:22:29
Still can't solve it.. please help? Sad
maybe it has something with the map xml file?
27  Game Development / Newbie & Debugging Questions / Re: get cell in tiled map on: 2014-06-04 12:58:56
Hey, well i couldnt find a solution but here is some information

Here how you can get a tileset tile (doesn't related to the actual map) -
1  
2  
3  
TMXMapReader reader = new TMXMapReader();
Map map = reader.readMap("assets/map.tmx");
map.getTileSets().get(index).getTile(index);    // That's how you get a tile / cell


If you want to get tile properties -
1  
map.getTileSets().get(index).getTile(index).getProperties();


You can get any information about the tile, lets say we want to check if the tile contains key `grass`
1  
map.getTileSets().get(0).getTile(1).getProperties().containsKey("grass");


Correct me if i am wrong Wink
But i still can't find a way to get a cell inside the map.

ANY HELP?
28  Game Development / Newbie & Debugging Questions / get cell in tiled map on: 2014-06-04 12:45:52
Hello, i wish to know how can i get cell in tiled map, ... i know what you are thinking? LibGDX? no actually i wish to do it without libGDX, i wish to do it with libtiled - https://github.com/bjorn/tiled/tree/master/util/java/libtiled-java

here is an example how to use libtiled - https://github.com/bjorn/tiled/blob/master/util/java/tmxviewer-java/src/TMXViewer.java

But i played with it and couldn't find how to get cell..

I wish to use libtiled and not libgdx, because i want to do collision detection with multiplayer server, and i dont want to install libgdx in the server, just as simple as possible.

Thanks in advance, if i will find a solution, be sure i will update you all (and maybe i will make a guide because there is 0 documentation for tiled maps)
29  Game Development / Networking & Multiplayer / Re: Multiplayer game with libgdx on: 2014-05-23 09:45:21
Depends what route you wanna go down, many involve a world of hurt Wink.

Most professional games will have a server that loads the entire map (never renders it obviously), and calculated collisions exactly as you probably are in your single player version. The people 'playing on the server' will also calculate collisions themselves, then just send what they have done (e.g. im moving forward and ended up here or something). This is when the server checks its collisions results with the clients, and send the client a correct version if it went wrong. This is essentially how you stop someone editing their client to cheat and go through walls or always claim they've shot someone, or w/e.

If you're making a small game, or even better if its co-op (no pvp) then this is unnecesary, I don't recommend it anyway as its extremely difficult when compensating for the lag time it takes to send and receive messages.

So really it all depends what your game does.. It may be best just to use the server to tell all the players what each one has done, and forget doing server side collision for now. Once you have that running smooth you can look at what problems exist, and start working on a solution.

But tl'dr your question about how to do it on server side, you keep track of the players state, receive his actions, and check his movement or w/e exactly the same as in singleplayer, so yes you need to load the collision data, be it a tiled array or bunch of squares or w/e

Edit: I just read your other thread about its being a 2d fighting game. That isnt easy, you'll need to do a fair bit of reading up on the subject. GL

Yeah.. i actually did already the single player and it works pretty awesome and smooth. so i decided why not adding the multiplayer? i know its hard, but what can you do? when there will be a pill that will make everything a lot easier i'll be glad to use it, but till then..  Wink
30  Game Development / Networking & Multiplayer / Re: Multiplayer game with libgdx on: 2014-05-22 21:24:56
No you won't need to. Check collisions client side for now, focus on actually learning networking before you move to advanced networking, trust me.
ok thanks, i will work on some other things, like the client's input and such.. and will make the collision detection client side for now..
But i will be really glad if you will tell me how should i do the collision detection server side, with tiled map please  Smiley
Pages: [1] 2 3
 
Riven (11 views)
2015-07-03 11:22:16

deepthought (41 views)
2015-06-30 15:39:44

deepthought (45 views)
2015-06-30 15:39:09

deepthought (55 views)
2015-06-30 15:36:52

Za\'Anzabar (24 views)
2015-06-29 05:44:54

TritonDreyja (41 views)
2015-06-24 17:10:40

CopyableCougar4 (40 views)
2015-06-23 00:34:45

BurntPizza (44 views)
2015-06-21 20:36:46

cookiecompiler (86 views)
2015-06-11 15:42:53

cookiecompiler (49 views)
2015-06-11 15:41:14
How Do I Expand My Game?
by bashfrog
2015-06-14 11:34:43

List of Learning Resources
by PocketCrafter7
2015-05-31 05:37:30

Intersection Methods
by Roquen
2015-05-29 08:19:33

List of Learning Resources
by SilverTiger
2015-05-05 10:20:32

How to: JGO Wiki
by Mac70
2015-02-17 20:56:16

2D Dynamic Lighting
by ThePixelPony
2015-01-01 20:25:42

How do I start Java Game Development?
by gouessej
2014-12-27 19:41:21

Resources for WIP games
by kpars
2014-12-18 10:26:14
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!