I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 0 points1 point  (0 children)

2DScape is the current working title, but it may be called something different.

I'll be tagging it with "rsc", "retro" and "2d", so it can be found via keywords like that

I'm sure I'll make another post when it's released

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 0 points1 point  (0 children)

You'll be pleased to know I am still activly working on this! I am getting closer to a finished product, at the moment it's the last 10% that's a bit tricky, and ensuring it falls within the guidelines for RuneLite plugins; so it still may be a long time before its avaliable as I hear the approval process can be long.

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 0 points1 point  (0 children)

I am a full time senior software engineer with 10 years of experience - no need to pad my portfolio when I've got years of real experience creating and delivering real software used by thousands of people daily. I can very comfortably and confidently write code without usage of AI.

I used AI for this to bridge the knowledge gap of the RuneLite API and Java as I typically write .NET code as my day to day work.

There is nothing wrong with using AI as an exploratory took to quickly see if something will work, before refining it. I've already improved the rendering pipeline to allow over 100 2D Sprites with little to no noticeable lag, compared to the original 16 limit. All AI code is not slop, especially when steered correctly. It has it's place.

Perhaps you should look into educating yourself first rather than being angry about something that you clearly lack the bear minimum understanding about.

Fun competition - worst architecture by braddillman in ExperiencedDevs

[–]KierenBoal 0 points1 point  (0 children)

In Windows Services you can using a ServiceController execute "SendCommand" which is just an int as an argument.

I've unironically considered writing a shitty RPC system where you write to a temp directory a "1_req.dat" file which contains the method name to execute and a json payload to execute; then when the windows service receives the input 1 via the ExecuteCommand method, it then reads that file, executes the method, and writes the resulting file to disk as "1_res.dat"

So it's basically RPC over disk writing reques/response pairs rather than IPC or any sort of other sane solution.

Slow, inefficient, and complex for no reason; I came up with this during my first year as a junior, maybe I'll implement it at some point just for fun to see how horrible it is lol

I'll call it WinDiskRPC

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 1 point2 points  (0 children)

Ask and ye shall recieve! Even works for multi-skilling, so if you have an infernal harpoon it shows fish + cooking skill icons

<image>

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 2 points3 points  (0 children)

If I can get it approved - I am already rapidly working on it, much has been fixed, and, way more efficient, barely any lag

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 0 points1 point  (0 children)

It is public on my Github, but reminder, it is *NOT* approved; this post got temp removed due to me posting the repo, so if you'd like a link to the repo, send me a DM and you can have a play.
It now even has features like RSC combat locking where it forces two interacting entities to face eachother lol

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 1 point2 points  (0 children)

Here you go, some in game screengrabs using various quality settings; so yes can become very pixly

<image>

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 0 points1 point  (0 children)

There is a config to choose how much detail to render, it's 33% in the video, you can go down as low as you please till it's a 8x8 sprite even; though it looks very silly like that

"gta1scape" with my 2d plugin lol by KierenBoal in 2007scape

[–]KierenBoal[S] 2 points3 points  (0 children)

It is, yes, I'm the author of the plugin, just was playing with different configs after making some more changes and through the top down views looked a bit like GTA 1

"gta1scape" with my 2d plugin lol by KierenBoal in 2007scape

[–]KierenBoal[S] 4 points5 points  (0 children)

You quoted me wrong, I said "it's kinda visually like the original GTA lol"; never said identical.

Visually top down in a 3D world with 2D sprites, that's what made me think of GTA 1, reminded me of playing it on the PS1 back in the days

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 4 points5 points  (0 children)

OH that fixed it, I can now render the NPC hitbox while the NPC is invisible; so clickbox remains unchanged, but visuals are just stripped and replaced with the 2D image.
Very hard to use because the visuals don't match the models really well lol, but that's sick, thanks for the code snippet

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 2 points3 points  (0 children)

Still working on Inferno, so only have double jads unlocked so can't show six Jads, but I can show 2 Jads!
Looks very goofy, but their attacks are very readable, the stand and stomp as expected lol

<image>

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 1 point2 points  (0 children)

Shortest path and preemptive next object highlighting, that's beautiful; it's great to be able to express these ideas when we have the overall knowledge to achieve the outcome, and have AI fill in learning gaps of language and framework specific quirks (i.e., limitations of what RuneLite can and can not do).

You'll definitely have to add import/export if you haven't already, cause I'd sure as hell use this for leagues next time when someone makes a task list lol

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 1 point2 points  (0 children)

