Test my platformer engine (WIP) (testing done, thanks!)

UPDATE: I’ve taken the game down, as no further testing is necessary at this point. The goal I set for this public testing has been fulfilled (“hopefully I can get some useful results and make the engine more robust in terms of compatibility.”) Thanks for the people who tried the game! :slight_smile:


I’ve been doing a platformer engine in Java, using LWJGL and JBox2D for physics. The engine is far from finished, and it’s especially lacking in normal gameplay features. I’ve been focusing on the technical aspects, slowly bringing them up to the level where I can start implementing the game on top of the core engine. I’m still not sure what kind of game it will evolve into, but it will be some kind of adventure/platformer game, most probably. :slight_smile:

Anyway, since I can test this mainly on two computers (my desktop running Linux [mostly, sometimes WinXP] and my laptop running Windows Vista), it would be helpful if some of you guys could test it on your systems. I’m especially interested if it does run on Mac OS X (it should) and perhaps even Solaris. Apart from different OS’s, I’m interested in seeing if the thing runs properly on Ati/AMD GPUs. I have GeForce 7600 GS on the desktop, and Intel GMA on the laptop.

What I’d like you to do, if you have a few minutes to spare:
[]Start the engine from here (it’s available only as Java Web Start as of now). It requires Java 1.5, but I’ve mostly tested it on 1.6.
[
]Move around the “level” (sorry there isn’t any proper gameplay yet! :persecutioncomplex:)
[]Does it work? Does the bloom effect work? Lighting?
[
]How does it run? It should run about 60 fps and be fairly smooth.
[*]Check your CPU usage, if possible. It should not consume all your CPU.

Here are some keys:

[]Move with arrow keys. To drop down from a “floor line”, hold DOWN arrow and press SPACE.
[]Press M to play some (boring) music. It can be paused by pressing M again.
[
]Press L to toggle lighting
[]Press B to toggle bloom
[
]Press R to restart the level
[]Press P or PAUSE to pause the game
[
]Press O to toggle player light (useless, I know)
[*]Use PAGE UP/PAGE DOWN to zoom
*) “Floor lines” are lines where the player can stand on AND jump/drop through.

If it works, you can try with different settings. By default, it starts in 800x600 windowed mode. You can adjust the settings from the configuration file. On Linux, it will be in your home directory, under .platformer/settings.cfg. On Windows, in APPDATA/platformer. If your system supports it, try running with antialiasing (set antiAlias to 2 or 4, for example).

The game writes a log file while it’s running. It would help me if you could post yours here, or mail it to me at mika DOT halttunen AT gmail, along with your system specs (unless they’re visible in the log). The log file is engine.log, found in the same place as the settings file. If you want, you can censore the line in the log, where it displays the path to the platformer directory (the path contains your user name). The profiler information at the end of the log might be particularly interesting: on my systems, the text rendering takes most of the whole rendering time! :stuck_out_tongue:

A couple of screenshots are attached (with 2X antialiasing + bloom). Please excuse all the graphics and the whole level actually; everything you see is for testing purposes only. :slight_smile:

Thank for your time, hopefully I can get some useful results and make the engine more robust in terms of compatibility. :slight_smile: I’m happy to answer any questions you might have, feel free to ask. 8)

Worked okay for me. Very impressive! My log file’s in the mail to you.

Frame rate was close to 60fps, but there was a little bit of stutter on occasions (with the average frame rate dropping to 40fps).

Lighting all seemed fine. Music turned on and off as expected. I forgot to check CPU usage (sorry!).

I made it up to the chimney easily enough (which seems to be the nearest thing to a goal in the demo), but I did find that I could fall off the right end of the world, which required the demo to be restarted.

Look forward to seeing this when there’s a game attached!
Simon

Thanks, I’ve got it. :slight_smile:

[quote]I made it up to the chimney easily enough (which seems to be the nearest thing to a goal in the demo), but I did find that I could fall off the right end of the world, which required the demo to be restarted.
[/quote]
Yeah, it’s possible to jump off the level from both ends – I haven’t bothered to prevent that yet.

very good. for some reason when I did bloom (I think) it dropped like 40 FPS

without bloom it ran at 60.

I jumped off the screen :). you may want to wall off the sides.

do you hope to make a game along with this?

Worked very well, constant 60 fps.

The lights are impressive, as is the movement and character animation.

