Final stretch for milestone 3 + brief soft code freeze after

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Alright, both Immortius' Entity System and the latest round of GUI improvements from Anton are now in develop. Some smaller tweaks are pending, but essentially milestone 3 - persistence - is complete! We can save, browse, and load worlds, both the player and assorted entities also persist (even chests, yay!). You can't directly move things in the inventory yet, but indirectly via a chest you can shuffle stuff around. And tons of more stuff I'll list more accurately when I do a fancy change summary. Huzzah! Thanks for all the efforts :)

After I get a chance to review and update some more stuff (mainly ponder doc for https://github.com/MovingBlocks/Terasology/issues/73) I'll push to Master and stick a fork in it. After that I'd like for us to complete the directory restructure documented in https://github.com/MovingBlocks/Terasology/issues/191 real quick - it shouldn't be too bad, but I'd like to make sure we have agreement on the details so we won't need to worry about that topic again for a long time. We needed a quiet period for that to minimize branch disruption, and we look to have a chance now. I'm figuring a soft code freeze to simply encourage no crazy deep branches for that would be an idea. By all means keep going, but be wary of the impending restructuring - you might need to redo your workspace or move stuff stuff around manually :geek:

Anybody want to volunteer for that - Immortius perhaps? :D Otherwise I'll look at it more closely soon :)

We can discuss the exact directory lineup details in the ticket.

Other small things that are pending right now that I'm aware of - any of these are optional for the milestone but could possibly be figured out before we merge to master:

* Applet appears to be broke again :( I'm not even sure when or why, and am getting a nervous twitch from realizing I probably can't blame Kai this time :laugh:
*** Update: Appears to just be me :(
* ES - no entity save on gotoWorld, talked to Immortius about this one already and it probably shouldn't even count as an issue since using gotoWorld in the console is a debugging activity anyway (more background in https://github.com/MovingBlocks/Terasology/issues/78 which is closed now)
* ES - gelcubes can cause crash on exit (I think Immortius mentioned the reason for this somewhere already, dunno if easy fix)
* ES - Immortius has some more stuff pending in a branch - might be good to submit in time for the Master push, but I don't know for sure :)
*** Update: Merged
* Spawning - need to do more suitability checking on player start position (may spawn in cave, on top of trees, or underwater) - this is pretty easy so if somebody want to whack it real quick feel free, otherwise we can spin it a quick item for later
* LWJGL - I tried upgrading to the latest version to fix a Mac issue, but it needs code tweaks, might be minor, but not sure (viewtopic.php?f=5&t=258)
*** Update: Better upgrade commit with code fix from Immortius merged in
* UI / ES - we might need some sort of doc primer on this new stuff, tho I'm sure those uninvolved can figure it out with a little effort
* Respawning no worky, Anton pointed out it was commented out in UIPauseMenu after I noticed the button didn't work. Not really sure why :)
*** Update: Fixed by Immortius
* Manifest files need to actually be stored inside the individual world save dirs (I moved them to the root of SAVED_WORLDS ages ago as I couldn't retrieve the individual world dir before chunks started to generate - should be different now, especially with the world browser)
*** Update: Minor tweak applied so the new world selector and the chunk performance test get along better (chunk test creates a world save dir that doesn't comply to the new world selector)
* Tools - a few haven't been rewritten yet. I'll be tinkering with at least some of this (debug tool / portals) when I get a chance.

A few assorted backing details are hanging out over in the now-closed pull request for Anton's GUI stuff: https://github.com/MovingBlocks/Terasol ... nt-5083727

This might also be a good time to go through the issue tracker and look for other stuff we've finished. This is on my list - but it is 1 am and I have to go to work tomorrow :D
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
Re: Final stretch for milestone 3 + brief soft code freeze a

Cervator said:
Anybody want to volunteer for that - Immortius perhaps? :D Otherwise I'll look at it more closely soon :)
I'm perfectly happy to volunteer for that. :)
* Applet appears to be broke again :( I'm not even sure when or why, and am getting a nervous twitch from realizing I probably can't blame Kai this time :laugh:
Seems to work fine here (using latest develop)
* ES - Immortius has some more stuff pending in a branch - might be good to submit in time for the Master push, but I don't know for sure :)
Up to you. There's nothing too important there, the highlights are properly disposing of chest contents when a chest is destroyed, and the beginning of prefab integration into the entity system.
* LWJGL - I tried upgrading to the latest version to fix a Mac issue, but it needs code tweaks, might be minor, but not sure (viewtopic.php?f=5&t=258)
I have a fix for this, and have upped a branch with it. Turns out the new version of lwjgl doesn't like meshes with no indices or vertices, which can occur for chunks which are either solid or all air.
* UI / ES - we might need some sort of doc primer on this new stuff, tho I'm sure those uninvolved can figure it out with a little effort
I should write something up on the ES regardless, would be a good way for me to review the decisions I've made at the very least.
* Respawning no worky, Anton pointed out it was commented out in UIPauseMenu after I noticed the button didn't work. Not really sure why :)
That would be me. :oops: The functionality behind that button was lost during the entity system shakeup, should be easy to add it back in (just need to grab the local player entity and reset location to spawn location and a few other things). I should check over the TODOs, hopeful I didn't miss anything else.
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
Re: Final stretch for milestone 3 + brief soft code freeze a

Oh, one other thing that needs to be done before M3: I think the ImageManifests should either be regenerated each run, not saved at all, or there needs to be code to detect when they are out of date. When I ran the applet the textures were wrong on a number of things that had been updated since I last ran the applet.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Re: Final stretch for milestone 3 + brief soft code freeze a

Hmm, I did think the "feel" of the browsers was off, maybe something was wonky on my system.

Code detection for manifests for sure, for when a world legitimately needs to change (user enables something or does an upgrade that comes with new blocks). Ultimately should probably tie to a world upgrade thing. Regenning each time might work coincidentally right now, but would probably be bad conceptually with saved worlds.

Thanks!

Edit: On a related note is https://github.com/MovingBlocks/Terasology/issues/62 so we can have automated version info somewhere in the artifact. For the applet you can force the use of new code rather than rely on a cached version, and I figure if the code can read the version number of individual worlds it can make a determination on whether it needs to trigger a world upgrade "thing" - that would be a little more involved tho, and can probably be dealt with later.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Re: Final stretch for milestone 3 + brief soft code freeze a

Bump - OP updated, some more stuff has been fixed / merged / pushed, network graph is so clean!
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Re: Final stretch for milestone 3 + brief soft code freeze a

Milestone officially complete!

Master is updated, branch map is pretty clean (https://github.com/MovingBlocks/Terasology/network), and we have another stable build in Jenkins (http://www.movingblocks.net:8080/jenkin ... logyStable)

I'll do the more proper change notes tomorrow, or Sunday at the latest. Poked around at updating a few issues tonight, but will do most that later too. Bit too much sleep deprivation :D

https://github.com/MovingBlocks/Terasology/issues/191 is a go for implementation - Immortius at the helm.

Also on the horizon: https://github.com/MovingBlocks/Terasology/issues/184 for improving game state architecture. We have at least a couple known problems (crash on return to main menu) this item should help fix early next milestone.

Oh, TNT blocks can be blown up now. Whee! Now we just need a graphical explosion effect.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Re: Final stretch for milestone 3 + brief soft code freeze a

Phiew, I'm up too late again, but did the brief change notes in the wiki http://wiki.movingblocks.net/Main/DownloadTerasology (being a bit indecisive on release numbering) and posted to the blog: http://blog.movingblocks.net/2012/04/18 ... -complete/

I also made a job in Jenkins to build the applet properly. It doesn't quite copy to its home on the blog, but on a funny note (to me, since I'm a geek) you can run the applet right out of Jenkins as it stores the output nicely as build artifacts: http://www.movingblocks.net:8080/jenkin ... eApplet/1/

Oh, and ya, the applet works for me again. Somehow the link between my local Java and browsers had broken, had to reinstall a JRE to get it working again. Now all is fine, including building the applet via Gradle. Yay!
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Re: Final stretch for milestone 3 + brief soft code freeze a

Completing my near monologue in this thread, this is now completely done, huzzah! We're all clear to start going nuts with new stuff, and there's plenty of fun to share in

Build 148 contained the new stuff: http://www.movingblocks.net:8080/jenkin ... sology/148 and a few more have already been dropped on top of that including another pile of new blocks from Metouto

As I noted in a few places it might be good to reset your workspace if you update to the latest code in-place (otherwise IntelliJ may look funny, even after "gradlew idea"):

1) Make sure you have no pending local changes or copy them somewhere (copying the whole dir is handy)
2) Pull/Merge in the latest code normally
3) Delete everything in the project dir except .git
4) Run "git reset --hard HEAD" to get everything back
5) Run "gradlew idea" and see all the new/moved libs get pulled
6) Profit and/or There is no Six depending on your choice of flavor :)
 
Top