Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

So we're a couple of comp sci students in college (US) and for our data structures final project, we decided to work with minecraft. 

 

The basic gist of the project is to take a piece of software and see if you can improve it by changing around any of the data structures, (arrays into lists, stacks into deques, priority queues into associative hash maps implemented over a B-tree, etc)  If changing a data structure becomes too difficult, the assignment is merely to just improve the software in some way.

 

We got the MCP (Minecraft Coder Pack) setup and working, and we were able to get some trivial changes made and recompiled with no problems.  We're also fairly sure after glancing over the code that we probably don't want to mess with the deep underlying structures (blocks, chunks), but instead change something that doesn't require rewriting every java file.

 

We looked into OptiFine: http://optifog.blogspot.com/, and its somewhat similar to what we want to do (in terms of improving performance), but probably not to that degree of detail (also the author of OptiFine was concentrating more on memory management and threading than on data structures).

 

So, I guess our general question is ... Thoughts?  Advice? Is this even possible?

 

Thanks in advance!

 

(And also we apologize if this is being posted in the wrong section, let us know and we'll move it!).

 

TL:DR

School Project.  Make Minecraft harder/better/faster/stronger by changing data structures.  Thoughts?

  • Author

Do you have any other suggestions for modifications we could make? Any other smaller bugs that people have looked at?

Do you have any other suggestions for modifications we could make? Any other smaller bugs that people have looked at?

Hmm, i dont really know, the thing is, minecraft is a huge modding community, most things that can be done, have been done. I suppose you could look at explosives, that seems to be what has the biggest impact on peoples computers. Maximizing performance while minimizing loss of quality would make some happy I am sure, but I don't know if it is anything that hasn't been done before.

  • 2 weeks later...
  • Author

What modifications that have already been done have been the most effective? We are still just looking at the original code, so we don't necessarily have to do something that has been completely untouched by others.

What modifications that have already been done have been the most effective? We are still just looking at the original code, so we don't necessarily have to do something that has been completely untouched by others.

You may want to take a look at the CraftBukkit server, (though its not compatible with Forge) they've made many optimizations, including data structure improvements. The changes can be found here: https://github.com/Bukkit/CraftBukkit/tree/master/src/main/java/net/minecraft/server - notably: AABBPool is rewritten to use an "intelligent cache", Chunk's entitySlices is changed from an ArrayList to UnsafeList, ChunkProviderServer's unload queue and chunks map is changed to a LongHashSet and LongObjectHashMap (indexed by LongHash.toLong(i,j)), BlockRedstoneWire and ServerConfigurationManagerAbstract uses a LinkedHashSet instead of HashSet, and various other tweaks. Maybe you could port these optimizations to Forge?

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.