Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
 Welcome to our latest new user Harvey ! (Registered 2024-11-25) You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Pinball Dreams discussion forum
2003-02-13 19:16
WVL

Registered: Mar 2002
Posts: 898
Pinball Dreams discussion forum

Hey guys/girls,

instead of updating my homepage all the time, I though I could open a new thread here instead. This will also allow other ppl to comment on the development.

okay, so whassup at the moment?

Well, Last month I completely restarted from scratch on the code. Why? Well, first I wanted to concentrate more on getting the game to run in less memory, also I wanted to focus more on accurate simulation of the ball and some small other things...

What I have done till now :

1 - spawned the ball ;-)
2 - added gravity to the surroundings, the gravity data is now RLE encoded, so it doesn't take up much memory anymore. Used to eat 20 blocks of memory, now I think a map would use 3-4 blocks..
3 - I changed the gravity routine to use polar-based vectors instead of cartesean, much more accurate!
4 - added a debug mode to the movement routines, you're able to pick up the ball with the firebutton and move it around. Let go of the button and you drop it on the table again.
5 - Worked on an accurate (within 1 'bradian' degree) direction calculation routine. This routine will be used for both friction calculations and calculating new directions after collisions. So it needs to be
6 - added a (simple) friction routine.
7 - I put a small preview on the web ;-)

get it at http://www.interstyles.nl/pinball.rar

okay, what am I up to now?

1 - increase the speed accuracy to 24 bit, I need this because the friction only affects speed in the last 3 bits or so, so it's not accurate at all..
2 - add spin to the ball, so it is allowed to roll.. (also gives effect to the ball like top-spin and such)
3 - dunno yet, I'll see what is the next logical step after that.. probably the new method of collision detection, dunno..

I'm thinking of putting the sourcecode online as ascii file, so everyone can check it out...

Suggestions? Questions? other stuff?

greets, Werner
 
... 163 posts hidden. Click here to view all posts....
 
2003-03-07 16:44
WVL

Registered: Mar 2002
Posts: 898
it doesn't help skipping frames when moving the ball. The ball movements all are traced, so calcs are done for each pixel position, to consider gravity + wall bounces and such.

If I skip the ball movement for one frame, I have to do double the amount of calculations, so it doesn't speed up anything..

also the flickering of the lights must be done instantly, otherwise you could have the top of a light and the bottom in a different color - UGLY.

also I have to play music and scroll each frame, otherwise things get jerky.

the only things not critical is score keeping and displaying it IMO

Werners
2003-03-07 17:01
cadaver

Registered: Feb 2002
Posts: 1160
Yeah, frameskipping on C64 mostly doesn't help, as the movement calculations are usually the heaviest (minus hardscrolling). In filled vectors it perhaps helps :)

According to my experiments, a missed frame of movement here or there doesn't feel that bad, *but* slowdown of music is something that's immediately noticeable, so one can't skip that, ever :)

Of course, if the game starts to skip like every second or third frame it will feel satanic :) I guess your CPU-load will be roughly the same on each frame?
2003-03-07 17:10
WVL

Registered: Mar 2002
Posts: 898
cpu load goes up whenever the ball starts hitting walls. especially when it's in one of those ducts going from top to bottom it hits several times/frame... OUCH!
2003-03-09 12:11
Intensity
Account closed

Registered: May 2002
Posts: 337
Hey Werner,

I haven't got an answer from you in ages...

What about the Pnball Dreams Soundtrack? Has it overtaken someone else or is it still my job?

Yours,

Arman
2003-03-09 17:18
chatGPZ

Registered: Dec 2001
Posts: 11359
wvl: you not only can, but you MUST design the way ball movement is calculated in a way that it can "skip frames" (to be more precise, it should calculate the movement over a given period of time). think of multiball for example. it took me some time to understand that aswell when i was doing the pinball engine for the gameboy... but its really the only way to avoid enormous peeks in processing time. however like you are saying yourself, collisions are the big nut to crack at this point, since these also must work in this context, which is not exactly easy to achive....however it _is_ doable :o)

the only "must be processed each frame under all circumstances" type of routines in your pinball engine should actually be the few things that display the playfield, do scrolling and alike.... even music is a candidate for beeing "frame skipped" if necessary.
2003-03-12 08:37
WVL

Registered: Mar 2002
Posts: 898
Just wanted to tell you all I migrated from using TurboAss on the c64 to using 6502tass on pc. Finally I can have more comments then ever before :)

Also all my stuff is compiled, linked and put in a .d64 and autostarted with one press of the COMPILE button.. rullar :)
2003-09-03 20:47
WVL

Registered: Mar 2002
Posts: 898
a small update

I reworked the clipping engine, and cleaned up the sourcecode, which was really necessary. Looking at the last couple of dates on the post, I see I haven't been working too much on Pinball Dreams, which really is a shame :(

anyway, I got better ideas on the collision detection, which I will implement soon, for now have some fun with :

www.interstyles.nl/Main.txt <- "clean" pinball-engine sourcecode

www.interstyles.nl/Main2.prg <- compiled debug version of the engine, check out the clipping, which is done by cutting pixels out of the sprite, and not by putting things infront of it.

enjoy + l8rs
2003-09-06 21:13
WVL

Registered: Mar 2002
Posts: 898
Just wanted to mention I started on the new collision system.
2003-09-06 23:44
WVL

Registered: Mar 2002
Posts: 898
Just finished the collision detection system :D
2003-09-16 09:11
WVL

Registered: Mar 2002
Posts: 898
Just wanted to let it be known that I put a new prv and the new sourcecode on the web. same urls as before.

what I finished : key detection system. currently left-shift,/,runstop,space and p are read from the keyboard. Maybe I'll have to add crsr-down too.

anyway, all keys are redefinable.

also I put a 'wall' in, and you can see the ball 'bounce' off it, not quite, as I still have to add the speed calculation routines after bouncing, and some other small stuff.. I also improved accuracy quite a bit.

Yours, Werner
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ... | 18 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Barfly/Extend
Andy/AEG
Alakran_64
CA$H/TRiAD
sailor/Triad
Brataccas/HF
Slaxx/Q/HF/MYD!
Mason/Unicess
JackAsser/Booze Design
Jetboy/Elysium
Six/G★P
psych
Guests online: 81
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Mojo  (9.6)
6 The Demo Coder  (9.6)
7 What Is The Matrix 2  (9.6)
8 Uncensored  (9.6)
9 Wonderland XIV  (9.6)
10 Comaland 100%  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 Party Elk 2  (9.6)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.6)
5 Libertongo  (9.5)
6 Rainbow Connection  (9.5)
7 Onscreen 5k  (9.5)
8 Morph  (9.5)
9 Dawnfall V1.1  (9.5)
10 It's More Fun to Com..  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Nostalgia  (9.3)
5 Triad  (9.2)
Top Swappers
1 Derbyshire Ram  (10)
2 Jerry  (9.8)
3 Violator  (9.7)
4 Acidchild  (9.7)
5 Cash  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.057 sec.