raycaster

4

1bir (1 Block Interactive Raycaster)

A 3D engine developed by demogroup Crescent for the Commodore 64, which has a kind of minimalist beauty in itself - video embedded below:

This is a simple raycaster for our beloved C64 featuring the following:

- Size of one C64 disk block (254 bytes)
- Joystick controlled (port 2)
- Simple collision detection
- 256 step rotation in 2 PI
- Open (wrapped) and closed map areas

Download links can be found at Pouet here

bugcatcherdusk asked:

RayCaster~

[[YEEEEEEEEEEEEEEEEEEEEEE

  • makes the bed in the mornings

Ray actually! Cas can be a real lazy butt, so if Ray wants a neat bed, he has to do it himself. And he does, so he does it himself.

  • has sole posession of the T.V. remote

Cas. You are not separating her from marathons of Transformers and constant rewatching of Pacific Rim.

  • stays up until 2am reading

It’s rare, but that offender would be Cas reading fanfictions. Her squeaking when things happen tends to wake poor Ray up—

  • is the bigger cuddler

Either or. It’s kind of an on/off thing for the most part.

  • does the laundry

Ray. Cas will put it off and off and off, so Ray is the one who just gets fed up and does it.

  • mows the lawn

Despite the fact that she could get a Rotom Mow, Cas gets Ray to mow the lawn. She just likes to watch him take off his shirt halfway through.

  • is better at budgeting

Ray. Cas is a splurger. She likes to throw her money around on whims sometimes, leaving Ray the smarter spender because his spending habits are not controlled by whim.

  • instigates the sex (and who’s into the kinkier stuff)

Prooobably Ray instigates it more often than Cas, but Cas is the one who has the weirdest kinks.

all my RayCaster feels tho hhhh (saysthemoronwhohasyettointroduceray)

 

youtube

Version one of my raycasting engine. Based on the same technique as early games like Wolfenstein 3D and Doom. Built using JavaScript and HTML Canvas. Next step will be to add textures and get it running a bit faster. Possibly also shift it from the 2D canvas context into WebGL to help with speed.

well that was easy enough.

i just had to raycast upwards when in wall climb state and if said ray hits something then you just fall off.

this way you can’t get stuck under a ledge or ceiling while climbing walls.

Not sure if this is the best place to post but I thought I’d give it a shot (I’ve also posted on Unity Answers).So basically I’m making a stealth game and I’m wondering if there’s anyway to use some sort of mask to allow me to see through some tagged walls so I can still see the character. E.g. A mockup I made in Photoshop.So like an image overlay which has a soft-edged circle in the middle which is where the mask is applied, so you can see through to where the character is but obviously it only affects tagged objects like the walls and not the floor.Any ideas how I’d go about doing this?Edit: I know there’s a way to make objects which come between the character and the camera transparent (using raycasting) but it looks rather rough when it’s turning whole objects transparent. via /r/Unity3D

Blog week 3

In week 3 we learnt about local and world space, character controller, camera controllers and the start of Raycasts. This week I aimed to try add extra weapons to my 3D project, but didnt manage to get around to it. I planned for the next week that I would have my player shooting and moving around a map.

NeanderDevLog Entry#1

Hello people, My name is Neander Giljam the main programmer and project manager for project Sonus.
The past two weeks I have worked on improving the prototype and mainly adding shooting functionality and the basic enemy and its AI.
The shooting part, takes advantage of raycasting. When the trigger is pulled the shootfunction starts
a coroutine that waits before the next shot is being fired. This wait time is calculated by dividing 60 seconds by the fire rate, this way
we get the time between shots. When the raycast is fired the system checks if it has hit a enemy, this is done by checking if the thing that is hit is derived from the base enemy class en thus is a enemy or not. If it is a hit the system calls the DecreaseHealth function on the
enemy so that it loses life. When the enemy life drops below zero it gets killed. The same system also handles the enemy shooting at the player.
Before the enemy can get a good shot I had to implement a basic pathfinding algorithm to make it not bump into walls or remain standing still. For now I chose the A* algorithm, this because the implementation is well documented and it is fast enough for multiple units. 

After implementing the algorithm I made the enemy follow the path so that it will find the player, when in close enough range it wil start to shoot at the player. To make the shooting more visible we added particles to the hit point and also to the muzzle of the gun. 

The next two weeks I am going to focus on the audio system again and probably are going to make some changes in my framework to make its pause functionality work better, because it has been buggy lately.

Really happy with the way this is panning out so far.  I’ve done a few things to be proud of:

* Momentum on the angular rotation
* Angular positioning accurate to 8.8 precision (the display is only 8.0 precision but you really feel the extra precision in the input)
* 8 times more accurate perspective correction
* Much more optimised raster renderer - see below
* An optimised Raycaster
* Jerry-rigged fish-eye correction
* Er… you can’t walk through walls any more
* 14-16 frames per second!

Just a quick note - it’s *really* hard to play these demos while holding a mobile phone as a video camera.  Sorry for being so crap at multitasking…

The raster renderer!  I was trying so hard to get this to speed up, and didn’t seem to be having much luck.  In fact it seemed to slow down.  WTAF?  Felt I was going mad.  Then when checking some simple loop counter I realised I’d tweaked it to render each frame *twice* before displaying… Dummy.

Now it’s so smooth!  I’ve got checks in there that avoid printing strips (vertical bits of wall) if the wall is the same colour (as the last displayed frame in that position), and the same size or smaller.  I just repaint the top and bottom of the current graphic with the sky and ground.  The actual printing itself is quite nice too, I unrolled the print routine to just LD (HL),A; INC H; then jump into the routine where needed.  At the bottom of the strip, I swap to odd lines and repeat the trick.  So the main bulk of the routine prints walls at 5.5ts per pixel, which is just rad.

I’ve said it before but it bears repeating: with complex, full-screen updates, it just doesn’t seem to matter about hitting the 50fps speed.  I think if the community had aimed for a more realistic option people wouldn’t have given up on producing software for it… just my arrogant opinion though…

Some other bits I’m not so pleased with yet.  I’ve been experimenting with a better raycaster, and got a really good system going.  It implements a Bresenham line drawer over the map to check where the rays hit, and each loop is only around 40ts… It’s hard to get an accurate measurement because each angle hits the Move Sideways and Move Forward parts a different amount of times…  But still very fast for my money.  However it’s not yet at the point where it can tell me *where* within each cell the ray has hit, which is critical to me reducing the resolution of the map and introducing texture mapping again.

The main problem with my approach was the naive way I cast the rays.  These guys are pretty disdainful of my obvious mistake :D  Instead of aiming to keep the rays the same distance apart, I just worked out 256 equidistant angles in a full turn.  This means no amount of smart fish-eye correction will stop the edges of the screen looking plain distorted.  However the alternative seems to be using arc tan functions to get a more accurate angle for each ray, and that’s difficult to store for all the angles I can point the camera in.  So I’m seeing if I can just expand my stored angles by a factor of, what? 8?, and approximate it.

It’s a shame, because I had a *doozie* of an optimisation idea in the old system.  Imagine if you haven’t moved, you just move the camera… Think of all those rays that were already cast, I could just reuse them, cast the remaining few new ones, and bob’s yer uncle.  Alas, it’s just not practical.  I’m not sure I’d want a raycasting engine that’s so optimised that it’s twice as fast to render when turning round than walking.

Other fun stuff that’s swimming around in the ideas pool right now is gameplay features.  One thing I’m getting out of the way immediately here is to decouple the input from the rendering cycle.  Even though it takes 3 frames to update the screen, the input will read at 50fps so it feels really responsive.  I don’t know why I’m thinking about this stuff as it’s going in the demo and won’t be playable… unless… nah, that would be crazy…  Right?  (What have I got myself into?)

So this is my second time posting for help, I can’t seem to get my script to access my Text from my canvas. This is my code I have for it, I’ve followed tutorials and I just can’t get it to edit the UI while the game is running.the script has no problem accessing the string I’m using, which is accessed through the get component whatIsDis string from another script.I keep getting a nullreferenceexception errorText text; //GameObject temp; void Start(){ text = gameObject.GetComponent(); } void Update () { if (text == null) { text = gameObject.AddComponent(); } //Debug.Log(text.text); text.text = “”; RaycastHit raycastHit; if(Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out raycastHit, 5f)) { if (raycastHit.collider.gameObject.GetComponent().whatIsDis != “\0”) { text.text = raycastHit.collider.gameObject.GetComponent().whatIsDis; } else{ text.text = “”; } } else{ text.text = “”; } } via /r/Unity3D

Scaling the fish down to 0.2 and duplicating it. Adding a script to the fish. The problem I had was that the fish would start merging into one when it moves in game mode. So I changed the speed on each fish, so it will reach the point of mouse click at a different time.

Script: Move on mouse click.

// Click To Move script

// Moves the object towards the mouse position on left mouse click

var smooth:int; // Determines how quickly object moves towards position

var speed : float =5;

private var targetPosition:Vector3;

function Update () {

if(Input.GetKeyDown(KeyCode.Mouse0))

{

var playerPlane = new Plane(Vector3.up, transform.position);

var ray = Camera.main.ScreenPointToRay (Input.mousePosition);

var hitdist = 0.0;

if (playerPlane.Raycast (ray, hitdist)) {

var targetPoint = ray.GetPoint(hitdist);

targetPosition = ray.GetPoint(hitdist);

var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);

transform.rotation = targetRotation;

}

}

transform.position = Vector3.MoveTowards(transform.position, targetPosition, Time.deltaTime * speed);

}

Авторские спрайты для конструктора RGM

9-го марта был создан сайт, где можно добавлять авторские спрайты для конструктора Raycasting Game Maker. Нам нужна поддержка в развитии сайта. Добавляйте сюда анимированые спрайты врагов и оружия,спрайты различных объектов и конечно же собственные текстуры! Главное,чтобы они были сделаны самим! Чтобы добавить спрайт на сайт, надо войти через Ucoz или через соц.сеть. Дерзайте! http://rgm-sprites.ucoz.net

I have read that unity has yet to support 2d particle system collisions. So i have a theory, To make my beam work, i could simply make a method to act like the beam behind the scenes, casting a ray as the beam is created increasing the size of the ray as it continues growth, and then continuously casting every so and so tick as long as the ray is active and has reached its desired length.(curious if there are variables in the particle system that allow me to relate its distance from its origin so i can better calculate my raycast.)example imageI have yet to try this theory however im about to go to bed and would love to know if someone has tried this before and if it has yet to work. I will try to make it happen in the morning and let you guys know how it went. Thank you for your time have a blessed evening. via /r/Unity3D

Авторские спрайты для конструктора RGM

9-го марта был создан сайт, где можно добавлять авторские спрайты для конструктора Raycasting Game Maker. Нам нужна поддержка в развитии сайта. Добавляйте сюда анимированые спрайты врагов и оружия,спрайты различных объектов и конечно же собственные текстуры! Главное,чтобы они были сделаны самим! Чтобы добавить спрайт на сайт, надо войти через Ucoz или через соц.сеть. Дерзайте! http://rgm-sprites.ucoz.net