Mootox

Thanks for trying it! :slight_smile:

[quote]
Found a bug, if I select another car (after the yellow bus) the game crashes and if I restart it, it will crash on the car selection and on the start of a game after I have chosen a map.
[/quote]

Could you check the log (in your home directory, in .mootox). I’m having trouble reproducing this locally, could you describe what you did a bit more. (sorry, I’m probably being dense like normal :))

Kev

In the player.properties the skin is pointing to “mario”

Here is my log: (this is on OS-X 10.4 btw)

Sun Feb 17 14:59:15 CET 2008 INFO:Slick Build #210
Sun Feb 17 14:59:15 CET 2008 INFO:LWJGL Version: 1.1
Sun Feb 17 14:59:15 CET 2008 INFO:OriginalDisplayMode: 1280 x 800 x 32 @0Hz
Sun Feb 17 14:59:15 CET 2008 INFO:TargetDisplayMode: 600 x 600 x 0 @0Hz
Sun Feb 17 14:59:15 CET 2008 INFO:Starting display 600x600
Sun Feb 17 14:59:15 CET 2008 INFO:Found 0 controllers
Sun Feb 17 14:59:15 CET 2008 INFO:Initialising sounds…
Sun Feb 17 14:59:16 CET 2008 INFO:- Sound works
Sun Feb 17 14:59:16 CET 2008 INFO:- 64 OpenAL source available
Sun Feb 17 14:59:16 CET 2008 INFO:- Sounds source generated
Sun Feb 17 14:59:19 CET 2008 INFO:Track Loaded: /Users/freek/.mootox/levels/track3.zip
Sun Feb 17 14:59:19 CET 2008 INFO:Loading: /Users/freek/.mootox/skins/blue.zip
Sun Feb 17 14:59:19 CET 2008 INFO:Loading: /Users/freek/.mootox/skins/bowser.zip
Sun Feb 17 14:59:19 CET 2008 INFO:Loading: /Users/freek/.mootox/skins/mario.zip
Sun Feb 17 14:59:24 CET 2008 INFO:Start HTTP Status server on: 43211
Sun Feb 17 14:59:24 CET 2008 INFO:Server Started on 43210
Sun Feb 17 14:59:24 CET 2008 INFO:/127.0.0.1:49947 connected
Sun Feb 17 14:59:24 CET 2008 INFO:Server recieved client version of: 2
Sun Feb 17 14:59:24 CET 2008 INFO:Client recieved ID of: 1
Sun Feb 17 14:59:24 CET 2008 ERROR:LUT has improper length!
java.lang.IllegalArgumentException: LUT has improper length!
at javax.imageio.ImageTypeSpecifier$Indexed.(ImageTypeSpecifier.java:866)
at javax.imageio.ImageTypeSpecifier.createIndexed(ImageTypeSpecifier.java:955)
at com.sun.imageio.plugins.png.PNGImageReader.getImageTypes(PNGImageReader.java:1463)
at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1348)
at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1530)
at javax.imageio.ImageIO.read(ImageIO.java:1400)
at javax.imageio.ImageIO.read(ImageIO.java:1322)
at org.newdawn.slick.opengl.ImageIOImageData.loadImage(ImageIOImageData.java:115)
at org.newdawn.slick.opengl.ImageIOImageData.loadImage(ImageIOImageData.java:104)
at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:266)
at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:221)
at org.newdawn.slick.Image.load(Image.java:279)
at org.newdawn.slick.Image.(Image.java:201)
at org.newdawn.slick.Image.(Image.java:188)
at org.newdawn.mootox.config.SkinStore.getBodyImage(SkinStore.java:228)
at org.newdawn.mootox.ingame.Truck.setBody(Truck.java:242)
at org.newdawn.mootox.ingame.Truck.(Truck.java:131)
at org.newdawn.mootox.network.NetworkSetupState.getTruck(NetworkSetupState.java:137)
at org.newdawn.mootox.network.NetworkSetupState.render(NetworkSetupState.java:122)
at org.newdawn.slick.state.StateBasedGame.render(StateBasedGame.java:181)
at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:430)
at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:330)
at org.newdawn.mootox.MiniMootox.main(MiniMootox.java:167)
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:585)
at com.sun.javaws.Launcher.executeApplication(Launcher.java:1161)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1108)
at com.sun.javaws.Launcher.continueLaunch(Launcher.java:951)
at com.sun.javaws.Launcher.handleApplicationDesc(Launcher.java:522)
at com.sun.javaws.Launcher.handleLaunchFile(Launcher.java:218)
at com.sun.javaws.Launcher.run(Launcher.java:165)
at java.lang.Thread.run(Thread.java:613)
Sun Feb 17 14:59:24 CET 2008 ERROR:Game.render() failure - check the game code.
org.newdawn.slick.SlickException: Game.render() failure - check the game code.
at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:433)
at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:330)
at org.newdawn.mootox.MiniMootox.main(MiniMootox.java:167)
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:585)
at com.sun.javaws.Launcher.executeApplication(Launcher.java:1161)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1108)
at com.sun.javaws.Launcher.continueLaunch(Launcher.java:951)
at com.sun.javaws.Launcher.handleApplicationDesc(Launcher.java:522)
at com.sun.javaws.Launcher.handleLaunchFile(Launcher.java:218)
at com.sun.javaws.Launcher.run(Launcher.java:165)
at java.lang.Thread.run(Thread.java:613)

