AttemptX

If all you have to do is store the tile’s tileset index, you’ve got it made with these libraries. At least in terms of ease of use.

for ( int y = 0; y < level_.getLevelHeight(); y++) {
                    for ( int x = 0; x < level_.getLevelWidth(); x++) {
                        
                        int tileWidth = Level.TILE_SIZE_SQ;
                        int tileHeight = Level.TILE_SIZE_SQ;
                        
                        int renderX = x * tileWidth;
                        int renderY = y * tileHeight;
                        
                        if ( !cameraBounds.contains(x,y) && !cameraBounds.contains(x+1, y+1)) {
                            //don't render the tile as we can't see it
                            continue;
                        }
                        
                        int tileInd = layer.getTileIndex(x, y);
                        int tilePartX = Math.floorDiv(tileInd, Level.TILESET_VERTICLE_TILES) * tileWidth;
                        int tilePartY = tileInd % Level.TILESET_VERTICLE_TILES * tileHeight;
                        
                        //draw the tile
                        batch.draw(tilesetTex_, renderX, renderY, tileWidth, tileHeight, tilePartX, tilePartY, tileWidth, tileHeight, false, true);
                    }
                }

Hah, yeah I could store the tile’s location on the tileset and save some computation, meaning there would be 3 integers per tile (60mb) , but even that for the entire classic map doesn’t seem terrible. Right?

In terms of raw memory numbers, no, that’s not bad at all. There are so many other considerations, though. I have no idea how GDX works to be able to comment.

To be honest, I’m not 100% across it’s internal workings either and I’m probably shit talking :cool:

Those could be loaded only when a player is near enough… same goes for other players, being loaded when they are near enough. But I guess that’d require some kind table following where every other players are at all times? With 1800 players like Graal The Adventure used to have, I feel some optimization will be required.

Yeah it’s not a problem worth solving. I’ve decided I’ll go with chicken’s region based idea and a region will then be loaded based on some distance from the boundary edge to the player’s screen.

update : it seems I have acquired my forum subsection, even if it is mis-spelt. I feel like I at least owe people an explanation as to why no progress has been posted as of late. Basically I discovered that my serialisation and parse times of network packets were for core packets taking unacceptable amounts of time to be performed, 300-500ms. I suspect google protobuffers can perform better than this so long as I keep my data structures relatively simple. However, having suffered a somewhat motivational hit, I have yet to research whether or not I can keep using protobuffers or will have to move to something else or write hand optimised serialisation and parse methods which will take a hit on portability should I ever port my server or client to another language. And now you know.

It matches your user name! I made it, btw.

[SIZE=12px][FONT=arial]Almost

tricxsta vs. [/FONT][/SIZE]tricxta

[ATTACH=JSON]{“data-align”:“none”,“data-size”:“full”,“data-attachmentid”:189788}[/ATTACH]

codr needs some coffee :stuck_out_tongue:

Haha, oops! I could be like a typical person and make up excuses like “I’m working”.

?\(ツ)/? hey man I don’t lead a stress filled life even in the slightest and I make mistakes like that all the time. What’s my excuse? hah

edit: nooooo you can’t even shrug emoji without it breaking. vBulletin you’ve gone too far! [spoiler]no, i refuse to use the pony shrug[/spoiler]

Would you consider releasing your source code? I would like to laugh of your coding ways, then rewrite your code in Python, then pretend I did my own client too.

I have a somewhat 130 classes in my project, and some of those are pretty monolithic (and no, that doesn’t include any auto generated protobuffer code). Not only that, but I deem the architecture of both my client and server to be rubbish as I did not lay out a fixed set of functionality at the beginning of my project (i tried, keyword being tried).

Anyway, it’s a massive effort to understand the labyrinth I created to the point the little documentation I did have on my design wasn’t enough, and I’ve now forgotten a good portion of what is done and why. It’s for these reasons I see little benefit, and a great deal of shame coming from releasing my source.

In the coming weeks, I might start putting together a more thorough design document that encompasses all that I learned from this iteration, and I’ll most likely make a bit of a dev blog to keep you guys informed as to my progress. A sidenote is that I’m not aiming for max efficiency here, so I’ll probably stick with higher level libraries for both rendering, sound, and scripting (notice how networking isn’t here :P) as I want to push this project out in a timely fashion. And yes! of course I want it to be usable, but utmost perfection is no goal of mine a certain calibre of machine will most likely be expected (don’t worry, it won’t be anything crazy).

My unlocked 4ghz with a 960 can surely handle that.
No higher level library for networking, is that because you don’t plan to support any or because you want it to be more efficient?

well… more specifically no higher level library for serialisation of data because yes! that kind of processing time matters greatly.

My question, would the reborn devs be able to add GS2???

Yes, they could but what for?
Get used to GS1… no support for GS2 is or has been planned ever.
What’s the fuss around GS2 anyway?
To me, it’s like Phyton 2 vs Python 3. Ok sure Python 3 has more bells and whistles but that’s what they are. To get the job done, what’s really missing is an NPC server, not GS2. (and no, we’re probably not getting that either.)

Besides, AttemptX’s goal isn’t to emulate Graal. Forget about us wanting to emulate Graal, we’re elsewhere now.

because if we don’t have gs2 how can we steal all the useful scripts out there like staff boots