Sheet Manager v1.2

General discussion pertaining to Elysian Shadows, ESTk, ESGamma, and the Adventures in Game Development series.

Moderators: News Mods, Elysian Shadows Team

Sheet Manager v1.2

Postby Falco Girgis on Sun Oct 21, 2012 2:16 pm

Discussion topic for the "Sheet Manager v1.2" blog article:

http://elysianshadows.com/dev/project/blogs/underlying-technology/101-sheet-manager-v1-2
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Re: Sheet Manager v1.2

Postby dandymcgee on Sun Oct 21, 2012 4:13 pm

Excellent work on the sheet manager and the extensive write-up! Abstracting the selection code did seem to be the best solution in this case, even considering the added time commitment. I know you've been through hell trying to stay focused on finishing this gigantic addition for a good while now. It's great to finally see it completed. I remember the QGraphicsItem limitations very well, and although there are some drawbacks to the per-layer approach it looks like you've found a fairly solid solution.

Back to engine land? ;)
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
 
Posts: 4911
Joined: Tue Apr 29, 2008 4:24 pm
Location: New Hampshire

Re: Sheet Manager v1.2

Postby eatcomics on Mon Oct 22, 2012 10:32 am

dandymcgee wrote:Back to engine land? ;)

AWAY!

I did greatly enjoy the article. I read the whole thing thinking that I would love to implement something like this. Then I realized I have nothing to use it on :S

Anyways, you boys keep up the good work, keep us posted, and god speed. :worship:
Image
User avatar
eatcomics
ES Beta Backer
ES Beta Backer
 
Posts: 2664
Joined: Sat Mar 08, 2008 9:52 pm
Location: Illinois

Re: Sheet Manager v1.2

Postby Falco Girgis on Mon Oct 22, 2012 11:10 am

dandymcgee wrote:Back to engine land? ;)
Certainly.

I wasn't even supposed to be in Toolkit land. After the months of obstructive sleep apnea-induced sleep deprivation, I desperately wanted a standalone side project that wouldn't be too mentally taxing (because I couldn't focus for shit) and that would offer a high amount of reward for little work. I needed to crawl my sorry ass back to the project...

Unfortunately Sheet Manager wound up being neither of these, haha. :lol:

As soon as I began, I realized that in order to do it correctly, I would have to rewrite a gigantic chunk of the heart of the Toolkit, and implement a very complex abstraction mechanism. I went for a few weeks without even having the Toolkit compile, and the mental tax SM placed on me during my brain foggy days without sleep was more than I had bargained for. I vividly remember a few days when I had broken everything that I doubted if the mechanism would even work... I suffered through it and can ultimately look back with a greater sense of pride knowing that I did it correctly and that the back-end is pristine...

Anyway, I have gotten medical help for my sleep issues, and my cognitive abilities have returned to normal... I have found my former belligerent self again, and I'm ready to return to the engine.

Also, we have some seriously awesome stuff in the article pipeline for you guys. Lets just say that Tyler has also been walking the path once more. ;)
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Re: Sheet Manager v1.2

Postby YourNerdyJoe on Mon Oct 22, 2012 9:49 pm

Very nice job!
I see it took a little more than .0073 years to complete ;)
User avatar
YourNerdyJoe
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
 
Posts: 83
Joined: Sun Oct 02, 2011 4:28 pm

Re: Sheet Manager v1.2

Postby bbguimaraes on Tue Oct 23, 2012 6:49 am

Really nice article. And I have had sleeping problems in the past, I can tell it's no fun at all.

Just a little curiosity, what is the rationale for putting an underscore before the method names? I don't believe I had seen that before.
User avatar
bbguimaraes
Chaos Rift Junior
Chaos Rift Junior
 
Posts: 324
Joined: Wed Apr 11, 2012 5:34 pm
Location: Brazil

Re: Sheet Manager v1.2

Postby Falco Girgis on Tue Oct 23, 2012 12:21 pm

YourNerdyJoe wrote:I see it took a little more than .0073 years to complete ;)
Clearly Marcel's estimation skills are supreme. :mrgreen:

bbguimaraes wrote:Really nice article. And I have had sleeping problems in the past, I can tell it's no fun at all.
Yeah, it really robbed me of my life. Slowly but surely everything that brought me pleasure in my life lost its magic. I quit hanging out with friends, quit developing, quit feeling any kind of happiness at all. I became a robot. I could feel my brain becoming more and more clouded and my body becoming weaker and weaker. No matter how hard I tried, nothing could make me happy. It was the most painful thing that I have ever endured, and I'm only happy that it's over.

