Jump to content
IGNORED

Final Assault - new game by GMG


globe

Recommended Posts

1 hour ago, danwinslow said:

Just me, but I don't think you should worry about the 64k limit.

That's the plan.

38 minutes ago, Heaven/TQA said:

what "unrolled code" are you using? for tmapping the slices? because the tables itself should be not so ram consuming imho.

If by tmapping the slices you mean scaling and drawing then yes, also lightning pass uses unrolled code (didn't manage to do scaling+drawing and lighting in one pass, not enough registers)

Then there's raycaster itself, while it's not really unrolled code, for speed and simplicity reasons there's code for each quadrant + a lookup table.

 

But the main culprit as far as the RAM consumption goes isn't really the raycasting engine, it's the game itself:

 

Map (both the game map with walls+textures+doors etc.. and the automap which eats about 2,5KB of vram and buffers + some extra for code to generate and show it)

Textures + the code for generating the animated ones on the fly because there's just no space for storing animations in RAM.

Enemy graphics, horizontally pre-scaled so I don't have to waste too much cycles there.

Enemy/item data for new game + the same empty table for the ongoing game.

Enemy behavior code (including line of sight checking which is probably bigger than all relatively simple movement routines together)

Sound effects.

Text messages.

GAME OVER + YOU WON parts

Lots of tables of various sizes for everything else.

 

Most of these you won't need for an engine demo so I can understand you wondering where did all the RAM go but with all that's needed for a game it ads up really fast.

 

6 minutes ago, emkay said:

You must be some "rensoupp" guy to handle this all , and to finalize a game by all this hammering here in the forums. 

Well, I don't really mind the questions and things people notice.

I did take shortcuts and I did sacrifice graphic fidelity and precision for speed and other features.

I can understand that some would prefer to balance things differently but this is the result and, well, there's plenty of people here commenting that could pull off making their own version so maybe this game will motivate someone to do better and we all get more games to play on our favorite hardware.

Also I don't consider this 'hammering', so far the discussion was very civil.

 

  • Like 5
  • Thanks 1
Link to comment
Share on other sites

13 minutes ago, ilmenit said:

Just add Emkay to Ignore List and life will be easier ;-) As usually he doesn't understand the issue and has no idea why in case of additionally moving sideways the angle will change and why it should also without moving but only rotating.

So, his vision is as bad as his ears?  It all makes sense now.

  • Haha 3
Link to comment
Share on other sites

8 minutes ago, globe said:

I did take shortcuts and I did sacrifice graphic fidelity and precision for speed and other features.

I can understand that some would prefer to balance things differently but this is the result and, well, there's plenty of people here commenting that could pull off making their own version so maybe this game will motivate someone to do better and we all get more games to play on our favorite hardware.

I think you did a wonderful job balancing it. Aiming for 64KB machine puts a lot of limitations on the whole development team. Proper 3D projection would require fisheye correction and it requires tables to do it fast (either large ones for fast multiplication or precalculated heights of walls for screen columns) - all eating precious memory. Adding it some other aspects of the game would suffer.

  • Like 1
Link to comment
Share on other sites

29 minutes ago, globe said:

That's the plan.

If by tmapping the slices you mean scaling and drawing then yes, also lightning pass uses unrolled code (didn't manage to do scaling+drawing and lighting in one pass, not enough registers)

Then there's raycaster itself, while it's not really unrolled code, for speed and simplicity reasons there's code for each quadrant + a lookup table.

 

But the main culprit as far as the RAM consumption goes isn't really the raycasting engine, it's the game itself:

 

Map (both the game map with walls+textures+doors etc.. and the automap which eats about 2,5KB of vram and buffers + some extra for code to generate and show it)

Textures + the code for generating the animated ones on the fly because there's just no space for storing animations in RAM.

Enemy graphics, horizontally pre-scaled so I don't have to waste too much cycles there.

Enemy/item data for new game + the same empty table for the ongoing game.

Enemy behavior code (including line of sight checking which is probably bigger than all relatively simple movement routines together)

Sound effects.

Text messages.

GAME OVER + YOU WON parts

Lots of tables of various sizes for everything else.

 

Most of these you won't need for an engine demo so I can understand you wondering where did all the RAM go but with all that's needed for a game it ads up really fast.

 

Well, I don't really mind the questions and things people notice.

I did take shortcuts and I did sacrifice graphic fidelity and precision for speed and other features.

I can understand that some would prefer to balance things differently but this is the result and, well, there's plenty of people here commenting that could pull off making their own version so maybe this game will motivate someone to do better and we all get more games to play on our favorite hardware.

Also I don't consider this 'hammering', so far the discussion was very civil.

 

Yeah. I was just wondering about the 4-5kb tables... but of course RAM is needed for all those "bits and pieces" to make a game.

Link to comment
Share on other sites

17 minutes ago, ilmenit said:

I think you did a wonderful job balancing it. Aiming for 64KB machine puts a lot of limitations on the whole development team. Proper 3D projection would require fisheye correction and it requires tables to do it fast (either large ones for fast multiplication or precalculated heights of walls for screen columns) - all eating precious memory. Adding it some other aspects of the game would suffer.

lucky me could use 128kb RAM of the SNES ;-)  and the 816 for some 16bit ADCs and the hardware MUL for the raymarching (yeeeah I know wrong term....)

