Java-Gaming.org Hi !
Featured games (81)
games approved by the League of Dukes
Games in Showcase (513)
Games in Android Showcase (119)
games submitted by our members
Games in WIP (576)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Toxic Bunny HD  (Read 4864 times)
0 Members and 1 Guest are viewing this topic.
Offline tbulford

Senior Newbie


Medals: 1



« Posted 2012-08-19 08:10:05 »

1997 Dos platform game ported to HD in Java. The game is due for release here in South Africa in October. Blog about the development available on blog.toxicbunny.co.za

You can find out more about the game on www.toxicbunny.co.za



We have 11 level of parallax particles or lighting overlays. Full frame draw at under 8ms on entry level machine. Using Java2D not open gl libraries.

Completely hand draw levels no tiling anymore (original was tiled)



Under 300mb footprint when executing. Works with all the controllers and joysticks we can get our hands on.

Garbage collection was our worse enemy without a doubt. Partial lag beats full lag erratically.

To see more about our Indy Company take a look at www.celestial-games.com

Thanks

If you have any questions about the Java development challenges feel free to email me. travis@celestial-games.com


Offline ReBirth
« Reply #1 - Posted 2012-08-19 08:58:48 »

The art is look great. Hope it will be done soon.

Offline tbulford

Senior Newbie


Medals: 1



« Reply #2 - Posted 2012-08-19 10:18:06 »

Thanks us too.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline davedes
« Reply #3 - Posted 2012-08-19 14:40:26 »

Quote
Full frame draw at under 8ms on entry level machine
Are you testing/targeting Macs as well? In my experience (testing on Snow Leopard; Macbook Air and iMac), Java2D gets fill-rate limited very easily and doesn't seem to take advantage of hardware (plus, the "opengl" JVM switch has no effect). See this simple benchmark. With all that's going on in your screen shots, I am really curious about how it would perform on my Macs at full resolution.

Art style looks great, though. Excited to see more.

Offline tbulford

Senior Newbie


Medals: 1



« Reply #4 - Posted 2012-08-19 16:06:27 »

Thanks. Yes screen is fairly busy lighting fully dynamic although the particles tend to be the most expense element.

We do test on a MAC at the office entry level MAC book about 1 1/2 old. Not sure about distribution on MAC we considering using Excelsior JET for the distribution to simplify the game distribution.

Essentially the MAC and PC only stutter on GC. We really spending a lot of time making sure we reuse and prevent object creations where we can.

One thing we have discovered in that JAva 2D create a rectangle for each image draw and then uses the rectangle intersect to determine if the image needs to be drawn. So hand culling before calling drawImage can save a lot of rectangles been build. We have about 2000 sprites at 24fps we were building more or less 48k rectangles on the heap per second. Surprisingly these didn't seam to get Eden gc'ed.

One trick for the GC has been to reduce the VM's available ram to force more regular GC's that don't then stall due to size. Most machines no longer see stalls but we been as thorough as we can to get the best possible experience on as many machines.
Offline sproingie

JGO Kernel


Medals: 202



« Reply #5 - Posted 2012-08-19 21:07:54 »

Damn, you got all that performance from java2d?  Do you guys have any developer diaries to share?
Offline BurntPizza
« Reply #6 - Posted 2012-08-19 21:12:57 »

Damn, you got all that performance from java2d?  Do you guys have any developer diaries to share?


Heh that's what I was wondering; I'd probably be over 8ms just drawing the background! (on my crappy laptop anyway)

Nice job though, looks awesome!
Offline StumpyStrust
« Reply #7 - Posted 2012-08-19 21:17:47 »

Please...please...share your techniques on getting j2d to perform this way.

Offline tbulford

Senior Newbie


Medals: 1



« Reply #8 - Posted 2012-08-20 08:40:38 »

Thanks for the interest. Nice to be able to share the results with some people that understand the limitations of the platform.

There is a developer Diary although we had a reboot so most of the early articles are lost. The current is a little less tech then this audience might prefer.

Essentially we run at 1080p 24fps (this is legacy from the original game). We not in the mood to rewrite the whole game balance and logic.

At 1080p we sitting on the following breakdown for performance.


The numbers are in milliseconds.

This is from the following screen shot



We started this project in Java 1.5 at that point we used Java3D to access the acceleration through the Java 2D pipeline. We found that if we connected Java3D to a full screen Java2D context all the Java2D features were in fact accelerated. From Java 1.6 on full acceleration was part of the JRE so we getting pretty good performance.

