Activity

Mr Milky Way

This 3 hours was mainly spent testing random things although I did get some stuff ready for tournaments, mainly leaderboards and had to fix some bugs with them.


here is a list of bugs I fixed

  • Incorrect map showing on MP lobbies
  • people could get 2 leaderboard entries
  • couldn’t modify tournaments

And here is some stuff I tested

  • Tested new leaderboard system (added match_id to primary key)
  • Tested tournament results (still not a good idea of how this works lol)
  • Tested more on matches (rounds are still filler/test data that doesn’t save to db)

Demos

  • Results test
  • Match testing (just for qual round)
  • Bug of 2 leaderboard entries for one person

Changelog

Attachment
Attachment
Attachment
0
Mr Milky Way

I spent some time making the UI look better, and added a OpenGL Viewer to it so it can now load the vertex/faces of the maps. It was really hard to get working, and the settings page is still not working lol.

Demos

  • Image of window (loading file)
  • Image of loaded file

Changelog

Attachment
Attachment
0
Mr Milky Way

I got to work creating the round creator. Currently it only works to create rounds (AND NOT MATCHES) in “DRL” mode, which lays out rounds like the following:
Starting players: Any
Players after qualifying: 24 if player count is 24 or above, 12 if between 12-23 and the number of players if less than that.
Each match has 6 players with 3 advancing to the next round until the last round in which there is only one player left, the winner.

FOR THE RECORD THIS IS ONLY ROUND DATA NO MATCHES WHICH GO INSIDE OF ROUNDS AND IS WHAT THE PLAYERS PLAY.

Demos

  • img of round layout (simulated 26 players, no matches)
  • img of round layout (simulated 15 players, no matches)

Change log

  • added createTournamentRounds (8eaf8b5)
  • Bump basic-ftp in the npm_and_yarn group across 1 directory (7d735e2)
  • more work on createTournamentRounds (e37b132)
  • Fix Tournament modifying (c44b892)
  • Merge pull request #19 from Mr-milky-way/dependabot/npm_and_yarn/npm_and_yarn-2dee6a94ba (d5b057f)
  • Bump the npm_and_yarn group across 1 directory with 2 updates (1f9e528)
  • Merge pull request #20 from Mr-milky-way/dependabot/npm_and_yarn/npm_and_yarn-a7dcac81d5 (a463765)
Attachment
Attachment
0
Mr Milky Way

MY SHORTEST DEV LOG!!
I added the ability to modify tournaments now! Very fast and easy to make just had to create one new endpoint and add some stuff to the modify page.

Demos

(Not in Prod)

  • Modified in game tournament
  • Modify Page (looks like create page lol)

Change log

  • added tournament modifications (7de6115)
Attachment
Attachment
0
Mr Milky Way

In my last devlog I got drone images working, in this one I did way more than that.
I got to work on profile pics and they now call from the steam API (if that’s ur branch) else they just use a default one. That was pretty easy so I moved on to creating tournaments I started by duplicating the modify page and started adding fields to it. That was more tedious than hard so it took some time. Then I started in on the backend and that was not fun got it working (after a while). Currently there is no backend for the modify page and tournaments only work up to the base and not rounds. It only has has the ability to show it self, and not be played if that makes more sense.

Demos

(not in prod)

  • TOURNAMENT IN GAME!! yay
  • admin panel of tournament
  • creation webpage (looks like the modify page)

Change log

  • Start work on profile pics (2405ade)
  • added work on bans (f8675ec)
  • added creation of tournaments (kinda) (a94f3ae)
  • Tournaments work up until rounds (c8c9e23)
Attachment
Attachment
Attachment
0
Mr Milky Way

This was simple (mostly) I got images working today (and fixed a typo that stopped xp from showing up) - in the most backwards way possible. I thought that it would send a request to the real URL so I made /image-cloud/{userID}/{imageID} But no it sent requests to the endpoint of /images/?????
It also sent a query of url, w, h with URL being the image it wanted and width (w) and height (h) being what it wanted. Pretty simple to make but oddly buggy.
I also created middleware to automate badTokenAuthv2™ so I don’t have it cluttering up things.

DEMOS

(in prod)

  • fixed images in community drones
  • Fixed xp