Ah ha, will try it on my Mac, but looks like the JDK bug. Anyone remember what the solution was?

Guess it’s time I added that custom PNG reader to Slick.

Thanks for the log!

Kev

Software version of PNG loader added (thanks to MatthiasM). Should resolve the issue on Mac.

Added jar/exe based command line versions incase anyone is webstart afeared:

http://www.cokeandcode.com/demos/mootox/web/static.php?page=gettheinstall

Kev

By software, I of course mean not platform, i.e. not ImageIO based. Doh.

Kev

I tried here in my Linux box but the game window just closes and I couldn’t get any error log…

Did a very rapid update last night, might be broken. The log should be in ~/.mootox/

Kev

Seems it doesn’t like ALSA sound. I’ll work around next session. Cheers for the report.

Kev

More updates, mostly server side:

  • Admin console for remote shutdown of server
  • Persistent state of best times and scores across server shutdowns
  • Timing issues fixed with level resets
  • Added a new server level
  • Results screen shown between levels
  • Ornaments added to levels to spice things up a bit

Stuff is now getting added to the game guide (thanks Void and Drag!).

http://www.cokeandcode.com/demos/mootox/web/images/mootox7.png

Kev

Talking to myself here, but heh… new update, build 102

  • Revamped the level select screen
  • Added road signs (see below)
  • More network fixes
  • Sound fixes
  • Added a new track - Rally Tribute (see blow)
  • More options for level design, background images and parralax settings are now available
  • Online best times recorded in single player
  • Started collating some user produced tracks: http://www.cokeandcode.com/demos/mootox/web/static.php?page=tracks

Next up:

  • Special effects for smashing your truck up, water
  • Dynamic objects, replacing the rope bridge from the original demo
  • Power ups - charge meter + current types
  • Trick detection (flips, high jumps)
  • Teleports to allow looped racing

Road signs:

http://www.cokeandcode.com/demos/mootox/web/images/mootox10.png

New track;

http://www.cokeandcode.com/demos/mootox/web/images/mootox8.png
(anyone remember the SNES game?)

Comments and ideas appreciated,

Kev

Unirally? ;D

Looks slick, will have to try this out later. Are you still using inkscape to design levels? How’s that working out?

Inkscape is working out pretty well, at least I think so. I’ve tried to limit the colour coding type approach moving instead to using the label to describe the properties of particular piece of the level. The label is currently used as a key into a materials library which then goes on to describe rendering and physics properties. As you can imagine I have a small framework for this stuff now which I’m refining with each game - Slick got an SVG parser and renderer as a side effect.

Dragoene (Morre here) has been nice enough to write up a guide on designing levels so that might give some more insight into the current approach:

http://www.cokeandcode.com/demos/mootox/web/static.php?page=create-new-tracks

Kev

Oh, and yes, Unirally to us, Uniracers to everyone outside the EU I think. What a great game it was! :slight_smile:

Kev

What a cool game!

Any plans for full screen, and sound effects?

A little nitpicking about the menu’s: It would be nice if the mouse worked on the menu as well, and if there was ‘back’ option in the submenus. Also, when you enter your name in the Player Set-up menu, it’d be more intuitive if the Enter button worked (so that the focus shifts to the next menu option).

Thumbs up!

Really great game man!!! (Also love your tutorials…btw, ever think of making a simple game that uses physics tutorial, or a networked game tutorial? :D) and also this game does bring back great memories of uniracer!!

Oh and I was playing one map, raced against my “ghost” a couple of times, pushed esc, chose a new level and my ghost was in the new level with me (i never played it before) but it was riding the old track:P…

Thanks for the positives folks :slight_smile:

There are actually some minor sound fx in there, only when you collection things atm, but yeah full on sfx are on the plan. Fullscreen, hadn’t really considered it tbh, I like the format as it is - more casual - but I guess an option could be added with some fiddling around.

Noted, it’s now on the plan.

Thanks, I’ll fix that next.

The current plan is available on the website now. Spent most of my time the last couple of days doing website updates. You can now see the best times people have done the different levels in on the site:

>> Best Times Here <<

Sweden appear to be winning :slight_smile:

Kev

That skinning feature is a neat touch :slight_smile:
Maybe you can do the same thing with sounds:
After looking at the Bart skin (which looks great!), I could easily imagine a similar South Park theme with lots of cursing when you fall etc ;D

Heh, I’ve been asked to add a “horn” effect to the skin, so this coupled with the user definable taunts (that are already in) you really aggrevate the people you’re beating in multiplayer games :slight_smile:

Incidently, just added a new track to the hot-sync. The track is produced by KappaOne so please don’t blame me for the difficulty level :slight_smile:

Kev

Sorry, spamming my own thread:

Re: Skins, here’s a background I created showing some of the ones that have been created so far:

http://www.cokeandcode.com/demos/mootox/web/downloads/media/desktop.png

Kev

Hehe, sounds like really fun in multiplayer.
Is there some documentation of how to create skins etc? Maybe I’d like to have a bash at a South Park theme (no promises though, and it would be not within the next 2-3 weeks…)
Of course that would also require Kenny randomly wandering around to run over for bonus points, and Isaac Hayes music ;D