Why Don't You Play Rimscape?

weird. I’ve tried it on 3 Windows machines with different video card manufacturers, about 4 linux machines, and 1 Mac Powerbook, with none of those problems. Here’s my code that SHOULD pop up the game frame that doesn’t seem to be working for you guys:


GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
oldDisplayMode = device.getDisplayMode();
 
Canvas canvas = new Canvas();
frame = new Frame(device.getDefaultConfiguration());
frame.addWindowListener(new WindowAdapter() {
    public void windowActivated(WindowEvent e) {
        visible = true;
    }
    public void windowDeactivated(WindowEvent e) {
        visible = false;
    }

      public void windowClosing(WindowEvent e) {
            running = false;
            dispose();
            System.exit(0);
      }
});
frame.setIgnoreRepaint(true);
frame.setResizable(false);

boolean frameIsControlling = true;
       
DisplayMode[] options = device.getDisplayModes();
DisplayMode chosenDisplayMode = null;
for (int i = 0; i < options.length; i++) {
      if (options[i].getWidth() == resolution.getWidth()
                  && options[i].getHeight() == resolution.getHeight()
                  && options[i].getBitDepth() == colorDepth) {
            chosenDisplayMode = options[i];
            break;
      }
}

// If full screen is wanted (and possible), set it up.
if (fullscreen) {// && chosenDisplayMode != null) {
      this.fullscreen = fullscreen;
      GAME_WIDTH = (int)resolution.getWidth();
      GAME_HEIGHT = (int)resolution.getHeight();
      
      if (chosenDisplayMode == null || !device.isFullScreenSupported()) {
          if (chosenDisplayMode == null)
              System.out.println("display mode not found");
          else
              System.out.println("display mode found");
          
          System.out.println("device.isFullScreenSupported() is " + device.isFullScreenSupported());
            
            //if we can't go full screen but we're using the current resolution, we have to
            //adjust to make sure we don't draw under the start menu bar
          if (resolution.getWidth() == oldDisplayMode.getWidth() && resolution.getHeight() == oldDisplayMode.getHeight()) {
              setFullSizedWindow(canvas);
            }
            else {
                GAME_WIDTH = (int)resolution.getWidth();
                  GAME_HEIGHT = (int)resolution.getHeight();
                  
                  canvas.setSize(GAME_WIDTH, GAME_HEIGHT);
                
                frame.add(canvas);
                  frame.pack();
                  
                  Point centerPoint = GraphicsEnvironment.getLocalGraphicsEnvironment().getCenterPoint();
                  frame.setLocation(centerPoint.x - frame.getWidth()/2, centerPoint.y - frame.getHeight()/2);
            }
            
          frameIsControlling = false;
      }
      else {
            frame.setLayout(null);
            frame.setUndecorated( true ); // No window decorations
            
            device.setFullScreenWindow( frame );   // Create a full screen window
      
          if (!chosenDisplayMode.equals(oldDisplayMode))
                  device.setDisplayMode( chosenDisplayMode );     // Change to our preferred mode
      }
}
// Otherwise we use a window with a fixed size
else {
    
      if (resolution.getWidth() == oldDisplayMode.getWidth() && resolution.getHeight() == oldDisplayMode.getHeight()) {
          setFullSizedWindow(canvas);
      }
      else {
          GAME_WIDTH = (int)resolution.getWidth();
            GAME_HEIGHT = (int)resolution.getHeight();
            
            canvas.setSize(GAME_WIDTH, GAME_HEIGHT);
          
          frame.add(canvas);
            frame.pack();
            
            Point centerPoint = GraphicsEnvironment.getLocalGraphicsEnvironment().getCenterPoint();
            frame.setLocation(centerPoint.x - frame.getWidth()/2, centerPoint.y - frame.getHeight()/2);
      }
      
      frameIsControlling = false;
}

frame.show();
frame.setIconImage(PreLoader.icon);

if (frameIsControlling) {
    frame.createBufferStrategy( 2 );
      strategy = frame.getBufferStrategy();

      frame.addKeyListener(this);
      frame.addMouseListener(this);
      frame.addMouseMotionListener(this);
}
else {
    canvas.createBufferStrategy( 2 );
      strategy = canvas.getBufferStrategy();

      canvas.addKeyListener(this);
      canvas.addMouseListener(this);
      canvas.addMouseMotionListener(this);
}
frame.setTitle("Rimscape");

