Jump to content

Welcome to Rune Tips, the first ever RuneScape help site. We aim to offer skill guides, quest guides, maps, calculators, informative databases, tips, and much more to help you get the most from the Massive Online Adventure Game, RuneScape, by Jagex Ltd © 2009.

Report Ad

Welcome to Forum.Tip.It
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!
Photo

Today...

Real Life

57016 replies to this topic

#52901
MuffinMaddy
[ Display Name History ]

MuffinMaddy

    Dark Wizard Robe

  • Members
  • 775 posts
  • Gender:Female
  • Location:London, United Kingdom
  • Joined:14 November 2007
  • RuneScape Status:Retired
  • RSN:Muffin Maddy
It's results day and I'm pretty sure I'm about to shit myself

I've had overwhelmingly good reports from my friends who have their results that it's scaring me

#52902
RpgGamer
[ Display Name History ]

RpgGamer

    Dragon Slayer

  • Members
  • 9,214 posts
Government shut down meant I had no work today so played PUBG with my brother for something like 5 hours. Won twice. Felt nice to be able to just play games again for a bit.
Posted Image


Anyone who likes tacos is incapable of logic.

Anyone who likes logic is incapable of tacos.




PSA: SaqPrets is an Estonian Dude
Steam: NippleBeardTM
Origin: Brand_New_iPwn

#52903
Veiva
[ Display Name History ]

Veiva

    Demon Vanquisher

  • Members
  • 2,343 posts
  • Gender:Not Telling
  • Joined:18 November 2004
Doot doot.

BAAEsyG.gif

Pretty cool!

PPrLVKl.gif

Spooky...

ozXHe7P.png


#52904
Melos
[ Display Name History ]

Melos

    Dark Wizard Robe

  • Members
  • 930 posts
  • Gender:Female
  • Location:RuneScape
  • Joined:22 June 2004
  • RuneScape Status:P2P
  • RSN:Melos
  • Clan:Maxed

Today I played some League of Legends and lost -.-. Last night I did get a penta-kill though and went 19/1/13. You can see it here: https://www.twitch.tv/videos/156476136


melos2_zpsjnpxw8yx.jpg
"To do all that one is able to do, is to be a man; to do all that one would like to do, is to be a god." - Napoleon I


#52905
MuffinMaddy
[ Display Name History ]

MuffinMaddy

    Dark Wizard Robe

  • Members
  • 775 posts
  • Gender:Female
  • Location:London, United Kingdom
  • Joined:14 November 2007
  • RuneScape Status:Retired
  • RSN:Muffin Maddy
I have a first class degree in Biochemistry

#52906
Flodder450
[ Display Name History ]

Flodder450

    Official Tip.it Minecraft Architect

  • Members
  • 2,843 posts
  • Gender:Male
  • Location:The Netherlands
  • Joined:24 June 2007
  • RuneScape Status:P2P
  • RSN:Flodder450

I have a first class degree in Biochemistry

Congratulations!


2nv5bvl.png
99 Firemaking 30-5-2010 | 99 Fletching 13-7-2014
TET-AU member:6-10-2010 - 21-10-2011


#52907
Hedgehog
[ Display Name History ]

Hedgehog

    ???

  • Monster Hunting Team Leader
  • 7,789 posts
  • Gender:Not Telling
  • Joined:18 November 2006
  • RuneScape Status:Retired
You made an item editor? Like completely from scratch? That's impressive as hell dude

#52908
Estonian dude
[ Display Name History ]

Estonian dude

    Ice Giant Melter

  • Members
  • 3,515 posts
  • Gender:Male
  • Location:Estonia
  • Joined:19 February 2008
  • RuneScape Status:Retired
  • RSN:Saq Prets
  • Clan:Off-Topic

Song festival was on again last weekend.

 

I started a song with a friend of mine. In about 2 minutes, everybody on the stage, that is 14 000 people started singing along. On live broadcast, the interviewer and interviewee were completely dumbfounded and surprised. Everything is freely visible online on the homepage of our national broadcasting corporation webpage, PM me if anyone wants to see/hear it.

 

Once in a lifetime situation and deed.

 

Also, life takes some really [bleep]ing weird and awesome turns, but that is for the relationship thread.


Posted Image

#52909
Veiva
[ Display Name History ]

Veiva

    Demon Vanquisher

  • Members
  • 2,343 posts
  • Gender:Not Telling
  • Joined:18 November 2004

You made an item editor? Like completely from scratch? That's impressive as hell dude


I created an in-process OpenGL tracing module called ARDEN. It's composed of Touchstone, which generates the OpenGL trace; Jaques, which hooks the OpenGL functions; and Rosalind, which generates low-level rendering events relevant to RuneScape, like "draw_gui" or "draw_item_icon_model."

