Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => Topic started by: Delnar_Ersike on January 16, 2007, 03:41:00 pm

Title: New type of calc fps
Post by: Delnar_Ersike on January 16, 2007, 03:41:00 pm
Well, recently I've played a lot of calc First Person Shooters, among them Gemini and zDoom. After playing the two (Gemini was good, zDoom was not-so-good), I wondered if people could take fps games to the next level.

So...I wanted to know if my ideas would work. They are the following:

1) The combination of textured walls that do not connect at 90 degrees or 180 degrees (Gemini had textured walls, zDoom had walls connecting in all sorts of different angles)

2) The ability to make different sized walls

3) The ability to place walls in the game wherever you want

4) (This one's a biggie) The possibility of replacing the normally horizontal floor and ceiling with walls, so you could walk up ramps, jump onto platforms, have free look, etc. That also means that there are different "floors" and "ceilings" placed at different locations

5) The possibility to replace enemies made of sprites with enemies with 3D-Modeling (this is going to be very hard if possible)


So would any work? If so, will they be worth it?
Title: New type of calc fps
Post by: elfprince13 on January 16, 2007, 03:57:00 pm
learn Asm and read up on Binary Space Partitions, and mesh collision detection ;)wink.gif

or just fake the 3d models.
Title: New type of calc fps
Post by: Delnar_Ersike on January 16, 2007, 05:16:00 pm
QUOTE
or just fake the 3d models.


O_Oshocked2.gif why would anybody want to do that (other than the people who are too lazy or too conservative in the case of programming)?
Title: New type of calc fps
Post by: necro on January 16, 2007, 05:19:00 pm
actualy, ben reves has a project that could do a number of those things and was true 3d (gemeni is a raycaster that is actualy 2d with texture angling, as is zdoom).  The problem with real 3d is it requires a LOT of memory to sotre x, y, and z for each vertices meaning models for enemies is likely going to be very limmited if it ever happens.  While Im not sure it can't be doen as I only recently began programming even a little assembly, raycasters can achive most of the effects of 3d with much less memory cost and much higher speed and ultimately are the most accesible and proven method of 3d on calc.  On the 89s, there it might be more likely.

edit: sorry ben, I mixxed you and kerm...
Title: New type of calc fps
Post by: Delnar_Ersike on January 16, 2007, 05:23:00 pm
QuoteBegin-necro+16 Jan, 2007, 23:19-->
QUOTE (necro @ 16 Jan, 2007, 23:19)
actualy, kerm martian has a project that could do a number of those things and was true 3d (gemeni is a raycaster that is actualy 2d with texture angling, as is zdoom).  The problem with real 3d is it requires a LOT of memory to sotre x, y, and z for each vertices meaning models for enemies is likely going to be very limmited if it ever happens.  While Im not sure it can't be doen as I only recently began programming even a little assembly, raycasters can achive most of the effects of 3d with much less memory cost and much higher speed and ultimately are the most accesible and proven method of 3d on calc.  On the 89s, there it might be more likely.  

 I suspected that from the beginning. Therefore, I wasn't thinking of a normal ASM program, I was thinking of a Flash APP for a TI-83/84+ Silver Edition ONLY.

However, I just cam up with the enemy idea to go along with the rest. What really excites me is the 4th idea combined with the 1st, 2nd, and 3rd ideas.
Title: New type of calc fps
Post by: Ranman on January 16, 2007, 05:33:00 pm
All of your ideas can be achieved. :)smile.gif However, the game would be too slow to be any fun. :(sad.gif

Here is a great tutorial for raycasting engines -- it includes variable height walls, climbing, ceilings and floors, etc:


http://www.permadi.com/tutorial/raycast/
Title: New type of calc fps
Post by: necro on January 16, 2007, 05:33:00 pm
umm...flash apps aren't actualy faster, they just can use more memory and are more dificult to program...and I am talking in regards to the ti83+se...its processor is only 20mhz and has a heavy limit on the number of calculations you could do.
Title: New type of calc fps
Post by: DJ Omnimaga on January 17, 2007, 02:55:00 am
QUOTE
zDoom had walls connecting in all sorts of different angles)
this is because the engine is still buggy and walls are distorted sometimes


that would be a good idea tho
Title: New type of calc fps
Post by: elfprince13 on January 17, 2007, 06:06:00 am
you'd fake 3d to get it faster, thats how most of these engines work, and because it gets flattened out in the display process anyway.
Title: New type of calc fps
Post by: Liazon on January 17, 2007, 10:08:00 am
ya, basically what everyone else said.  the reason why most calc fps are raycasted is because raycasted is pretty watered down compared to what a comp does real time for PC games.

my only complaint about gemini was that for some reason, I couldn't see enemies unless they were facing me, which kinda frustrated me.  and zDoom, people always seemed to be moving through walls and the guys were huge.  both were still really fun though :)smile.gif

