Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (576)
games submitted by our members
Games in WIP (498)
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]
1  Game Development / Networking & Multiplayer / Re: For my first MMORPG, I'd choose...? on: 2005-11-02 03:09:59
First of all, guys, thanks for the input.

Secondly, what I'm doing when there's a selection in place is drawImage(..) of a translucent tile (the red-selector tile) for every tile that is "selected", so yes, I'd expect a big difference between the selection-on/off phases.

What's more, when there's no selection, and you don't even move the mouse, I simply do nothing because I only re-draw the background and "trees" where the cursor-tile has previously visited.

Another thing is, if you right-click, the "trees" should disappear and appear again in different locations... this action (even when repeated) shouldn't bring a major FPS change either.
2  Game Development / Networking & Multiplayer / Re: For my first MMORPG, I'd choose...? on: 2005-10-30 19:14:45
zircher, you're right in everything you say, and so of course is JAW, but I'm not into the 3D scene yet, this is also a learning experience so even though I'm serious about producing something to be proud of, I want to start with something I understand, and can currently control.
3  Game Development / Networking & Multiplayer / Re: For my first MMORPG, I'd choose...? on: 2005-10-25 04:16:28
@princec:

Thanks for the advice. I've gone over your list and its more or less what I figured I could do. I plan to use RMI and my crappy graphics and whatever I get from the people helping me. You're also right about the Business v.s. Entertainment (i.e. Commercial Application Products v.s. Games). I code in two "modes" if you will, first I attempt to understand a problem and figure out how to solve it. Later, once I have something working, I optimize, divide into classes, modulerize and whatever... Smiley

@Jeff:

"Paper Dolls", is what I was thinking about too.  My graphic-artist also understand there's a LOT of work to be done for that.  Shocked

If anyone's interested, I've got a very modest demo of an Isometric Display which I coded after reading and experimenting with lots of Isometric Articles found on this site. I'd appriciate any comments, of course.
4  Game Development / Networking & Multiplayer / Re: For my first MMORPG, I'd choose...? on: 2005-10-22 22:38:12
Thanks JAW, that's exactly the sort of answer I was looking for!
5  Game Development / Networking & Multiplayer / Re: For my first MMORPG, I'd choose...? on: 2005-10-22 21:05:15
JAW and princec, you're both very right in your advice.  However, I'm well aware of the amount of work involved, the commitment to the game and its users that is required from everyone who participates and the problems of hosting and getting people to play the game.

About my commitment to this, I can only say that I already proved it to myself that I can write complete, finished, prefect products in the Hightech Industry.  Of course we're talking about commercial applications/components and not a game, but I also identify the differences between commercial applications and game-applications.  These differences aren't going to be difficult to bridge.

I've already had the experience with a n00b, l33t, teen member of my team who's not there anymore and it was a lot uglier than just producing 3 sprites and disappearing, but I can also say princec, that I don't have much choice in this anyway.  I can't really draw, and I have to trust that others with more graphic talent than me will be willing to help.

About the hosting problem, I've already addressed that and if all goes well, the game(s) will be hosted and produced by a third party who is a silent partner.  I cannot, and you don't need me to, say anymore about this issue. Smiley

JAW, I'm not going for an RTS.  One of the reasons I'm going for a TBS is that I know how difficult it is to synchronize entities between more than 2 clients.  Another reason for going TBS is simply cause I don't like Real-Time games so much and prefer TBS RPG's.

About the issues of balancing the game and working out stuff like what to do with lvl99 characters, I've got that too under control, although this is much too early to talk about.

The thing is, in this thread, I was hoping to get people to tell me what would be their choice if They were making an MMORPG, and especially about their taste in the graphic-engine part.  I'm well aware of how difficult it is to make, and how time-consuming and how annoying it can get.  I'm also aware that many projects never even get published, or even hosted.  And I've read these forum's threads enough to know that a lot of programmers here would advise me not to aim so high.  But, I already wrote several graphic demos in ASM.  I wrote PacMan on my AtariST and Dragon32 when I was in HS and  I wrote professional Client/Server software for the last decade almost.  I've been analyzing RPG's (partly to hone my abilities as a DM in pen&paper D&D games, and other systems) and learned a lot about the inner workings of most systems involved in a game including scripting-engines (even wrote some myself).

