Nordenfelt 0.4 Released!
Posted by hermitCFeb 6
Download it!
An Appeal
Version 0.4 has two major improvements: a new GUI and frame rate issue fixes. Now I’m interested in your feedback for them.
Firstly I’m interested if the GUI works for you, what you like about it and what should be cut. I’m aware that it’s consistency is far from complete. This happened by accident but constitutes branches in style. So there is a degree of choice.
Secondly I’m not sure if the frame rate issues are completely fixed. Therefore I need some profiling data from other machines than mine. I’ve added a profiling system which creates a file named profile.csv beside Nordenfelt.exe. It would be great if you could send this file to improve@nordenfelt-thegame.com. Don’t worry, I don’t spy you out. You can inspect the file with any text editor, MS Excel or Open Office to see what’s in there.
I’m looking forward to your replies.
Cheers,
Thomas
8 comments
Comment by LazerBlade on February 6, 2011 at 10:45 pm
I have no framerate issues. All runs smooth. The shadows are good, and the particle effects are still blowing me away. 😉
The GUI is passable, but cycling through available settings for a specific option can get cumbersome quick. I would probably have switches for state options, and unconstrained dials for variables like volume.
Fun to play, keep it up!
Comment by hermitC on February 8, 2011 at 8:02 pm
Good to hear that 0.4 runs smooth and shiny. 🙂
Let’s see what I can do about streamlining the GUI elements.
Comment by Kevin on February 9, 2011 at 4:06 pm
Very nice! The game is coming along well and the demo is fun to play. I noticed one thing missing from the configuration menu, is the option to redefine the keys for people who don’t have a joystick.
Comment by hermitC on February 9, 2011 at 4:26 pm
Don’t worry, Kevin. Key binding is already available in the engine. I simply ran out of time so that GUI elements did not made it into version 0.4.
I’m glad you like it. Thanks a lot.
Comment by Terry on February 24, 2011 at 10:59 am
So Thomas, one developer to another, what was the issue with PeekMessage?
I recently dug up some very old DirectX code (basically a Pong clone to learn the technology) and forever had a stutter problem. In my case I was able to fix the problem by not using any sort of Windows messaging (i.e.: I removed PeekMessage from the main loop) and simply used DirectInput for all inputs.
I believe that with the call to PeekMessage, Windows sometimes goes off to do other processing, and in doing so introduces some fairly long delays (20 to 50 milliseconds.) Though this does not appear to happen everytime.
Regards,
Terry
Comment by hermitC on February 24, 2011 at 6:10 pm
Hi Terry,
The problem with PeekMessage is still persistent but does not seem to bother testers as it bothers me. Maybe the frame skipping (which I blame on PeekMessage) has an other reason. PeekMessage sometimes blocks for 1-4 frames which comes close to the delays you experienced. The problem is that the function can not be moved to an extra thread because it would not retrieve the program’s messages there. I’m thinking about leaving PeekMessage where it is and move the whole game code over to an extra thread. This way PeekMessage can block while the game thread runs smoothly.
As said, other people don’t have the problem on their machines. Therefore I’ve postponed implementing the extra-thread solution to polish phase. DirectX would break cross-platform support I want to keep up. Who knows if Nordenfelt arrives on Linux or Mac some day?
Cheers,
Thomas
Comment by Terry on February 24, 2011 at 11:54 pm
Hi Thomas,
I understand the desire to keep it platform independent.
My suggestion is that if you’re only using Windows messages (via PeekMessage) for input (i.e.: keyboard/mouse), then you can replace that with direct polling of those devices.
In my case, polling of the keyboard/mouse/joystick is performed by DirectInput. In your case you could use the Win32 api calls like these:
GetKeyboardState()
GetCursorPos()
joyGetPosEx()
Thus you could eliminate that pesky PeekMessage call. :^)
Regards,
Terry
Comment by hermitC on February 25, 2011 at 1:23 am
The functions look quite promising. I’ll have to test them to know if they do a better job than PeekMessage(). Nordenfelt’s success depends heavily on its controls. So it would be a big mistake to ignore better input handling. 🙂
Thanks for your help.