Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Project Cortex

Status
Not open for further replies.
Junior Spellweaver
Joined
Jul 28, 2019
Messages
162
Reaction score
308
Try the spaceship gates (monolith), they have an animation. Dont think many others have an animation.

This one has an animation but the thing is, only the open/closed frames are in the visualisation binary manifest, and they're added in the sequence on their own as 0 and 3, I think it's meant to be able to calculate the sequence frame on its own but at the same time it's super weird. The exe_gate as 4 frames in total per animation, only 1 is logged in the official sequence.



test?



gg, the thread is bugged (?)
 
Junior Spellweaver
Joined
Jan 28, 2013
Messages
157
Reaction score
104
I don't know where the animation of the gate has disappeared off to but it seems like it's been lost somewhere in the conversion, I'm not too sure but I'm investigating.

Try the spaceship gates (monolith), they have an animation. Dont think many others have an animation.

Yes, those type of gates use a special "transitionTo & transitionFrom" animation. Will have to code special support for it. It will have states 0 / 1, with transitions of 100 / 101
 
Junior Spellweaver
Joined
Jul 28, 2019
Messages
162
Reaction score
308
f1DMaaV - Project Cortex - RaGEZONE Forums


CSyOG5Y - Project Cortex - RaGEZONE Forums


Before anyone asks, no I did not sit in my basement and select the color of the ones from Habbo using the select tool.

I obviously wrote a script to do that for me. D'uh, what do you think I am? Not a programmer?! Ha!
 

Attachments

You must be registered for see attachments list
Last edited:
Newbie Spellweaver
Joined
Apr 29, 2015
Messages
91
Reaction score
6
Very nice job! This is awesome! You going wild


- Via Tapatalk -
 
Junior Spellweaver
Joined
Jul 28, 2019
Messages
162
Reaction score
308
A4DCQB5 - Project Cortex - RaGEZONE Forums




ZmUqRdS - Project Cortex - RaGEZONE Forums


The transition from moving from one tile to another is now smoother, as in when you're half-ways through the tile, the avatar priority is switched to the next tile, meaning the furnitures underneath you won't be drawn after your avatar.



9whWrYV - Project Cortex - RaGEZONE Forums


You can now move furnitures, synchronized with the server and all room users all the way through.



2n0NqFF - Project Cortex - RaGEZONE Forums


Walls are now rendered properly.
 

Attachments

You must be registered for see attachments list
Joined
Aug 10, 2011
Messages
7,401
Reaction score
3,299
There is a weird back & forth animation.

On Habbo it moves the furniture and only moves it back if an movement error packet is send back to the client. This smooths out the animation and doesnt make it feel like its jumping back & forth as the furniture placeholder is already drawn at the location you want to move it to.
 
Junior Spellweaver
Joined
Jul 28, 2019
Messages
162
Reaction score
308
OiUWmEd - Project Cortex - RaGEZONE Forums


Thanks for the information guys.
 

Attachments

You must be registered for see attachments list
Last edited:
Junior Spellweaver
Joined
Jul 28, 2019
Messages
162
Reaction score
308
EpspVd - Project Cortex - RaGEZONE Forums


Viewing user profiles are being put together, groups have been made (the base at least), I wrote a group badge generator that is done on the client. I made it possible to have the staff badge as the group badge (cannot be set by the client nor server, has to be done through the database). The plan is to introduce group chats when I get around to making the messenger. Oh and I introduced mottos. That's about it for tonight, took me a while to make the groups and style the dialog itself.
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Jul 28, 2019
Messages
162
Reaction score
308
3FGyc3s - Project Cortex - RaGEZONE Forums


Introduced friends with different types (0 = unaccepted, 1 = friend, 2 = favourite friend, 3= best friend, 4 = worst friend, 5 = blocked). User profiles now also fetch data of offline users, including their friends/groups/other information. Last logged in and creation timestamps are now logged.

KittyChloe - Project Cortex - RaGEZONE Forums


Introduced badges, you can have 5 active ones at the same time, leveling an achievement up will delete the previous achievement badge and give you the new one and set the active state to the same as the old one.
 

Attachments

You must be registered for see attachments list
Last edited:
Newbie Spellweaver
Joined
Feb 25, 2018
Messages
30
Reaction score
39
I really like your project, but I find it's a shame to replicate the Habbo UI instead of making something new and better.
 
Junior Spellweaver
Joined
Jul 28, 2019
Messages
162
Reaction score
308
I really like your project, but I find it's a shame to replicate the Habbo UI instead of making something new and better.