To sum up guys -- don't take it the wrong way cause I don't mean to offend anyone -- my mind's made up and I'm going to push through with this for as far as I can go, I just really wanted to know what would most people prefer to work and play with, 2D top-down, the Isometric view, 3D scenes or even just Text based.
6  Java Game APIs & Engines / Java 2D / Re: Java TileMap game.. example on: 2005-10-21 06:07:03
Quote
take a look at GAGE http://java.dnsalias.com

How about something else.. which uses basic java api  JFrame or something..  

I would like to know .. how to use int array to specify the world map..   and some structure to handle the current visible tiles and
how to draw them into JFrame for example..

Check out my silly Iso-Applet Demo and tell me if that's sort of what you're looking for.  Smiley
7  Game Development / Networking & Multiplayer / Re: For my first MMORPG, I'd choose...? on: 2005-10-21 00:16:41
for some graphics you could start here:
http://www.reinerstileset.4players.de:1059/englisch.htm

Thanks for the link, I was just going through that site a coupe of nights ago Smiley

I also know what I'll need in graphics, tiles, sprites and effects, so having a graphic artist (or team of artists) is the way I have to go.
For purposes of testing my code, I can manage with tiles and sprites found on the Net, so any such links as you've posted would be
helpful if they're not already mentioned in these Forums.  Cool
8  Game Development / Networking & Multiplayer / Re: For my first MMORPG, I'd choose...? on: 2005-10-20 06:48:17
I'm planning an MMORPG.  I have a good story framework, waiting to be filled with Quests and the likes.  Seeing however the trends in games these days, everything seems to be 3D and shiny, but honestly, lacking in gameplay options and isn't as fun as could be (IMHO).  So, my question is, if You were making an MMO, what would you choose to make it like?
It depends entirely  on my coding experience.
If I had little to no graphcis experience Id go text.
if i had some 2D graphcis expereince, and acess to sufficient 2D art Id go 2D.
If I had 3D experience and access to sufficient 3D art, Id go 3D.
If I had NO coding expereinbce, and just a "story", Id give up on the diea of MMO and buy Neverwinter Nights and do a module.

* Well, I'm an experienced programmer, at least commercially but I have to admit, this is my first attempt at a Java game, although not my first attempt at writing graphics code as I've done that especially with MC68000 ASM.

* I can't draw to save my life, so basically I'll need lots of artwork... and I'm currently always on the look-out for good artists who are of course willing to work for the sake of the work itself.

* I prefer 2D/Iso since its simpler to work with than 3D, but also since it's much cheaper and produces results that are closer to my taste... (I know, I'm a retro-gamer...)  Grin

* I also would like to do the programming myself rather than script something with someone else's engine simply because I'm a DIY kinda guy when it comes to Software.
9  Game Development / Networking & Multiplayer / Re: For my first MMORPG, I'd choose...? on: 2005-10-19 00:03:01
Seems to me that you could make it Top-Down and get it all set up, then switch to 3D

