Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (477)
Games in Android Showcase (109)
games submitted by our members
Games in WIP (537)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Gameserver makes computer sweat  (Read 653 times)
0 Members and 1 Guest are viewing this topic.
Offline Reck

Senior Newbie





« Posted 2012-12-05 08:34:08 »

I've coded a gameserver which works very well. However, whenever it's running, my computers fan goes crazy.
I've been looking through the code, and i can't really figure out why.

The code is attached below, i hope someone can see what causes this! :-)

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  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
40  
41  
42  
43  
44  
45  
46  
47  
48  
49  
50  
51  
52  
53  
54  
55  
56  
57  
58  
59  
60  
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72  
73  
74  
75  
76  
77  
78  
79  
80  
81  
82  
83  
84  
85  
86  
87  
88  
89  
90  
91  
92  
93  
94  
95  
96  
97  
98  
99  
100  
101  
102  
103  
104  
105  
106  
107  
108  
109  
110  
111  
112  
113  
114  
115  
116  
117  
118  
119  
120  
121  
122  
123  
124  
125  
126  
127  
128  
129  
130  
131  
132  
133  
134  
135  
public class NFTServer {

    long timeNow = System.currentTimeMillis();
    Server server;
    //mySQL database;
   Board board;
    HashSet<Character> loggedIn = new HashSet();
    ArrayList<Player> playerList;

    public NFTServer() throws IOException {
        playerList = new ArrayList<Player>();
       
        board = new Board();
       
        server = new Server() {
            protected Connection newConnection() {
                return new CharacterConnection();
            }
        };

        Network.register(server);

        server.addListener(new Listener() {
            public void received(Connection c, Object object) {
                CharacterConnection connection = (CharacterConnection) c;

                if (object instanceof Login) {
                   
                    String name = ((Login) object).name;
                    int playerId = ((Login) object).playerId;

                    Message message = new Message();
                    message.message = "Welcome " + name + " id: " + playerId;
                    connection.sendTCP(message);
                   
                    LoginAnswer answer = new LoginAnswer();
                    answer.playerId = playerId;
                    connection.sendTCP(answer);
                   
                    Position randomPosition = board.getRandomPosition();
                    playerList.add(new Player(name, randomPosition.getPositionX(), randomPosition.getPositionY(), playerId));
                    connection.playerId = playerId;
                    connection.name = name;
                }
               
                if (object instanceof RequestMove) {
                    for (int i = 0; i < playerList.size(); i++) {
                        Player currentPlayer = playerList.get(i);
                        if (currentPlayer.getId() == connection.playerId) {
                            int positionX = ((RequestMove) object).positionX;
                            int positionY = ((RequestMove) object).positionY;
                            Position position = new Position(positionX, positionY);
                            currentPlayer.setPosition(board.convertCoord(position).getPositionX(), board.convertCoord(position).getPositionY());
                        }
                    }
                }
               
                if (object instanceof ChatMessage) {
                    String message = ((ChatMessage) object).message;
                    int playerId = connection.playerId;
                    for (int i = 0; i < playerList.size(); i++) {
                        Player currentPlayer = playerList.get(i);
                        if (currentPlayer.getId() == connection.playerId) {
                            BroadMessage broadMessage = new BroadMessage();
                            broadMessage.message = message;
                            broadMessage.playerId = playerId;
                            server.sendToAllTCP(broadMessage);
                        }
                    }
                }

            }

            public void disconnected(Connection c) {
                CharacterConnection connection = (CharacterConnection) c;
                if (connection.name != null) {
                    for (int i = 0; i < playerList.size(); i++) {
                        Player currentPlayer = playerList.get(i);
                        if (currentPlayer.getId() == connection.playerId) {
                            playerList.remove(i);
                        }
                    }
                }
            }
        });
        server.bind(Network.port);
        server.start();

        JFrame frame = new JFrame("NFTServer");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosed(WindowEvent evt) {
                server.stop();
            }
        });
        frame.getContentPane().add(new JLabel(" Servervindue"));
        frame.setSize(320, 200);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

       
        while (true) {
            if (timeNow + 100 < System.currentTimeMillis()) {
               
                PlayerList toClient = new PlayerList();
                toClient.persons = new ArrayList<Map<String, String>>();
               
                for (int i = 0; i < playerList.size(); i++) {
                    Player currentPlayer = playerList.get(i);
                    Map<String, String> person = new HashMap<String, String>();
                    person.put("name", currentPlayer.getName());
                    person.put("playerId", "" + currentPlayer.getId());                    
                    person.put("posX", "" + currentPlayer.getX());
                    person.put("posY", "" + currentPlayer.getY());
                    toClient.persons.add(person);
                }
               
                server.sendToAllTCP(toClient);

                timeNow = System.currentTimeMillis();
            }
        }
    }

    static class CharacterConnection extends Connection {

        public String name;
        public int playerId;
    }

    public static void main(String[] args) throws IOException {
        Log.set(Log.LEVEL_DEBUG);
        new NFTServer();
    }
}
Offline 65K
« Reply #1 - Posted 2012-12-05 08:59:39 »

Let the server thread sleep a bit in the while loop.

Offline Reck

Senior Newbie





« Reply #2 - Posted 2012-12-05 09:01:54 »

I'm very new at Java.
How would i implement this? (Code examples please)! :-)
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Joshua Waring

Senior Member


Medals: 4
Projects: 2



« Reply #3 - Posted 2012-12-05 15:13:54 »

Thread.sleep(/* time in milliseconds */ 500); // sleep for 0.5 Seconds

It is ms right?

The world is big, so learn it in small bytes.
Online matheus23

JGO Kernel


Medals: 106
Projects: 3


You think about my Avatar right now!


« Reply #4 - Posted 2012-12-05 15:14:41 »

Thread.sleep(/* time in microseconds */ 500);

It is ms right?

Yes. It's milliseconds.

See my:
    My development Blog:     | Or look at my RPG | Or simply my coding
http://matheusdev.tumblr.comRuins of Revenge  |      On Github
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

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

The first screenshot will be displayed as a thumbnail.

CogWheelz (17 views)
2014-08-01 22:53:16

CogWheelz (15 views)
2014-08-01 22:51:43

CopyableCougar4 (20 views)
2014-08-01 19:37:19

CogWheelz (19 views)
2014-07-30 21:08:39

Riven (27 views)
2014-07-29 18:09:19

Riven (16 views)
2014-07-29 18:08:52

Dwinin (14 views)
2014-07-29 10:59:34

E.R. Fleming (42 views)
2014-07-29 03:07:13

E.R. Fleming (13 views)
2014-07-29 03:06:25

pw (44 views)
2014-07-24 01:59:36
Resources for WIP games
by CogWheelz
2014-08-01 18:20:17

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

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

List of Learning Resources
by SilverTiger
2014-07-31 18:26:06

List of Learning Resources
by SilverTiger
2014-07-31 13:54:12

HotSpot Options
by dleskov
2014-07-08 03:59:08

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:58:24

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:47:22
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!