How did you do the lights? Are they just translucent images painted on top of everything?

h3ckboy & CommanderKeith: Can I have your log files and/or system specs please? :slight_smile: Anybody have a Mac to test this on?

Yes, although I’m still unsure what kind of game. Damn LittleBigPlanet for using every idea I had…! :wink:

Runs very bad on my trusty EEEPC with Linux and Intel Onboard graphics (GMA900) even when overclocking it to 900Mhz. When using bloom, it runs at 0.2fps and looks totally awful…it’s all a dark mess with colored spots. Without bloom, it looks ok and performance is five times as high, i.e. around 1fps…

I cannot find an APPDATA directory.

I dont have admin, would that make a dif?

AFAIK, on Windows XP APPDATA points to C:\Documents and Settings\USERNAME\Application Data. On Vista, it’s C:\Users\USERNAME\Roaming\Application Data.

Ouch, that’s pretty bad… :-\ I wish I had EEEPc, it would be nice to have the thing run on those.

Pretty sweet, works nice and smoothly here (winXP).

What are you using to make the levels btw?

[quote=“Orangy Tang,post:10,topic:33234”]
Currently the levels are made 100% in Inkscape (yes, even the scripting – although I mainly just launch an external script file), but this is getting more and more restricting. I probably have to write a separate editor at some point, but at least setting up the level geometry and triggers etc. can be nicely done in Inkscape. :slight_smile:

In that case I’m going to shamelessly plug Analog should you decide you don’t want to write an entire level editor yourself. :wink:

Very nice, smooth as a baby’s bum, which it should be given the awesomeness of the beast I ran it on.

Cas :slight_smile:

Crashes on startup here with:


Engine: Running on Java 1.6.0_12 (Sun Microsystems Inc.) in Windows XP (5.1, x86).
Engine: Available processors/cores: 2
Settings: Unable to load the settings from "settings.cfg", reverting to defaults.
Settings: Successfully saved the settings to "settings.cfg".
Engine: Using the following settings:
useControllers = false
resolution = 800x600
useAudio = true
vsync = true
antiAlias = 0
fxLighting = true
disablePBuffer = false
disableFBO = false
colorDepth = 32
fullscreen = false
fxBloom = true
lineSmooth = false

Renderer: Initializing LWJGL 2.1.0..
Renderer: Requesting display mode 800x600, 32 bpp.. ok!
Renderer:
 * Card: GeForce Go 7600/PCI/SSE2(NVIDIA Corporation).
 * OpenGL version: 2.0.1.
 * Driver: nv4_disp (6.14.10.8400).
Renderer: Available OpenGL extensions:
GL_ARB_color_buffer_float, GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program,
GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, GL_ARB_half_float_pixel, GL_ARB_imaging,
GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_pixel_buffer_object,
GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shadow, GL_ARB_shader_objects,
GL_ARB_shading_language_100, GL_ARB_texture_border_clamp, GL_ARB_texture_compression, GL_ARB_texture_cube_map,
GL_ARB_texture_env_add, GL_ARB_texture_env_combine, GL_ARB_texture_env_dot3, GL_ARB_texture_float,
GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two, GL_ARB_texture_rectangle, GL_ARB_transpose_matrix,
GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_window_pos,
GL_ATI_draw_buffers, GL_ATI_texture_float, GL_ATI_texture_mirror_once, GL_S3_s3tc,
GL_EXT_texture_env_add, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_compiled_vertex_array, GL_EXT_Cg_shader, GL_EXT_depth_bounds_test, GL_EXT_draw_range_elements,
GL_EXT_fog_coord, GL_EXT_framebuffer_object, GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil,
GL_EXT_packed_pixels, GL_EXT_pixel_buffer_object, GL_EXT_point_parameters, GL_EXT_rescale_normal,
GL_EXT_secondary_color, GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_two_side,
GL_EXT_stencil_wrap, GL_EXT_texture3D, GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map,
GL_EXT_texture_edge_clamp, GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic,
GL_EXT_texture_lod, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
GL_EXT_texture_sRGB, GL_EXT_timer_query, GL_EXT_vertex_array, GL_HP_occlusion_test,
GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat, GL_KTX_buffer_region, GL_NV_blend_square,
GL_NV_copy_depth_to_color, GL_NV_depth_clamp, GL_NV_fence, GL_NV_float_buffer,
GL_NV_fog_distance, GL_NV_fragment_program, GL_NV_fragment_program_option, GL_NV_fragment_program2,
GL_NV_half_float, GL_NV_light_max_exponent, GL_NV_multisample_filter_hint, GL_NV_occlusion_query,
GL_NV_packed_depth_stencil, GL_NV_pixel_data_range, GL_NV_point_sprite, GL_NV_primitive_restart,
GL_NV_register_combiners, GL_NV_register_combiners2, GL_NV_texgen_reflection, GL_NV_texture_compression_vtc,
GL_NV_texture_env_combine4, GL_NV_texture_expand_normal, GL_NV_texture_rectangle, GL_NV_texture_shader,
GL_NV_texture_shader2, GL_NV_texture_shader3, GL_NV_vertex_array_range, GL_NV_vertex_array_range2,
GL_NV_vertex_program, GL_NV_vertex_program1_1, GL_NV_vertex_program2, GL_NV_vertex_program2_option,
GL_NV_vertex_program3, GL_NVX_conditional_render, GL_SGIS_generate_mipmap, GL_SGIS_texture_lod,
GL_SGIX_depth_texture, GL_SGIX_shadow, GL_SUN_slice_accum, GL_WIN_swap_hint,
WGL_EXT_swap_control
TextureManager: Non-power-of-two textures are supported.
TextureManager: Available RTT support:
 * FBOs supported (great!).
   -- Packed depth-stencil FBO extension supported.
 * PBuffers supported.
