tr1p1ea wrote:
I was also wondering what it would look like with the colour gradient reversed so that it's darker the further away a wall is?

Looking at it again, I do agree with this-generally, how depth is indicated is that things that are further away are darker, while closer things are lighter. Changing the hues would be a worthy improvement, in my opinion.
It might also work better if it's not from black->colour too, maybe a smaller gradient step? Something to play around with.
Wow I came back to a ton of posts Laughing

Quote:
You seem to have the so-called "fisheye" effect, which can be fixed by measuring the distance from the line perpendicular to the camera angle instead of from the camera to the point, which is probably what you're doing currently. Here is a source that I found that you should be able to use to fix the problem.

Yes I was actually trying to fix that yesterday, thanks for the idea to raycast off of a line instead of the camera. Iíll probably include that as an option to turn on and off because why not Razz

Quote:
I would change the camera indicator in the minimap back to red, as the yellow is nearly impossible to see. It looks like you changed that pretty recently.

I completely agree with you. I originally changed it because I was depending on the minimap way too much but I didnít want to totally get rid of it. I might also have an option to only do the outsides. Yet another menu option to do Razz

Quote:
I've not yet dabbled in ray casting so I can't offer much in the way of constructive feedback or advice, but I'm enjoying what you've come up with! Are you still planning to eventually use this engine to make a complete game? And if so, any hints on what kind of game it will be?

You really should look at iPhoenixís Ti-basic raycast making something with trig math actually helped me understand the math Iím in school for wayyy more oh no the teachers have won what have I done Iím definitely going to make a game out of this, what I was thinking would be cool is to have buttons around a maze that you have to activate to get out... idk there are many possibilities Very Happy

Quote:
I was also wondering what it would look like with the colour gradient reversed so that it's darker the further away a wall is?

Iíve tried this and it is... ehhhh... but Iíll probably try it again without the fisheye and do a screenshot. also remember Iím going to be doing an in-game shading editor (super easy just a list of colors) so you can make your own weird themed maps Razz

Quote:
It might also work better if it's not from black->colour too, maybe a smaller gradient step? Something to play around with.
this is a bit hard because ICEís color pallet has almost no gray and the only colors that there is a consistent step in is green and blue. again, there will be a shading editor with a few pre-made lists


Edit: Iím probably not going to be able to do anything today because I have hella homework (the year is almost over yay) I think that my teachers believe that giving more homework will make us do more.
Therad2 wrote:
this is a bit hard because ICEís color pallet has almost no gray and the only colors that there is a consistent step in is green and blue. again, there will be a shading editor with a few pre-made lists

You can change the colors.
Hmmm, I wonder how z axis layering was done, As I had tons of issues with layering in PLR engine.
Since I have gotten a lot of experience from my first try doing a ray-cast and now know what I did wrong and what to change I will be re-writing my program. One of the main improvements is that I will be doing more thought out things (like a camera plane to get rid of the fisheye) that I wouldnít have thought to do. Iíll also be doing a list (as a matrix because ICE doesnít have matrixes) as the map so I can do calculations, texturing an more things better than what I can do now with a 10x10 sprite multiplied by 5 Razz also it will be way faster with just accessing a list instead of getting the pixel color. And my code is very messy right now with lots of repeats (just overall bad) this probably wonít take me as long as the first time.

I decided to do this after reading this. I would definitely recommend you do that too even if you arenít going to be making a raycast Smile

Also after I finish (or get tired of making it) Iím going to be making it on a pc so I donít have to do as much optimization and textures/other stuff Very Happy
So Iím trying to do a list as the map that will be 20x20 (might make bigger later)

Problem 1: I input a matrix into the program by doing 2nd, rcl, matrix then got rid of all of the brackets so itís one list. When I try to compile it, it says ďyou have an invalid ď)Ē,Ē,Ē,(ď,Ē)Ē,Ē}Ē or ď]ĒĒ. When I go into the program and delete one number (and ď,Ē) at the end, everything works. Itís a tiny list that is only 400 bytes while an ICE list can go to 2000 bytes. The list is only made up of 1s and 0s