I'd argue that the amount of details I put into the interface design makes it worth it and keeps the Habbo vibe we all know and love. Plus I'm nowhere close to being a professional programmer/interface designer. I'd much rather follow guidelines from already existing details, it's how I am able to keep the flow up, pushing out almost daily updates, trying to keep the Habbo section somewhat alive.



Kr2s32 - Project Cortex - RaGEZONE Forums


You can now toggle the badges in your inventory.



KittyChloe - Project Cortex - RaGEZONE Forums


Did some adjustments to the hit registration, left one is the live render, right one is one with the contrast turned up so you can see what's actually happening. Users are now rendered with the RGB values of: 255x255x[user index] and walls are rendered with the constant value of 255x255x255. 255x255xZ being the reserved ones.



KittyChloe - Project Cortex - RaGEZONE Forums


Clicking on users now shows the user's profile.



v1QV8ya - Project Cortex - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Last edited:
Junior Spellweaver
Joined
Jul 28, 2019
Messages
162
Reaction score
308
RCNnx1L - Project Cortex - RaGEZONE Forums


You can now sit/lay in rooms.
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Jul 28, 2019
Messages
162
Reaction score
308
Are you using a library like PixiJS or Phaser? Or did you create your own canvas "game engine"?

I can't wait to see the code, this looks so good. It'd be extremely educational (at least for me)

I'm rendering everything on my own, no libraries but jquery for the interface is used.



eLmglqA - Project Cortex - RaGEZONE Forums


Not a perfect transition yet, but it's a start. Rewrote the server sided path finder execution as well, should be a bit smoother in the background now.



zjExgej - Project Cortex - RaGEZONE Forums


Scratch that, repaired it.
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Jan 28, 2013
Messages
157
Reaction score
104
I fixed an issue I noticed with the hit registration, I also increased the hit registration canvas rendering performance by quite a large bit.

KittyChloe - Project Cortex - RaGEZONE Forums


Did some adjustments to the hit registration, left one is the live render, right one is one with the contrast turned up so you can see what's actually happening. Users are now rendered with the RGB values of: 255x255x[user index] and walls are rendered with the constant value of 255x255x255. 255x255xZ being the reserved ones.

I used to do my hit registration similar to this as well, its pretty inefficient. I suggest instead creating a hitmap and storing 1 hitmap for each texture (your texture should ofc be reusable). Here's the order of how it should work

1) Before wasting any resources make sure the (x, y) being checked is within the bounding rectangle of the sprite being checked
2) If point is found within the bounding rectangle, check if a hitmap has already been created for it (sprite.texture.hitmap or similar)
3) If it doesn't, generate it
- Create the hitmap & iterate pixel data of the texture, setting any alpha pixels below our threshold (127) to 0
Code:
        const imageData = context.getImageData(0, 0, width, height);
        const hitMap    = new Uint32Array(Math.ceil(width * height / 32));

        for(let j = 0; j < height; j++)
        {
            for(let i = 0; i < width; i++)
            {
                const num       = j * width + i;
                const num32     = num / 32 | 0;
                const numRest   = num - num32 * 32;

                if(imageData.data[(4 * num) + 3] > 127) hitMap[num32] |= (1 << numRest);
            }
        }

        texture.hitMap = hitMap;
        texture.hitMapWidth = width;
4) Using the hitmap, find pixel data relative to the point being checked and test if the value does not equal 0
- I'm unsure of how your code is written but getting the pixel data from the hitmap should be something like this
Code:
     const hitMap         = texture.hitMap;
     const dx               = Math.round((x + texture.frame.x));
     const dy               = Math.round((y + texture.frame.y));
     const num            = (dx + (dy * texture.hitMapWidth));
     const num32         = ((num / 32) | 0);
     const numRest       = (num - (num32 * 32));

     return ((hitMap[num32] & (1 << numRest)) !== 0);

Doing it this way will entirely remove the need of having a separate canvas, redrawing and coloring pixels. The hitmap is reused across all sprites with the same texture so you only ever need to generate it once per texture. This will drastically improve rendering performance.
 
Junior Spellweaver
Joined
Jul 28, 2019
Messages
162
Reaction score
308
I don't render the hit registration all the time, only when needed, I draw a spritesheet of each furniture upon the creation of tee furniture, with its defined rgb colors. It doesn't take more than some millisecond to draw the hit registration.
 
Status
Not open for further replies.
Back
Top