Maybe in the far-off future, but 3D graphics isn't that important to me, never was, really.
10  Game Development / Networking & Multiplayer / For my first MMORPG, I'd choose...? on: 2005-10-18 22:56:07
I'm planning an MMORPG.  I have a good story framework, waiting to be filled with Quests and the likes.  Seeing however the trends in games these days, everything seems to be 3D and shiny, but honestly, lacking in gameplay options and isn't as fun as could be (IMHO).  So, my question is, if You were making an MMO, what would you choose to make it like?
11  Game Development / Networking & Multiplayer / Re: Signing jars, aspecially applets on: 2005-10-17 20:48:44
You could try my article about it [ http://www.codeproject.com/useritems/KeyGuard.asp ] which also has a tool to actually do it all from my KeyGuard applet.
12  Game Development / Networking & Multiplayer / Re: Signed Applets, How to..... on: 2005-10-17 20:42:32
Check my article about signing applets at: http://www.codeproject.com/useritems/KeyGuard.asp

It also points to my KeyGuard, which lets you sign your own applets.
13  Game Development / Networking & Multiplayer / Re: Dragging Webstart into the 20th century: cookies? on: 2005-10-17 20:32:19
That's another reason I've turned away from Webstart and run my own applications from the Web through signed Applets.  Of course, you have to write the update mechanisem yourself. Smiley
14  Java Game APIs & Engines / Java 2D / Re: very bad fps when drawing large images on: 2005-01-27 17:01:39
I ran into the same problem.  Drawing a background image (800x600 in size) every frame, brought down my FPS rate to about 10FPS and caused 100% CPU consumption.

I switched to drawing just the previous-background of Sprites that moved and things are much better, i.e. over 80FPS and minmal CPU consumption.
15  Java Game APIs & Engines / Java 2D / Re: Performance in 2D Applet. on: 2005-01-27 06:17:13
Quote
Runned in 50fps on my mac, so no problem here.


If you checked it just a while ago, then the problem is fixed Smiley

Its just that when you draw an 800x600 image as your background for every frame... you'd get really bad fps rate Wink
16  Java Game APIs & Engines / Java 2D / Performance in 2D Applet. on: 2005-01-27 00:37:06
Hello everyone,


I have tried to adapt some of the code I found for 2D Java games to work in an Applet.  The results are shown here.  However, when I display the FPS counter it shows only about 10 fps and TaskMgr reports I'm using 100% CPU.  I'm running the animation loop in its own Thread since this is an Applet, but sleeping for 10ms doesn't help... any ideas?


Thanks,
Doron Barak
17  Game Development / Networking & Multiplayer / Re: chat prog on: 2004-05-09 02:15:51
Quote
I'm interested(besides other matters) in making a small little chat application, where if person A starts it up, and person B starts it up, they can both perform chatting operations


this can be very simple with no gui at all, where should i start...


Chat programs need a server which they use as a means of a lobby, or a common meeting place where people can locate one-another so they can start chatting.

You can use proper IRC servers for this if you like, or setup your own server which will have to be anchored to the Internet -- i.e. have a permanent domain name.

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  
136  
137  
138  
139  
140  
141  
142  
143  
144  
145  
146  
147  
148  
149  
150  
151  
152  
153  
154  
155  
156  
157  
158  
159  
160  
161  
162  
163  
164  
165  
166  
167  
168  
169  
170  
171  
172  
173  
174  
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;
import java.io.*;
import java.security.*;

final class MySecurityManager extends SecurityManager {
      public void checkPermission(Permission perm) {}

      public void checkPermission(Permission perm, Object context) {}
}

public class IrcApplet extends Applet implements Runnable {
      // IRC Stuff..
     private Socket s;
      private BufferedWriter bw;
      private BufferedReader br;
      private Thread t;
      // GUI Stuff..
     private boolean isStandalone = false;
      private BorderLayout borderLayout1 = new BorderLayout();
      private Panel panel1 = new Panel();
      private TextField tfIrcText = new TextField();
      private BorderLayout borderLayout2 = new BorderLayout();
      private Panel panel2 = new Panel();
      private Panel panel3 = new Panel();
      private Panel panel4 = new Panel();
      private Panel panel5 = new Panel();
      private Panel panel6 = new Panel();
      private BorderLayout borderLayout3 = new BorderLayout();
      private Panel panel7 = new Panel();
      private Panel panel8 = new Panel();
      private Panel panel9 = new Panel();
      private TextArea textArea1 = new TextArea();
      private Panel panel10 = new Panel();
      private BorderLayout borderLayout4 = new BorderLayout();
      private Panel panel11 = new Panel();
      private Button btnConnect = new Button();
      private BorderLayout borderLayout5 = new BorderLayout();
      private Panel panel12 = new Panel();
      private Panel panel13 = new Panel();
      //Get a parameter value
     public String getParameter(String key, String def) {
            return isStandalone ? System.getProperty(key, def) :
                  (getParameter(key) != null ? getParameter(key) : def);
      }

      //Construct the applet
     public IrcApplet() {
      }

      //Initialize the applet
     public void init() {
            try {
                  jbInit();
            } catch (Exception e) {
                  e.printStackTrace();
            }
      }

      //Component initialization
     private void jbInit() throws Exception {
            this.setLayout(borderLayout1);
            panel1.setLayout(borderLayout2);
            tfIrcText.setText("");
            tfIrcText.addActionListener(new java.awt.event.ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                        tfIrcTextActionPerformed(e);
                  }
            });
            panel6.setLayout(borderLayout3);
            textArea1.setColumns(80);
            textArea1.setEditable(false);
            textArea1.setRows(20);
            textArea1.setText("");
            panel10.setLayout(borderLayout4);
            btnConnect.setLabel("Connect");
            btnConnect.addActionListener(new java.awt.event.ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                        btnConnectActionPerformed(e);
                  }
            });
            panel5.setLayout(borderLayout5);
            this.add(panel1, BorderLayout.NORTH);
            panel1.add(tfIrcText, BorderLayout.CENTER);
            panel1.add(panel2, BorderLayout.SOUTH);
            panel1.add(panel3, BorderLayout.WEST);
            panel1.add(panel4, BorderLayout.EAST);
            panel1.add(panel5, BorderLayout.NORTH);
            panel5.add(panel10, BorderLayout.CENTER);
            panel10.add(panel11, BorderLayout.WEST);
            panel11.add(btnConnect, null);
            panel5.add(panel12, BorderLayout.EAST);
            panel5.add(panel13, BorderLayout.WEST);
            this.add(panel6, BorderLayout.CENTER);
            panel6.add(textArea1, BorderLayout.CENTER);
            panel6.add(panel7, BorderLayout.SOUTH);
            panel6.add(panel8, BorderLayout.EAST);
            panel6.add(panel9, BorderLayout.WEST);
      }

      //Get Applet information
     public String getAppletInfo() {
            return "Applet Information";
      }

      //Get parameter info
     public String[][] getParameterInfo() {
            return null;
      }

      void btnConnectActionPerformed(ActionEvent e) {
            try {
                  s = new Socket("irc.shadowworld.net", 6667);
                  InputStream is = s.getInputStream();
                  OutputStream os = s.getOutputStream();
                  InputStreamReader isr = new InputStreamReader(is);
                  OutputStreamWriter osw = new OutputStreamWriter(os);
                  bw = new BufferedWriter(osw);
                  br = new BufferedReader(isr);
                  t = new Thread(this);
                  t.start();
                  processInput("NICK WizKid");
                  processInput(":WizKid USER WizKid TEST TEST :FirstName LastName");
            } catch (Exception ex) {
                  ex.printStackTrace();
            }
      }

      public void processInput(String text) {
            try {
                  bw.write(text);
                  bw.newLine();
                  bw.flush();
            } catch (IOException ex) {
                  ex.printStackTrace();
            }
      }

      private void respondToOutput(String value) {
            if (value.startsWith("PING")) {
                  value = value.replaceFirst("PING", "PONG");
                  processInput(value);
            }
      }

      public void addToOutput(String outputString) {
            textArea1.append(outputString);
            textArea1.append("\r\n");
      }

      public void run() {
            String line = null;
            while (Thread.currentThread() == t) {
                  try {
                        line = br.readLine();
                        if (line != null) {
                              addToOutput(line);
                              respondToOutput(line);
                        } else {
                              t = null;
                        }
                  } catch (IOException ex) {
                        ex.printStackTrace();
                  }
            }
      }

      void tfIrcTextActionPerformed(ActionEvent e) {
            processInput(tfIrcText.getText());
            tfIrcText.setText(null);
      }
}


