Java-Gaming.org Hi !
Featured games (91)
games approved by the League of Dukes
Games in Showcase (799)
Games in Android Showcase (237)
games submitted by our members
Games in WIP (865)
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  
  [Now w/Demo] Shard Master - 3D Software Rasterized RPG  (Read 64058 times)
0 Members and 1 Guest are viewing this topic.
Offline Archive
« Posted 2015-06-06 17:13:39 »



NEW VIDEO DISPLAYING MY START TO PLAYER ANIMATION
<a href="http://www.youtube.com/v/N4PpvJ_eVvU?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/N4PpvJ_eVvU?version=3&amp;hl=en_US&amp;start=</a>

Features:

Triangle rasterization
Gouraud shading model
Z-Buffering
Toggle-able 3rd/1st person camera.
Texture mapping
Custom font rendering
Wavefront OBJ loading
Map loading from a file created using my map editor (stores tile data into custom bytebuffer and writes it out to a file)
Tile Based
Collision (easy because the game is tile based)
15 bit color (both the GUI and the 3D surface)
Basic animation support




DEMO
http://www.mediafire.com/download/nleul28qgrjnnnd/ShardMasterDemo.jar.zip

Controls
W,S,A,D - Move player
Arrow Keys - Rotate camera (left/right, up/down)
T,G - Move camera up and down

Offline Husk

Senior Devvie


Medals: 20
Exp: 3 years


Want to learn everything.


« Reply #1 - Posted 2015-06-06 17:28:23 »

Ahh, RuneScape nostalgia... Smiley. Those days are gone now.

Pretty cool nonetheless.

Offline Archive
« Reply #2 - Posted 2015-06-06 17:41:40 »

Thanks mate, I've learned a lot so far from this project (both the rasterizer and the game components).

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Archive
« Reply #3 - Posted 2015-06-06 23:56:07 »

UPDATE:

The player now has the ability to traverse chunks in the game based upon where he/she ended up leaving on the current chunk.

<a href="http://www.youtube.com/v/EDc6XNzHOgE?version=3&amp;hl=en_US&amp;start=" target="_blank">http://www.youtube.com/v/EDc6XNzHOgE?version=3&amp;hl=en_US&amp;start=</a>

Offline minigame

Senior Devvie


Medals: 14
Projects: 1


LWJGLException


« Reply #4 - Posted 2015-06-10 01:35:55 »

I remember your first build (or at least nearly the same project) from you before! Excellent progress. It certainly fits the theme of RuneScape Classic. Perhaps you should do a better region system though - instead of only loading one chunk, load and selectively render/process surrounding regions/mobs. Looking forward to seeing some more progress by the way Wink

while (!deadFromWork) {
    if (hasItem("Dry Erase Board")) {
        chanceOfSuccess++;// Based on a true story..
    }
}
Offline Archive
« Reply #5 - Posted 2015-06-10 04:14:52 »

Wow thank you, I have a fan! Haha.

And yes, I was planning on rendering surrounding chunks, I haven't gotten around to it yet. It's still a difficult decision to make because the memory usage will skyrocket and I am unsure about the FPS.

I added trees (objects) and also started working on custom map development.




Offline Archive
« Reply #6 - Posted 2015-06-16 04:43:22 »

NEW UPDATE:

Basic gameframe. (Looks awful right now, will fix)

(Image in main post)

Finally decided on name : Demon Quest

Offline minigame

Senior Devvie


Medals: 14
Projects: 1


LWJGLException


« Reply #7 - Posted 2015-06-17 21:29:02 »

NEW UPDATE:

Basic gameframe. (Looks awful right now, will fix)

(Image in main post)

Finally decided on name : Demon Quest

First off, if you're using tile based collision why not implement A* path finding and have the player model translate across the map in an automated manner Wink ? As for bridges why not throw in a plane and toggle the tile clipping settings under neath it, instead of scooting across the ground :p

.. and second  Pointing

while (!deadFromWork) {
    if (hasItem("Dry Erase Board")) {
        chanceOfSuccess++;// Based on a true story..
    }
}
Offline Archive
« Reply #8 - Posted 2015-06-18 02:43:33 »

@minigame : You use WSAD to move and the movement is smooth between tiles. It scoots because there is no walk animation yet. The bridge idea is going to be really hard to implement.

And yea, the whole ripped parchment on stone idea was inspired by the runescape gameframe. I made my own though using a stone texture picture I took while I was in England and a simple 50% opacity eraser.

Offline DavidBVal
« Reply #9 - Posted 2015-06-18 11:02:34 »

I really like this project. Great work Smiley

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

Senior Devvie


Medals: 14
Projects: 1


LWJGLException


« Reply #10 - Posted 2015-06-18 11:32:23 »

I dunno. I've made a 3D client with the same mechanics as RuneScape (hence the name "Magic Terrain" in the photo below); the path finder was pretty simple as I've used it for many projects over the years. If you want help I'd be happy to write some code and send it to you (I don't need the src, and I assume you wouldn't want to share it anyways since it's 100% original)