benryves on MC was working on a 3D engine for the z80 calcs.  duno where that's going though.

before i forget though, I should respond to each point individually to give a little explanation why raycasting limits your ability to achieve those ends

1.) In raycasting, all walls HAVE TO BE FLAT.  so textures are more or less generated by "texture maps" probably not the right word, but i hope you get the idea.  In gemini's engine, i wouldn't be surprised if coelerus simply generated his 3d world from a 2d tilemap that simply indicated what kinda "brick" to use.  the characteristic of the brick was probably what kind of sprite would be used to paint the wall.

in zDoom, I'm not sure how many angles there really are, but it also is probably generated by tilemap.  I'm not sure if doing both would be overtaxing on the processor, but one reason is probably that angled walls require the "texture" to be transformed by perspective, in addition to simply scaling the wall sprite to give the illusion of the wall textures becoming clearer.  When you look at a wall at an angle, the farther end of the wall is squished, so all the textures have to be squished.

2.)  Not sure what you mean, but if you mean by height of the wall, I'm not sure,  I imagine that it could be possible w/ raycasting, but it wouldn't be as watered down.  iirc, raycasting at its fullest also assumes that all objects have the same height.  That way you can render an entire column of pixels at once because you don't have to worry if the top half of the screen will be empty and you need to cast the ray further than where the pixels on the bottom half "hit the wall"

3.) probably linked to 1 + 2, but keep in mind it's easiest to generate from a tilemap.

4.)  Like I said before, raycasting assumes that everything's flat and 90 degrees from the floor so that all rays in one column will travel the same distance and can be processed at the same time.  I assume this also makes it difficult to tilt the view up and down, although a translational up and down motion (like in zDoom's death sequence) is just a matter of readjusting the camera height.

5.) eh, I agree w/ elfprince there, but my complaint about gemini still stands, though my ASM skills don't give me the right to say to much about it.  if only the enemies were also blocks, so you would have textures on 4 sides of it.  I kept missing them for some reason.

OVERALL
Don't think I'll discourage you because my ASM skills are still at a recently-not-n00b state, and my skill probably won't progress for awhile until I start churning out my first game.

however, based on what I've seen and forum discussion i've read, it all depends on how you build your engines and what limitations and assumptions you set.

3D modeling like on the comp might actually be feasible on a z80 calc, but I wouldn't know.

Voxel (is that the right one) on 68k has shown it's possible (right?).  it's probably a matter of time before something good appears.

maybe gs fps will come first though (unless there'a already one I'm not aware of?)
Title: New type of calc fps
Post by: Delnar_Ersike on January 17, 2007, 12:35:00 pm
@Liazon: About idea 2, I mean that they have a different width. The walls in Gemini all have the same size, as do the ones in zDoom. If you have different sized walls, you could connect them in a way to make an oval-ish shape. The ability to place walls anywhere means that if there is a big room, you can just screw around with the walls to make a maze-like thing in the room (I am so descriptive :Ptongue.gif ). About idea 5, that was just the problem I was thinking of when I suggested the idea, however, I can reword the idea to be more exact: Is there a way to make enemy sprites viewable from any point in the Line of Sight while at the same time not making them disappear when you come close to knife them?

*Delnar_Ersike is an idiot. *Delnar_Ersike always wanted to learn ASM, but can't get past Day 1 in the "Learn ASM in 28 Days" guide because *Delnar_Ersike always gets distracted... :banghead:banghead.gif
Title: New type of calc fps
Post by: Liazon on January 17, 2007, 01:12:00 pm
just ask for help.  I at least can point you in the right direction :)smile.gif  And there are lots of other really good ASM programmers here too.
Title: New type of calc fps
Post by: Halifax on January 17, 2007, 01:17:00 pm
Hmm yea your definetly going to have to fake 3D models or make meshes like only 100 vertices at most. Even if that is up and worknig the rotating around axes is going to slow down the program very much. And hmm for programmnig languages

z80 BASIC : Highly not recomended
z80 ASM: Keep with raycasting
68K BASIC: Not recomended
68K ASM: Seems possible

I have researched this many times and it usually turns up disappointing.

But great ideas I love how you think

NOTE: If using meshes the hit detection shouldn't be hard as long as you don't use soft detection because thats basically impossible so I would just go with hard mesh detection

[offtopic]Hey what about raytracing a frame and a time and just making a game of a bunch of pre rendered images where the person could move to were a pre rendered pic could show up[/offtopic]
Title: New type of calc fps
Post by: Liazon on January 17, 2007, 01:21:00 pm
i think that's how Zeromus was going to make his basic fps (+xlib?)

