Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (498)
Games in Android Showcase (115)
games submitted by our members
Games in WIP (562)
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  
  Prepper and handler thread rendering.  (Read 252 times)
0 Members and 1 Guest are viewing this topic.
Offline lcass
« Posted 2013-11-30 18:46:29 »

I had an idea not long ago, whilst watching a lowely tv show. I sat at my desk and pondered a thought , a solution to a problem I sought.   ok poems over.

I sat down and was thinking of methods of optimising code on modern multicore computers specifically for rendering large amounts of objects such as that in an enaconadodecahedron . The idea I came up with was to create two threads , the first being the main game thread and the second being a "Handler" thread.

What would happen is the prepper thread would run through all render tasks that had to be performed and write them to an array that the Handler thread read. When the prepper had started it would tell the Handler to begin reading the array. When the prepper thread had finished it would wait for the Handler to complete its task or for further optimisation check how far the handler is and designate some tasks to the prepper thread. Of course this would require lots of careful coding to make sure both threads were in sync at the end and that the handler did skip infront of the prepper and not render stuff.
Offline ClickerMonkey

JGO Coder


Medals: 20


Game Engineer


« Reply #1 - Posted 2013-12-02 13:34:36 »

(If I understand this correctly) this is something I do for my current game I'm working on.

I have a thread that's responsible for building a ByteBuffer for a chunk. That thread is responsible for determining face visibility, how lighting affects the faces, etc. Once the ByteBuffer is ready to be loaded to the VBO it's put on a queue which the main rendering thread reads every iteration.

So essentially my code is organized like this.

Main Thread
1. Rebuild chunks? Place on queue for Build Thread
2. Any built chunks? Take ByteBuffer and update appropriate VBO

Build Thread
1. Wait for chunk to build
2. Build chunk to ByteBuffers
3. Place ByteBuffers on queue for Main Thread

This only works nicely because the building part is done in such a way that it doesn't modify any game state information... AND if a chunk is being built while it's modified the building process for that chunk is restarted. For every block I do a simple check to see whether the chunk has changed since I started (just a simple volatile boolean flag).

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.

BurntPizza (27 views)
2014-09-21 02:42:18

BurntPizza (18 views)
2014-09-21 01:30:30

moogie (19 views)
2014-09-21 00:26:15

UprightPath (27 views)
2014-09-20 20:14:06

BurntPizza (29 views)
2014-09-19 03:14:18

Dwinin (45 views)
2014-09-12 09:08:26

Norakomi (74 views)
2014-09-10 13:57:51

TehJavaDev (100 views)
2014-09-10 06:39:09

Tekkerue (50 views)
2014-09-09 02:24:56

mitcheeb (71 views)
2014-09-08 06:06:29
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

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
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!