Community
Message Board

Chat room - users
Game Over
( 394431 downloads)
Work In Progress
( 523201 downloads)
Links

Code Exchange
Downloads
Tutorials
Add to Favourites

Submit news

DIV ARENA FORUMS
Not logged in [Login - Register]
Go To Bottom

Printable Version  
 Pages:  1    3
Author: Subject: Rip Off Revectored
MikeDX
DIV Nerd
*********


Avatar


Posts: 8388607
Registered: 25-2-2016
Member Is Offline


[*] posted on 31-5-2019 at 09:06 AM


This is so so cool.

I wish the web version was a bit more optimised though :(
View user's profile View All Posts By User
dom cook
Div Pro
******




Posts: 372
Registered: 4-3-2016
Member Is Offline


[*] posted on 31-5-2019 at 03:58 PM


Quote: Originally posted by MikeDX  


I wish the web version was a bit more optimised though :(


Can anything be done to improve that?
View user's profile View All Posts By User
dom cook
Div Pro
******




Posts: 372
Registered: 4-3-2016
Member Is Offline


[*] posted on 31-5-2019 at 05:05 PM


OK it's not completely simplified. I have an orbitting camera to show off.

title rotate.gif - 45kB
View user's profile View All Posts By User
MikeDX
DIV Nerd
*********


Avatar


Posts: 8388607
Registered: 25-2-2016
Member Is Offline


[*] posted on 1-6-2019 at 09:28 PM


Quote: Originally posted by dom cook  

Can anything be done to improve that?


well, the resolution causes problems as div was never really meant to run at such high res. it draws ever pixel every frame, so we would have to employ such practices as dirty rectangles.

the switch to sdl2 properly would fix it, as each graph would become a gpu poly.

just a lot of work, and not something I'm overly familiar with.

640x480 was always about my limit!
View user's profile View All Posts By User
dom cook
Div Pro
******




Posts: 372
Registered: 4-3-2016
Member Is Offline


[*] posted on 2-6-2019 at 05:25 AM


Not familiar with dirty rectangles. GPU polies sound cool though.


The black chunk on the right (width 400 pixels) is only there for debugging purposes so the intended final resolution is more like 1000x800 or to be more conventional maybe 1024x768 which DIV did support. So maybe getting rid of that will help a bit. I'll upload a truncated version.

Just noticed that holding down F1 boosts the fps. Why might that be?




[Edited on 2-6-2019 by dom cook]

[Edited on 2-6-2019 by dom cook]
View user's profile View All Posts By User
CicTec
DIV Pro
******




Posts: 433
Registered: 6-8-2016
Member Is Offline


[*] posted on 2-6-2019 at 11:37 AM


Quote: Originally posted by dom cook  
Not familiar with dirty rectangles.

dirty rectangles is simply a rendering technique to improve the performance of the FPS in which, instead of constantly updating the screen entirely, the program keeping track (or not keeping track depending on the technique) of the graphs and their positions, updates only portions of the screen (or does not update).
This technique is embedded in DIV in the variables you know as dump_type and restore_type.

the first deals with a partial restoration (partial_dump) of the graphs (so it only updates the zones where in the next frame there will be a visual change from the previous one), while the second takes care of the bottom of the screen.

To understand how it works, you have to imagine the screen resolution as a sheet of paper, the bigger the sheet, the more things you can draw on it (like the resolution).
Now imagine having a small sheet, at the top left draw a triangle, at the top right a circle, at the bottom center a rectangle.
Now imagine having to replace the triangle at the top (so an update of the drawing, like a following frame) with a traprezio, what do you do? Well, just take the gum, delete the triangle (so the portion of the sheet where it is drawn) and draw the trapezoid in its place ...
The rendering doesn't work like that, in complete_dump, it takes the whole sheet, deletes everything, draws the new trapezoid and redraws the circle and the rectangle.
At this point you think, but lose more time in this way, and you are right, in fact, using partial_dump, do what you would do with the sheet, take only the area of ​​the triangle, delete it and draw the new trapezoid, saving time (gain of FPS).
The problem with this technique, which has been abandoned over the years, is the one that works well when there are few areas to update (or few objects) but bad when the areas become too many, because it has to keep all the areas in order and delete them at one by one (and the iterative cycles are expensive) or worse still have to calculate any areas close to each other to merge a larger one (to have less areas to iterate), all calculations that eventually make it slower in terms of FPS than to erase the entire screen directly.

Quote: Originally posted by dom cook  

GPU polies sound cool though.


The black chunk on the right (width 400 pixels) is only there for debugging purposes so the intended final resolution is more like 1000x800 or to be more conventional maybe 1024x768 which DIV did support. So maybe getting rid of that will help a bit. I'll upload a truncated version.

Just noticed that holding down F1 boosts the fps. Why might that be?




[Edited on 2-6-2019 by dom cook]

[Edited on 2-6-2019 by dom cook]

DIV is a game engine developed in the late 90s, where the predominant operating system was still MS-DOS and where the main PC models were 386 and 486 (pentium distribution was just starting), so it was designed , first for low-resolution games (given the limited power of the machines at that time), then the use of graphic acceleration did not exist in MS-DOS, all the rendering was done by the CPU so the games that developed were mainly VGA (320x200) someone up to SVGA (640x480), already a 800x600 resolution was a luxury, whether the graphics card and monitor supported this resolution, or whether the CPU could efficiently support all this computational load.

Today developing a graphics engine for the GPU has become the standard solution, the problem is that it works completely differently from developing a software engine like DIV, for example the technique of dirty rectancles is no longer used today, as explained, needs to trace information and iterate through them, modern rendering happens with the GPU through little information that is passed to them and the writing of small programs called shaders, which are written in a special language to be executed by the GPU, these programs have a support for conditional statements (such as IF) and iterations (like FOR) that are very low or absent, so it is not possible to implement such techniques in a GPU rendering, in addition to the performance defect indicated above.

In any case we always return to the starting problem, the GPU works by its nature in floating point and other features and the current DIV core does not support any of this.
View user's profile View All Posts By User
dom cook
Div Pro
******




Posts: 372
Registered: 4-3-2016
Member Is Offline


[*] posted on 2-6-2019 at 01:33 PM


So, what's the plan? Is anything happening about this?
As far as I can gather DIV development is esentially comatose and the prospects of a recovery don't seem too bright.
I'm not holding out much hope for DIV's future. But, hey, it still does what it does and is fun to play with and as long as it can do what I want it to do, I'm basically happy.


View user's profile View All Posts By User
CicTec
DIV Pro
******




Posts: 433
Registered: 6-8-2016
Member Is Offline


[*] posted on 2-6-2019 at 01:48 PM


Quote: Originally posted by dom cook  
So, what's the plan? Is anything happening about this?
As far as I can gather DIV development is esentially comatose and the prospects of a recovery don't seem too bright.
I'm not holding out much hope for DIV's future.

As I have indicated several times, everything starts from the necessary complete rewriting of the core, once this contains what the 21st century requires for the development of a game engine, you can think of being able to add what you want, but what a development plan have in mind Mike for the project seems to be unclear.

Quote: Originally posted by dom cook  

But, hey, it still does what it does and is fun to play with and as long as it can do what I want it to do, I'm basically happy.

This is already important.
View user's profile View All Posts By User
dom cook
Div Pro
******




Posts: 372
Registered: 4-3-2016
Member Is Offline


[*] posted on 3-6-2019 at 08:10 PM


I've made a few additions and improvements so I figured it was time for another update/ backup.

My favourite new feature is the vortices that open up when the thieving 619905 break into the arena.

vortex.gif - 35kB

Attachment: ripoff604.PRG (71kB)
This file has been downloaded 149 times

I'm actually starting to enjoy this project now.

I'm not sure if these files have been updated but just in case, here they are.

Attachment: FONT0.FPG (20kB)
This file has been downloaded 151 times

Attachment: RO.FPG (252kB)
This file has been downloaded 134 times
View user's profile View All Posts By User
dom cook
Div Pro
******




Posts: 372
Registered: 4-3-2016
Member Is Offline


[*] posted on 4-6-2019 at 05:58 AM
Particle explosions



The particle setup I used for the vortices is easy to modify so I'm modifying it it for the explosions.

SNAP0013.gif - 28kB SNAP0015.gif - 51kB

Of course, these are much cooler IRL.

Each player gets his own personal (colour-coded) explosion style.
SNAP0000.gif - 44kB



[Edited on 4-6-2019 by dom cook]
View user's profile View All Posts By User
dom cook
Div Pro
******




Posts: 372
Registered: 4-3-2016
Member Is Offline


[*] posted on 7-6-2019 at 09:13 AM
Upon Reflection


In my opinion, for the first generation of video/arcade games to succesfully attract players some sort of plot was esential, These plots were, by necessity, simple. Think about Space Invaders or Asteroids and just compare what happens on screen with what the images are supposed to represent to understand how much of a part the imagination plays in making games playable.

Anyway, the plot of Rip-Off is as good an example of this as any. Space pirates stealing invaluable energy crystals or whatever. But, without some elaboration, the gameplay and the plot don't gel properly and that can cause some cognative dissonance which then leads to the spell being broken and the game not working. For example, How come you can respawn an infinite number of times? How can the pirates leave and enter the game area while the player's tanks will warp/wrap around to the opposite side? We could just remove the wraparound feature and imagine that the action is occuring in some sort of clearing or yard, but the warping is a big factor in terms of game play and removing it negatively affects the playability. besides, it can be a fun exercise to try to address such inconsistencies and originate a plot (however silly) that makes sense of them.

So, in this case, I imagine this conflict taking place in a subspace bubble, created as a hideout/stronghold for the storage of the valuable crystals. The pirates have found a way to break into this bubble, hence their ability to enter and leave the screen. The players, however, are locked in. They experience the screen as a nano-universe of sorts which they wrap around akin to being on a tiny planet.

Having adopted this notion, the next step is to represent it visually in the game. For this exercise I'm attempting this by adding some effects for when the objects interact with the boundary. As mentioned earlier I have a vortex, which is a classic way of representing a portal. This is for the pirates entering and exiting. The players, however, need something else, something which shows the containing effect the walls have on them while still allowing them to warp to the other side. For this I'm using reflctions. As they player's tank approaches the wall its reflection appears and increases in brightness as it gets closer. upon contact a strange telportoisis occurs.

reflections.gif - 97kB

Attachment: ripoff607.PRG (88kB)
This file has been downloaded 145 times

If you download this and want to try the wraporound feature you need to turn it on. Keys 1 and 2 turn it on and off, I'm not sure which is which.

[Edited on 7-6-2019 by dom cook]
View user's profile View All Posts By User
dom cook
Div Pro
******




Posts: 372
Registered: 4-3-2016
Member Is Offline


[*] posted on 10-6-2019 at 01:06 PM


As is usually the case when impulsively adding "cool" ideas, this reflection effect has turned out to be a little more work than expected. Confining the reflected image to the mirror required a bit of vector magic, including the line intersection code I thankfully (because I don't remember how to write it)
posted here a few years back.

In these images the reflections are confined by the upper edge of the mirror.

mirror's edge.gif - 52kB
View user's profile View All Posts By User
dom cook
Div Pro
******




Posts: 372
Registered: 4-3-2016
Member Is Offline


[*] posted on 16-6-2019 at 12:39 PM


Finished reflections and added a few effects here and there.
So far so good.

Attachment: ripoff616d.PRG (93kB)
This file has been downloaded 135 times

SNAP0005.gif - 140kB

[Edited on 16-6-2019 by dom cook]
View user's profile View All Posts By User
dom cook
Div Pro
******




Posts: 372
Registered: 4-3-2016
Member Is Offline


[*] posted on 27-6-2019 at 03:14 PM


Been working on the menu. This wrapping always takes way more code than it seems to be worth but a game is incomplete without it.

Most the work has gone into the demonstration which animates certain major aspects of the game.

Attachment: ripoff627c.PRG (127kB)
This file has been downloaded 123 times

..and have a good summer.
View user's profile View All Posts By User
 Pages:  1    3

  Go To Top

Powered by XMB
XMB Forum Software © 2001-2012 The XMB Group
[Queries: 18]