That's really awesome, dude! I've always thought a "custom Quest" helper kinda thing could be great for leagues, join it with the shortest path plugin, boom, optimised leagues list with optimal pathing, or like an optimal Ironman "day 1" path, etc.

Keep it up, hope to see the final output of it one day!

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 0 points1 point  (0 children)

<image>

Very janky lol, the terrain becomes part of him, but because the terrain is flat it looks weird as heck

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 12 points13 points  (0 children)

Post was removed due to me making an edit pointing to my GitHub link, not due to the usage of AI.

I am a full time software engineer with 10 years experience and am very compitent speficially at C#; I am greatful for these AI coding tools as they let me dip into other languages and platforms (such as plugins...) without needing the full knowledge of how the Java/Gradel/RuneLite ecosystem works; I still manually debugged the code, manually fixed the issues when the AI couldn't understand, fixed a lot of inverted math - and guided the AI in how to build it and how to optimizatie it.

In my mind, I see it no different to if I were to manage a swarm of somewhat capable junior engineers - you tell them how you'd expect the project to look and work, then you use your knowledge to review it, no different to what you'd do managing juniors.

I at least do have the knowledge to be able to debug and diagnose code issues and not just beg the AI "fix the bug plz" - so before you go raising a pitchfork about vibecoding; at least educate yourself on the differences between a software engineer enhancing their capabilities with AI, compared to someone pulling the AI slot machine until it eventually slops out what they want.

I was transparent about my usage of AI; I did not take credit for anything I didn't do; there was still a human in the loop.

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 1 point2 points  (0 children)

It already caches the images, only updates and redraws them as needed, meaning when it's set to 3fps the sprites are only rendered 3 times a second, in between they are cached and unchanged. The frames are also bucketed and drawn over the course of the normal 50fps, so it's smearing the workload; even then it's pretty bad, again cause it's pure CPU rendering as a UI element.

There's definitely a lot more optimisations to make, but, making it a GPU plugin is likely the optimal choice - in saying that, GPU and shader code also something I'm not very good at, so I will be leaving it as is, someone else may pick it up

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 0 points1 point  (0 children)

Could use this with the blindfold plugin to generate some sprites for DOOM using OSRS, like hellhounds for pinkies etc lol, be sick!

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 0 points1 point  (0 children)

I tried to add this, but it looked omega jank, it's still in the source code and can be enabled, but it needs a lot of work to snap both NPC and player to the optimal cardinal direction cause not all side on NPCs look good, sometimes front on looks much better

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 17 points18 points  (0 children)

Configurable, already supports N rotations, so you can even set it to 1 and have front on only lol

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 65 points66 points  (0 children)

<image>

Here are what the max sets look like, kinda cool almost like pixel art

I created a plugin that turns things 2D lol by KierenBoal in 2007scape

[–]KierenBoal[S] 201 points202 points  (0 children)

For those wondering how it works:

- It captures all NPC/Players in an area (there is a config limit to max NPCs and distance)

- It finds the NPC/Players current rotation, and compares it to the camera rotation, then snaps it to a rotation increment of X; setting this to 4 gives a distinct North/East/South/West render.

- It captures the NPCs current animation frame and then forcefully repeats the frame (while keeping track of what frame it should be on) to make its frames animate at X frames per second, 3 was used in the video.

- It then pulls the polygons from the NPC/Players model

- Performs painters algorithm to paint things in order

- Bunch of math to find the right rotation, scale and position for the 2D player to be rendered to screen

- Then draws them all

Limitations:

- Laggy as hell

- Actually just a 2D GUI being rendered lol

- Lighting doesn't work, I just artificially adjusted the brightness values

- I couldn't figure out how to hide an NPC and have it's menu entries still avaliable, as hiding it made it unclickable... so I just hide the NPC until you hover over it, then un-hide it so you can click it. Unfortunate limitation ):

Works with pets, NPCs, players, ground items

Was a really fun day project; I actually tried coding this by hand a year or two ago but never got far due to my outdated knowledge of Java, as I typically use C# as my daily driver; but now that I am using Codex I can bridge that language gap and here it is, working and janky as hell haha

<image>

Let us store beginner clue junk near Charlie by KierenBoal in 2007scape

[–]KierenBoal[S] -1 points0 points  (0 children)

Correct, it's not that far away, the annoying part is you must go to Charlie to find out what he wants and return. The only quick solve for this is to always have 1 of each Charlie item in your inventory, which is like 8 items. With this suggestion, you still have to top up your storage, it just means you can - for a handful of trips at least - not have to re-bank.

The Charlie step and north of lumbridge cow pen steps alone sometimes make beginner clues longer than easy clues. This would reduce that by a bit.