Edited by Heaven/TQA
Link to comment
Share on other sites

1 hour ago, emkay said:

EVERYTHING IS FINE IN THE GAME .

I wrote it in big letters, so you might read it better.

It's funny when Globe, the guy who programmed the game, admits the effect, yet you claim to know it isn't there.....

What a brilliant work this is. Although there have been demo's with similar 3D, here is the first real working game. Didn't have time to try it yet but can't wait. 

I'm absolutely not a programmer but I assume the game takes advantage of Atari's GTIA graphics mode ?

Edited by Level42
  • Like 1
Link to comment
Share on other sites

@globe

1 minute ago, Level42 said:

It's funny when Globe, the guy who programmed the game, admits the effect, yet you claim to know it isn't there.....

It's not visualbe caused by the low resolution. 

You only could ask globe to make the rotation faster, so it will appear what you're missing. 

Link to comment
Share on other sites

5 minutes ago, Heaven/TQA said:

aehm. no... rotating = 2d scrolling.

not to offrail the thread... RoF uses no rotating in X axis... Charly is using "scrolling only" by moving up/down.

You're sure, you know things? Sometimes I ask myself how you manage to do those demos. Seems you always used code from others and patched it for your projects. 

Rescue on fratalus is using mode D and plays at around 6 fps. So the jumps in the frames were obvious. 

You guys cannot handle that this game lives by the framerate, not by static pictures. Still the old weirdness... 

Link to comment
Share on other sites

22 minutes ago, emkay said:

You're sure, you know things? Sometimes I ask myself how you manage to do those demos. Seems you always used code from others and patched it for your projects. 

Rescue on fratalus is using mode D and plays at around 6 fps. So the jumps in the frames were obvious. 

You guys cannot handle that this game lives by the framerate, not by static pictures. Still the old weirdness... 

yes. I know the shit most of the time. ;) and again you don't get the point... rotating in Y axis is visually not working as you would expect in the game. and same on RoF. but Charly personally told me that he cheated a lot back those days. and RoF uses just small viewport and low Antic D resolution so you dont see the "wrong maths". 

and just for the records me is the last one critizing his approach. his game his time his decision. but me just wondering why. nothing more. and that's why I am asking from coder to coder.

PS: and pointing me to patching others code is like you taking RMTs of others "patching"? Isn't it? ;)

Edited by Heaven/TQA
  • Like 1
Link to comment
Share on other sites

8 minutes ago, Heaven/TQA said:

yes. I know the shit.

But you have no clue about games. 

Watch my videos. Everything is fine.  The closer things move, the more the angle of the walls will change when you were just turning. 

The only thing I miss is the mouse control for turning ;)

Edited by emkay
Link to comment
Share on other sites

9 minutes ago, emkay said:

But you have no clue about games. 

Watch my videos. Everything is fine.  The closer things move, the more the angle of the walls will change when you were just turning. 

The only thing I miss is the mouse control for turning ;)

haha... yeah. I have no clue about games. yes. true. since 80s I have no clue. yup. me just credited at mobygames but yeah.

Link to comment
Share on other sites

14 minutes ago, emkay said:

Wow, so you created a 3D game with full playability and it looks like on a 386 PC for the stock Atari? 

just my last 2 cents... me was just wondering why the rotating and perspective calculations doesn't meet the expected result. nothing more. I don't played down the afford or the end result. you put me into a corner where I don't belong. and me did working in games biz for years telling me I have no clue about games is like haha... sorry. 

Edited by Heaven/TQA
  • Like 3
Link to comment
Share on other sites

2 minutes ago, Heaven/TQA said:

just my last 2 cents... me was just wondering why the rotating and perspective calculations doesn't meet the expected result. nothing more. I don't played down the afford or the end result. you put me into a corner where I don't belong. and me working in games biz for years telling me I have no clue about games is like haha... sorry. 

People can do fast programs on fast machines. No doubt. 

Link to comment
Share on other sites

Awesome project, great speed, 99% perfect :)

 

I would just share this screenshot from video of player strafing made by Emkay:

This is the problem imho. Fisheye not corrected. Wall should be horizontal across the screen width.

Not curved to left and right like red lines show. @globe think you can fix this easily with some math. Even if it's real time multiplication it shouldn't matter much. Drop in fps would probably be torrelable.

 

Thanks for all your effort !

 

image.thumb.png.fc15def5bbd3a51fceb022b18b258805.png

  • Like 1
Link to comment
Share on other sites

1 minute ago, popmilo said:

Awesome project, great speed, 99% perfect :)

 

I would just share this screenshot from video of player strafing made by Emkay:

This is the problem imho. Fisheye not corrected.

The Fish eye COULD be mentioned. But tell me what you see if you are directly in front of a wall. The more it gets away to the sides, the more the ground or ceiling can be seen. Without that, people might mention that it is just some horizontal scolling ... ?

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...