Not to swagjack your thread so here's a url instead of an image tag: http://puu.sh/i9ir2/07e1a740f1.jpg

while (!deadFromWork) {
    if (hasItem("Dry Erase Board")) {
        chanceOfSuccess++;// Based on a true story..
    }
}
Offline Archive
« Reply #11 - Posted 2015-06-18 14:55:44 »

@minigame : Yeah haha, I consciously made the decision not to use click-move in my game, because if I did it would be too similar to RuneScape. ALSO, the player can toggle between 3rd and 1st person, and click-move will not work in first person.
Thank you for the offer though!

Offline Archive
« Reply #12 - Posted 2015-06-18 14:56:08 »

I really like this project. Great work Smiley
Thank you!

Offline EgonOlsen
« Reply #13 - Posted 2015-06-18 16:33:54 »

Why frame it? Old games mostly did this to decrease the actual view window's size for performance reasons. But with current CPUs, even a software renderer written in Java can do fullscreen. I would make use of that power instead of introducing an artifical limitation in the form of a frame.

Offline Archive
« Reply #14 - Posted 2015-06-19 03:06:48 »

Why frame it? Old games mostly did this to decrease the actual view window's size for performance reasons. But with current CPUs, even a software renderer written in Java can do fullscreen. I would make use of that power instead of introducing an artifical limitation in the form of a frame.
Thank you for your concern.

I was considering increasing the size of the window to 1024x768 rather than 800x600. The software renderer full screen runs at around 20 fps and is definitely not suitable for a game. I also like gameframes because it makes the game feel more "cozy" (at least for me it does).

Offline EgonOlsen
« Reply #15 - Posted 2015-06-19 06:30:57 »

I was considering increasing the size of the window to 1024x768 rather than 800x600. The software renderer full screen runs at around 20 fps and is definitely not suitable for a game.
I actually think that 20 fps is sufficient for a RPG...but anyway...maybe there's room to improve the performance!? On which machine are you running it? Have you considered to use multiple cores for rendering? jPCT's software renderer can render a simple Quake3 level with full texturing, shading, zbuffering and (per polygon) mip-mapping in 800*600 at 150-200 fps on an i7-2600 using 4 threads. At 1280*1024, it's at 40 fps, which is still very playable IMHO.

Offline Archive
« Reply #16 - Posted 2015-06-19 07:04:57 »

I was considering increasing the size of the window to 1024x768 rather than 800x600. The software renderer full screen runs at around 20 fps and is definitely not suitable for a game.
I actually think that 20 fps is sufficient for a RPG...but anyway...maybe there's room to improve the performance!? On which machine are you running it? Have you considered to use multiple cores for rendering? jPCT's software renderer can render a simple Quake3 level with full texturing, shading, zbuffering and (per polygon) mip-mapping in 800*600 at 150-200 fps on an i7-2600 using 4 threads. At 1280*1024, it's at 40 fps, which is still very playable IMHO.
That's 20 fps (below 30 fps is when the human eye begins to notice the non-fluid "motion" of the pixels) with only buildings, I will be adding enemies, npcs, more objects, and plenty of other things which eat fps. I prefer writing my own software renderer right now for learning purposes, I'm 16 and I want to put this on my college resume. I'm running it on the Macbook retina display, i7, 16g RAM. The engine is as optimized as I could get it without making the code either extremely long or unreadable.

Offline EgonOlsen
« Reply #17 - Posted 2015-06-19 07:40:20 »

I prefer writing my own software renderer right now for learning purposes, I'm 16 and I want to put this on my college resume. I'm running it on the Macbook retina display, i7, 16g RAM. The engine is as optimized as I could get it without making the code either extremely long or unreadable.
Sorry, I didn't mean to make you use something else. I just wanted to point out that there might be room for improvement left if you aren't statisfied with the current performance. I always appreciate it when people are writing software renderers...the more the merrier... Grin

Edit: How are you doing the texture mapping? Affine, perspective correct or the common mix between both?

Offline Archive
« Reply #18 - Posted 2015-06-19 15:02:35 »

I prefer writing my own software renderer right now for learning purposes, I'm 16 and I want to put this on my college resume. I'm running it on the Macbook retina display, i7, 16g RAM. The engine is as optimized as I could get it without making the code either extremely long or unreadable.
Sorry, I didn't mean to make you use something else. I just wanted to point out that there might be room for improvement left if you aren't statisfied with the current performance. I always appreciate it when people are writing software renderers...the more the merrier... Grin