same goes for the lurking shades project too i think
Title: New type of calc fps
Post by: graywolf on January 17, 2007, 01:22:00 pm
68k, I'm sure it possible using FATLib and ASM. As for 83, I'm not sure. And someone mentioned FlashAPPS: doesn't TI need to sign them or something before you can release them?
Title: New type of calc fps
Post by: necro on January 17, 2007, 01:25:00 pm
Variable heigh walls in raycasting IS possible, either by having a texture with a mask and having transparent areas or by actualy changing the scaling, and angled florrs/walls should also theoreticaly be possible but Ive never seen it done in a game, probably because itd be problematic in terms of memory/math. just like making widths variable.

And just know that asm in 28 days is terrible for getting to understand the basics...
Title: New type of calc fps
Post by: Liazon on January 17, 2007, 01:45:00 pm
QuoteBegin-graywolf+17 Jan, 2007, 19:22-->
QUOTE (graywolf @ 17 Jan, 2007, 19:22)
68k, I'm sure it possible using FATLib and ASM. As for 83, I'm not sure. And someone mentioned FlashAPPS: doesn't TI need to sign them or something before you can release them?  

 not anymore :)smile.gif

ti released it's appsigner so now people can sign apps themselves.  Jim e made a linker/signer called wabbitsign.

@necro: different guides work for different people. also, Delnar_Ersike, are you having set up problems?  That problem deterred me for about a year.
Title: New type of calc fps
Post by: Delnar_Ersike on January 17, 2007, 02:04:00 pm
*Delnar_Ersike
Title: New type of calc fps
Post by: Liazon on January 17, 2007, 02:07:00 pm
which calc model? PTI only does 82, 83, and 83+BE (no SEs or 84+)

did you use ROM8x 0.2? iirc, 0.1, the original didn't really work.  duno how VTI's rom dumper works either

Drag and drop the rom into PTI window.
Title: New type of calc fps
Post by: Speler on January 17, 2007, 02:34:00 pm
Hmm... speaking of 3D: http://cemetech.net/forum/viewtopic.php?t=2262&highlight=
Title: New type of calc fps
Post by: DJ Omnimaga on January 17, 2007, 03:09:00 pm
this link lead to a blank page...
Title: New type of calc fps
Post by: Speler on January 17, 2007, 03:23:00 pm
Really?  When I click it takes me exactly where I want it too...
Title: New type of calc fps
Post by: DJ Omnimaga on January 17, 2007, 03:25:00 pm
well its not the first time it happens to me with cemetech x.x

cemetech is prone to not working fine in Opera browser tho
Title: New type of calc fps
Post by: Delnar_Ersike on January 17, 2007, 03:55:00 pm
QuoteBegin-Liazon+17 Jan, 2007, 20:07-->
QUOTE (Liazon @ 17 Jan, 2007, 20:07)
which calc model? PTI only does 82, 83, and 83+BE (no SEs or 84+)

did you use ROM8x 0.2? iirc, 0.1, the original didn't really work.  duno how VTI's rom dumper works either

Drag and drop the rom into PTI window.  

 shoot, just my luck: I have an 83+ Silver  :grr:mad.gif

I'll have to try TILem or VTI then, although I don't want to use either. VTI has some bugs, as far as I know, and TILem was made for Linux and then ported to Windows. Plus, TILem has a very complicated installing instructions  -.-blah.gif .
Title: New type of calc fps
Post by: Jon on January 17, 2007, 07:25:00 pm
I read a tutorial on 3-d modeling that compared and contrasted raycasting with raytracing (i forgot where so don't ask me for a link :/confused.gif).  According to it, raycasting checks how a wall should look column-by-column, whereas raytracing does it pixel-by-pixel.  Raytracing takes WAY more processing power than raycasting, and even stresses modern computers.  Perhaps a hybrid of raytracing/raycasting could be in order?
Title: New type of calc fps
Post by: DJ Omnimaga on January 18, 2007, 02:05:00 am
mhmm i didnt noticed how it was about raytracing, imho you should use raycasting, it should run much faster. gemini ran at like 15 fps on a regular 83+.

A raycasting racing game would pwn
Title: New type of calc fps
Post by: Liazon on January 18, 2007, 06:20:00 am
VTI doesn't support SEs either iirc.  Even if it does, it's not that good.

I'd go with TilEm
Title: New type of calc fps
Post by: elfprince13 on January 18, 2007, 10:43:00 am
VTI 3.0 alpha supports 83+SEs, but sucks completely cause you cant send programs to it.

TilEM is not complicated at all, make sure you have the required version of GTK+ installed, name the ROM properly, and start.
Title: New type of calc fps
Post by: Jon on January 18, 2007, 04:51:00 pm
xlibman Said:
QUOTE
A raycasting racing game would pwn


That sounds awesome!   Definitely too daunting to be a solo project.  Is there anyone who knows asm who wants to start a 3d-racing engine project with raycasting?