I wrote the above applet, it connects to an IRC server and lets you chat (although very primitively of course)

If you're going the IRC way, you'd need to implement some of the IRC guideline as specified in RFC1459 at http://www.cse.ohio-state.edu/cgi-bin/rfc/rfc1459.html for instance.

If you're going for a chat applet, you could also use the information here http://forum.java.sun.com/thread.jsp?forum=54&thread=383859 to sign the applet and host it on whatever site you want to.

Hope this helps Smiley
18  Game Development / Networking & Multiplayer / Re: Signing jars, aspecially applets on: 2004-05-09 02:05:43
Quote
Hi all!

I was wondering if someone still has the URL to that guide written by someone on this forum for signing jars?

Also, I am wondering if anyone knows if you HAVE to buy a certificate with verisign or thawte in order to be able to deploy signed applets?

Any help appreciated!


This worked for me: http://forum.java.sun.com/thread.jsp?forum=54&thread=383859

And it shows how to "make" a certificate without having to buy one, of course, this may deter people from trusting your Applet.
19  Java Game APIs & Engines / Java 2D / Re: Avoiding creation of Color object on: 2004-04-27 14:50:00
Quote
All of you know (or should know ;) ) it's bad to create 20000 objects per second.


I think this code is better:

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  
import java.awt.Color;
import java.awt.color.ColorSpace;
import java.lang.reflect.*;

public class Colour extends Color {
      private Field cachedColourValueField;

      private void cacheColorField() {
            try {
                  cachedColourValueField = getClass().getDeclaredField("value");
                  cachedColourValueField.setAccessible(true);
            } catch (NoSuchFieldException ex) {
            }
      }

      public void setRGB(int rgb) {
            if (cachedColourValueField != null) {
                  try {
                        cachedColourValueField.setInt(this, rgb);
                  } catch (IllegalAccessException ex) {
                  }
            }
      }

      public Colour(int r, int g, int b) {
            super(r, g, b);
            cacheColorField();
      }

      public Colour(int r, int g, int b, int a) {
            super(r, g, b, a);
            cacheColorField();
      }

