Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (790)
Games in Android Showcase (234)
games submitted by our members
Games in WIP (864)
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  
  Sprites rendering in 2.5D raycasting engine  (Read 3688 times)
0 Members and 1 Guest are viewing this topic.
Offline frg

Junior Newbie

« Posted 2013-04-08 14:39:36 »

Hi all! I've been reading this BB for a while and this is my first post Smiley

I'm a CS student and I'm quite new at game development, though I have good Java skills.

After working on some 2D games I decided to try to implement a Wolfenstein 3D-like game engine from scratch (I know it's not a novel idea Tongue).

My current engine is capable of correctly displaying walls and textures, but I'm stuck at sprites rendering.

My engine does not use matrices, just some geometry and trigonometry; but I'm missing the technique needed to get sprites on screen.

It's quite easy to determine if a sprite is currently visible on the screen, but I definitely don't know how to determine the portion of the sprite image that has to be drawn.

In the following picture, if the red dot is the viewer (with its field of view) and the blue dot is a sprite, how can I render it on screen? How can I determine the on-screen x coord of the sprite?

Thanks a lot (I hope my english is not that bad Wink)
Offline Jimmt
« League of Dukes »

JGO Kernel

Medals: 167
Projects: 5
Exp: 6 years

« Reply #1 - Posted 2013-04-08 19:55:31 »

Are you using Java2D? Or something else?
Offline frg

Junior Newbie

« Reply #2 - Posted 2013-04-08 22:45:51 »

I'm using just AWT. Anyway after an afternoon of work I figured out how to make it, maybe I'll post some screens of my engine ^^
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline SwampChicken
« Reply #3 - Posted 2013-04-09 02:13:30 »

So your using ray-casting to determine line-of-sight?
Offline frg

Junior Newbie

« Reply #4 - Posted 2013-04-09 10:31:16 »

Yes. The engine draws the walls and stores their distance, then it calculates the distance to the visible sprites (the sprites contained in the current field of view) and draws their vertical stripes which are not covered by a wall.
Offline atrakeur

Junior Newbie

Exp: 4 years

« Reply #5 - Posted 2013-04-09 10:42:49 »

If I remember correctly, wolfenstein use bsp map format.
Correct me if I m wrong but there is directly visibility data inside the bsp tree, so you just have to render all sprites inside the visible zone computed by vis.
Pages: [1]
  ignore  |  Print  

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

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

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

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

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

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

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

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

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

nelsongames (4456 views)
2018-04-24 18:14:32
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 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‑
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!