We have now dropped the 3D game context and work only with Java2D. There are a few tricks. Some of the Alpha composites are slow whilst others fast depending on graphics card. We had to reverse the lighting system since the one composite failed and went to slow mode. Also we use the Translation often for rotations and scaling but never simply scale the corners of an image. We found that often falls back on software.

I think if you test your Java2D right now you will find the performance exceeds your expectations. The thing we doing that's special is more around the streaming of the background layers as the game plays.

Regards
Travis
Offline ra4king

JGO Kernel


Medals: 350
Projects: 3
Exp: 5 years


I'm the King!


« Reply #9 - Posted 2012-08-20 23:18:16 »

I used to play with Java2D and play tricks with it to be fast.

With the simpleness of freely available libraries like Slick2D and LibGDX that use OpenGL underneath, and the speed of direct OpenGL itself, I am no longer willing to go back to relatively slow platforms like Java2D.

I am happy that you were able to do this go this amazing performance for these amazing graphics, but this is more to everyone else Smiley

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline tbulford

Senior Newbie


Medals: 1



« Reply #10 - Posted 2012-08-21 04:56:03 »

Cant argue there.

Our struggles are more along the lines that we don't have access to sh adders and we cant control some head use that goes on under the hood. An opengl lib is certainly better for that.

On the flip side its been great showing off what Java can do. The only native lib is in jinput for now.
Offline bryanlawsmith

Innocent Bystander





« Reply #11 - Posted 2012-10-17 18:05:48 »

Hey guys  Smiley

I've written an article on how we implemented one of the features for the game.

Here's the link:

http://bitsandbytesza.blogspot.com/2012/10/simple-tile-based-volume-lighting-in.html
Offline tbulford

Senior Newbie


Medals: 1



« Reply #12 - Posted 2012-11-16 14:33:37 »

Toxic Bunny HD is now on steam

You will be able to see game play video there Wink

http://steamcommunity.com/sharedfiles/filedetails/?id=108520156

And of course if you happen to feel generous a quick thumbs up wont do any harm.
Offline princec

JGO Kernel


Medals: 404
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #13 - Posted 2012-11-16 14:58:14 »

Hey, well done on your losing your Steam virginity! Fingers crossed, I hope it does well for you.
<edit>Ahh wait a minute, I thought you meant you'd already been accepted.
Better get soliciting those thumbs ups from everyone in here then! At the very least get your homepage pointing right at it.

Cas Smiley

Offline tbulford

Senior Newbie


Medals: 1



« Reply #14 - Posted 2012-11-16 15:11:49 »

Thanks its kinda exciting and fairly terrifying all at the same time Smiley
Offline ReBirth
« Reply #15 - Posted 2012-11-17 02:13:44 »

Steam virginity? so literary you're fukked by Steam? :x

Btw good luck!

Offline masteryoom

JGO Coder


Medals: 5
Projects: 2


If you look closely, you might see it turning...


« Reply #16 - Posted 2012-11-17 02:21:46 »

Where is the link to the game?
Quote from: Riven
Rules for the Showcase board:
Games posted here should be more or less finished: a casual visitor should be able to play your game without any trouble.
Anything goes, as long as it playable and is 'java gaming' related (javascript is not).
Your topic must feature a screenshot (this will be used as a thumbnail in the sidebar)

Smiley
Offline Joshua Waring
« Reply #17 - Posted 2012-11-17 03:52:00 »

This looks amazing thumbs up on the art work Smiley

The world is big, so learn it in small bytes.
Offline tbulford

Senior Newbie


Medals: 1



« Reply #18 - Posted 2012-11-17 05:01:40 »

Does the showcase rule mentioned by masteryoom indicate that your game should be free to download and play?

I would have expected it to be more about the completeness of the game then the idea that it is free to download and play.

Am I mistaken?
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 816
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #19 - Posted 2012-11-17 05:05:41 »

Playability refers to completeness.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline tbulford

Senior Newbie


Medals: 1



« Reply #20 - Posted 2012-11-17 05:08:21 »

Thanks for clearing that up.
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Longarmx (46 views)
2014-10-17 03:59:02

Norakomi (37 views)
2014-10-16 15:22:06

Norakomi (29 views)
2014-10-16 15:20:20

lcass (32 views)
2014-10-15 16:18:58

TehJavaDev (62 views)
2014-10-14 00:39:48

TehJavaDev (62 views)
2014-10-14 00:35:47

TehJavaDev (52 views)
2014-10-14 00:32:37

BurntPizza (70 views)
2014-10-11 23:24:42

BurntPizza (40 views)
2014-10-11 23:10:45

BurntPizza (82 views)
2014-10-11 22:30:10
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!