Is there anything wrong with what I’m doing? Hopefully there is and you guys can point it out so I can fix it :slight_smile: Thanks!

Edited the code!!

OK, game closing when you hit Play Game is fixed. It was a recent error I caused myself… pretty dumb :slight_smile: I also fixed the login problem. That one was REALLY dumb. For some reason now, GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().isDisplayChangeSupported() keeps returning false and that’s why it won’t go fullscreen. However it at least won’t crash out now. Please try it again and tell me what you get in the console that could possibly help determine the cause of this. Thanks!

Important note!!!
You’ll have to delete Rimscape from Webstart before you load it again because no matter how many times you click the link in Webstart or in your browser, it’ll will never refresh the .jnlp file which HAS changed. I don’t know why it’s not smart enough to ever figure that out, but it’s necessary.

Edit:
OK, I think I’ve made it a bit better now. I can get fullscreen working again. If you play and see the line printed “db_sub = -1”, that means you DO NOT HAVE the latest .jnlp and need to clear it out of Webstart so it’ll get the latest one.

I just edited the code I posted above so you can see what it’s doing right now. Please try the game once more and then comment on what I need to do further to fix it. I definitely know it needs work because there are still times when I get a white screen and no graphics, and when I don’t get a white screen, the speed is much slower than windowed mode.

Nope, you don’t need to.

This is probably your ISP being ****ers and having a misconfigured transparent webcache (that you, as a user, don’t have ANY way of getting around, short of tunnelling or using SSL) that is taking 24 hours or more to update that webstart file.

Or it’s a misconfigured ISP webserver, with a similar problem.

Or it’s a bug in one or both of them that causes them together to mis-cache things.