bbguimaraes wrote:Just a little curiosity, what is the rationale for putting an underscore before the method names? I don't believe I had seen that before.
I use that prefix for private/protected methods. You probably see it more often for private member variables. I also like being able to distinguish between internal helper functions and the public API of my classes...
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Re: Sheet Manager v1.2

Postby dandymcgee on Tue Oct 23, 2012 5:29 pm

Falco Girgis wrote:I vividly remember a few days when I had broken everything that I doubted if the mechanism would even work...

Ahh, I've had a few of these myself. Though now that I'm using Git for my big projects at work I don't even have to think twice before starting a huge ass tangent feature. Just commit, branch and go! Even when you forget to branch, as long as you commit early and often the tree can be fixed later.
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
 
Posts: 4911
Joined: Tue Apr 29, 2008 4:24 pm
Location: New Hampshire

Re: Sheet Manager v1.2

Postby MarauderIIC on Mon Oct 29, 2012 6:20 pm

So, are you designing your code to be modular from the beginning now, in order to enhance code reusability and reduce refactoring time for (unforeseeable) situations like these? I know you mention that it wasn't a fault of the original design, but obviously it would have helped if it had been be part of it.

Looks like you suffered from a bit of feature creep, haha. Do you think that that set you behind much?

Why can any destination view also be a source view? Shouldn't that be, well, an xor relationship (dest xor source)?

//SUBCLASS ME, CUNTWASPS! --FG
inline PlaceTileGroupUndoItem(const UndoItem::TYPE type): TileGroupUndoItem(type) {}
Why haven't you subclassed PlaceTileGroupUndoItem yet? >:)

Beyond that, I had trouble following it due to the complexity and the fact that I just read two pages of low-level code descriptions ;) Perhaps more discussion coming later

(If I have power)
I realized the moment I fell into the fissure that the book would not be destroyed as I had planned.
User avatar
MarauderIIC
Respected Programmer
Respected Programmer
 
Posts: 3430
Joined: Sat Jul 10, 2004 4:05 pm
Location: Maryland, USA

Re: Sheet Manager v1.2

Postby Falco Girgis on Tue Oct 30, 2012 11:20 am

MarauderIIC wrote:So, are you designing your code to be modular from the beginning now, in order to enhance code reusability and reduce refactoring time for (unforeseeable) situations like these? I know you mention that it wasn't a fault of the original design, but obviously it would have helped if it had been be part of it.
I don't believe this is an example of something that should have been designed modularly in the first place. This logic was already complex enough just to get implemented. It's the entire heart of the Toolkit, and at the time of its creation, we had no idea that we would ever make a Sheet Manager or would ever want to reuse the code. The additional layer of complexity and overhead for already complex code was nowhere near worth it initially... imho.

MarauderIIC wrote:Looks like you suffered from a bit of feature creep, haha. Do you think that that set you behind much?
Haha, yep. I'm really bad about feature creep when I'm developing. I can't help it, though. If I don't get to put all of my flashy features in, I can't take as much pride in my work which hurts my motivation... It's a vicious cycle. Sometimes I take it too far and have to remind myself that I am trying really hard to implement is more for my own ego than it is serving any real purpose. :lol:

MarauderIIC wrote:Why can any destination view also be a source view? Shouldn't that be, well, an xor relationship (dest xor source)?
We wanted it so that you could make a selection from the destination and place it back onto itself. In MapView, you can select an entire structure that has already been created on the map then place it again elsewhere. You can also copy+paste this structure and place it in another DestView. It's pretty useful.

MarauderIIC wrote:Why haven't you subclassed PlaceTileGroupUndoItem yet? >:)
I did! It is subclassed by MapViewPlaceTileGroupUndoItem and SheetManagerPlaceTileGroupUndoItem. That's really just the abstract base class for actual tile placement. As with the other classes, I stopped discussion at the abstract layer and didn't go into individual ESTk/SheetManager implementations.

MarauderIIC wrote:Beyond that, I had trouble following it due to the complexity and the fact that I just read two pages of low-level code descriptions ;)
Yeah, I don't think I really could have followed my own article very well either. I tried to keep things high-level and made a clear distinction between functionality and implementation (so you could skip all the code). Most of my articles shouldn't be anywhere remotely near as complex as this one... Sheet Manager really turned out to be more like a standalone software tool than just a toolkit feature... I'll do my best to keep the articles more focused and coherent in the future.

MarauderIIC wrote:(If I have power)
Yeah, so they were talking about that on the local radio show this morning... Thousands of you without power. I will assume you are one of the unlucky ones if I don't get a response back sometime today. Good luck! :mrgreen:
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL


Return to Elysian Shadows Discussion

Who is online

Users browsing this forum: No registered users and 2 guests