Java-Gaming.org Hi !
Featured games (91)
games approved by the League of Dukes
Games in Showcase (757)
Games in Android Showcase (229)
games submitted by our members
Games in WIP (844)
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  
  Billboard Sprite World  (Read 2741 times)
0 Members and 1 Guest are viewing this topic.
Offline ThaRemo
« Posted 2018-03-05 00:14:12 »

I've been working on and off on this project for the last couple of years. I wanted to make a world entirely out of billboard sprites. These are some recordings I made during the beginning of development in 2015:
<a href="http://www.youtube.com/v/09h0BxeWngw?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/09h0BxeWngw?version=3&amp;hl=en_US&amp;start=</a>

This was all rendered on a Swing JPanel, which was pretty inefficient. I've since switched to OpenGL, but at the time I didn't know any better.

Here are executable jar files of some versions if you're interested:
- First version: https://www.dropbox.com/s/uh8j3z1n4p0c8n4/Demo.jar?dl=1
- Improved version: https://www.dropbox.com/s/0msinzk8tiqil0f/demo2.jar?dl=1
- Space version: https://www.dropbox.com/s/xg6uiw65uhg7fz3/SpaceDemo.jar?dl=1

A couple of months later I was figuring out how to render a floor/ceiling grid and made some recordings. I've ended up not using it in the end since I moved on to full 3D movement later on.
<a href="http://www.youtube.com/v/Sr6wNhH5n3k?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/Sr6wNhH5n3k?version=3&amp;hl=en_US&amp;start=</a>

Almost a year later I decided to pick up this project again. I had a course on computer graphics and gained some knowledge of OpenGL, but I didn't know how to use it in Java up until this point. Then I discovered LWJGL and I was able to relatively easily migrate from a Swing Canvas to legacy OpenGL. The performance was still pretty terrible, so I started from scratch in modern OpenGL and it got pretty weird.
<a href="http://www.youtube.com/v/RdkVq9jJl7c?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/RdkVq9jJl7c?version=3&amp;hl=en_US&amp;start=</a>

Then I needed a faster way to choose which objects to render than checking them individually, so I implemented an octree data structure to render groups of nearby objects. A node is subdivided after a maximum amount of objects are added and it redistributes its objects to its 8 child nodes. It also allows for a fast way to raycast through all objects, which I used to detect collision with the player.
<a href="http://www.youtube.com/v/ESeBlH5mxlg?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/ESeBlH5mxlg?version=3&amp;hl=en_US&amp;start=</a>

A few months ago I really got back into it and improved terrain generation using perlin noise and implemented some rendering optimizations.
<a href="http://www.youtube.com/v/KfrrW6qdRGQ?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/KfrrW6qdRGQ?version=3&amp;hl=en_US&amp;start=</a>

And that's where I'm at right now Grin
Try the latest version here: https://www.dropbox.com/s/4dps5zsd93tx3x0/Remo%20Engine%203.1.jar?dl=1
Controls:
  • F to switch between orbit/first person camera.
  • In orbit mode: Middle mouse button to rotate, shift + middle mouse button to move around, scroll to zoom and click to focus on an object.
  • In first person mode: WASD to move, g to disable gravity, choose a sprite with number keys, left click to place, right click to remove, scroll to move cursor
  • F3 for viewing octree nodes, v to toggle vsync, b to toggle normal/additive blending



Offline Gjallar

JGO Knight


Medals: 44
Projects: 1


Follower of Nurgle


« Reply #1 - Posted 2018-03-05 00:32:33 »

I really appreciate that you documented your process, I find it very fun to see where it all started and how it progressed. Really interesting aesthetic! Who could have thought that a ton of billboards can look so nice.

Is this just a little thing to play around with for you, or are you actually gonna turn it into a game? If so, what's the plan?
Offline ThaRemo
« Reply #2 - Posted 2018-03-05 08:40:46 »

Thanks :D
At the moment I just kind of want to make cool looking landscapes and to populate the world with more things.
I've considered adding some rpg elements to make it more fun to explore, but it would take a lot of effort from where it is now. Maybe one day though...
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline buddyBro
« Reply #3 - Posted 2018-03-05 16:10:41 »

It looks awesome! Did you make the textures yourself?
Offline ThaRemo
« Reply #4 - Posted 2018-03-05 16:36:47 »

Thanks! Yep, it's nothing fancy though. Here's the current sprite atlas: https://i.imgur.com/8MHDrFF.png
Offline ral0r2

Junior Devvie


Medals: 4



« Reply #5 - Posted 2018-03-06 15:20:05 »

Great job! Do you remember what tutorials you did use to start? (Assuming you used tutorials Cool
Offline ThaRemo
« Reply #6 - Posted 2018-03-06 18:59:24 »

Hmmm, I don't think I used tutorials. The only thing I knew how to do at the start was how to draw an image to the screen at a specific position.
The horizontal position of each object was calculated using the angle of the object relative to where the player is facing and the vertical position and scale depended only on the distance to the player.
But if you have any specific questions feel free to ask!
Offline ral0r2

Junior Devvie


Medals: 4



« Reply #7 - Posted 2018-03-06 22:57:52 »

Thanks for info. But tbh I'm already struggling enough doing a 2D game. I can't imagine the effort a 3D game oder engine takes. Cheesy
Offline meva
« Reply #8 - Posted 2018-03-11 00:23:11 »

Your work is pretty impressive.

Did you think about writing a blog?
You can share more details about your work and progress.
Offline ThaRemo
« Reply #9 - Posted 2018-03-12 18:59:07 »

Thank you Smiley
Yeah, that might be fun. My progress is kinda slow but I'll try it sometime
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline SolitudeGaming

Junior Devvie


Medals: 5
Projects: 1



« Reply #10 - Posted 2018-03-12 19:07:52 »

WordPress is a decent tool to use for blogging ^^ I use it.
Offline Shatterhand

Junior Devvie


Medals: 8
Exp: 5 years



« Reply #11 - Posted 2018-05-08 19:27:44 »

This looks quite interesting, a entirely new way of doing 3D graphics, though it would be kinda hard to add something like animated game objects (e.g. mobs). You would have to invent your own system for "billboard-sprite based animation in 3D" Smiley

Cheers

Micro$oft broke Volkswagen's world record: Volkswagen only made 22 million bugs!
Pages: [1]
  ignore  |  Print  
 
 

 
EgonOlsen (58 views)
2018-06-10 19:43:48

EgonOlsen (40 views)
2018-06-10 19:43:44

EgonOlsen (60 views)
2018-06-10 19:43:20

DesertCoockie (225 views)
2018-05-13 18:23:11

nelsongames (141 views)
2018-04-24 18:15:36

nelsongames (140 views)
2018-04-24 18:14:32

ivj94 (881 views)
2018-03-24 14:47:39

ivj94 (142 views)
2018-03-24 14:46:31

ivj94 (793 views)
2018-03-24 14:43:53

Solater (157 views)
2018-03-17 05:04:08
Java Gaming Resources
by philfrei
2017-12-05 19:38:37

Java Gaming Resources
by philfrei
2017-12-05 19:37:39

Java Gaming Resources
by philfrei
2017-12-05 19:36:10

Java Gaming Resources
by philfrei
2017-12-05 19:33:10

List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05
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!