Jump to content

Isometric tile rendering using pixijs / grapefruitjs


carterza
 Share

Recommended Posts

Hi all,

 

This is my first post on these boards, however some folks I follow on twitter post on here, so I figured I'd register.

 

I've been working, for a while now, on a multiplayer server (written in golang) and a client (written in javascript). I've gone through several stages of prototyping, and in the last stage I had the client and server communicating with each other. Players were able to connect to the server, they would be spawned in the game world and could move around.

 

My client in the last prototype was extremely simple, and consisted mostly of spaghetti code. I started hunting for frameworks and settled on pixijs and portions of grapefruitjs (I've cut out a lot of the stuff I don't need at this stage (audio support, physics support, etc...)) I have no idea what type of game I'm creating at this point I'm really just continuing to prototype and learn.

 

Anywho, I just got done writing the initial isometric tile layer rendering code, and here are the results (again using pixijs and large portions of grapefruitjs) :

 

BYhOTBSCUAA0uNh.png

I still have a very, very long way to go, but I am pleased with the results thus far. All of the assets I am using are from http://flarerpg.org/ (an isometric tile engine written in C/C++) and I have learned quite a bit from studying that games code.

 

I will update this thread as I progress. This weekend I will be cleaning up the code I've written thus far, and I will also migrate my repo to github. I also plan on starting to implement entities with layered sprites so that equipment can be equipped / unequipped and the game will reflect that (ala diablo or ultima online).

 

Please feel free to leave me any comments, criticisms or questions.

 

Thanks, and enjoy the rest of your Friday!

 

-Zach

Link to comment
Share on other sites

hey glad to see other people interested in isometric rendering :)
I'm working on a similar project (actually now it's an engine we use internally for clients).

here is an outdated prototype I made supporting multiplayer, basic NPCs and chat : http://demo.ezelia.com/ 

the proto is one year old, we are now working on a more stable version with a nodejs server, and a new client supporting mobiles and tablets.

Link to comment
Share on other sites

Feel free to contribute back isometric support to grapefruit. I look forward to seeing what you come up with!

I isolated the isometric tilemap changes over the weekend in an attempt to create some pull requests for grapefruit.

 

There's a change in TIleMap where the orientation of the map needs to be checked before TileLayer.render is called.

 

Then, depending on the orientation, TileLayer.render is called or a new method I added to TileLayer - TileLayer.renderIso - is called.

 

There are quite a few methods in TileLayer that need to be overridden so I'm wondering - would you rather have a IsometricTileLayer class or do you want the additional logic and methods inside TileLayer?

 

Other than that nothing much has to change - I can probably get a pull request into grapefruit later this evening if you're eager to review my implementation.

 

Please let me know  :)

Link to comment
Share on other sites

I agree. I think putting both sets of logic into the same class, while they are similar, is going to confuse folks reading the code.

 

I'll go ahead and refactor this evening and get in touch with you tomorrow when the code is split up. I was going to try and get it all done tonight but I have some job work to finish up first.

 

I have some other cool stuff to show you that I've done with grapefruit and pixi - I should have a little alpha demo playtest up in the next few weeks that I can share along with the code of course.

 

Anywho, have a good one, will be in touch soon.

Link to comment
Share on other sites

I agree. I think putting both sets of logic into the same class, while they are similar, is going to confuse folks reading the code.

 

I'll go ahead and refactor this evening and get in touch with you tomorrow when the code is split up. I was going to try and get it all done tonight but I have some job work to finish up first.

 

I have some other cool stuff to show you that I've done with grapefruit and pixi - I should have a little alpha demo playtest up in the next few weeks that I can share along with the code of course.

 

Anywho, have a good one, will be in touch soon.

 

Sweet! Feel free to send PRs or email me if you feel more comfortable (chad@pantherdev.com). Be looking out for the upcoming official release (v0.1.0), though if you are using latest master that is pretty much it :)

Link to comment
Share on other sites

  • 2 weeks later...
  • 6 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...