Changelog

  • Temp fix images (e44a405)
  • image fix (doesn’t fix old images) (932b882)
  • added badTokenAuthv2 middleware to end points (mostly) (6fe6d84)
  • possible fix for no xp from maps (1c17336)
  • fix some file stuff (c10dfc3)
  • Fix security stuff (9c1d520)
  • Fully fix Xp (tested) (a58f77c)
  • badTokenAuthv2 Now on leaderboards (4b7e2ec)
Attachment
Attachment
0
Mr Milky Way

My devlogs are getting shorter yay!

I didn’t do too much this time, I added a map pools page, which still needs to have some small changes to it. It doesn’t work with the hard coded maps as of right now. It’s going to be used to allow for some variety in my new tournament system as one of the devs said they couldn’t just have it auto create tournaments for them. Currently the backend is mostly done for that page.

I also added a page to create/modify tournaments, ALTHOUGH it’s not quite done (like the map pools) it also has very minimal backend implementation. It looks kinda nice tho and is going to be far better than hard coding tournaments lol.

DEMOS

(Not in prod)

  • Tournaments modify page
  • Map Pools
Attachment
Attachment
0
Mr Milky Way

Another long devlog :heavysob:
I got good news though, I got in contact with one of the old devs of the game. The manager of the tournaments and the main map creator for main years! He gave me a lot of insight into how the old servers worked. Just before he got back to me I tried to make filler data for the tournaments so I could just join a match, I spent a very long time trying and debugging and trying and debugging to get it to work and I just couldn’t figure it out. Until I realized that there was a typo on my side using state instead of status. It only took FOREVER TO FIND THIS :heavysob:
After getting that to work I started by making a sql table create command and just after is when the dev got back to me. We talked for a while about dev mode, track creation, but most importantly tournaments.
He said that tournaments were not done automatically and that he had to manually schedule them using a web portal, this web portal could also find cheaters and do lots of other stuff. So I spent some time creating a nice little dashboard web page (and had AI do the css bc nobody likes that). I also created stuff on the backend so I can login into it and other random people can’t just send requests to reload the server. So far I have a login page, main dashboard, tournament dashboard, admin settings, and server settings. It’s not ready for prod tho

Demos