I then created a module called WALDEN to generate game state from the low-level Rosalind events. See, RuneScape's rendering is a bit odd at times. A single animated model (e.g., NPC, player, fire) may be split into a few draw calls. This isn't determininistic. There's other quirks I've encountered too. So I created Chomsky--thus far the only WALDEN component. It pieces together what events correspond to what game state. For example, it sorts skinned model draws by position to piece together individual animated models.

Luckily, GUI stuff is much simpler. At the end of a frame, the game world is transferred into the default back buffer, and then the GUI elements are drawn. Essentially, I compose a GUI element stream: a collection of quads with their associated texture hashes (more like fingerprints, since I apply some heuristics to generate most-certainly unique 16-byte value represents certain visual aspects of the texture).

I have to manually identify textures, but that's easy enough using my tool, Poltergeist. I created a texture dictionary resources, which assigns various metadata (a value, like a name; tags; and key-value data pairs) to a texture hash. Example:

xf7XHha.png

With a DSL I created (boringly named "GPD", for "GUI Parser Definitions"), I can apply a series of matches on the GUI element stream to construct a high-level representation of the GUI. For example, here's the chat panel GPD:

 
chat-panel-content[panel-content]: {
  .background: repeat image panel-background;
  .buttons[]: widget button[chat-button];
  .splitter: {
    .bottom: image chat-panel-border;
    .top: image chat-panel-border;
  };

  .display-name: text(shadowed: true) small-font;
  .quick-chat-button: widget button[chat-button];
  .prompt: text(shadowed: true) small-font;

  optional {
    .log[]: text(shadowed: true, break_on_newline: false) small-font;
  };

  .scroll-bar: widget button[vertical-scroll-bar];
};
The language is pretty simple.

Essentially, you have fundamental match statements: text, image, size, color, and widget. You can compose multiple statements together (using curly braces). The root groups are called widgets (like chat-panel-content above). Widgets can have fields (which can also have fields, see ".splitter" above). Generally, a match statement assigns the GUI element to the field or widget on success. Failed matches result in the parent node terminating.

You can also apply decorators to statements. Decorators modify the behavior of a match statement. For example, the "invert" decorators does what it says on the tin: inverts the result of a match statement. The "peek" statement doesn't change the position in the element stream; the "find" decorator attempts a match, and if that fails, increments the position in the stream and tries again; etc. You can chain decorators: "optional skip repeat image *[icon];" would consume all images with the 'icon' tag, for example.

The grammar is self-explanatory:



Anyway, the above GPD produces the following state:

wcV99Zc.png

(See the window labeled "GUI State").

Now, item icons are generated at run-time. This means I have to render the geometry myself.

Item icons are fully-fledged models. They are rendered into a small framebuffer, and then a bunch of post-processing effects are applied. The actual item render is essentially identical to rendering a model in the game world. For stacked items, the same GUI matching code is used to parse the quantity text. I just hard-code the text-matching parser:
 
auto quantity_text_node = new parser::MatchTextNode();
quantity_text_node->set_wildcard();
quantity_text_node->set_shadowed(true);
quantity_text_node->set_include_spaces(false);

auto quantity_field_node = new parser::FieldNode();
quantity_field_node->set_name("quantity");
quantity_field_node->add(quantity_text_node);

auto root_node = new parser::GroupNode();
root_node->add(quantity_field_node);

this->gui_parser.add_node(quantity_text_node);
this->gui_parser.add_node(quantity_field_node);
this->gui_parser.add_node(root_node);
this->gui_parser.set_root_node(root_node);
So I made an ItemIconManager that listens for 'draw_item_icon_model', 'draw_item_icon_gui', 'clear_item_icon', and 'transfer_item_icon', and 'copy_texture' events. It essentially emulates the RuneScape rendering, albeit without texturing and post-processing.

However, the cool thing is, since item icons are models, and I'm the one doing the rendering, I can render the item icons however I want! So I created an 3D item icon viewer (as pictured in those images). I can select any item icon rendered up to the current frame and view it in all its 3D glory:

S7FlXo4.png

And there you have it. What a wonderful waste of time and talent!

ozXHe7P.png


#52910
Bonez899
[ Display Name History ]

Bonez899

    Varrock Guard

  • Members
  • 1,418 posts
  • Gender:Male
  • Location:some place in canada
  • Joined:18 July 2008
  • RuneScape Status:P2P
  • RSN:FuzzyBonez

I have a first class degree in Biochemistry

 

Congrats Maddy! Must make you feel much better finally knowing the results.

 

Song festival was on again last weekend.

 

I started a song with a friend of mine. In about 2 minutes, everybody on the stage, that is 14 000 people started singing along. On live broadcast, the interviewer and interviewee were completely dumbfounded and surprised. Everything is freely visible online on the homepage of our national broadcasting corporation webpage, PM me if anyone wants to see/hear it.

 