These problems are currently common on the net, and millions of people get ****ed over by them every day. I sometimes feel tempted to find a script kiddie and ask them to hack ISP’s webcaches and knock them out because of the trouble they cause :(.

Hey, I can run the game now :slight_smile:

Bugs:

  1. Runs at 8 fps (approx) on my geforce2 + 1ghz pentium3. Not good. (linux, 1.4.2_05)

  2. Seems to miss some mouse clicks. This could be because the rendering is so slow and it’s not got an input-queue, so if you click while it’s still processing your last click your old click gets silently lost. Improving the frame-rate might fix this.

  3. Fullscreen mode appears to be misconfigured, in that I get a full screen window (fine) but when I finish buying stuff in the tutorial I end up at a screen where there is 3 pixels or so of white text off the top of the screen. No idea what that text says because most is off the top of the screen :(.

Perhaps you are forcing java to go to a particular window size, or assuming you have a resolution without checking what you ACTUALLY have (just a guess)? This is java - so use dynamic layout to isolate yourself from bugs like this, and use getWidth() etc to find out the current screen size if necessary (e.g if you are doing your own layout system).

I’m afraid you have to expect these days that different people have different size monitors (c.f. the “widescreen monitors” that are becoming increasingly popular) and that linux and OS X users may well have double-height startbars.

  1. Mouse cursor had disappeared after buyign stuff, and keyboard keys did nothing, just sat there with a grey ship on a planet in front of me feeling bored. I could see the HUD at the bottom of the screen, but since nothing was happening I gave up at this point.

That probably means you needed to click Tutorial instead of New Game since you didn’t know what to do from there :slight_smile: Just so you know, arrow keys move, Z and X fire weapons.

I suspect those few pixels of white you got to display were from the Java console. For some reason any Java game that prints any output bleeds through for me on a fullscreen app :stuck_out_tongue:

If I’m doing something wrong setting up the window, could you scroll up and try to help me see what it is? I DO check the current resolution and if it matches up the one you picked, I don’t change the resolution, which is what I think you were asking.

Also, I support all available resolutions for going fullscreen, even the widescreen types.

As for double height start bars, I use the appropriate methods for finding the heights of those to set up a window that fits within them as well, and so far it’s always worked when I try it, but if you’re actually experiencing it NOT working, please let me know what’s going on.

If you’re wondering what it is I might be doing wrong… please scroll up and help me find out :slight_smile:

[quote]That probably means you needed to click Tutorial instead of New Game since you didn’t know what to do from there :slight_smile: Just so you know, arrow keys move, Z and X fire weapons.
[/quote]
This was in tutorial mode.

Whoa! Weird…

I’m not the person for that. You’ve a massive chunk of code there, I haven’t done anything fullscreen for months, and I don’t do fullscreen games except using OpenGL libraries (e.g. LWJGL), whereas there are plenty of people around here who are using this stuff every day, so they’re going to be much better at spotting problems :(.

If that text isn’t part of your game, then fair enough - it just looked like you were trying to paint some text to do with the tutorial and it was being painted mostly off the top of the screen.

Since there was no other text on screen, I assumed that text would be telling me what to do :(.

PS: cursor keys were not doing ANYTHING (I tried those because the tutorial said I should). This is why that text seemed particularly important…

I was going through the tutorial and when I got to the purchase ship part, it just dumped me out. No warnings or errors. Where would I find a log file or something similiar?

Regards,
Dr. A>

The white text at the top left is part of the tutorial and you also see NPC chat there too. So either the screen was resized and poked off the top and needs a manual monitor controls tweak or your monitor constantly has 40 pixels or so off the top (which I doubt). Just my guess.

oh, if you have a bar at the bottom of the screen maybe it was handled bad and pushed everything up and is rendering with a negative y value. It could be that the main screen renders fine but just the text is using a bad value.
Just more guessing.

[quote]The white text at the top left is part of the tutorial and you also see NPC chat there too. So either the screen was resized and poked off the top and needs a manual monitor controls tweak or your monitor constantly has 40 pixels or so off the top (which I doubt). Just my guess.
[/quote]
LOL. In the post I mentioned its a fullscreen window, hence there’s no resolution changing. This is an LCD anyway, so resizing wouldn’t happen that way :).

So…a bug in the source, as I originally guessed?

PS both my start bars are at the top of the screen…

Dr A, if you load Java Webstart and check the preferences, you can tell it to write the output log to a file so you can see what was printed out. A stack trace would help, thanks!

As for the text being off the top, I don’t think I understand what’s happening. I’ve never seen it look any way but this for the fullscreen window:
http://www.gamelizard.com/images/games/rimscape/rimscapeDisplay.gif

Is this not what you guys are seeing?

*Malohkan prays that the god Abuse will show up and reveal all of his foolish mistakes *

No. Which is why I said:

[quote]3. Fullscreen mode appears to be misconfigured, in that I get a full screen window (fine) but when I finish buying stuff in the tutorial I end up at a screen where there is 3 pixels or so of white text off the top of the screen. No idea what that text says because most is off the top of the screen :(.
[/quote]

…which is obviously wrong. On YOUR screenshot there is white text at the top of the screen! Only you can read it and I can’t because on my screen it’s partially off the top of the screen, so I only see the borrom few pixels.

Do any of the other window resolutions work?

Malo -

Here’s some feedback after I completed the tutorial on my home computer.

  • Make a background for the trainer text. Its a bit difficult to read with the font style and black and white contrast.

  • Why do you have to pick a slot to sell your ship’s cargo to a planet? Does the planet ever get full and not have an open spot? If not, then just let the person click on an item to sell it. You could ask them if they are sure, if you want.

  • Mouse movement seems to be gridlike and not smooth. Not sure why.

  • Make a selected item change color or have the background do so. I think there are 3 states of an item: selected, not selected, moused over. They should be easily recognized to the user, so they what items are being acted upon.

  • I hit the arrow looking thing at the bottom left of the main menu and it exited without warning. It would be nice if it asked me before quitting. The shape didn’t ‘clue’ me to it being a quit button.

  • Put thrust at the rear of ships to more easily distinguish which way is forward.

  • FPS was at 10-12 while in the log and star map. FPS was at 30-40 when flying. Seems sorrta backwards. Nothing is going on in the first two cases.

  • Make the scroll bar filled in for the slider to clearly show the range of text. Its hard to tell there’s a slider there.

  • Some of the text in the tutorial was too fast at times. Maybe make long text have a pause waiting for a keypress or click. You’d need to indicate it somehow, but it would be helpful.

I hope the comments don’t seem negative. I’m not trying to bash or show the bad stuff. I’m simply trying to help shape what I think is a great amount of excellent work.

I didn’t get any crashes or such, but here is the log file -

Java Web Start 1.4.2_05 Console, started Fri Oct 08 20:49:12 CDT 2004
Java 2 Runtime Environment: Version 1.4.2_05 by Sun Microsystems Inc.
Logging to file: C:\Documents and Settings\scubafamily\Desktop\jws log.txt
db_sub = http
db = www.gamelizard.com
New Acceleration Threshold: 0
Acceleration for translucent images is enabled.
done with images, audio, fonts
Windows XP

HTH -
Dr. A>

Forgot to mention, there should be an idicator which shows the hud mode you are in, the one toggled by M.

Also I voted other. I don’t think the game is too hard or not fun, but I don’t ‘get it’. I’m not sure if I’m supposed to hang out with other people and play online. Can I win? Does it have a story to go with it, sorrta like an RPG? Some of this may be answered and I just didn’t pay attention. It might also be that the ‘point’ of the game isn’t jumping out at me.

HTH,
Dr. A>

[quote]Malo -

  • Make a background for the trainer text. Its a bit difficult to read with the font style and black and white contrast.
    [/quote]
    I’ll try some stuff to make that text easier to read without sacrificing FPS, thanks!

In the popups you get with regards to buying your ship you get: “…use the movement keys again to select the current box and press the Action key again to purchase the ship.”
This means you can click an item once to select it, and click it again to buy/sell whatever it is you’ve selected, so double-clicks work. If you didn’t mean to sell something, you can just buy it back at no extra charge.

Probably due to the low FPS you’re getting, sorry! Try a lower resolution maybe? Also since it seems I’m not setting fullscreen mode correctly, be sure to try windowed mode, you’ll probably get better performance.

Right now if you have an item selected or mouse-over’ed, it’ll be highlighted gray. If you’re doing both, it’ll be highlighted gray twice and thus it becomes very bright. Should I draw the selected item maybe blue, and leave the one mouse-overed to be gray? Would that help?

It does say “Exit” right beside the button, in the manner that all of the other buttons are labelled there, I’m not sure how to make that more obvious :-/ I can’t think of any other professional games that I play that say “Are You Sure?” after you click one of those. At least the ones I play have none. Considering the whole system was designed without the need for confirmation boxes, I’d like to keep it without them.

Workin on it ;D

I agree… that is backward. I get 100+ fps in the log and starmap and 60-80 when flying. I’ve had others say they get 200fps when flying. At any rate all menus give me faster fps than the in-game FPS. I really don’t know what to make of that backward behavior you’re getting, but I’ll try to work on it if I think of something.

Sounds good I’ll do that!

I’ve tried to make it so that the most text displays per “instruction” you ever get are 2, which means a message will not leave but will only go up to the top before you have to complete the next action. So that means if you take things one step at a time, meaning, read all of the instructions before you’re told to do something, and then do it, and repeat, you should never have your instructions disappear until you do the requested action.

However… that’s just what I TRIED to do :slight_smile: If you are in fact only doing things when you’re told and following the instructions, meaning, you’re not purposefully jumpin ahead, and you’re STILL getting messages you need to disappear, please tell me which ones they are so I can identify where I’ve messed up my strategy.

Thanks for the input!

Edit (answer to the second post there): I agree, there should be something to tell you what mode you’re in, I’ll work on that, thanks!

If you go through the tutorial, at the end the trainer tells you to start a New Game and tells you that a lot of people will ask you to do things and it’s beneficial to do so. If you start a New Game, before you leave the first planet you’re on you’re thrown into a quest which will continue on to develop the story until you finish them all. Right now the quests are linear and you just follow one and then the next, but don’t worry I’m developing side-quests and random quests as well. However since I’ve never gotten any feedback on the quests, it’s hard to know how to make them better :wink:

But yeah, if you follow those quests, you’ll see the game is actually an RPG with a story and an overall mission to the game that actually has an end, except even when you reach the end there’s no stopping you from playing more and trying to earn more money and find better ships/weapons/special items.

Thanks again!

Which means people will get irritated, and just get used to double-clicking ALWAYS, and so there is NO confirmation in practice.

Nice idea, but the point about forced confirmation is that it’s something you CANNOT do wihtout pausing to think…

Right. If it’s one thing, it’s black. If it’s another, it’s gray. Or…maybe it’s gray. :stuck_out_tongue: Yes, you definitely need three colours for three statuses!

When the mouseovers the button, change the button graphic to be the word EXIT, preferbaly in red or with a red background. That will give the user sufficient feedback.

On this topic, non-obvious GUI’s are a tricky subject. You have gone with a VERY non-standard GUI. Whilst it looks very nice, and adds to the atmosphere, that means you have to work VERY hard as a programmer to increase your usability because everyone coming to your system is an 80-yr-old-granny who has never used a PC and probably mistrusts them.

As opposed to using common standard GUI’s, where all the paradigms are well-established, and you the programmer have little work to do because the users are so accustomed to how it all works already. You can get away with real crap, and do no more than irritate the users - oh, the wonders of human adaptability ;D.

So…if you can pull it off, I think it’s great. Right now, it looks like the start of a cool GUI, but you need to really ratchet up the usability - and be aware that you’ll always need to be tweaking it :(.

I don’t understand… what’s wrong with double-clicking? There are two ways to move things back and forth, and that’s one of them. What’s the problem?

http://www.gamelizard.com/images/games/rimscape/rimscapeMainMenu.gif

There’s the main menu. I don’t see how your suggestion applies to that… is it really not intuitive that the bottom button there is the Exit button?

Shrug. I didn’t have the problem. You can sit here all day and tell me it’s fine, but you’ve got a player of your game telling you he had a problem with it, and that ought to be enough for you!

I have explained to you that non-standard GUI’s require much much much more work to make them as successful as the standards - this is perhaps a good example. Whilst your GUI may, in the universe of GUI’s, be very clear, it is also non-standard - and that means that significant numbers of people have difficulty and make mistakes. This is not an opinion - this is experimentally determined fact (there has been a lot of interest over the last few decades in how much better a non-standard GUI has to be in order to make up for the fact that it is non-standard). Essentially, there’s an exponential scale - small deviations from the standard induce increasingly huge error rates among users.

At a guess, I would say that your layout and design look to many people like two columns of buttons. Literally, that is what you have drawn - two columns of individual buttons. Personally, I can look at that and guess what you mean because they are too close together laterally for me to expect them not to be paired icons that are just one button.

But, logically speaking, you definitely have separate buttons there. Thre are many ways you could deal with this, but IMHO in keeping with the style you would just put a single horizontal line connecting each pair - only a few pixels, yet it makes it massively more clear. Although maybe that’s not enough…

NB It is exacerbated by the fact that you are not only using non-standard icons for standard concepts, but worse you are using standard icons in non-standard ways!

(the Credits icon is now a standard icon for something about a “document” (usually new document, although MS prefers to have a folded-down corner))

(Load/Save is an even more standard icon meaning vertical resize)

(Exit is very very close to the standard icon for “continue to next page” and/or “start program” and/or “go” - i.e. the opposite of “exit”)

OK yeah I see what you mean with the separation now. I guess for the most part I’m just very used to it so I don’t notice things like that, thanks!

Aside from the boxes drawn, the layout of the buttons is exactly like they are in my Start menu on Windows, with one exception: the highlighting works differently. So here I have an idea: how about I draw the highlights like this:

http://www.gamelizard.com/images/games/rimscape/rimscapeMainMenu2.gif

So you can see in that image I have my mouse over the funny icon, but the whole button including the text “Exit” is highlighted now. Would that correct this problem?

PS: I agree very much that many icons are unfamiliar and some even counter-intuitive. I’ll make sure my designer sees these comments so that we can make use of that. However, my job is to do the best I can to make it work out programmatically, so that’s what I was trying to do with my solution here :slight_smile: I hope it works!