TextureManager: Maximum texture size is 4096 x 4096.
TextRenderer: Loaded a font from "media/fonts/bluehigh.ttf" [size: 32.0].
TextureManager: Loaded a texture from "media/mhgames.png".
ModuleManager: Added module 'InitialLoadingModule'.
TextureManager: Created a new render texture (FBO) "lightmap" (256 x 256).
LightManager: Initialized the light map.
GlyphCache: Created a new page, number 0.

No exception?

Looks cool from the screenshots though, especially that main character :slight_smile:

Kev

Very nice and athmospheric! I would love to play the acutal game ;). You can check out the log here

Now that is peculiar, to say the least… Judging from the log, it has crashed just before the ScriptManager is initialised, which in turn just creates the Pnuts context… Strange that the Pnuts version line is not outputted, it’s the first call in the method – how can it crash there? :-\

EDIT: Wait a minute… The LightManager is initiated successfully, which happens after the ScriptManager init! The mystery is: what happened to the ScriptManager? :stuck_out_tongue:

[quote]Looks cool from the screenshots though, especially that main character :slight_smile:
[/quote]
Hehe, yes that character is still the sole animated character I’ve done with PolyAnim, so I keep using him until I make something original… :smiley:

Tested it two other machines:

  • runs fine on a Radeon HD 4870 under Vista
  • runs fine on an Intel onboard crapset (945 something) under XP, except that it couldn’t reach 60fps (stuck at 55) and that bloom didn’t work at all (no visual difference)

About the EEEPC-issue: It’s not the bloom that causes the problems (as i thought earlier), it’s the lighting. It only looks fine with lighting disabled. But it still runs at 1fps then…

I’m under Mandriva Linux 2007, Sempron 2600+, ATI Radeon 9250 Pro and I get this:

[quote]An error occured and the game will exit:
null
java.lang.NullPointerException
at nr.co.mhgames.platformer.engine.sound.SoundSystem.isMusicPlaying(SoundSystem.java:126)
at nr.co.mhgames.platformer.PlatformerMain.run(PlatformerMain.java:136)
at nr.co.mhgames.platformer.PlatformerMain.main(PlatformerMain.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.javaws.Launcher.executeApplication(Launcher.java:1188)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1134)
at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:983)
at com.sun.javaws.Launcher.run(Launcher.java:121)
at java.lang.Thread.run(Thread.java:619)
[/quote]

Thanks, that should be fixed now. Could you try agagin, gouessej? :slight_smile: Also, can you provide the log file, seems to be a sound related problem…

Windows XP, Celeron 2.4Ghz, 512mo RAM, Java 1.6, Intel 82865G :

  • run at around 30 fps
  • almost 96% CPU
  • run pretty well ;D
  • really nice, not glitch, no problem !!!

Wow nice done :wink: