Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DLL Talk / TGC 2D Pack Ideas

Author
Message
Richard Davey
Retired Moderator
22
Years of Service
User Offline
Joined: 30th Apr 2002
Location: On the Jupiter Probe
Posted: 28th Aug 2004 02:05
Hi all,

This thread coincides with the Issue 20 Newsletter article "2D Command Ideas Wanted". Please read that and then post your suggestions here. Note that I will be moderating this post myself, so senseless / random posts, or just plain craptalk will be deleted. Keep it on-topic please.

Cheers,

Rich

"I am not young enough to know everything."
- Oscar Wilde
Ian T
22
Years of Service
User Offline
Joined: 12th Sep 2002
Location: Around
Posted: 28th Aug 2004 02:26
Smooth scaling of images/sprites/bitmaps? That'd screw up perfect transparency, naturally, but it'd still be quite useful for other purposes.

How about... 2d lighting? Think Diablo II... create 2d light, change radius, color, hide or show; it'd only effect sprites, perhaps. Currently that kind of smooth lighting is, I think, only possible through serious memblock editing of images which is rather slow.

Get image size x/y.

MiR
21
Years of Service
User Offline
Joined: 13th Jul 2003
Location: Spain
Posted: 28th Aug 2004 02:27
What I would like to see is a quicker way of implementing a Street Fighter style scanline floor routine. Uwdesign coded a way of doing it in DBC but due to the slowness of the copy bitmap command in DBPro (I think that´s the reason anyway) it runs too slow when run in DBPro.
Here´s the code he made



A bargain at 900000€ second hand
Libera tu mente y te liberaras.
OSX Using Happy Dude
21
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 28th Aug 2004 02:28
2D version of the Intersect Object command - find out the distance between two sprites and what sprites are between two sets of coordinates.

Ability to rotate text (and make it fully 3D).


Come to the UK Convention on the 23rd & 24th of October
Richard Davey
Retired Moderator
22
Years of Service
User Offline
Joined: 30th Apr 2002
Location: On the Jupiter Probe
Posted: 28th Aug 2004 03:01
Here are my ideas

Map Support

A very good 2D map editor that builds a map landscape up, any dimensions X or Y, using any building blocks that do NOT all have to be the same shape! It then exports in a format you can load directly into DBPro.

Native Map commands will allow for the following:

* Map Loading, Modification and Saving (so people can build their own level editors)
* Map Scale on-screen. So you can define say 0,0 to 320,240 as being the map area visible on-screen.
* Map Drawing + super smooth Map Scrolling + perhaps Map Rotation commands.
* Dynamic Map entities (baddies, doors, lazers, etc)
* Maps support full parallax level depth with independant scrolling and fixtures. Player could even jump from one depth to another (ala Xenon 2)
* Map CLS - a quicker way to update the current map than CLSing the screen and redrawing.

Tiles

Mostly used with Maps - you would have Tile commands to support the following functions:

* Pixel perfect tile collision, so you can report back exactly where on the map you collided.
* Tile Replacement - swap out ALL tiles of the same time in one go.
* Tile Removal - remove any single tile or all tiles of a type.
* Tile Animation - fully animated tile-sets, both background scenery style and static baddies.

Sprite Changes

* Pixel perfect sprite collision (will be part of free DBPro Update, not something in this pack, but should be used in this pack extensively!)

* Define sprite animation sets (set 1 = walk, 2 = jump, etc)

* Having a custom Sprite format (.spr ?) this can be a single file that contains all animation data, collision settings (hot spots), etc.

* Sprites should have multiple hot-spots.. collision can either be detected on the sprite as a whole, or against its hot spots . Hotspots can have boxed diameters maybe.

* Sprite fades - you should be able to fade a sprite away to a defined colour (or a tile or a map for that matter). You should also be able to fade to transparent.

* Clone / Group sprites. Set a whole pack of sprites into a ground and then you can just move that group, while each sprite in it also follows its pre-defined movement too.

Sprite Movement

* Sprites could operate on "interrupt", i.e. define a sprites movement pattern, set it going and it runs without stopping and without needing to be called in your main loop.
* Some sprite effects would be useful like gravity, motion, etc all based within the "world / map" limitations.

Some misc. 2D commands I'd like....

* 2D starfield functions Just define an area, a number of stars, a depth and the direction to move in (both horizontal and also into the screen). Like the Stars extension for STOS. Creates nice back-drop effect quickly and easily.

* Water effect. Think the shimmering water at the bottom of the maps on Killing Gameshow. Reflects that above it. You define the box dimensions, colour, etc.

* Explode sprite. Define the size (in pixel by pixel sizes, i.e. 1x1 or 4x4) and it blows the sprite up using that. You set the speed, velocity, radius.

That's all for now

Cheers,

Rich

"I am not young enough to know everything."
- Oscar Wilde
the_winch
21
Years of Service
User Offline
Joined: 1st Feb 2003
Location: Oxford, UK
Posted: 28th Aug 2004 03:10 Edited at: 28th Aug 2004 03:18
Pixel perfect collision
Add string table entries for IMAGE WIDTH and IMAGE HEIGHT, the commands are in the image dll and allways work for me and are pretty usefull.
Direct image access, no messing about with memblocks.
Alpha aware rgb commands
SPRITE command that doesn't require the image number. The vast vast majoyrity of the time I use SPRITE the sprite image doesn't need to be chainged.
bind sprite position to variables. Then just changing the variables moves the sprite. Also for a movement variable, moves the sprite by the ammount of the variable.
Some sort of built in tile,map system.

shrink those dbpro exes
Create patches for your dbpro games
OSX Using Happy Dude
21
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 28th Aug 2004 03:15
Quote: "Sprites could operate on "interrupt", i.e. define a sprites movement pattern, set it going and it runs without stopping and without needing to be called in your main loop."

I've done that...

One other thing : Allow sprites not to be added to the collision table (for backgrounds).

Quote: "SPRITE command that doesn't require the image number."

I did have something similiar - I might resurrect it (or something similair anyway), if enough people want it.


Come to the UK Convention on the 23rd & 24th of October
blue
20
Years of Service
User Offline
Joined: 15th Aug 2004
Location: California
Posted: 28th Aug 2004 03:23
Quote: "* Pixel perfect sprite collision (will be part of free DBPro Update, not something in this pack, but should be used in this pack extensively!)"


YES! THANK YOU!
MiR
21
Years of Service
User Offline
Joined: 13th Jul 2003
Location: Spain
Posted: 28th Aug 2004 03:26
How about a command that makes an area of the screen wobble. Simular to when the helicopter crashed in the matrix or when Neo takes off in the matrix 2. But in 2d.


A bargain at 900000€ second hand
Libera tu mente y te liberaras.
Litox
21
Years of Service
User Offline
Joined: 13th Oct 2003
Location:
Posted: 28th Aug 2004 03:32
It's been mentioned, I just don't want it to get lost in the crowd. It would be great to have sprite motion commands, that you could simply put hundreds of sprites in motion without having to control them in a loop. With that, to have a parameter to make them bounce off the screen or wrap around the screen edges, set them off at different speeds, x/y angles, etc. Also to have commands for collisions on these auto-motion sprites. I remember the simplicity to make a fun game with sprites using this feature on the TI-99/4a although you were limited to 28 of them (and 4 sprites in a horizontal line).
DarkPhear
21
Years of Service
User Offline
Joined: 15th Oct 2003
Location: Brazil
Posted: 28th Aug 2004 03:35 Edited at: 28th Aug 2004 03:41
Well, since I'm mostly a 2D programmer, I'm pretty excited about this 2D pack thing. There are a few things that would be very useful for sprite based games...

1) TGC, you could create an easy and friendly way of SPRITE PALLETING. Sorry, but really I can't imagine an user friendly way of doing that. If you can create one, this will be very useful for a street fighter like game, for changing the player's color. Also, for my upcoming DarkPhear sequel where players will be able to customize the character's colors.

2) SPRITE VIEWPORTS : to easily create split screen games without having the sprites invading other player's screen. The easiest way of doing that would be SET SPRITE VIEWPORT spritenumber,X0,Y0,X1,Y1.

3) A few more ideas : 2D particles, sprite ghosting, glowing, motion blur, scaled distortion and wave effects would be terrific.

4) I don't know if that's possible (here comes a bomb), but 8-BIT images / ¿display? support.

I'm happy pixel perfect collision will be a part of a free DBPRO upgrade. Thank you TGC. SET SPRITE COLLISION OFF and SET BITMAP TO IMAGE (for drawing to images) commands would be great, but I also think it will be fair if they are implemented in DBPRO upgrade beside any expansion pack, because they're really necessary.

Hope you like my ideas.

Cleber de Mattos Casali, game programmer.
DarkPhear is a full freeware RPG developed by me. You can download it and some game demos for free at my page: http://darkphear.cjb.net
MiR
21
Years of Service
User Offline
Joined: 13th Jul 2003
Location: Spain
Posted: 28th Aug 2004 03:38
Quote: "motion blur"

Ohhh. I can just imagine a fighting game with that in. Drool...


A bargain at 900000€ second hand
Libera tu mente y te liberaras.
Kensupen
22
Years of Service
User Offline
Joined: 19th Sep 2002
Location: United States
Posted: 28th Aug 2004 03:38
Here's my 2cents.

Have some built-in screen wipes for going into a battle scene or changing levels.

Like wipe, swirl, shatter, pixelate, etc.

-Kensupen

Nerdsoft Creations - Lead Programmer
System Specs: AMD XP 1700+, WinXP Home, 1GB PC133 ram and Radeon 9500 using DX9
AramusM
20
Years of Service
User Offline
Joined: 6th Dec 2003
Location:
Posted: 28th Aug 2004 03:52 Edited at: 28th Aug 2004 03:56
An extreemly fast copy rect that is alpha/colorkey/bitmask aware.

Fast enough 2d commands that things like star field and sprite explosion can be programmed ourselves in dbp rather than have it done for us,

be able to use the 2d commands for some post processing of 3d scenes.
tomazmb
22
Years of Service
User Offline
Joined: 26th Aug 2002
Location: Slovenia
Posted: 28th Aug 2004 04:19
Hello,

Load game, Save game ....

Saving and loading all variables, levels, characters and their position,... all done by a system itself not to worry by a programmer.

Have a nice day,

Tomaz

Why some people take programming so seriously ?
eat much pie
20
Years of Service
User Offline
Joined: 9th Apr 2004
Location: Within the mind of a lowly mortal...
Posted: 28th Aug 2004 05:03
Ability to write the 3D screen directly to an image (or sprite).


[href]Checkpoint Router[/href]: My AI Routing Program
Sam Wright
Scraggle
Moderator
21
Years of Service
User Offline
Joined: 10th Jul 2003
Location: Yorkshire
Posted: 28th Aug 2004 05:18
If it could be done then I would really like to see:
Tweening of animation frames.

It would really help out the artistically challenged amongst us.

pizzaman
20
Years of Service
User Offline
Joined: 18th Feb 2004
Location: Gateshead, UK
Posted: 28th Aug 2004 05:34 Edited at: 28th Aug 2004 05:35
hi

1) The ability to select the drawing order of all 2D operations, eg if the drawing order of text was set to last, the text would be drawn over all other 2D such as sprites, images etc. eg2 if the drawing order of text was set to second last and images to last, text would be drawn over sprites but under images; and images would be drawn over everything.

2) 2D cameras, they would only be able to move in the x/y plane but you can have multiple cameras, which can draw to different parts of the screen.

3) Special effects on sprites, such as sine-wave effects in all directions, distortions, blur trails in any direction you want, rainbow shading (not using shaders if possible), shadows (which can have the shadow set to any direction and the size of it adjusted), cel shading (without using shaders preferably).

4) Some of the special effects above but can be applied to images such as raibow shading, cel shading, maybe new ones like wind effects in art packages and other art package effects, these would allow you to modify your images before thier used (therefore special effects for the sprite animations wouldn't be so processor intensive)

5) More load/save image formats.

6) Get Image width, Image Height, Image Depth commands.

7) Image scale, Image fade commands.

8) Some sort of lighting would be great, in which you could specify the direction, type of light (omnidirectional, cone shaped etc), colour of light, intensity, and the ability to generate real time shadows.

Thats all I can think of at the minute , but if I think of more I'll let you know

pizzaman
Mentor
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: United Kingdom
Posted: 28th Aug 2004 05:46
my few ideas

blitting with or/xor etc

lightmaps

pixel perfect sprites

text rotation

flood fill (plain or with an image as the "color")
accurate filled circles (better trig lookup table?)

all shapes able to be filled/outline

a vector draw thing like they had in Dragon Basic
works like
box$="u5l5d5r5"
draw box$,a,b
basicaly like a simplified LOGO, you give it the commands and it draws vectorshapes, the ,a,b at the end is the scale and rotation of the vector image

veiwports .... like you say
viewport portnumber,100,100,200,200
then the command
set draw to viewport portnumber
anything you try to draw outside the port gets clipped or just not drawn

scroll viewport commands

zoom viewport commands

rotate viewport?

text texture (fills text with image instead of just white/colour)

change image colour rgb,rgb
gets all rgb in a image and swaps it to the new rgb

swell sprite (scales up and rounds it, like it was being blown up with air)

byte masking of two images

transition effect
eg
transition image1,image2,speed

oldstyle characterset system screenmode (subset of the tiled images idea?)
including
def char "a","11111111","10000001",....etc

better print commands
print at
print formating
eg print using 00.00
prints
999.94765
as
99.95
print wraps over at end of the screen to next line rather than just running off
semicolon to classic basic standards, same for comma
eg semicolon appends to next print, comma inserts a tab

maybe think of some more later.

Mentor.

PC1: P4 3ghz, 1gig mem, 2x160gig hd`s, Radeon 9800pro w cooler (3rd gfx card), 6 way speakers.
PC2: AMD 2ghz, 512mb ram, FX5200 ultra, 16 bit SB.
Mini ATX cases suck.
1tg46
20
Years of Service
User Offline
Joined: 1st Feb 2004
Location: I dont know!
Posted: 28th Aug 2004 05:57
Able to move sprite in a given direction without using a combination of sprite angle and move sprite commands.

Back from a long vacation too New Orleans

1tg46 is my name coding is my game.
David T
Retired Moderator
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: England
Posted: 28th Aug 2004 06:12
Quote: "Load game, Save game ....

Saving and loading all variables, levels, characters and their position,... all done by a system itself not to worry by a programmer."


That's all down to the programmer - how would DBPro know what to save? What not to save?

Too ambiguous and lazy IMO

Get 15 new commands, all the date / time commands left out of DBPro for free!
DOWNLOAD PLUGINS HERE: http://www.davidtattersall.me.uk/ and select "DarkBasic"
Argon Knight
22
Years of Service
User Offline
Joined: 29th Aug 2002
Location: Gastonia, NC, USA
Posted: 28th Aug 2004 07:01
A single command to let us check to see if a sprite is visible on the screen:

ex: IsSpriteOnScreen(x)

where x is the sprite number. Function returns a boolean.
zircher
21
Years of Service
User Offline
Joined: 27th Dec 2002
Location: Oklahoma
Posted: 28th Aug 2004 07:02
This might just be a lazy programmer taking, but what about isometric movement/collision commands. Basically allowing a sprite to exist in a 3D world and be smart enough to know when it is colliding vs merely overlapping.

Alternately, a true orthogonal camera might be a nice touch when mixing 2D and 3D.
--
TAZ

"Do you think it is wise to provoke him?" "It's what I do." -- Stargate SG-1
Angel Lazerus
20
Years of Service
User Offline
Joined: 8th Feb 2004
Location:
Posted: 28th Aug 2004 07:12
Id like tracking/collision commands so I can track proper position and check proper collision of my character/enemy/etc against my data array.

Also a command/function set that will put together a set of frames and continuously animate them in the background so we dont have to keep doing timer checks to make calls to functions/subroutines which makes the animation choppy or miss frames.

Ghosting/transparency effects for our images/sprites so we can do light shining through windows or fire effects or our mario ghosts without having to muck about with all that 3D rubish.
(This is the major one Id want in the pack!)

Id like to be able to use a shade map, like a hieght map except it governs how light or dark areas of the map are.

Mode 7 from the SNES that was put in DIV game studio would be an excelent feature.

And Im not sure weather this one would be 2D, 3D or both but a nice set of commands to help select 3D objects with the mouse cursor.

But if there are other ways of doing these things in DBP code perhaps a 2D code book would be even better for us to download/send off for because I wouldnt want it all handed to me on a plate.
Mentor
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: United Kingdom
Posted: 28th Aug 2004 07:15 Edited at: 28th Aug 2004 07:17
@ArgonKnight: you mean something like

function IsSpriteOnScreen(x)
if (sprite x(x)<0 or sprite x(x)>screen width()) and (sprite y(x)<0 or sprite y(x)>screen height())
out_of_bounds=1
endif
endfunction out_of_bounds

???
hardly seems worth the trouble.

Mentor.

PC1: P4 3ghz, 1gig mem, 2x160gig hd`s, Radeon 9800pro w cooler (3rd gfx card), 6 way speakers.
PC2: AMD 2ghz, 512mb ram, FX5200 ultra, 16 bit SB.
Mini ATX cases suck.
3ddd
20
Years of Service
User Offline
Joined: 14th Apr 2004
Location: Orlando, FL
Posted: 28th Aug 2004 08:09
First off, I am very excited that TGC is going to improve the 2D end. I honestly thought 2D was all but abandoned! Very, very awesome!!!

I would like to suggest that the method for deleting sprites be improved:

I cannot for the life of me find the thread now but some knowledgable people (I think The Coding Area was one of them) said that the "delete sprite" command actually just hides them (i.e., behaved just like the hide sprite command). I think someone at TGC provided that information. They said, as a result, I may run into problems because of the way my game engine worked. The game engine created sprites which were deleted after a few seconds -it might do this several hundered times in a game session.

I would link to the thread but I just can't find it!


He's evil, but, he'll die. I like it.
Mr Underhill
21
Years of Service
User Offline
Joined: 23rd Apr 2003
Location: The Forgotten Worlds...
Posted: 28th Aug 2004 09:47
Set Image to Object (img,obj,[x,y,bgcolor,lightflag]):
Allows you to render a 3d object to an image. This is useful for rendering 3d objects into sprites and displaying them over 2d backdrops.

Img defines the image being rendered to, and obj is the object being rendered.

X and y define the X and Y sizes for the image. Anything less than 1 for either value will make the image size match the render size.

Bgcolor is the color used to fill in the gaps in the render image. The default is RGB(0,0,0).

If lightflag is set to one (default), the rendered image will use existing lights to determine lighting. If lightflag is 0, the render will use a default lighting setup.

Set Bitmap to Image (bitmap,image,scaleflag)

Sets a bitmap to automatically update itself to an image. If the image already exists, the original data is overwritten, but if scaleflag is set to one, the image will remain the same size as the original; otherwise, the image size is the same as the bitmap's.

I've got more where these came from, but just a basic speedup of 2d commands would be good enough for me.

"You don't need a reason to help people."-Zidane (FFIX)
Jade Phoenix Software is on the way! Get ready for the rebirth of gaming!
Rknight
21
Years of Service
User Offline
Joined: 25th Sep 2003
Location: NJ
Posted: 28th Aug 2004 09:56
This is one great idea that I'm glad to hear about in the works. As to added features..

Quote: " How about a 2D Map / Tile Editor and associated commands? (map / tile collision, sprite gravity / functions such as jumping), full-screen scrolling, starfields, sprite scaling with collision that scaled too, etc"


Yes, yes, yes, and all of the above posts too.

The lighting idea is interesting.
AciDucK
21
Years of Service
User Offline
Joined: 13th Aug 2003
Location:
Posted: 28th Aug 2004 10:28
A command to turn an image or the screen black and white would be nice. There is a way of doing it right now, but it requires changing all the pixels one by one and takes too long to be used in real time.
Emperor Baal
20
Years of Service
User Offline
Joined: 1st Dec 2003
Location: The Netherlands - Oudenbosch
Posted: 28th Aug 2004 11:00
Guys, some of your ideas are nice, but impossible or would be so slow it would be useless to use real-time.
You can also do it yourself by drawing effects as new images, and making a animated sprite. Would be much faster.

The only thing I would like is fast collision and pixel-perfect collision (maybe a flag?)

CPU
21
Years of Service
User Offline
Joined: 4th Jul 2003
Location: Carlsbad, CA
Posted: 28th Aug 2004 13:07 Edited at: 28th Aug 2004 13:09
If i could boil it down to one thing it would be implementation of direct 2d drawing operations, especialy for like menu seceans which have like a matrix style backdrop with tones of text which is currently a major slowdown, and also such 2d effects that i've written functions for but because of the slow speed of doing lots of simple drawing opperations is simply not feasible such as large star fields made with dot(x,y) and a lightning effect i created that uses line(xa,ya,xb,yb) command but also slows down they program considerably. Well that's my 2 cents.

CPU

[add] PLEASE reinstate image width/height, it's very helpfull besides the fact that it's annoying and slow to make a function that creates a sprite with an image gets the width/height of the sprite stores it, deletes the sprite and then returns the value as the width/height of the image. It's sad what i have to resort to...

Sparring - Loved by many, Pefected by few.

I'm going to live forever, or DIE IN THE ATTEMPT!!!"
Dot Merix
21
Years of Service
User Offline
Joined: 15th Oct 2003
Location: Canada
Posted: 28th Aug 2004 13:47 Edited at: 28th Aug 2004 13:48
I personally would like to see a command come into play that lets you know if the the left side, right side, top side, or bottom side of the sprite is being collided with.

Cant wait for that pixel perfect collision.. it'll be a great help with a 2d shooter game i'm making.. just wont work right until i have it!

- Merix

Athlon xp 2400+, 1.0GB Ram, Radeon 9800PRO 128mb
Zero Blitzt
20
Years of Service
User Offline
Joined: 18th Jan 2004
Location: Different Stages
Posted: 28th Aug 2004 14:15
Not sure if it was mentioned, but here I go.

I'm very lazy, how about a POINT SPRITE (sprite number) command, so Sprite A could point at sprite B. Or POINT SPRITE 3D (3d object number) to point a 2D sprite at a 3D object's X and Y values on the screen.


Come to #coding. We promise we wont kick you!
DISCLAIMER: Promises may not actually be upheld.
someone namedlink
20
Years of Service
User Offline
Joined: 3rd Aug 2004
Location: Dream Planet
Posted: 28th Aug 2004 17:27
What about this:

write int(x,y,variable)

this would put a variable on the screen and update automaticly (this is good for putting the life points on screen or the players score!

move text

this would be very helpfull, so you can move the text and you don't have to use cls and paste image anymore!

DIV/DBP-coder
someone namedlink
20
Years of Service
User Offline
Joined: 3rd Aug 2004
Location: Dream Planet
Posted: 28th Aug 2004 17:42
and what about these:

use of process (so they "live on their own" t'ill kiled) so you can make something that does what is in the process and does only that without thinking about updating it!

collision(type of process)

get angle()
get dist()
get distx()
get disty()

to get the distance and angel between 2 sprites

some path finding functions

map put
map xput

to put an image inside an other image on the specifeid place!

define region
out region

working with regions in very handy! so when a sprite goes out of its region, it will not be shown anymore!

DIV/DBP-coder
Jess T
Retired Moderator
21
Years of Service
User Offline
Joined: 20th Sep 2003
Location: Over There... Kablam!
Posted: 28th Aug 2004 20:23
Mentor;
Quote: "print wraps over at end of the screen to next line rather than just running off"


Try this, I use it my apps:


That returns the last y position that text was pasted at on the screen, just as if you'd specified 0, or 10 etc.

Jess.


Team EOD :: Programmer/Logical Engineer/All-Round Nice Guy
David T
Retired Moderator
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: England
Posted: 28th Aug 2004 20:38 Edited at: 28th Aug 2004 20:39
Quote: "write int(x,y,variable)

this would put a variable on the screen and update automaticly (this is good for putting the life points on screen or the players score!"


text x,y,string$

every loop

Quote: "get dist()
get distx()
get disty()"


My TPC does this:

get distance(x#,y#,z#,x1#,y1#,z1#)

and for sprite distance



Distance X is abs(sprite x(s) = sprite x(s2))
Distance Y is same as above.

http://davidt.dbspot.com/DBPDIST.dll
http://davidt.dbspot.com/DBPDIST.ini

Get 15 new commands, all the date / time commands left out of DBPro for free!
DOWNLOAD PLUGINS HERE: http://www.davidtattersall.me.uk/ and select "DarkBasic"
Nem
20
Years of Service
User Offline
Joined: 11th Feb 2004
Location:
Posted: 28th Aug 2004 20:54
- Antialiasing
- More image load/save capability (more formats supported, possibility to load/save bigger images)
- More drawings commands (fill,arc,the possibility to draw filled circles,...)

I would like to stress the antialiasing issue.
Not antialiased graphics appears draft and unprofessional. I think it is very important to have antialiasing features in 2D: this would give the definitive touch of "professionality" to the 2D software developed with DBP.

Ciao and thanks you for this "2D Enhancement Pack" idea!
Nembo

Nembo
DrakeX
22
Years of Service
User Offline
Joined: 26th Aug 2002
Location:
Posted: 28th Aug 2004 23:16 Edited at: 28th Aug 2004 23:17
wow. ask people for features and they ask for things that are specific to their project and for things that might take 4 lines of code to write.

- cameras. since it's all 3d, this is a very useful (and easy to implement) feature. it's stupid to have to move the entire level around the player when you could just move the player through the level and have the camera follow. additionally this makes it possible to zoom in/out with the FOV, shake the camera for rumbling effects etc.

- layers. this makes it blindingly easy to have, say, parallaxed scrolling backgrounds in addition to the level layer and the player/enemy layer. in addition collision could be disabled on certain layers to speed things up.

- pixel-perfect collision is nice, but without anything to tell us what to do with the collision, it's kind of pointless. a vector collision system with collision circles / boxes and polygons, with sliding built in, would kick some serious ass and it would even give you a leg up on blitz. then again, if this doesn't make it, you can always use NGC for 2d collision

OK enough of that damn DBP fanboy banner. i'm NOT a DBP fanboy in any way. i haven't used DBP in over a year, and i don't really plan on using it again.
David T
Retired Moderator
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: England
Posted: 29th Aug 2004 00:03
Quote: "wow. ask people for features and they ask for things that are specific to their project and for things that might take 4 lines of code to write. "


Yes.. I have been shooting these down

Get 15 new commands, all the date / time commands left out of DBPro for free!
DOWNLOAD PLUGINS HERE: http://www.davidtattersall.me.uk/ and select "DarkBasic"
1tg46
20
Years of Service
User Offline
Joined: 1st Feb 2004
Location: I dont know!
Posted: 29th Aug 2004 00:04
@ArgonKnight
Their is a command like that that was in the latest release of DarkBasicPro. The command is return value=sprite visible(sprite number) or something like that. Try searching through the updated help files that came with DarkBasicPro. Is that basically what you wanted?

Back from a long vacation too New Orleans

1tg46 is my name coding is my game.
pizzaman
20
Years of Service
User Offline
Joined: 18th Feb 2004
Location: Gateshead, UK
Posted: 29th Aug 2004 00:07
Just remembered some more....

9) Text bending functions, eg in some art packages you can bend text around circles, or bend them on sine waves.

10) Some sort of gradient fill for each letter of text specifying the direction, this would allow rainbow text effects.

11) Similar to 10), a gradient fill for a string of text (blends from letter to letter).

12) Verticle text, instead of text being displayed horizontally its displayed verticly.

Also to the people who are saying many of the effects can be accomplished in other ways, your absolutely right, however it can be so slow to manipulate memblock data to get the effect you want on an image, its unfeasible to use it.
Also even if some of the suggested ideas are impossible/too slow to implement, it gets the TGC team thinking of other ideas they could implement into this pack, so I would say all ideas are welcome.

pizzaman
ThomasFN
20
Years of Service
User Offline
Joined: 26th Aug 2004
Location:
Posted: 29th Aug 2004 05:00
I think there should be a 'sprite clicked' command that goes something like this:

If Sprite Clicked(2) = 1 Then Play Sound 3: End

Whenever you click on a sprite, the Sprite Clicked command returns a value of 1. You can create a function that does this manually, but it is VERY annoying to keep typing it in. For more ifo, email me.
thomas@custodian3.co.uk

Thomas Smith
OSX Using Happy Dude
21
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 29th Aug 2004 05:00 Edited at: 29th Aug 2004 05:20
You've got sprite collision and sprite hit...


Come to the UK Convention on the 23rd & 24th of October
ThomasFN
20
Years of Service
User Offline
Joined: 26th Aug 2004
Location:
Posted: 29th Aug 2004 05:07
You still need this code:

If MouseClick()=1
If Sprite Collision(1, 2)=1
Rem Do this code
Endif
Endif

and that annoys me

Thomas Smith
OSX Using Happy Dude
21
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 29th Aug 2004 05:23
I think your going to stay annoyed...


Come to the UK Convention on the 23rd & 24th of October
Mentor
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: United Kingdom
Posted: 29th Aug 2004 05:52
@Itg46: the sprite visible command just tells you if a sprite is hidden or not, it doesn`t get affected by the sprites position, as this snippet shows, press space to place the sprite offscreen and enter to bring it back, the value of a remains one whatever the position of the sprite.



back to the main subject, a font command like this would be nice

make charset from image <fontid,imagenum,images wide,images high,1stascicode,lastasciicode>

would make it far easier to use fonts in games or make custom fonts to match the style of the game, for example.

you load an image that is 400pixels by 40pixels into image 1, the image is a strip of numbers from 0 to 9

you use the command

make charset from image "userfont1",1,10,1,30,39

this makes a internal font called userfont1, from image 1, by cutting it into 10x1 tiles (like DB does with matrix images) and assigning the tiles to characters 0 to 9 (ascii 30 to 39), so if you use

set text font "userfont1"

you get the custom font

then as long as you just print numbers 0 to 9 you get the custom font, if you print text you get the default DB font since you didn`t assign tiles for those, it would make customiseing fonts much easier IMO.

a collision command that registers non sprite hits on a special bitmap, maybe only one bit deep (like a mask), you have a command like

enable mask layer width,height

and that maskes the 1bit deep image

then you could have a command like

make mask layer from image imagenumber

that would copy a bit to the mask layer everywhere a pixel was lit on the image, then you could check for sprite collisions with the mask, so you could draw all the stuff the player will collide with in a platform game for example, make a mask layer from it, then finish drawing the rest of the scene (background etc), then the user can check for the sprite hitting a pixel in the mask and stop the player going through the ground, jumping through walls etc, something like

var=mask collision(spritenumber)

hope they at least give some ideas.

Mentor.

PC1: P4 3ghz, 1gig mem, 2x160gig hd`s, Radeon 9800pro w cooler (3rd gfx card), 6 way speakers.
PC2: AMD 2ghz, 512mb ram, FX5200 ultra, 16 bit SB.
Mini ATX cases suck.
Avan Madisen
22
Years of Service
User Offline
Joined: 12th Sep 2002
Location: The Castle Anthrax
Posted: 29th Aug 2004 07:42
Here're some things I'd like to see:

Real-time sprite paletting - you can't get 2d effects much older then this trick, and it'd make changing sprite colours on the fly so much simpler.

Optional smoothing when scaling and/or rotating sprites.

True Alpha Mapping for sprite transparency - as in using a grey-scale bitmap to dictate the alpha across the sprite rather then just a single alpha value.

Faster versions of the current 2d drawing commands, such as line, circle, etc. If it means having to 'lock pixels' before using the commands, then so be it! An option for anti-aliased 2d drawing would be awesome as well!

Extra commands to paste an image as flipped, mirrored or both.

2D particle handling, drawing either dots, lines or sprites, with optional colour controls.

Sprite morphing using sin waves would be an interesting trick. Option to map the sin wave vertically or horizontally (I imagine mapping it onto both would be quite tough) with controls for frequency and amplitude. I remember seeing quite a few demos in DBPro ages ago that did something like this with memblocks, a real-time version would be nice. Could be useful for 2d reflection effects.

Sprite limbs (weird, but interesting idea), how about being able to attach sprites to one another like limbs in an object. If anyone remembers Gunstar Heroes on the ol' Mega Drive, there were a lot of animated bosses that had limbs made out of multiple sprites. Special controls for something like this would allow that sort of thing to be very easy and quite impressive!

Sprite image blending - blend a sprite from one image into another, could be tricky if the images are not the same size.

Separate 2D 'cameras' or view areas - would make split-screen 2d games much simpler by automatically clipping the sprites to the edges of user-defined screen areas rather then the entire screen. The command would be similar to the 'set camera view' command, sprites would only exist in one screen as well as that would avoid a few problems so a command to set a sprite to a screen would be needed. Also, setting the backdrop on and off for those view areas seperately would be useful in some circumstances.

Colour key transparency for the 'copy bitmap' command.

Damn do I come up with some strange ideas, but I think most of those are good ideas (especially the limbs), not all of these are for my projects, they're just a bunch of ideas I can think of uses for in some kind of 2d game.

Avan

My car bumper sticker says -
"If you can read this I can slam on my breaks an sue you!"
SpecTre1
21
Years of Service
User Offline
Joined: 24th Feb 2003
Location: United Kingdom
Posted: 29th Aug 2004 09:40
2D commands! Well u remember the Floodfill I wanted??



That would be nice.

New to DBPro comin from AMOS on the Amiga!
IanM
Retired Moderator
22
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 29th Aug 2004 10:53
Well, I started with a massive list, and managed to reduce it to the following after removing stuff other had already suggested.

Some of them seem like duplicate, but are just extensions of other suggestions ... unless I missed the originals of course

- Multiple bitmap-specific viewports
- Attach sprites to one or more viewports, so that they are limited to drawing within those assigned viewports

- Display layers, so that we can display some sprites, then 3D, then text, then more sprites etc. The first three layers already exist (sprite, 2d, 3d) and further sprite and 2d layers can be created at will. You would then specify which layer each sprite is assigned to or being drawn to.

- Create blank images, and treat them as if they were bitmaps (for lines, text etc) (SET IMAGE AS CURRENT BITMAP? a bit long?)

*** Coming soon - Network Plug-in - Check my site for info ***
For free Plug-ins, source and the Interface library for Visual C++ 6, .NET and now for Dev-C++ http://www.matrix1.demon.co.uk

Login to post a reply

Server time is: 2024-11-22 18:11:36
Your offset time is: 2024-11-22 18:11:36