      public Colour(int rgb) {
            super(rgb);
            cacheColorField();
      }

      public Colour(int rgba, boolean hasalpha) {
            super(rgba, hasalpha);
            cacheColorField();
      }

      public Colour(float r, float g, float b) {
            super(r, g, b);
            cacheColorField();
      }

      public Colour(float r, float g, float b, float a) {
            super(r, g, b, a);
            cacheColorField();
      }

      public Colour(ColorSpace cspace, float[] components, float alpha) {
            super(cspace, components, alpha);
            cacheColorField();
      }
}


This is sort of a compromise which keeps the "dirty-work" done in the appropriate class "Colour", letting you have the setRGB(..) method and still claim you're using a proper Color object ;)

I would also like to add -- and it may seem evil to some -- that the only time you're actually using a Color object is when you're painting with it, and then, and only then would its RGB value have to be unmutable, isn't that right? :)
20  Java Game APIs & Engines / Java 2D / Re: Avoiding creation of Color object on: 2004-04-27 14:30:15
Quote
True enough, but any time you do that you're taking the risk the library developer has made assumptions based on their protection of member variables.

Using reflection to get at um is just evil tho Wink

Kev


It may be evil, but so is hiding stuff you absolutely have to expose cause there's no other way to accomplish a desired functionality.  I've had the same problem with some classes in the Delphi Component Libraries once, there was no choice but to subclass and re-expose things that were hidden.

Also, it has occured to me that caching the Color object and its "value" Field may speed things up a notch cause you wouldn't be searching for the Field and setting its access flag every time you'd want to change the colour-value! Smiley

Another thing, where would Java's Serialization, RMI and plug&play Java-Bean-Box model be without Reflection? Wink
21  Java Game APIs & Engines / Java 2D / Re: Avoiding creation of Color object on: 2004-04-25 19:30:36
Quote
But it's not a question of being jitted or not, the operation itself can be much more costly - like, it could take some global lock. No jitting would help that.

Also, believe me, you don't want to change the values of already created Color object. If it was built to be immutable, you don't know what assumptions our implementation makes, you may run into some tricky issues.



I'm not sure, but I don't think that Reflection is built the way you describe it, this probably necessitates a quick look in Sun's sources? Wink

Also, sometimes, there's just no choice, believe me when I say that library-developers don't always come up with the max usage of their libraries.  Sometimes, you have to inherit something just to expose parts that have been left private cause that's what your Client actually needs. (Last sentence wasn't from the perspective of a game programmer)
22  Java Game APIs & Engines / Java 2D / Re: Avoiding creation of Color object on: 2004-04-25 03:38:40
Quote
You should profile it, but using reflection is more than likely going to be slower than just creating the appropriate objects.

It really is a inventive/hideous thing to do though. Wink

Kev

Profiling ANYTHING you create is a good idea before production stage, but even though Reflection has a bad name for being "slow" it still may surprise you.

Consider what would happen if a method using Reflection is JITed, wouldn't that provide almost the same speed as "natively" performing the same action through non-Reflection code?
23  Java Game APIs & Engines / Java 2D / Re: Avoiding creation of Color object on: 2004-04-21 15:16:41
Try the following code:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
import java.lang.reflect.*;

      public static void setColor(Color colour, int rgb) {
            try {
                  Field f = colour.getClass().getDeclaredField("value");
                  f.setAccessible(true);
                  f.setInt(colour, rgb);
            } catch (IllegalAccessException ex) {
            } catch (IllegalArgumentException ex) {
            } catch (SecurityException ex) {
            } catch (NoSuchFieldException ex) {
            }
      }


Since it uses Reflection, you may have to sign your Applet, not sure...

Better yet, would be to cache the Color object, and the "value" declared field, then all you need to do is change the value of the cached field and re-use the color object.

Hope this helps,
Doron
Pages: [1]
 

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

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (15 views)
2014-04-15 18:08:23

BurntPizza (13 views)
2014-04-15 03:46:01

UprightPath (27 views)
2014-04-14 17:39:50

UprightPath (12 views)
2014-04-14 17:35:47

Porlus (29 views)
2014-04-14 15:48:38

tom_mai78101 (51 views)
2014-04-10 04:04:31

BurntPizza (110 views)
2014-04-08 23:06:04

tom_mai78101 (211 views)
2014-04-05 13:34:39

trollwarrior1 (179 views)
2014-04-04 12:06:45

CJLetsGame (185 views)
2014-04-01 02:16:10
List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:05:20
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!