Gai-Luron, please don't spread misinformation. The .NET framework is quiet good. So is the base Java framework (Swing not so much).
Yes, C/C++ while being a higher level language does compile straight to machine code unlike Java, .NET languages, and a bunch of other langauges that use Virtual Machines (VB6 and its older siblings).
However, C/C++ is not for the timid. You really need to know what you are doing and be very methodolical (should do that with any language/environment) as the languages give the developer quite a bit of power and flexibility. But to quote Uncle Ben, with great power comes great responsibility.
Delphi, as an example, is an environment using the Pascal language. It like C/C++ also compiles direct to machine code and there are DirectX libs for it too. Its going to be a lot easier to program in than C/C++ if you know Pascal (or know it and like it).
A lot is dependent on the type of game. Is it a turn-based play on the web game? C/C++ probably isn't the right choice, perhaps PHP or ASP.NET, Ruby, etc. is. Does it need to be multi-platform? Java is a good choice (check out jMonkey). Do you want to do things for the Xbox360 (its very limited but still), then XNA is the way to go.
Biggest issues with XNA for .NET and Java is that there are *not* some high quality networking libraries. Doing networking *right* for twitch games is not a straight forward task. Less important for say turn-based games. And by "network library" I do *not* mean basic TCP/IP and UDP/IP networking libraries that are in both Java and .NET.
There is a JavaGameNetwork library for Java that someone from the jMonkey community wrote. Sun has an API, but its more aimed at larger MMO-style games. I'm only aware of the Lindgren network library for C#. XNA has nothing as of yet (it realy needs to be able to use the Live framework for Xbox and Vista).
For C/C++ there are several really good ones out there including the Torque Network Library (derived from an AAA engine) plus others.
Remember that XNA framework is a low level wrapper framework around DirectX. It is NOT a graphics engine (or game engine). To my knowledge there aren't any XNA graphic engines built yet using XNA. I know the guys at GarageGames have one in the works. There might be one or two more floating around.
As someone mentioned, there is a ton of other things beside the graphics that goes into most games. My suggestion is to start with something simple and go from there. Or go into modding. Find a retail game (Quake3, UT2003, UT2004, etc. or any other moddable game, Torque from GarageGames is another choice) that fits your basic concept and work from there. I have a couple of mods myself this way (Minions of Destruction for UT2003 got some acclaim and later got remade by Epic in UT2004) and ended up getting credits on a mod that went retail (Tactical Ops based on the UT2003) engine. There were a couple of other mods (both on Quake and UT engines) that went from mod to commercial retail box game. Heck thats the way Counterstrike started out. Same with TeamFortress.
Forcing InSim apps to be open-source I think its a grand idea. It means that if the original developer goes bye-bye, then someone else can pick up the tab so to speak. I like open source (of course, I work on all closed source on the job, so kinda straddle fence) but dislike the draconian FSF. Open source libs are great and I do feel they should be usable by all, but that changes/modifications/etc. to the lib should be forced to be open source.
It should be noted that the copyright holder of any piece of code could release that code under any number of licenses. It can and does happen.
Mmms... probably not me. I'd be willing to help out, once I get back to InSim stuff, but I'm pretty booked right now with trying to get the new racing league manager software for LOTA done. Part of that will involve InSim hopefully sooner rather than latter, and since all my InSim stuff is based on the LFSLib.NET I have an interest in seeing it kept up-to-date.
Instead of using assemblies, include the source project in your solution. LFSLib.net uses the Apache project's log4net. You'll need to set up log4net within your solution in order to produce output for LFSLib.
Not entirely, no in regards to exceptions.
What version of LFS are you using? It may be there are some slight changes to the InSim format in Y that cause issues with LFSLib which was updated for X. Haven't had the chance to look into it.
Personally opinion (as much as I hate the FSF and really don't much care for the GPL) would be GPL (or compatible license) licensed because taht way anyone that wants to use it can. But it keeps people from taking something someone distributed to the community at large and making their own proprietary version of it and distributing that and not helping out the community.
And btw, even if you GPL (or similiar license) you *still* own the copyright unless you specifically give that away. So as the original author (assuming you are) you can re-license the code. So you could distribute it under GPL2 and GPL3 or Apache or MIT or all of them together or some commercial license.
Create your own library? Not good idea... not exactly a straight forward thing either. The LFSLib is GPL'd so you can get the code and modified the code and use a custom version of the library!
Something as silly as a while loop could be a hack, i.e.
string command = string.empty; for(int i = 0; i < e.MessageText.count; i++) { if (e.MessageText[i].equals(e.MessageTextStart)) { command = e.MessageText.substring(i); break; } }
I'd have look at home to see what I did to strip the commands myself in my LFSLib based applications.
Just as an FYI, the penalty system in LFS does not really promote external manipulation without a lot of overhead.
For the league I help run (LOTA), we were looking at re-enabling the use of the reset button to represent the realistic options of being pushed out of sandtraps, getting rolled over, etc. for our tin-top series (GTC). Our thoughts would be since the reset gives you instant advantage of fixing damage, etc. that we would give penalties.
However, in doing so our testing revealed a couple of things:
a) Attempting to apply a 30 or 45 second penalty multiple times does not result in additional time being added to a driver's total time, i.e. if you give five 30 second penalties during the race, the total time was only incremented by 30 seconds.
b) If a driver currently has a stop-n-go or drive through penalty, then using the admin commands to assign him a different penalty wipes out the first penalty. A scenario might be that the driver was accessed, by LFS, a stop-n-go penalty for speeding coming out of the pits. Then on cold tires, the driver loops it and hits the reset button. The InSim app then assigns a drive-through penalty to the driver. The driver completes the drive-through penalty and now has no more penalties, i.e. LFS does not enforce the original stop-n-go penalty.
Might not be an issue for some folks, but in our situation, this was a major no-go issue for us. Yes, we could keep track of the original penalties and when a penalty was served, use the admin commands to re-issue non-served penalties. But for us this was really too much of a hassle to be able to use the broken reset (yes, Scawen, it *is* broken) feature.
Anyways, just somet thoughts on what we discovered while playing around with it.
I love the change so that we don't have to fix damage. However, it would be nice to have a version of the "reset" command that would solely put the car back on it's 4 wheels and give it a slight push. This would be like track workers pushing a car, or rolling it back over (at least for tin tops).
The series Hallen refers to is the LOTA's Street Stock Cup with the XFG/XRG combo. It runs on Thurs. nights at 9:30PM EST. Everyone that can make that time is welcome. This Thurs. the series is off due to the holiday in the US, but will resume next Thurs. for the last 3 races. We've had a good response to it and are pondering it become a regular fixture series.
Like it was mentioned two posts above, use the jinsim library as its already done all the wrapping of Insim communication and packet handling for you.
And its UDP or TCP, both are protocols for use on the IP routing stack that makes up the internet. Here's some background: http://www.yale.edu/pclt/COMM/TCPIP.HTM
Well, it's definetly sends out the position of the client's car based on the last data received by the server. I don't know that the server compensates, rather I think thats on the client, but of course Scawen would be best to answer that.
will continually ping the host until you cancel the ping (although you might get an angry host if you do it too much).
500ms = .5 seconds.
And yes, that has been the issue with satellite service; poor latency. I dare say even a 56k modem connection will give you better latency than satellite service.
C# and using the LFSLib library. It has example applications with it. You could also do Java with the java library that's around, Java is just as simple as C#. There is also the Python library that could be played around with.
PHP is a bad choice for InSim apps due to the nature of the fact its a web scripting language and while you can create executables out of it, its not exactly ideal.
A good goal, i.e. improving racing. But its something thats got to be carefully done so as not to run-off well meaning, but not completely competent folks, as opposed to the serious malcontents.
Any sort of system akin to this (even WB, as you pointed out the biggest flaw with it) is the need for oversight, so that someone doesn't get hamstringed by some maliscious folks (i.e. a group getting together going around servers and giving black marks to everyone and anyone, etc.)
In a way, the CTRA license system is very similiar, it just does things on "performance" as opposed to "opinion" and only applies to their couple of servers which they provide oversite for.
So yeah, if this is mainly targeted at server admins that have multiple servers that want something more than the WB, this could work because then it'd be up to the server admin to act as oversite to his servers, which he does already, but gives him a way of allowing people to "police" themselves, so to speak.
There's a difference between understanding and being efficient. At work I can't bill clients for "understanding", so frameworks are a huge boon (assuming the pluses outweigh the glitches) and when it comes to hobby stuff, well I have limited time and am not primarily interested in spending time on stuff that's already been written (for the most part).
I did write an C# InSim lib back when Scawen first introduced the InSim protocol; but that was lost in a harddrive crash (silly to not have it backedup anyways) so was glad to see sdether's C# lib, because I didn't really feel like doing it again.
Same with PHP (or even Java frameworks)... wrote a Java one for a large client, so been there done that, don't want to do it again if I can help it.
And back to the original topic; I've been playing with the Zend framework components (its not a framework, its a collection of components useful for web applications). They are ok, however the Zend_View is sorely lacking as it can't support layouts or sub-views at all. There are some proposals to rectify the situation, but neither seem to be well integrated. Also the issue with sub-views, in MVC, is those sub-views need to have their data loaded by the controller which means the controller needs to know about the sub-views ahead of time, or the controller needs to load a component up, and tell the view about it.
Zend has also made some changes to the core components, such as the introduction of ViewRender helper, but they left in the old ways of doing things (for backwards compatibility) which is good and bad. It'd be nice if they had 2 versions, one that allowed for backwards compatibility and another that was clean.
Also lacking are architecture diagrams, which would be especially helpful with the number of dynamic function calls that are made in the various components.
I've got somewhat of an "application framework" put together based on the Zend framework components that allows glues together configuration, authentication, and views with simple layouts and sub-views. Haven't quite gotten authentication completely finished as far as being able to login yet, but it does handle the determination whether a controller action should trigger authentication or not.
Then I take it you did the LFSWorld from ground out, very nice.
I agree about knowing how something works, but since I've been doing web application development since back in the true CGI days, ASP, and later C/C++ CGI frameworks, first days of JSPs (I remember attending the Chicago event where IBM rolled out "San Fran" which eventually became WebSpehre, and their VisualAge development environment which eventually morphed into Eclipse), etc.... so I'm a bit bored with knowing how it works.
Its pretty much that; theres a fair amount associated with web development, as I'm sure you know, but frameworks help aleviate having to re-invent the wheel (or at least try to). Of course, not everyone has the same ideas of what should or should not be in a framework, so thats why there are so many PHP (and Java, amongst languages) out there.