(These are not from prod so some stuff will be broken :( )

  • Login page
  • Main dashboard page
  • Tournaments page
  • Admin user settings
  • Server settings
Attachment
Attachment
Attachment
Attachment
Attachment
0
Mr Milky Way

I am very sorry for the long log but it wasn’t working so I didn’t want to make a log for it. BUT WOOO, THERE HAS BEEN CHANGES. Since the last devlog I gotten a test server up and running (and patched security issues with that, I forgot to sanitize file paths). I also removed all direct calls to Ctracks and tracks making them both stored in the same db. While I was testing the server, some users (only on the steam branch) were stuck in demo mode, this was because there was a license check ONLY ON THE STEAM BRANCH. WHY. It was very easy to get around though, as it just wanted {exists: true} in base 64. There also was some tracks issues relating to how they were stored in the db - they were stored as [object] not as stringifyed json. I added docs which are not very complete but they aren’t the biggest thing right now lol. I also added a function to map the sql to json on both maps and leaderboards, AND OH MY GOODNESS WHY DID I NOT DO THAT EARILIER, IT MAKES THINGS SO MUCH EASIER. I also added all the filters for the community tracks now yay There was this odd bug which seems to be coming from the map section where your username just disappears but I haven’t fixed that yet.

I also found out more about dev mode: There is a replay recording thingy and you need aa special exe to use it AND THAT EXE IS: ffmpeg. Just renamed ffmpeg.

DEMOS

  • filters for the community tracks
  • video made with the in game dev recording
  • video made of the in game dev recording
  • image of failed license on someone else’s game
Attachment
0
Mr Milky Way

A lot happened (but bc it’s backend work I don’t have a lot to show) so i’m going to try and cover as much as I can. I had to make a new DLL system as the old one could have had some copyright issues. On the server side I added environment vars for the port and url. I also went back thru and fixed all the variable scopes (which took forever). I wasn’t checking if the token had expired before adding stuff to the db, so I also fixed that. Also fixed the file storage as it would crash due to too many inputs. I added more tracks (though all are not working) so now there are about 217 community tracks. I also reorganized the repo and removed all direct calls to Ctracks.json (community tracks).


CHANGE LOG for Custom-DRL-Server (Not full log)

Attachment
Attachment
0
Mr Milky Way

It’s been awhile

so I added a readme for Instructions of use, environment variables to it, changed all the var scopes for better security, added better auth, bunch of small bugfixes, Released custom DLL’s, added rate limiting, and closed an issue on the repo.

Lota work :3

I don’t really have anything good to show as an image bc most of it can’t be seen in game :(


CHANGE LOG

Attachment
Attachment
Attachment
Attachment
Attachment
0
Mr Milky Way

I added the rest of the 127 lumps (128 if counting 0) and also added a read function each for of them. Next up is editing, GUI, and then a render for the 3d bits.

Attachment
Attachment
0
Mr Milky Way

I went back thru and implemented checks for every struct size, I also added up to lump 94 now (no read on them tho). I also got Entity_Partitions reading right :)

Attachment
Attachment
0
Mr Milky Way

I moved the structs into their own header file, I also added a read function for each of the 73 current lumps I have added. While I was at it I improved the logging. More time consuming work than hard work. Didn’t feel like 3 hours tho 💀

Attachment
Attachment
Attachment
0
Mr Milky Way

To start this off I added 73 of the 127 need lump structs and made it read off the PLANES lump.
Not much other stuff, A lot of configuring cmake and other stuff like that.

Attachment
0
Mr Milky Way

Today I fixed the replays, so now you can view them, it took a very long time because as it turns out only one of the 3 endpoints is meant to be used, as it’s the only one with relevant data, BUT IT STILL SENDS THE FILE ON ALL OF THEM AND NONE ON THE LEADERBOARD ENDPOINT

BRUH

I also fixed the leaderboards so they don’t save the wrong data to the leaderboard (They used to have an incorrect PRIMARY KEY meaning that it saved per map and not per track)

Attachment
0
Mr Milky Way

The maps now work correctly and just about every endpoint is accounted for. I also had too add the /storage/image/ endpoint. I started work on fixing the replays too, but the game has like 3 different functions to send a replay, uses them all, and sends different data to each.
BRUH

Attachment
0
Mr Milky Way

I did some work on custom community map making.
You can now create and test a track, but can’t edit or clone a track yet. you also can’t delete a track but ehh who needs that…

This took way to long, but hopefully the next bits will be shorter. (it wont there is still so much left check img 2)

Attachment
Attachment
0
Mr Milky Way

I fixed the drone collection problem, and it wasn’t because of the drone time endpoint.

The game would try to preload your drones on the boot of the game using your player ID. The problem was that the game would set the player ID as null because the login was sending back filler data. I also added the remove drone endpoint to delete your drones. I think next up is the drone time endpoint (or just the time endpoints like all of them).

Attachment
Attachment
Attachment
0
Mr Milky Way

I fixed some small problems with the rivals leaderboard and Community tracks and tried to add drones into the mix.

This works kinda well, the drones get uploaded BUT, if you close the game and reopen it it just says that the drone isn’t in your collection (even though you made it). I think it has to do with the drone time endpoint, but I need to do more looking. It doesn’t seem related to the player state but idk. Works well other than that though.

Attachment
Attachment
0
Mr Milky Way

So I figured out why the leaderboards where broken, and it was bc I was a certified idiot.

The game wanted the data in kebab-case but I SQL doesn’t like kebab-case so I was storing it in snake_case, and just retuning the raw snake_case stuff to the game. This works fine for the score, but not anything like names. I do have a little fixing up on more of the leaderboard endpoints (like the rival ones) tho.

Attachment
Attachment
0
Mr Milky Way

I fixed up some db issues with the leaderboard: the maps used to check drone name and guid and not ‘drl-official’ bool. This meant that the leaderboard would be different per drone and not different per drone class/official drones. I then fixed the real leaderboard to show the entries as the only endpoint without filler data up to this point was the leaderboard post. It went well and next up is figuring out why the names are all undefined. I think it lies in a different endpoint but idk.

Attachment
0
Mr Milky Way

After a long time I figured out the leaderboards I got the DB working for them. It was a MONSTROUS block of code but it works (smh) some of it is still filler data (like the Number 1 position bit) but it won’t override a better score and should work fine when I fixup the rest of the code to use the DB. I spent way to long trying to find out why the data being sent was null, bc as it turns out the data is in a json array and I thought it was just in json… BUT IT WORKS, YEAH!

Attachment
Attachment
Attachment
0
Mr Milky Way

My ship got rejected because the readme wasn’t linked as raw. 🤦 I took this opportunity to create better BugReproNumber documentation and add some images to the readme I also uploaded it to Thunderstore mod manager and fixed a bug where player input would be given back to the player during SonicRun_FullyAnimated which could cause the player to fall to their death.

Attachment
Attachment
0
Mr Milky Way

Shipped this project!

Hours: 28.17
Cookies: 🍪 685
Multiplier: 24.33 cookies/hr

I made A full mod for Titanfall 2 to restore cut content

It works pretty well but can crash sometimes and has some uhhh unintended features… They aren’t bugs a swear

I learned a whole new programing language in the process of making this mod! (Squirrel)
It was a very fun project to make and I think it went well.

Mr Milky Way

So as it turns out there were some bugs that needed fixing in order to properly get everything working. There was a feature that I added back a while ago that would dynamically change the map based on difficulty but as it wasn’t prod ready and some maps would break due to that. I had to exclude some maps from that system as a result. To add onto this a dev start point wouldn’t work because it was “Trailer - Drop “ and not “Trailer - Drop” (that took forever to find) now it’s prod ready and I tested the whole thing. The Trailer - Drop start point is showcased in the video I attached. :)

