Author Topic: Nuncabola is a cross platform Java 5 Based skill Game based on Neverball  (Read 3022 times)

0 Members and 1 Guest are viewing this topic.

Software Santa

  • Administrator
  • *****
  • Posts: 4261
Nuncabola is a cross platform Java 5 Based skill Game based on Neverball

http://forum.nevercorner.net/viewtopic.php?id=1759



Quote
Nuncabola

As avid readers of this forum may know, the lockstep graphics never worked for me. That's why I was disappointed to see 1.5 released with the "very apparent and quite disturbing" judder left unfixed. This, among other reasons, motivated me to finally start my own, personal version of Neverball. The result is a Java application I've called Nuncabola, and I'm sharing it here with anyone who is interested.

In order to enable productive work, I decided to redesign the entire code structure. Internally, this is a complete rewrite. Externally, Nuncabola is still rather faithful to Neverball in terms of design and features. However, a number of changes have already been made, and more may be introduced as development continues. For details, see the posts below.

System requirements:

    *

      Windows, Linux or Mac OS X
    *

      Java Runtime Environment 5 or higher (6 recommended)

(My recent testing was done on Windows XP with Sun's JRE 6 Update 20.)

Downloads:

    *

      nuncabola-0.70.zip (binaries and game data, 44.3MB)
    *

      nuncabola-0.70-src.zip (source code, 408KB)

Instructions:

    *

      Windows:

      Unzip the downloaded archive file into a folder of your choice. On a properly configured system, you should then be able to start the game by double-clicking nuncabola.jar. Also provided is a batch file (nuncabola.bat) that sets a VM option I got good results with (low-pause concurrent garbage collector). Preferably use the batch file.

Compatibility:

Replays made with Nuncabola are fully compatible with Neverball 1.5.x and the Nevertable. Likewise, you can use Nuncabola to play back replays produced by Neverball.

Comments and bug reports are welcome.

Nuncabola uses the following libraries:

    * LWJGL, the Lightweight Java Game Library (three-clause BSD license)
    * JInput, used by LWJGL (three-clause BSD license)
    * JOrbis (LGPL)
    * CodeLibF, a small subset of a general-purpose library I use in my projects (LGPL)

Changes between Neverball r2856 and Nuncabola 0.1:

General:

    * Nuncabola uses some simple interpolation between game states to fix the problem of stuttering graphics. As discussed in Glenn Fiedler's article, this is actually a crucial part of a fixed-timestep design. With this code in place, graphics are now again as smooth as those of 1.4.0 (1).
    * It's worth mentioning that there was (and is) a second problem source contributing to the judder in Neverball. On some systems with NVIDIA drivers, calls to SDL_PollEvent may take unreasonably long when the driver setting "threaded optimization" is set to "on" (its default value). The delay is on the order of the screen refresh interval, disrupting the timing of the main loop. I would advise anyone who is affected to turn off threaded optimization.

Simulation:

    *

      The ball can now pick up any number of items during an update, not just one
    *

      First update now includes initial view information so it does not have to be regenerated at playback time (as st_demo.c does)
    *

      Limited amplitude of bounce sounds to 1.0f

Graphics:

    *

      Doubled the number of halo sides (1)
    *

      Fixed the "crazy reflection" problem by reinitializing the video configuration upon stencil changes (1)

Playing:

    *

      Returned the effective default rates for manual camera rotation to what they were in 1.4.0 (based on Chase rather than Manual) (1, 2, 3)
    *

      The current level and its textures are cached; restarting is near instantaneous even for large maps
    *

      Renamed "Normal mode" to "Standard mode"; noun instead of an adjective (1)
    *

      Rotating left using the Z-axis actually rotates the camera left instead of right (and vice versa)
    *

      Using (either Left or) Right Shift for fast rotation works again (as it did before the patch)
    *

      The middle mouse button now toggles the camera by default
    *

      Changed default key binding for camera toggling to "x"; "e" is too easy to press accidentally while reaching for the "r" restart key
    *

      In the play end screens, buttons such as "Next Level" or "Save Replay" are now disabled instead of removed when not applicable, giving the user a consistent place to click on for retrying a level; this is the way it was before the progress branch was merged
    *

      Renamed "Exit" to "Quit" in the fall-out/time-out screens; "Exit" should be reserved for exiting the application
    *

      No HUD while pausing during the Ready/Set stage
    *

      Made it possible to leave pose mode by hitting F12 a second time
    *

      Added ability to have an empty replay name pattern
    *

      Correct highscore time for levels with "unlimited" time (e.g., map-misc/bounce.sol)

Replays:

    *

      Replays recorded with UPS != 90 are played back at the right speed
    *

      Replay warning message: "map" -> "level"; level is more of an end-user term
    *

      Replay warning message: "you're" -> "you are"
    *

      One-second "Replay" intro can be clicked away; especially useful after clicking away the warning for an incompatible replay
    *

      When pausing a replay, the music pauses instead of continuing silently

Scoreboards:

    *

      Unified layout for all record categories: time left, coins right
    *

      Enabled cycling through record categories using the mouse wheel (1)
    *

      Categories containing a new record are now highlighted in green (1)
    *

      "Best Times" -> "Best Time"; using the plural is too awkward given the other categories: "Most Coinses"? "Fast Unlocks"?
    *

      For the price of some padding in the coin column, the scoreboard title and player names are now equally centered (looks much better)

Screens:

    *

      Time spent while switching screens is no longer counted against the destination screen; unless requested otherwise, each screen starts with a clean slate: for example, the fade animation will no longer be "swallowed" if a level takes a long time to load
    *

      Joystick recentering requirements no longer affect the arrow keys
    *

      Automatic and accurate truncation of long label texts, either at the end (like thi...) or at the beginning (...ike this); for an example, see the name field in the replay list screen
    *

      Title screen: Disabled sound effects for replays (1)
    *

      Title screen: Turning off cheat mode clears wireframe mode (if set)
    *

      Level set list screen: "No Level Sets" message if sets.txt does not contain any level sets
    *

      Level set list screen: Increased page size to 6 (for visual consistency with the corresponding six lines on the level set screen)
    *

      Level set list screen: Proper display of set descriptions with fewer than five lines; you no longer have to pad the text with trailing "\" characters
    *

      Level set screen: "No Levels" message if there are no levels
    *

      Replay list screen: Improved loading time by reading replay headers on demand; the downside is that invalid files will appear as (unselectable) entries in the list. However, with the new dedicated replay directory this shouldn't be a problem
    *

      Options screen: Swapped resolution and fullscreen rows
    *

      Options screen: Fullscreen buttons are now disabled if fullscreen mode is not available for the chosen resolution
    *

      Resolution screen: Left (instead of right) alignment for buttons in incomplete rows
    *

      Resolution screen: Added menu sounds
    *

      Player name screen: Disabled OK button when name is empty
    *

      Replay name screen: Disabled OK button when name is empty
    *

      Layout and spacing tweaks in several screens

Application window and OS integration:

    *

      Support for window positioning (window_x, window_y preferences); note that these values have to be specified manually (default is -1 for automatic positioning) (1)
    *

      The initial window size of 800x600 (plus trimmings) is used only if the desktop resolution is bigger than 800x600 to prevent the window from opening partially off-screen
    *

      Thanks to LWJGL not interfering, Alt+F4 closes the window on Windows (1)
    *

      On-screen keyboard: Support for the Alt+Numpad input method on Windows

Preferences:

    *

      Removed d-pad preferences; in Nuncabola, the directional pad is handled along with the axes
    *

      Boolean values are saved as "true"/"false" to better distinguish them from integer values; specifying them as 1/0 remains possible
    *

      Mouse wheel bindings are saved as "Wheel Up"/"Wheel Down" for consistency with key naming (e.g., "Page Up"); specifying them as "wheelup"/"wheeldown" remains possible

Level sets:

    *

      Nevermania level shots are included as 24-bit PNGs (1)

Not implemented:

    *

      Tilt sensor support
    *

      Top-down camera
    *

      SOL name display in cheat mode (made the layout look bad - not worth it)
    *

      Use of key combinations for configurable keys (i.e., no Ctrl+F3, Alt+R, etc.)
    *

      nice and uniform options
    *

      Internationalization
    *

      Installer
    *

      mapc port
    *

      ...and no Nuncaputt

http://forum.nevercorner.net/viewtopic.php?id=1759
« Last Edit: December 05, 2014, 01:40:45 PM by Software Santa »

 


This Site was Opened on January 1st, 2007

Welcome Visitor:





@MEMBER OF PROJECT HONEY POT
Spam Harvester Protection Network
provided by Unspam