Problem 2: when I keep the last number deleted and run the compiled program, it doesnít display what the matrix is. Here is the code that I did:


Code:
iAA3DCOMP        //defines name
det(0                  //starts graphics
CopyData(L₁,1,1,1,1,1,1,1,1,1,0,0...     // defines the list. The number after L₁ s how many bytes per piece of data (1 byte so there is only 400/2000 bytes in this list)
det(2,0                         //sets color of pixel to black
For(Y,0,19
For(X,0,19
If *{L₁+(X+20Y)}           //this is what I think is wrong but Iíve tried everything (checks if there is a 1 at x,y but itís not a matrix
det(6,X,Y                      //makes a black pixel at x,y
End
End
End
Pause              //lets me see the printed thing before ending the program
det(1               //ends program


Edit: I think problem 2 is working now but problem 1 has gotten bigger Sad when I run the compiled program, it switches what is printed: 3 random pixels, 3 horizontal lines, or some weird squiggly. my list is supposed to be a box. Iím doing the same thing as I have always done with lists (and they have always worked) so Iím not sure. If this isnít fixed by when I get home Iíll send a screenshot of whatís happening because itís a bit weird.

Edit 2: I tried doing a 10X10 list instead of 20X20 and for some reason the program was bigger by around 100 bytes???? And it worked perfectly. Iím so confused.

Edit 3: highest I can get my list to is a 15X15 which is still 225/2000 bytes. Now that I think of it, 225 bytes is just under 2000 bits. Does the documentation on lists mean to say the maximum a list can go up to is 2000 bits?
Iím going to be stopping the creation of the calculator 3D engine and continuing a version I have been working on in python very soon. Iím just not able to do everything I want to in ICE (maps, speed, floats) and I find Iím developing super slow, while if I use python on my pc, it is super easy and there are more resources. Iím still trying to figure out how to fix the fisheye in my python version and when I fix that, Iíll do a final update to the calculator version, along with a few other things. Even though this forum isnít really for python Iíll keep this updated with my progress Smile

Iím not going to be making the calculator version into a game (mostly because I can only make small maps) but I will with python. Would I want put the calc engine in the archives/downloads even though itís not a game?

Also if anyone is confused at how it works just pm me or add a post here if this is still new when you ask Very Happy crazy helpful tutorial.
I think you should definitely put the engine in the archives, so that others could possible use it/learn from it as well. Also, you could try making an engine in Python for a calculator (Not sure whether it would work, but I believe NuuM is something like this). Anyway, I think you've done an awesome job on the project and I'm glad to hear it's continuing, even if it won't be for a calculator. Keep up the awesome work!
Since school started again, I've been adding onto the calculator version because I have a lot of free time, I figured out that instead of doing a gradient that changes with the distance, it looks a lot better if the shade changes slightly if the wall is left-right or up-down. there is now 63 rays so that it has a 90į FOV (255į in ice = 360į). The big reason I kind of got burnt-out was because of me trying to correct the fish-eye and I'm still not fully able to get rid of it but I did reduce it a bit and I think I'm going to leave it like that (small corrections like that in ice is really hard to do without floats/negative numbers without changing lots and yeeting my fps out the window). I have optimized it enough that I can do FPS instead of FPMS so thats pretty cool. I added a gun sprite that shoots (don't worry I will change it later), a bullet counter, there were hearts but I'm changing that to a health bar for performance, and I added strafing which makes it feel like an entirely new game when you use it. I am also adding a scaling/moving/animated enemy sprite rendering system. I switched it from rendering when you moved to always so monsters will be able to move when you don't and smoothed FPS. Here is a screenshot (Its a lot easier to control on a physical calc then with a mouse btw):



As you can see, the fps dips down to 11 every now and then but quickly goes up to 12/13 so thats pretty cool Very Happy

Link to the compiled program (just ask for the pre-compiled if you want to look around)

Controls:
press "graph" then "enter" to get out of the program
left-right arrow keys to turn
up-down arrow keys to move forward-back
mode-del to strafe
2nd to shoot
Therad2 wrote:
Since school started again, I've been adding onto the calculator version because I have a lot of free time, I figured out that instead of doing a gradient that changes with the distance, it looks a lot better if the shade changes slightly if the wall is left-right or up-down. there is now 63 rays so that it has a 90į FOV (255į in ice = 360į). The big reason I kind of got burnt-out was because of me trying to correct the fish-eye and I'm still not fully able to get rid of it but I did reduce it a bit and I think I'm going to leave it like that (small corrections like that in ice is really hard to do without floats/negative numbers without changing lots and yeeting my fps out the window). I have optimized it enough that I can do FPS instead of FPMS so thats pretty cool. I added a gun sprite that shoots (don't worry I will change it later), a bullet counter, there were hearts but I'm changing that to a health bar for performance, and I added strafing which makes it feel like an entirely new game when you use it. I am also adding a scaling/moving/animated enemy sprite rendering system. I switched it from rendering when you moved to always so monsters will be able to move when you don't and smoothed FPS. Here is a screenshot (Its a lot easier to control on a physical calc then with a mouse btw):



As you can see, the fps dips down to 11 every now and then but quickly goes up to 12/13 so thats pretty cool Very Happy

Link to the compiled program (just ask for the pre-compiled if you want to look around)

Controls:
press "graph" then "enter" to get out of the program
left-right arrow keys to turn
up-down arrow keys to move forward-back
mode-del to strafe
2nd to shoot


Looking great! It's cool to see you're working on this again. Cool
Can someone help me with the function to find the amount of elements in a list? It seems like it would be very easy to find but I looked through the GitHub, command list, and the forum a bit, but couldn't find anything talking about it.
You could store the length in a variable.
If I wanted to add a .jpg photo from the google (I am terrible at pixel art please help me) into my ICE game how would I do that? I remember reading a post about how to do it in the past but it wasn't for ice and I can't find it anymore. Any help would be amazing!
Well, you have a couple of options. (This is from when I did stuff in ICE)
1) use convimg to convert it, then copy the hex into your ICE program
2) Zoom in a lot, then use the ICE Sprite Creator to replicate it.
I got a crapload of homework and test announcements so I have done almost nothing besides adding reloading time and a health bar, I also scrapped my attempt on enemy sprite rendering because it was messy and I have no idea how to approach having more than one at once much less layering. I could maybe store the ray # (for x), distance (scale and y), and enemy/thing ID (for what to show) so then I would sort the list by distance and print the farthest away enemy first, than progress to the front. If anyone has some advice on how to do this more efficiently/easily that would be cool. I will probably start on that tomorrow after I do the (placeholder) reloading animation.
Here is a reminder to read the docs even when you think you know: I just spent the last 2 days with 3 byte lists but I wasn't multiplying the location by 3. So it was just coming up with random numbers and causing me much pain Sad Anyway, the enemy rendering is pretty much working now besides the sorting, which will be annoying. There will be able to be up to 99 different enemy/item IDs and pretty much infinite until the memory dies amount of things rendered. Wish me luck Good Idea
I haven't done any updates for a while now but I have been working on both a map editor and a re-write so it will use a list as a matrix instead of testing a pixel's color and a few more optimizations. Because of this, there will be a lot bigger stages (I plan on having them 48x48 so about 5 times as big and I can change it at any time). I also found out that the way I was doing rays was super inefficient and probably contributed to the fisheye distortion so I am going to fix that hopefully. I'm not sure how enemies will work yet but I think I will store them in a different list. I'm probably going to need some help with appvars to store the maps but I'm going to experiment for now (:
I am going to pause this project again until I am able to develop and test on a laptop or something like that. Also if I do resume this, I will most likely be writing it in C or assembly for the extra performance and other things.
Just a side note: you can use TIPlanet's project builder for c programming. It's quite nice, along with ticalc.link. At least for programming on a chromebook, that is.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 3 of 4
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement