The online racing simulator
Searching in All forums
(987 results)
My Indie Game Project
blackbird04217
S3 licensed
Well I've made a leap that I've wanted to make for a long time. I will be making my very own indie game project. I'm hoping lots of you will buy it, and it will certainly be priced within reason! No, the game is not complete yet. Actually I only started developing it last week, so I have a long ways to go.

It won't quite be a simulation, but it will be a racing game. It will be quite unique at that, although I will save the twist as long as I can. I've had this idea in my head for 3 or 4 years now and made a prototype version back in March. The prototype showed some promise, so this time I am going all out. It is my goal to release something before December 31st 2010.

I don't come here to advertise as much as I come looking for support, ideas, thoughts, and just to share my progress. I've already written 3 posts so far, but each time I post another entry I will link it here, so that it is easy to follow along the progress of this project.

I haven't thought of a name at this time, so I have a little challenge for anyone in this forum that is up to it; Suggest a name for the game, if I decide to pick that name, you will get a free copy of the game.

Blog Posts about the project:
http://www.ludumdare.com/compo ... blackbirds-splash-screen/
http://www.ludumdare.com/compo/2010/10/05/progress-on-tools/
http://www.ludumdare.com/compo ... /blackbird-menu-progress/
http://www.ludumdare.com/compo ... /blackbird-week-1-wrapup/
http://www.ludumdare.com/compo ... /blackbirds-falling-down/
http://www.ludumdare.com/compo ... ckbirds-lack-of-gameplay/
http://www.ludumdare.com/compo ... s-deadline-come-and-gone/

Scrapyard Racing Development Videos
Video of Replay Footage: http://www.youtube.com/watch?v=va1kOtma4pI

Follow the project and other developments:
Twitter.com/timbeaudet
Last edited by blackbird04217, . Reason : Added new link
blackbird04217
S3 licensed
Quote from bbman :Reminds me of the (now defunct/hibernating?) Head-to-Head Racing Series, except there was only one car per track and no layout was used...

I suppose hibernating works, though I wish we at SRS could run it again.
blackbird04217
S3 licensed
Gaah I should have heeded the warning... SOO ADDICTIVE.
OpenSource Simulator?
blackbird04217
S3 licensed
Just wondering if anyone would be interested in doing an Open Source, C++/OpenGL Racing Simulator?

Back in the days of RSC there was a project motorsport or something like that going on, although that is so far out of date. TORC is also too far out of date, and isn't the direction I was thinking.

Perhaps karting, or just a particular subset of racing. I am interested in this since I am considering to build an environment for my AI project, and since there are programmers around here, I say why not if people are interested. I have 6+ years of C++ experience; primarily with Windows development.

Any comments or concerns?
blackbird04217
S3 licensed
Quote from mstram :Ok, first, I apologize for the tone of my last message.

But,

1) Your link doesn't work

I assume you meant :

http://ppjoy.bossstation.dnsalias.org/

and the code sample in :

http://ppjoy.bossstation.dnsal ... s/Virtual/IOCTLSample.zip

That code produces a console app, that waits for a key press, ... which won't work in LFS, as LFS needs "focus".

So I tried to modify that code to automatically send the data, which is where I am stuck.

So while you say "There was nothing special I did ", you must have at least altered the code to run "automatically", rather than interactively

Mike

Well, I did make my code run interactively, but that has nothing to do with the sample or using ppjoy - that is all how you setup your application to work, which I would never have guessed. Secondly, my application runs in the background at approximately 60fps since I call Sleep(16) each "frame". It sends the control changes via the code above. This allows LFS to run in the foreground as you know it needs to in order to collect/capture/use the input.

If you are stuck on "general programing" tips I can still help, but try specifying the problem a little better; I thought you had issues with ppjoy/virtual controller - not the 'real-time / interactive' environment running behind LFS.

Start with something like this:


main
{
//Initialize Here

while (!quitCondition)
{
//Update the status of your virtual controller.
Sleep(16); //Don't waste _all_ cpu cycles. (unless desired?)
}

//Perform clean-up here
}

I hope that helps a bit.
blackbird04217
S3 licensed
Because I don't have any 'driver' level code, or anything that is non specific from my project? I mean, really I just did the following;

Installed ppjoy.
Found the example code. http://ppjoy.bossstation.dnsal ... iagrams/Virtual/IOCTL.htm
Used it by having the AI control it.

There was nothing special I did besides sit and calibrate something that took ages to get correct, and I don't think it is correct. (My virtual steering wheel would not travel in a straight line at '0' so I had to play with the 'centerOffset' until I got something that works "good enough" for the time being.

I don't get the mean attitude, I was trying to be helpful?

I know parts of this are mimicing my own code, although I also know parts came from that resource above - which is working, it seems I messed the link up at first... Anyways I used only that page as a reference, but hopefully the following is enough to get you going - because I can't remember doing anything different.


//From ppjoy "http://ppjoy.bossstation.dnsalias.org/Docs/Diagrams/Virtual/IOCTL.htm"
#pragma pack(push,1) /* All fields in structure must be byte aligned. */
struct VirtualControllerState
{
unsigned long Signature; /* Signature to identify packet to PPJoy IOCTL */
char NumAnalog; /* Num of analog values we pass */
long Analog[VIRTCTRL_NUM_ANALOG]; /* Analog values */
char NumDigital; /* Num of digital values we pass */
char Digital[VIRTCTRL_NUM_DIGITAL]; /* Digital values */
};
#pragma pack(pop)

#include <windows.h>
#include <winioctl.h>
#include "PPJIOCTL.h"

VirtualControllerState ctrlState;
HANDLE ctrlHandle;


//Initialization Stuff
ctrlHandle = CreateFile(L"\\\\.\\PPJoyIOCTL1", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if (INVALID_HANDLE_VALUE == ctrlHandle)
{
printf("Init() Failed to create controller with code; %d\n", GetLastError());
return false;
}

memset(&ctrlState, 0, sizeof(VirtualControllerState));
ctrlState.NumAnalog = VIRTCTRL_NUM_ANALOG;
ctrlState.NumDigital = VIRTCTRL_NUM_DIGITAL;
ctrlState.Signature = JOYSTICK_STATE_V1;

//Updating things -
ctrlState.Digital[ulButtonID] = ButtonPos;
ctrlState.Analog[ulAxisID] = lAxisPos;

DWORD retSize = 0;
if (!DeviceIoControl(ctrlHandle, IOCTL_PPORTJOY_SET_STATE, &ctrlState, sizeof(VirtualControllerState), NULL, 0, &retSize, NULL))
{
//Device is disconnected if GetLastError() == 2;
}

//Clean-up
if (NULL != ctrlHandle)
CloseHandle(ctrlHandle);

Last edited by blackbird04217, . Reason : Added code samples
blackbird04217
S3 licensed
de Souza - Yea I think that may be the direction to take, even if it means I have to figure out some more complicated physics to do this test, it may be the best solution overall. I am thinking a completely flat track environment, with cones at the edges and an extremely simple physical environment to simulate (hopefully); understeer, oversteer and some sort of slip ratio for the tires. Other collisions are not needed so that makes some things easier.

mstram - You probably need to configure LFS to see your virtual controller as by default it is likely using your existing wheel/controller. I had to write a "configure" app using the ppjoy to make my virtual gamepad so that I could press a specific letter on the keyboard to get the output I expected; then configure LFS using that.
blackbird04217
S3 licensed
So I have been trying to do some tests involving humans trying to race with only cones where the reference points would be. The idea is to make LFS completely black except for cones and cars. And to have people race under those conditions, however the following screenshot is the best I have come up with.

I have edited all .dds, .jpg and .raw files within data/dds and data/pic to be black. Still need something else.
blackbird04217
S3 licensed
Quote from Vangeels :Doesn't your development environment have a standalone compiler? In that case you can use only a text editor and that command line compiler.That is how I do it. Just MinGW gcc and the file commander (fcw).

I prefer using the development environment, since it is essentially a text editor with a few additional things to be helpful. It uses minimal CPU, but can be a pain when LFS is running - as I said earlier. I use a computer for my convenience, so I typically have a lot of stuff going, and it does well at keeping up until LFS uses 50% of my cpu.

Quote from Vangeels :Also you maybe can lower the graphics? I personaly don't have any problem with CPU. I have my C program running and LFS on the same pc and I don't see any problem due to CPU.

This is a CPU problem, I can't imagine graphics are causing much at all. I suppose refreshing the screen each frame, even in windowed mode, would take a slice of time, but I can't think it would be that much. Worse case scenario a mem copy of 1680x1050x3.

Quote from Degats :Put LFS in a window (shift+f4) then minimise it. Doing this puts LFS' usage from ~15% to 0% on my PC.

This seems to be spot on, still annoying that I have to minimize / maximize for subtle changes. I don't have problems with this when making major code changes - but during testing and just trying random things out this is a pain.

However I think I have a good solution which will take me the rest of the night / morning to code but I will basically make an "LFSController" that will run next to LFS on the "test machine" while I run AIRS on my dev machine. A simple connection between those two apps, and the data can be passed around with no cpu hogging ever happening on the dev machine.

---------------------------------------

On new thoughts, instead of detecting the state of each tire, like I have been on about for ages - I think I will give a try at detecting under/over steer based on g-forces and the visual perception of motion. I -think- this will be an accurate way to detect it, but unfortunately I am not sure yet if that will be good enough to use.

Possible issues are;
- Small collisions with walls/cars/objects.
- Unable to know 'where' the limit actually is as slip angle will be perceived as "sliding" even though the tires are still within limits.

I have started working on this project again until further notice.
blackbird04217
S3 licensed
Quote from Chrisuu01 :Which was a silly rip-off of the real one.

It wasn't a silly event. For what it's worth CSF and Boothy did a fair job at running it. The participants behaved very well, and it was a decent time.

As for Head-to-Head, I promise it will return. Unless I die or something seriously limits my use of a computer - it will return. "When" is the question, the answer is; as soon as I get a stable lifestyle going again, as I'm still on a pretty bumpy ride from my little adventure last year.
blackbird04217
S3 licensed
Guys, (more DevilDare), CSF and I have already come to an agreement - it was a partial misunderstanding and poor choice of words. Considering you aren't even on the right track with what I was upset about, ignore it. I hope the event turns out well. I understand where CSF is coming from. Like I say, it was just the original wording/phrases and way it rubbed off. But that has been dealt with.

CSF - Is there a scheduled time chosen? Let me know.
blackbird04217
S3 licensed
Quote from Drift King CZ :Yes, InSim helps, but it's not neccessary.

The 13ish player event 'by hand' took about 2 hrs if I remember correctly. As calling people up by name is incredibly slow. And a lot more pressure on the admins to make sure to read the times correctly, do the math correctly and somewhat under pressure of time. I won't say it can't be done, after-all that was how the first events were even the start of the first series. The time for a 16 player event (with qualifying) takes less than 90 minutes if I remember correctly. Take the qualifying out and it would be close to half the time it took doing it by hand. But as Michael said, occasionally something odd does indeed happen with the system. It is not a necessity, but it helps keep things moving along at a steady pace, and with a lot less human error - assuming I didn't make errors in code.
blackbird04217
S3 licensed
Quote from CSF :Who said it did? Your building this into something it isn't. We just want to revive the concept for one little time only. Nothing to do with your system, its something anyone within LFS can do. Simples. If you want me to remove the h2h spin off I will, but quite honestly all we are trying to do is something fun for LFS based on something that quite honestly looks dead.

I don't mind the idea behind you running an event with the style of a direct one vs one race to finish. Or using the general scheme. But I do mind the way you wrote the first post, which is too late to change now. My point is Head-to-Head isn't dead. I have plans for it, I just need to have the time available in my life to get to the point where I can run things without worrying that I would need to cancel an event because something came up. I'm sorry it feels dead for you. It has only been 1 year, and I wanted to turn things into an annual thing but guess not having the internet (for actually being able to run an event) means that everything I worked for is dead.

It's the sentiment behind how you came off. Using the combos choosen specifically from past H2H events. Mentioning "in accordance to H2H history" as if this was something H2H related. As said I don't mind someone hosting a spin-off event to keep things that aren't dead from 'dying'. In all seriousness, good luck running the event - just please make sure it is known that there is a difference and it isn't a spin-off from the original administrative team.

Quote from dekojester :I see no intent for the Head2Head format as it was when Tim and Passo ran it to be used exactly for Face2Face. The fundamental idea, however, is what is being used. You cannot stop someone from using the fundamental idea of the one on one format. The applications uses, associated logos, yes, but not the idea. A Copyright would extend to the manifestation of the idea, not the idea itself.

And, I highly doubt that this incarnation of the idea would harm the reputation of Head2Head.

The references I see to Head2Head here are to explain why this event is being run, and not to link it in any manner more than that.

I don't know why your thinking I am against the idea of someone else running a one vs one event. It was the association as if I was behind this idea by using the H2H name, mentioning the history and combos. By combos I don't mean to say I am against a race at any specific combo But to vote on/use combos specifically from previous H2H series - why not add other possibly interesting combos?

As for it harming/helping the reputation, that isn't for me, you or meh to decide. I'm just expressing my own concern, the feeling that came from reading the post. It really felt like it was aimed to 'seem' or 'feel' associated to Head-to-Head. Yet not in a way that was thankful or nice to it.

"attempt to bring back the head2head format that worked so well for SRS, but in our own meh way"

This feels like a thing of "it worked for them, so lets take it and put it in our own way" more than a nice mentioning / tribute to Head-to-Head. I think I'd have different feelings if it was done in a friendly way. And perhaps I'm reading into it too much, or not enough. Either way I explained a feeling I got, and I wanted to make sure that people were aware that it is in fact different from Head-to-Head. I will say Head-to-Head will come back, as a series and we will run it again. But honestly, I've been busy - and I haven't had the internet besides these last 6 weeks. In which 4 random weekends were spent in Maine where my car was getting fixed, my tooth needed to be pulled etc, etc...

I had plans to run something this weekend; tomorrow being my birthday and Sunday the day we were going to have an SRS:Birthday event. But we never decided and it got too late so nothing is going to happen anymore. Luckily, I won't be going "home" this weekend.

Sorry for the rant, but I hope that gives a little insight as to why I haven't been able to run even a single event like I really want to.

EDIT: CSF / Boothy - Just make it clear in the first post that this isn't affiliated in anyway with the Head-to-Head Events/Series.
Last edited by blackbird04217, . Reason : Reason at bottom of post.
blackbird04217
S3 licensed
Quote :
Tonight meh Racing is proud to announce that we are going to attempt to bring back the head2head format that worked so well for SRS, but in our own meh way... FACE2FACE Racing!

There will be no fancy insim feature, instead we we will be using the wonders of google docs!

We are going to run this one off event this weekend in the evening at some point, and want you, the drivers, to decide the track/car combo from the classic H2H combos...


There will, in accordance with H2H event history, a very small set of rules that will be posted very soon.

Please don't make it sound like this is associated with the Head-to-Head: Racing Series. I have been talking with others about running an event for me, but I haven't decided that yet - and I don't want this to have any association to the original H2H as I've put loads of work to get the reputation built up.
blackbird04217
S3 licensed
Put it on Steam and I'd never play again. That would be a sad sad day

And the LFS popularity hasn't declined too much. Everyone complains more, but that is what internet communities do from time to time. There are a billion servers and plenty of people online most of the time - the problem is that they are typically spread out.
blackbird04217
S3 licensed
Quote from DevilDare :And it only took them 4 moths!

Rejoice!

It was less than 3 months. Not saying that makes things much better, but things happen.
blackbird04217
S3 licensed
It was close to happening, and we fiddled with the idea of doing it this weekend, but it was delayed too long before deciding so nothing will be done. Unfortunately I won't have access to the 'real' internet again in two weeks time, and next weekend (the last possible weekend for me to run it), a lot of people will be going to the LFS Karting Meet - of which I am jealous.

Long story short, I would like to have a one off event, or even bring back the series really, but I haven't had time. Not having a truly stable job is putting a serious pinch on that as well, but there isn't much I can do- especially since when I don't have a job (this one ends in 2 weeks) I will be living with my parents (cheaper rent) and they don't have access to an internet connection capable of racing (or any online multiplayer game in a real-time sense).
blackbird04217
S3 licensed
Wait... it was STILL leaking!!!! /sarcasm

In all seriousness, glad it is finally stopped and yes people who were not directly-effected will likely forget about it soon. Most of them will be the same idiots who made wild claims how BP should be boycotted and left to drain. Hopefully (although unlikely) man-kind as a whole will walk away with more care towards our planet.
blackbird04217
S3 licensed
Quote from amp88 :I've had quite a few times where I've been having trouble with a certain aspect and it's been solved while I was just standing in the shower.

I know exactly what you mean, it tends to come to me just before bed and then I can't sleep even if I just try writing the idea on paper to implement later. No instead it is a compulsion that the idea needs to be implemented and tested immediately to find if it worked or not.

Quote from herki :amp, I think you forgot the fun times of waiting 5 minutes for your code to compile, just to get a linker error because of a tiny typo buried deep in the code you wrote 3 days ago, but that compiled without problems before implementing your new code.
Or fun variable problems (I can imagine LFS using quite a bunch). Nothing more fun than a tiny mathematical error that messes everything up - and you can enjoy step-by-step debugging.
Programming. Fun times.

Don't forget some larger projects, when requiring a full build can take a lot longer, even on higher powered machines of today. Although admittedly much less time than the old days. It is NOTHING like the movies, although if movies portrayed it like the real thing non-programmers would fall asleep immediately.

How about memory corruption bugs; crashing at completely random spots because you went out of bounds on an array, or deleted memory and still use it elsewhere?

Quote from amp88 :Oh, absolutely. Or finding a comment like "FIX THIS IMMEDIATELY!" in code that you wrote a couple of years ago. Or writing something when you're really tired and coming back to it the next day saying to yourself "what the hell was I thinking when I wrote this?". Programming is most certainly not like it's commonly portrayed in the movies and TV.

I always loved finding those comments. Coming back and reading it later (even just a few months later) can sometimes make you wonder WHY it needs to be fixed. (If you didn't document it initially which can happen during 'testing by feeling' and just walking away when it felt right.

I can't say I've fallen into the trap recently, but those times where you write an algorithm, and your convinced enough that it works on paper that you fiddle with it for hours to get it to work. Once it is working you run away with a note never to touch it again. Then next week you find that 'this set of inputs' breaks down the 'magically working code' and you don't know why. It is often best to stop what you are doing and redesign it from the ground up - but that doesn't change anything to the end-user - who sit complaining for months that nothing is changing! I'd bet that this (not the magical function, but the re-factoring aspect) is going on quite a bit right now. Although that is speculation.

Thanks Scawen for the note of update. It is always nice to hear, but I agree 100% with this statement:

Quote from amp88 :I don't know how many people could honestly say they were happy with the development speed of LFS, but I can honestly say that I'm happy that the people developing LFS aren't happy to release a new patch until it's been written and tested properly.

blackbird04217
S3 licensed
I like staying on track, which takes ~50% of my CPU. If I was to send a /end command (which is possible) I would then need to enter the track each time. Then I would be forced to - wait for lights each time I am doing a test, or to make it so the AI driver comes from pitlane...

I suppose the alternative could be a specially designed AutoX layout.
blackbird04217
S3 licensed
I haven't had any problems with the packets being out of date. Well, I suppose my drive is only going 50mph, or only straight on the drag strip. Keeping it at 50mph allows me to make the assumption that the car will not slide or lose grip.

My problem is detecting the feel of the car accurately. Also the development environment has been annoying to work with, I don't want to restart LFS each time I want to run a test, but I don't want to leave LFS open while programming, as it hogs my CPU. I tried making it so LFS ran on another computer and my AI driver ran on primary, but for some reason the UDP connection I made for that kept failing - using the same code I've used for years... It was mind boggling and I decided to work on other things for now/
blackbird04217
S3 licensed
Personally I'd go with a smaller HD, but the specs seem fine... If you need the extra space, I'd recommend 2 HDs, 1 which is smaller would be used to put your OS on, as well as _frequently_ accessed data and the other which is larger to be used for storage;

I understand this isn't an option for everyone, but a 100gb system drive and a 500gb storage drive is worth more than a 750gb drive. As you start to fill things your system runs slower and slower, sure defragging the drive can help, but information closer to the center will always be accessed faster than that on the outside of the drive.
blackbird04217
S3 licensed
You can rewind and fast-forward replays...

You can't "seek" but being a replay based off the physics/actions you won't be able to seek (without getting faster computers).
blackbird04217
S3 licensed
Quote from GenesisX :IMO, you probably do not need SoftTH anymore. I think that with Z28, two monitors will work just fine as long as you have it setup correctly in the driver utility. If you span the second monitor horizontally, you should get one single resolution. With that, you go into LFS, and you set that specific resolution, and change the displays to
- 1 - 1 - 0 (if you have one left monitor, one main, and zero right)
- 0 - 1 - 1 (if you have one right monitor, one main, and zero left).

I used SoftTH back then, but unless you are running some older version of LFS for some odd reason (XRT =) cough), then it is unnecessary, as SoftTH would simulate a 3 monitor setup, and what that does would be to make you lose frames.

What do you mean "lose frames". And yes, with 2 monitors you might get away with only LFS, (I'm not sure I've not done that). I am talking about 3 monitor setups, you still need SoftTH or TripleHead2Go to make it work properly.

If by "lose frames" you mean the framerate may be slower, well that is obvious - your increasing the fill area; by a lot. At 5040x1050 I get a 60-80 fps on average, on the highest LFS settings. It might dip to the 50's from time to time but that is typically CPU related.
blackbird04217
S3 licensed
To do it on three monitors, stretching a window is not the way to go. Use SoftTH, or TripleHead2Go.

The multi-monitor support in LFS does not support multiple outputs, it is there so that it corrects the view of having super wide FoV settings.
FGED GREDG RDFGDR GSFDG