|
Slightly cold news on page 10! Phlamey breaks the server. |
|
This is a long thread. Click here to view the threaded list. |
|
Michael Drake |
Message #77005, posted by tlsa at 11:46, 25/6/2006, in reply to message #76773 |
Posts: 1097
|
, you have mail. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77266, posted by Phlamethrower at 12:01, 2/7/2006, in reply to message #77005 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Let's see if I can get the ball rolling again....
Project status- Engine core/framework - Complete
- Resource management - Complete
- Scripting engine - Complete
- Sound - Complete
- Objects (Bullets, explosions, pickups, etc.) - Complete
- Peds - Complete
- Renderer - Basic. Enough to work with but needs further optimisation, depth sorting/hidden surface removal, etc.
- Vehicles - In progress. Cars lack proper physics, other vehicle types are currently unsupported. Needs full design ready for implementation.
- Gang/respect system - Needs redesign
- Ped AI - Non-existant
- Vehicle AI - Non-existant
- Traffic management - Non-existant
- Map generator - Non-existant
- Final art/sound/mission assets - None
So, what next?
Current major issues are vehicles and the gang/respect system.
If needed the respect system could be dropped entirely (GTA 1 didn't have one), but having one would allow the police to respond automatically to activities instead of me having to hard-code them and their responses into the game.
Vehicles need a full design working out, focusing on physics and movement/collision detection.
Ped AI should be relatively easy. As previously stated, peds will have various activities that the mission script will instruct them to perform. Line-of-sight and pathfinding code coupled with the already existing movement code would be all that's needed to get the activities implemented.
Although based around a similar goal system as ped AI, vehicle AI will be trickier. Because vehicles have semi-realistic physics, the AI will have to account for such evil things as stopping distance, turning circles, skidding, predicting collisions, etc. Pathfinding will also need to be more advanced to cope with the road layout.
Traffic management - this is the bit that keeps the area around the player populated with peds/vehicles and the rest of the map empty. I have code to work out the visible area around the player, so it's just a case of tweaking thresholds until spawn ranges, traffic density, etc. looks right. Traffic lights are likely to fall under this heading as well.
Map generator - As stated somewhere in this thread, the map generator will likely rely on definition files to tell it what valid buildings, roads, scenery, etc. look like, and how they can be placed in relation to each other. The mission script can also force certain structures to be included in the map. The map generator can be developed fairly independently of the rest of the game, and droppped entirely if it doesn't work. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77370, posted by Phlamethrower at 20:58, 4/7/2006, in reply to message #77266 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
It's the vehicular movement pseudocode!
This code relies on a few basic abilities:
1. Determining if a vehicle is inside a wall 2. Determining what surfaces a vehicle rests on (or intersects) 3. The ability to scan upwards to find the top of a wall or solid
The movement code is thus: 1. First, we get the movement delta for the current frame, i.e. multiply the rotational and (spatial? standard?) velocity by the frame time. 2. Get a list of the surfaces that the vehicle is resting on (if any). Use this to calculate the Z delta if the vehicle was to follow each of these slopes. If any of these is higher than the current Z delta, update the delta to match. This allows vehicles to drive up slopes, and also to fly through the air a bit if driving over the crest of a hill. 3. Step forward the full time step 4. If the vehicle is not intersecting anything, rejoice. 5. Else, step back (Probably using binary search) until the first point of intersection. 6. Get the highest point of the walls that the car is intersecting. If this is higher than the highest obstacle the vehicle can climb over, make a small step backwards and trigger the collision code. 7. Else the vehicle must be climbing a small step or starting to climb a slope. Move the vehicle up to the top of this slope; if it doesn't fit, give up and enact the collision code. Else adjust the movement deltas to account for the distance travelled so far, and go back to step 2.
Eventually the vehicle will run out of movement delta or encounter an unpassable obstacle. Of course if the movement deltas are too large (as a rough guess, any movement over half a map block will be too large) the delta will have to be subdivided or else thin walls (or large walls!) may be missed by the collision detection code. For absolute safety, the largest step allowed would be the size of the largest circle that fits inside the bounding box of the vehicle.
How do we get the (spatial? standard?) and rotational velocities in the first place?
That's all down to the physics code in control of the vehicle. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77438, posted by Phlamethrower at 12:50, 8/7/2006, in reply to message #77370 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Woo! Automated makefile dependency updateingness.
*resumes tweaking code* |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77456, posted by Phlamethrower at 23:52, 8/7/2006, in reply to message #77438 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Woo! New movement code roughly working. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77462, posted by Phlamethrower at 15:22, 9/7/2006, in reply to message #77005 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
, you have mail. *finally downloads it*
Yay!
Hmm, now I need a program to swap colour ranges |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77465, posted by Phlamethrower at 19:08, 9/7/2006, in reply to message #77462 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
This is the first time I've found the EOR option in !Paint useful. And I've just realised I can use it to add stripes and other decals to cars |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77466, posted by Phlamethrower at 19:41, 9/7/2006, in reply to message #77465 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
[edit: Hmm, looks better on this monitor than the one the RPC is using ]
[Edited by Phlamethrower at 20:42, 9/7/2006] |
|
[ Log in to reply ] |
|
Richard Goodwin |
Message #77467, posted by rich at 21:21, 9/7/2006, in reply to message #77466 |
Dictator for life
Posts: 6828
|
Nice! ________ Cheers, Rich.
|
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77475, posted by Phlamethrower at 22:42, 9/7/2006, in reply to message #77467 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Finally.
[edit]
I'll add TimPlayer support to the next release then, I guess. Erm, the release after this one, then
[edit #2]
And if you happen to download this release, then (a) don't expect too much to have changed, and (b) don't expect the cars to collide with much except the walls. This release was more a test of my packagey-uploady thing than anything useful (Although it does contain a crash fix and new icon sprites Plus my potentially very useful makefile updater thing in the source archive!)
[edit #3]
The increasing nonsensicalness of my posts suggests that it's time I GO TO BED.
[edit #4]
*remembers he didn't update the build number in the editors manual*
*updates it*
*presses teh shiny button and watches it automagically package and upload*
Hmm, I really need a shiny button icon to put on the iconbar.
[edit #5]
[Edited by Phlamethrower at 01:18, 10/7/2006] |
|
[ Log in to reply ] |
|
Richard Goodwin |
Message #77481, posted by rich at 07:28, 10/7/2006, in reply to message #77475 |
Dictator for life
Posts: 6828
|
I've only got MSPaint installed on this work machine, so if you want transparent backgrounds, sort it yourself ________ Cheers, Rich.
|
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77517, posted by Phlamethrower at 20:25, 10/7/2006, in reply to message #77481 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
I have the shiny button! It is clickable!
But it's going to live on the pinboard instead of the iconbar, as it is very large and easily clicked. |
|
[ Log in to reply ] |
|
Andrew |
Message #77523, posted by andrew at 22:55, 10/7/2006, in reply to message #77481 |
Handbag Boi
Posts: 3439
|
I've only got MSPaint installed on this work machine, so if you want transparent backgrounds, sort it yourself Have you got a mouth ulcer?
[Edited by andrew at 00:31, 11/7/2006] |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77593, posted by Phlamethrower at 20:16, 12/7/2006, in reply to message #77523 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Ooh, Judge Dredd. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77594, posted by Phlamethrower at 20:23, 12/7/2006, in reply to message #77593 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
"Guns are training! Remaing still!"
Such polite execution machines |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77596, posted by Phlamethrower at 22:18, 12/7/2006, in reply to message #77594 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Despite audiovisual distractions, I think I've successfully hacked ye olde spandraw polygon clipper into a proper car-world collision detection algorithm. There's undoubtedly some room for improvement, but hopefully I can avoid the hard part by just writing a special-case collision detection algorithm when the car is lying entirely on flat surfaces (which it will be doing 90% of the time).
Also the current implementation will allow me to easily add checks for thin walls between blocks (The polygon clipper is being used to clip the bounding box of the rotated car against the 2D footprint of each blockstack, producing a vertex list of the corners of the clipped area. Thus if a vertex lies on an edge of the block footprint, it's fairly safe to say the car is intersecting any thin wall which also lies along that edge) |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77597, posted by Phlamethrower at 22:43, 12/7/2006, in reply to message #77596 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Would help if it was clipping the bounding box and not the clipping rectangle
[edit]
Hmm, kinda working.
[Edited by Phlamethrower at 23:52, 12/7/2006] |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77682, posted by Phlamethrower at 22:42, 14/7/2006, in reply to message #77597 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
It's working! (better)
One of my assembler functions was reading the wrong value from the stack and messing up the clipping |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77685, posted by Phlamethrower at 22:51, 14/7/2006, in reply to message #77682 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Interesting - if your hard disc is full, GCC waits indefinitely until some space is free |
|
[ Log in to reply ] |
|
VinceH |
Message #77702, posted by VincceH at 10:59, 15/7/2006, in reply to message #77685 |
Lowering the tone since the dawn of time
Posts: 1600
|
Interesting - if your hard disc is full, GCC waits indefinitely until some space is free Does it tell you that's what it's doing, or does it just sit there indefinitely hoping you might notice something is up? |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77703, posted by Phlamethrower at 11:21, 15/7/2006, in reply to message #77702 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
It just sits there. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #77995, posted by Phlamethrower at 22:29, 23/7/2006, in reply to message #76503 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Anyway, It looks very good. No it doesn't! Almost everything is in blue
Unless that problem is specific to specific Iyonicies. But still, looks like I'll have to fix it (The problem is caused by the plotter leaving the top bit set of 16bpp pixels. Works fine on RISC OS 3.7, but apparently not on (my) Iyonix. And trying to view a 16bpp sprite in !Paint with the top bits set, in an 8bpp mode, under RISC OS 3.7, produces similar corruption. YAY FOR NOT STATING IN THE RELEVANT DOCUMENTATION THAT THE TOP BITS OF 16BPP PIXELS MUST NOT BE SET)
F12 didn't work to escape the game. This is because it crashes like a bitch when returning to the desktop. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #78089, posted by Phlamethrower at 00:53, 25/7/2006, in reply to message #77995 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
No it doesn't! Almost everything is in blue After some more poking, it appears that this graphics card hasn't been colour swapped properly
It has two outputs, both of which appear to have red and blue swapped in 16bpp modes |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #78090, posted by Phlamethrower at 00:56, 25/7/2006, in reply to message #78089 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Although, rather interestingly, the mouse is displayed in the correct colour.
*attempts to turn the entire screen into a giant hardware cursor while browsing his pink TIB * |
|
[ Log in to reply ] |
|
Richard Goodwin |
Message #78097, posted by rich at 07:39, 25/7/2006, in reply to message #78090 |
Dictator for life
Posts: 6828
|
Although, rather interestingly, the mouse is displayed in the correct colour.
*attempts to turn the entire screen into a giant hardware cursor while browsing his pink TIB * Ah, no, that's the new stylesheet I added to mess with your head ________ Cheers, Rich.
|
|
[ Log in to reply ] |
|
Phil Mellor |
Message #78104, posted by monkeyson2 at 09:00, 25/7/2006, in reply to message #78089 |
Please don't let them make me be a monkey butler
Posts: 12380
|
No it doesn't! Almost everything is in blue After some more poking, it appears that this graphics card hasn't been colour swapped properly
It has two outputs, both of which appear to have red and blue swapped in 16bpp modes Is there any reason to use less than 24bpp in the desktop these days? Backwards incompatibility and testing aside. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #78106, posted by Phlamethrower at 09:13, 25/7/2006, in reply to message #78104 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Is there any reason to use less than 24bpp in the desktop these days? Backwards incompatibility and testing aside. Not really - but there is a reason to use it in games |
|
[ Log in to reply ] |
|
Phil Mellor |
Message #78108, posted by monkeyson2 at 09:37, 25/7/2006, in reply to message #78106 |
Please don't let them make me be a monkey butler
Posts: 12380
|
Is there any reason to use less than 24bpp in the desktop these days? Backwards incompatibility and testing aside. Not really - but there is a reason to use it in games Isn't 24bpp easier in games? 1 word = 1 pixel. I preferred writing 256 colour games to 16 colour for the same reason. |
|
[ Log in to reply ] |
|
Jeffrey Lee |
Message #78112, posted by Phlamethrower at 10:40, 25/7/2006, in reply to message #78108 |
Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff
Posts: 15100
|
Isn't 24bpp easier in games? 1 word = 1 pixel. Easier, yes.
Faster, probably not. |
|
[ Log in to reply ] |
|
Phil Mellor |
Message #78113, posted by monkeyson2 at 10:53, 25/7/2006, in reply to message #78112 |
Please don't let them make me be a monkey butler
Posts: 12380
|
Isn't 24bpp easier in games? 1 word = 1 pixel. Easier, yes.
Faster, probably not. The code I'd write for a 32K mode would definitely be slower than the equivalent for a 16M one |
|
[ Log in to reply ] |
|
Pages (22): |< <
11
> >|
|