Edit: How are you doing the texture mapping? Affine, perspective correct or the common mix between both?
Perspective, affine would use too much memory (I'd have to make two more float arrays :/).

Offline EgonOlsen
« Reply #19 - Posted 2015-06-19 20:01:16 »

Perspective, affine would use too much memory (I'd have to make two more float arrays :/).
Huh Affine texture mapping is without perspective correction (Playstation 1-style), perspective correct requires a divide per pixel, which is expensive, and the mix of both relies on sub-dividing the scanling into chunks of 8 or 16 pixels, which are perspective correct at the start and end and affine mapped between. I don't see why any of these approaches should require any additional memory!?

Offline Archive
« Reply #20 - Posted 2015-06-19 21:38:32 »

Perspective, affine would use too much memory (I'd have to make two more float arrays :/).
Huh Affine texture mapping is without perspective correction (Playstation 1-style), perspective correct requires a divide per pixel, which is expensive, and the mix of both relies on sub-dividing the scanling into chunks of 8 or 16 pixels, which are perspective correct at the start and end and affine mapped between. I don't see why any of these approaches should require any additional memory!?
Oops nevermind haha I was overthinking it

Perspective correct

Affine


EDIT: Decided to convert the texture mapping to affine, thank you for suggesting it!
EDIT2: Will toy around for a bit and find a medium.

Offline Archive
« Reply #21 - Posted 2015-06-20 01:17:50 »

GUESS WHO JUST CHANGED THEIR COLOR DEPTH TO 15 BIT?!?!?!?!

THIS LOOKS SUPER OLD SCHOOL


Offline EgonOlsen
« Reply #22 - Posted 2015-06-20 10:50:54 »

Will toy around for a bit and find a medium.
Just limit the perspective correction to every x pixels (like 16) and map the pixels in between with an affine mapper. That will give you better performance at the cost of only a slight visual impact on polygons of a steep angle.

Offline Archive
« Reply #23 - Posted 2015-07-01 05:32:17 »

New update!

Check the main post for details, and watch the video!

Offline Archive
« Reply #24 - Posted 2015-07-03 07:34:20 »

I have created a demo for you guys, it isn't much, I just wanted you guys to know what the feel of the game is like and how it works. Feedback is appreciated.

http://www.mediafire.com/download/nleul28qgrjnnnd/ShardMasterDemo.jar.zip

Offline minigame

Senior Devvie


Medals: 14
Projects: 1


LWJGLException


« Reply #25 - Posted 2015-08-01 02:22:05 »

I have created a demo for you guys, it isn't much, I just wanted you guys to know what the feel of the game is like and how it works. Feedback is appreciated.

http://www.mediafire.com/download/nleul28qgrjnnnd/ShardMasterDemo.jar.zip

Looking forward to some updates after you collect user feedback Smiley

while (!deadFromWork) {
    if (hasItem("Dry Erase Board")) {
        chanceOfSuccess++;// Based on a true story..
    }
}
Offline gouessej
« Reply #26 - Posted 2015-08-12 09:26:58 »

Hi

It runs smoothly with an Intel Xeon E3-1245 3.39 Ghz microprocessor, I'll give it a try on a very low end machine soon.

I advise you to allow the player to choose between fullscreen mode and windowed mode in order to please everybody and to keep a decent framerate even on very low end hardware. I'm sure that you can get below 20 frames per second in fullscreen mode with the default resolution of my screen (1920 * 1080). I don't want to restart a very old debate about software rendering, EgonOlsen's suggestion is acceptable for end users who like fullscreen mode (I'm still surprised to hear about some players who prefer windowed mode, each to his own...) if you stick to a low resolution and if you limit the amount of geometry that you send to your software renderer.

You can use AWT to get the supported display mode. Unfortunately, AWT fullscreen mode under GNU Linux is broken, the task bar is drawn above the fullscreen window. If you really want to get rid of this limitation, let me know, it is possible to use NEWT (the native windowing toolkit of JOGL, part of JogAmp) without OpenGL (you could still use your software renderer) with AWT.

Julien Gouesse | Personal blog | Website | Jogamp
Offline gouessej
« Reply #27 - Posted 2015-08-12 17:17:37 »

I get only between 13 and 15 FPS on my Intel Core2 Duo.

Julien Gouesse | Personal blog | Website | Jogamp
Pages: [1]
  ignore  |  Print  
 
 

 
Riven (198 views)
2019-09-04 15:33:17

hadezbladez (4909 views)
2018-11-16 13:46:03

hadezbladez (1810 views)
2018-11-16 13:41:33

hadezbladez (5183 views)
2018-11-16 13:35:35

hadezbladez (1023 views)
2018-11-16 13:32:03

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

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

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

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

nelsongames (4305 views)
2018-04-24 18:15:36
Java Gaming Resources
by philfrei
2019-05-14 16:15:13

Deployment and Packaging
by philfrei
2019-05-08 15:15:36

Deployment and Packaging
by philfrei
2019-05-08 15:13:34

Deployment and Packaging
by philfrei
2019-02-17 20:25:53

Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08

Deployment and Packaging
by gouessej
2018-08-22 08:03:45
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!