Once in a lifetime situation and deed.

That's awesome man, can't even imagine that. Let alone how annoyed the interviewee must have been to suddenly have all these people singing over him.


Fuzzybonez.png

http://forum.tip.it/...n-eventual-max/ My blog of progress on Runescape.


#52911
Estonian dude
[ Display Name History ]

Estonian dude

    Ice Giant Melter

  • Members
  • 3,515 posts
  • Gender:Male
  • Location:Estonia
  • Joined:19 February 2008
  • RuneScape Status:Retired
  • RSN:Saq Prets
  • Clan:Off-Topic

Actually, she was the head conductor of the whole song festival, so she started crying about how beautiful that spontaneity(?) is and how the song festival truly is a success.


Posted Image

#52912
MuffinMaddy
[ Display Name History ]

MuffinMaddy

    Dark Wizard Robe

  • Members
  • 775 posts
  • Gender:Female
  • Location:London, United Kingdom
  • Joined:14 November 2007
  • RuneScape Status:Retired
  • RSN:Muffin Maddy

Shocked af - got 78% for my final year project on prostate cancer and loads of pretty awesome results in general.

 

I have a new job so relocating for that - I mean, considering my dad passed away and I got strangled and this year has been riddled with drug abuse  (which i'm pretty much all clean from) and mental health strain (which is alleviated significantly), 

 

I CAN'T BELIEVE I MADE IT - thanks guys for your well wishes and generally letting me vent here, 

graduation is in two weeks' time



#52913
Noxx
[ Display Name History ]

Noxx

    Moss Giant Whipper

  • Members
  • 2,948 posts
  • Gender:Male
  • Location:The Desert.
  • Joined:24 November 2010
  • RuneScape Status:P2P
  • RSN:Nox

My sister got back from Sri Lanka last night. Well kinda. Got a call from the police saying she got arrested on the airport because she had a gram of weed in her handbag. Apparently my sister is stupid enough to not check her handbag for shit like this before coming back home. So my dad had to go to the deportation department this morning where she's being held to see what he can do. One of the ladies there said everything is fine, she can go home since it's just a gram, but other people are saying she's getting deported either way. Honestly, she's my sister and all, but i couldn't care less what ends up happening. I know i'll miss her in a few weeks, but she's done nothing but cause stress and drama for the last couple of years with her disrespect and selfishness. Maybe going back to South Africa will bring her back down to earth. 

 

Funny thing is that my parents are acting like my sister is a victim in all of this. Sure, it's hella unlucky being caught and deported for just 1 gram. Guess it's good my parents don't know that she's been dealing out of our house for the past couple of months. 



#52914
Ring_World
[ Display Name History ]

Ring_World

    Dragon Slayer

  • Members
  • 5,475 posts
  • Gender:Male
  • Location:California
  • Joined:13 October 2007
  • RuneScape Status:Retired

Having trouble with moving in the direction the camera is facing

 

29bad703a14a8908c98a9486f4094967.png

 

 

So in this example if the camera rotation is 0,0,0 and I want to move in the x direction I would expect the mesh to grow as the camera got nearer to it but instead it stays in place and if I rotate it will zoom away much faster since its further away from the camera.

 

I've done a lot of testing but I still haven't found the bug but I'll keep looking. Right now I have a lot of debug spam to see how its working.

 

The Matrix multiplication I am doing is in psuedocode

projectionMatrix = identity() * perspective(fov,aspectRatio,near,far)
ViewMatrix = identity * rotate(camera.rotation.x) * rotate(camera.rotation.y) * translate(-camera.position.x,-camera.position.y,-camera.position.z)
ModelMatrix = identity * translate(mesh.position.x,mesh.position.y,mesh.position.z) * rotateX(-mesh.rotation.x * 0.0174533) * rotateY(-mesh.rotation.y * 0.0174533) * rotateZ(-mesh.rotation.z * 0.0174533) * scale(mesh.scale)
ModelViewMatrix = viewMatrix * ModelMatrix
projectedPoint = projectionMatrix * ModelViewMatrix * mesh.triangle.vertice



//Render
updateProjectionMatrix()
updateViewMatrix(camera)
for each mesh
updateModelViewMatrix(mesh)
for each triangle
v1.projectedPoint
v2.projectedPoint
v3.projectedPoint

int minX, maxX, minY,maxY - calculate these from v1,v2,v3

for(int y=minY,maxY;y++){
    for(int x=minX;maxX;x++){
        //use https://en.wikipedia.org/wiki/Barycentric_coordinate_system to calculate if current x,y should be drawn
        //calculate z depth to decide which face should be drawn **** down the line update this to not render backfaces  ****
    }
}




#52915
Veiva
[ Display Name History ]

Veiva

    Demon Vanquisher

  • Members
  • 2,343 posts
  • Gender:Not Telling
  • Joined:18 November 2004
Do you divide projected_point.xyz by projected_point.w?

ozXHe7P.png


#52916
Ring_World
[ Display Name History ]

Ring_World

    Dragon Slayer

  • Members
  • 5,475 posts
  • Gender:Male
  • Location:California
  • Joined:13 October 2007
  • RuneScape Status:Retired

w is just hardcoded to 1.0 so im converting it back down to a vector3



#52917
Veiva
[ Display Name History ]

Veiva

    Demon Vanquisher

  • Members
  • 2,343 posts
  • Gender:Not Telling
  • Joined:18 November 2004
But w won't be 1 after a perspective transformation. Here:

Let P be your point. Let P` be your point post-transformation. Let M be the combined model-view-projection transformation. Let S be the normalized device coordinates.

First, transform P:
 
P` = M * P
Then compute S:
 
Sx = P`x / P`w
Sy = P`y / P`w
Sz = P`z / P`w
See: https://www.khronos....uUnProject_code

Here's my projection method used in a MoonScript math library I made:

project: (point, view, projection, viewport) ->
	Promise.keep("point", Promise.IsClass(point, Vector))
	Promise.keep("view", Promise.IsClass(view, Matrix))
	Promise.keep("projection", Promise.IsClass(projection, Matrix))
	Promise.keep("viewport", Promise.IsTable(viewport))
	Promise.keep("viewport[1]", Promise.IsNumber(viewport[1]))
	Promise.keep("viewport[2]", Promise.IsNumber(viewport[2]))
	Promise.keep("viewport[3]", Promise.IsNumber(viewport[3]))
	Promise.keep("viewport[4]", Promise.IsNumber(viewport[4]))

	view_projection = projection * view
	transformed_point, w = view_projection\perspective_transform(point)
	transformed_point *= Vector(1 / w)

	return Vector(
		(transformed_point.x * 0.5 + 0.5) * viewport[3] + viewport[1],
		(transformed_point.y * 0.5 + 0.5) * viewport[4] + viewport[2],
		(1 + transformed_point.z) * 0.5)

Edited by Veiva, 05 July 2017 - 11:13 PM.

ozXHe7P.png


#52918
Kalphite
[ Display Name History ]

Kalphite

    Skeleton Shield

  • Members
  • 1,232 posts
  • Gender:Male
  • Location:Michigan
  • Joined:9 November 2005
  • RuneScape Status:Retired
  • RSN:kalphiteman4

yoo, haven't really posted here in a minute but things have been going pretty well for me lately! I've been having a lot of visitors from home this month which has been super fun. Got to see some friends from college, then my parents, then this last weekend my best friend from Michigan came out here which was an absolute blast. Now this weekend I'm on my way back home for a music festival (fourth year going to blissfest woooo). Flying out tomorrow and I just cannot wait, my mind has been completely turned off at work in anticipation.

 

flying spirit for the first time tomorrow though, wish me luck ;_;



#52919
Melos
[ Display Name History ]

Melos

    Dark Wizard Robe

  • Members
  • 930 posts
  • Gender:Female
  • Location:RuneScape
  • Joined:22 June 2004
  • RuneScape Status:P2P
  • RSN:Melos
  • Clan:Maxed

Today I watched the League of Legends Rift Rivals Finals with North America vs Europe. North America 3-0'd EU hard which made my day, considering NA has never really did well in international events.


melos2_zpsjnpxw8yx.jpg
"To do all that one is able to do, is to be a man; to do all that one would like to do, is to be a god." - Napoleon I


#52920
Randox
[ Display Name History ]

Randox

    The Consultant

  • Administrators
  • 6,603 posts
  • Gender:Not Telling
  • Joined:21 June 2006
  • RuneScape Status:Semi-Retired
  • RSN:Randox
  • Clan:All Friendly

Finished season 3 of iZombie. I wasn't sure I liked the direction the show was taking, but it really turned around for me at the end and got me good and hooked again, so now I get to wait for Season 4. Blah. Caught up on House of Cards too, but I'm starting to feel like the writers are winging it a bit. Still entertaining though.

 

Also starting to give some consideration to not having my computer in the loft where all the heat collects for the summer, but boy does it feel good when you come down. Could be 28C and it would still feel cool :D


b6brc9.jpg






Also tagged with one or more of these keywords: Real Life



Recent blog entries on this topic

Photo

From: Today...

By Goonstalf in Goonstalf's Blog, on 16 July 2018 - 05:12 AM

Source: Today...

Read Full Entry →

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users