0
Mr Milky Way

Sorry for this being a 26h 48m devlog, I signed up for flavortown then forgot about it but I still worked on projects, then I was like “Wait flavortown is a thing, WOW I have a lot of time” So I just decided to make this a flavortown project.

I was scrolling youtube a little while back and come upon a video by Nextracer1 showing Titanfall cut code that he had fixed. I didn’t finish the video so I didn’t realize that he released his mod for icepick SO I decided that I was going to make my own mod for it using northstar. I started out by decompiling all of the VPK’s for the game and then looking thru all of the commented out areas and looking for code to reactivate. At this point I was looking in the same spots that Nextracer1 had so they were pretty easy to add back. Then it was only really a matter of bug fixing the code, cut code I had added back. This is when it got WAYYY harder. Titanfall 2 has 2 parts, the core game (.exe and .dll) then the level code (all in Squirrel). The nice part about this is that I don’t have to rebuild the game, the hard part about this is that I’ve never used Squirrel. There was a lot of trial and error. I also found a lot of things he didn’t cover or even fully restore like extra flack gun FX or properly adding back startpoints (like the Trailer - Drop point). For example on ship to ship there is a bunch of testing stuff for the 6-4 (A group of soldiers) that didn’t work because the 6-4 was deleted due to 1 incorrect start point name. The only way this could be found was by looking thru all of the code used in that level as the northstar stack trace only just said that they were deleted (which took forever). There are some other cases of having to do this but I’m starting to run out of space in the devlog to go over all of the stuff I did. So I’m just going to leave it here and ship the project. :) (there will be a yt video in the github releases of all of the stuff I added)

0
Mr Milky Way

After a lot of work I have decided to make this a flavortown project and as such I have a lot to write for my first Devlog. I started this project because my favorite (only) drone simulator that I own, DRLSim, had it’s server shut down. I decided to make a custom server for the game even though I have never made a server before. I started out by checking the game logs to find what requests the game was sending to the server, once I found out the name of the request I would go into the .DLL that send the request and see what it wants back (I also patched the dll with a new server URL too). First on the list was the login data, it wanted an expiration and the token it sent me back + a success boolean. Because of this I didn’t have to decode the token. Next was game and player state data which could be left null. Next was map data which had to be in base 64 and I could fill with fake data. Last was a server time call, this also had to be in base 64 and had to be the current time in iso format. After all of this I could boot into the main menu, and race on 4 out of 277 tracks. After finishing a race the game would ask for leadboard data and then softlock. Instead of fixing this right away, I re-coded all of what I had made to use express and not just a http server. Then I tried to fix the maps not loading and the game would get the map data, BUT would only download a 1kb file and so I just left that for a fix later. At this point I looked at how DRL handled the login tokens. After some digging I found that the token was in base 64 and used AES encryption. The key was easy to find but the iv looked to be hard coded, but was actually the timestamp that the game sends to the server. Now that I could read what the token says I could start to actually make a database. This allowed me to save the player state also. Next I started work on the xp system which needed that player state. I also added some filler leaderboard data. I hit the char count for the log :(

Attachment
0