Popular Post Hoithebest Posted December 24, 2014 Popular Post Share Posted December 24, 2014 Hello friends, The moment is here. LEGO Racers Online (not finished) and the LEGO Racers API (mostly finished, but needs new functions all the time) are now published on GitHub as an open source project. I don't know how Git exactly works and the source code is published to the development branch. I would love to see if you guys could contribute in this project and create forks so I can merge them into the master project. I will review all submitted code and if the code has a good quality, I will add it to the development branch (which had to be the master branch actually). Don't ask me how to put this project Visual Studio, because I don't know how to. Please contact Grappigegovert for more information about this as he done this before. One important thing to remember The software is not complete yet and does probably not what you expects it to do! It's possible that it's not even running online functionality yet/anymore because of the latest developments. This can be fixed easily, but I didn't have time for this last weeks. I am not going to contribute much on the project too for the coming months due to school. Requirements If you want to contribute to the master code, you will need a free GitHub account. Visual Studio (2013 if you don't want compatibility issues) A fresh brain because developing on this project is sometimes a pain in the ass Credits Me: Client, Server, Library and the API. Grappigegovert: massive, massive research for the API. This guy created most of the API functions. Repository You can find all code on the following page: https://github.com/Hoithebest/legoracersonline/tree/development Remember to select the development branch, NOT the master branch! Please create forks and submit them if you would like to contibute. Information about the Solution Some information about the Solution. All code is written in C#. ClientType: executable This Visual Studio Project contains the Client software which allows players to connect to the Server. It uses the LEGO Racers API to control the game. All game controlling functions should not be developed in this project but in the LEGORacersAPI project as this provides the core for communicating between C# and the LEGO Racers game process. LEGORacersAPIType: class library (outputs a DLL) This Visual Studio Project is considered as the core of the whole project. In the beginning of this project, all game controlling functions were built into the Client directly, but for flexibility, the LEGO Racers API deserved an own Visual Studio Project so it could be reused in other projects too. The outputted DLL can be loaded into other projects to build mods for LEGO Racers. LibraryType: class library (outputs a DLL) The library contains information that both the Client and the Server need to know about. Things like participants are stored here. The outputted DLL is being loaded in the Client and Server software. Server The Server software stores all data that the Clients sends to it. When Clients send data to the Server, it processes the requests and returns a response that the Client will process again. The Server is also capable of starting races (mostly). Communication between Clients and Server There are multiple requests a Client can do to the Server. This can be done using TCP and UDP. The following things are being sent through TCP: Connect to a Server When a player wants to join a Server, a request is sent to the Server, which checks if the entered username is still available. It sends a responsive whether the joining was successful or not. Start a race When the Server hoster starts a race, all participants (racers) receive a TCP packet containing the level information. Using a Power Up When a player uses a Power up, this is sent to the Server through TCP, which sends it to all other players in the game (TCP too). For the requests being sent in a loop, we use the UDP protocol which is not as reliable as TCP is, but for those requests is doesn't care when a packet dies on its way to the Server or Client. The following things are being sent through UDP: Sending and receiving coordinates The current player coordinates are being sent with a very low delay. The Server stores this information and returns the coordinates of all the others players as a response. (Settings are also sent in these packets, but this has to change in the future.) To-do list The following things have a high priority in order to build further on the project: Starting a race from the Server Trigger the Initialized (in the API) correctly I will add more to-do items later, as the list is much longer than mentioned above (can't think about more right now, it's been a while since I have been developing on the project). When coding, please think of the following things: Put as many comments as possible in the code, ESPECIALLY WHEN WORKING ON THE API. CODE WITHOUT COMMENTS ABOVE FUNCTIONS WILL NOT BE ACCEPTED IN THE MASTER CODE! Work with as many classess as possible because this will make it easier for other developers and for extensibility. If you need more information, please comment in this topic and I will add the answers here. Happy coding friends! alan, Neal, Cyrem and 14 others 17 Link to comment Share on other sites More sharing options...
lol username Posted December 25, 2014 Share Posted December 25, 2014 https://www.youtube.com/watch?v=OXZt4-LTtHw I won't be contributing to this but I'll keep an eye on it and see where it goes. Link to comment Share on other sites More sharing options...
coffins Posted December 25, 2014 Share Posted December 25, 2014 Is there any way to open the project through the Xamarin Studio? I'm not able to use VS at the moment. UPD: It seems like everything opened successfully despite the fact that there is a couple of bad things. UPD2: Yep. Fortunately, now all is OK. Link to comment Share on other sites More sharing options...
Alcom Isst Posted December 25, 2014 Share Posted December 25, 2014 I was trying to make a cloned repository and ended up making a commit that merged the master and development branches. Oops? Link to comment Share on other sites More sharing options...
Hoithebest Posted December 25, 2014 Author Share Posted December 25, 2014 This commit isn't pushed to GitHub, right? At least I don't see anything. I'm happy to see that there are people trying to help! Link to comment Share on other sites More sharing options...
KevinVG207 Posted December 26, 2014 Share Posted December 26, 2014 A dream has come true! Expect some messing around in livestreams soon Even though I'm not a good programmer, I know some people will be able to help a lot. Link to comment Share on other sites More sharing options...
Hoithebest Posted January 20, 2015 Author Share Posted January 20, 2015 It's quite dead here, isn't it? Link to comment Share on other sites More sharing options...
Cyrem Posted January 20, 2015 Share Posted January 20, 2015 It's quite dead here, isn't it? It crashes my game on startup unfortunatly, I'd investigate, but I'm too loaded down with other work at the moment. Link to comment Share on other sites More sharing options...
Hoithebest Posted January 23, 2015 Author Share Posted January 23, 2015 Hmm, that weird. Have you tried debugging and stepping until the game crashes? Link to comment Share on other sites More sharing options...
grappigegovert Posted January 25, 2015 Share Posted January 25, 2015 @, I've pushed some changes that may have fixed the crashing you were experiencing. Would you mind trying it again? Link to comment Share on other sites More sharing options...
KevinVG207 Posted January 25, 2015 Share Posted January 25, 2015 I need to learn a lot about visual studio to do anything. I can only start the server gui, not a client. Link to comment Share on other sites More sharing options...
kapitein knoest Posted January 26, 2015 Share Posted January 26, 2015 Great to see this progress! Too bad I don't know anything about programming Link to comment Share on other sites More sharing options...
grappigegovert Posted February 8, 2015 Share Posted February 8, 2015 developing on this project is sometimes a pain in the ass I now know what you mean by that Initially I wanted to just test this real quick, but I ended up editing a lot of code, and now I don't have time anymore. I guess I'll do the testing some other time then Link to comment Share on other sites More sharing options...
TheChief Posted May 12, 2015 Share Posted May 12, 2015 Curious as I am, I decided to run the application as it is now. Building in Visual Studio went fine (and fast )I came across the following: When not running the Client as administrator, it asks you to restart the Client as an administrator. Pretty nice. When running the Client as administrator, I get a bit further. It asks me to start Lego Racers so it can check a few installation details. When not starting Lego Racers as administrator on my Windows 8 laptop, I get the error from Microsoft .NET: A ReadProcessMemory or WriteProcessMemory request was not fully completed. (or something like that). When running both Client and Lego Racers as administrator, as I should have done in the first place, the Client gives an error saying "Couldn't find the Client" and copies a MD5 hash into my clipboard. What to do with that? Link to comment Share on other sites More sharing options...
grappigegovert Posted May 12, 2015 Share Posted May 12, 2015 I don't really understand why you got that first error, because it should work even if the game is run as non-administrator, and in this first-run setup wizard it shouldn't even use Read/WriteProcessMemory.The second error suggests you are using a version of LR that we haven't seen yet.Could you run this tool and paste the output of it here? Link to comment Share on other sites More sharing options...
TheChief Posted May 13, 2015 Share Posted May 13, 2015 (edited) LegoRacers.exe: 5683f89bfe8cb19e64ebd83d501f4f12 987222 bytes 25/04/2015 07:40:50 LegoRacers.icd: not found LEGO.JAM: 9ec6b4c3334d66a1563e8930f304701f 19639466 bytes 29/04/2015 18:43:43 GolDP.dll: e682063553de779579bf47b5e9bc5b1e 413696 bytes 12/01/2001 13:46:12 Oops, I forgot that I am a) having a patch version for versus mode without a controller and b) having a Rocket Racer Red Run mod for Circuit 7. I am going to replace the above files with the original ones and try again. I do know that the MD5 hash the Client copied to my clipboard is exactly that second line number under LegoRacers.exe. Sorry, stupid mistake. I will try to pay more attention from now on. Pretty nice tool, though. I'll let you know about the problems I face next, and hope those are no stupid mistakes of me as well. Checksum for the original game install: LegoRacers.exe: 325cbbedc9d745107bca4a8654fce4db 987222 bytes 12/01/2001 13:53:28 LegoRacers.icd: not found LEGO.JAM: d1a82a99ea4962d6d84f691db5f93550 19642024 bytes 02/11/1999 10:32:36 --> thought this was edited since for the rerelease? GolDP.dll: e682063553de779579bf47b5e9bc5b1e 413696 bytes 12/01/2001 13:46:12 When checking this thing; it was interesting that when -novideo was not added to the shortcut, I got the .NET error again, when adding it, I get to indentify successfully. So, server address? Edited May 13, 2015 by TheChief Link to comment Share on other sites More sharing options...
grappigegovert Posted May 13, 2015 Share Posted May 13, 2015 thought this was edited since for the rerelease? It is edited. The 1999 version has a timestamp of 23/7/1999. See http://www.rockraidersunited.com/topic/5509-lego-racers-different-released-versions-the-definitive-list/ So, server address? You will need to run your own server.When you build / start the server, you can connect with a client on the same computer by using localhost as server address.Then, on a different computer, enter the local IP of the server if it's on the same network, or the public IP if it's not. (Although you will need to forward some ports when using the public IP)To be honest, I don't even know if it will work, as I haven't tested it myself.I will look into the .NET error when I have more time. (I'm a little busy with exams right now) Link to comment Share on other sites More sharing options...
JrMasterModelBuilder Posted May 16, 2015 Share Posted May 16, 2015 Just a suggestion, in case this is still being developed. For problems such as these: Oops, I forgot that I am a) having a patch version for versus mode without a controller and b) having a Rocket Racer Red Run mod for Circuit 7. I am going to replace the above files with the original ones and try again. I do know that the MD5 hash the Client copied to my clipboard is exactly that second line number under LegoRacers.exe. Maybe there could be an option to force it to use a specific version profile and ignore the hashes. For example, decrypted 1999 DRM versions would probably fail the hash check. Link to comment Share on other sites More sharing options...
AlexBridgez Posted December 6, 2015 Share Posted December 6, 2015 Is this still in active development? Link to comment Share on other sites More sharing options...
coffins Posted December 6, 2015 Share Posted December 6, 2015 Is this still in active development? It might be according to recent GitHub activity Link to comment Share on other sites More sharing options...
dead_name Posted December 6, 2015 Share Posted December 6, 2015 Is this still in active development? It might be according to recent GitHub activity If you consider 3 months ago to be "recent". All of the commits are on September 9th, there's nothing more recent. Link to comment Share on other sites More sharing options...
coffins Posted December 7, 2015 Share Posted December 7, 2015 Is this still in active development? It might be according to recent GitHub activity If you consider 3 months ago to be "recent". All of the commits are on September 9th, there's nothing more recent. I'm glad you're satisfied with answer. Link to comment Share on other sites More sharing options...
nodar86 Posted December 27, 2015 Share Posted December 27, 2015 Ahh it's so good to see there are still people who like this game Actually it is my long time dream to remake this gem. I mean fully remake (like openlierox did with liero), but i'm still pretty novice at programming :\. So kudos to all of you that's all I'm saying. Link to comment Share on other sites More sharing options...
Hoithebest Posted January 26, 2016 Author Share Posted January 26, 2016 I'm sorry to announce this, but nobody is working on this project at the moment. I actually tried to dive into this project a few months ago (September), but I'm not satisfied with the code quality I made a year and a half ago. What I am considering is to rebuild the server and client from scratch and just use a console application. But hey, who doesn't say stuff that's eventually never going to happen? Link to comment Share on other sites More sharing options...
AlexBridgez Posted January 27, 2016 Share Posted January 27, 2016 22 hours ago, Hoithebest said: I'm sorry to announce this, but nobody is working on this project at the moment. I actually tried to dive into this project a few months ago (September), but I'm not satisfied with the code quality I made a year and a half ago. What I am considering is to rebuild the server and client from scratch and just use a console application. But hey, who doesn't say stuff that's eventually never going to happen? Thats a shame about your code Best of luck if you decide to go ahead with rebuilding Link to comment Share on other sites More sharing options...
Recommended Posts