Tuesday, February 28, 2012

First Parser!

Hi,

Well, I've been horribly busy, but, I have successfully implemented a very basic GWT parser! It doesn't yet do all that it will eventually need to do, but it definitely does a lot of it, including outputting (some) of the header and a fair bit of the body.

I also was successful in integrating the parser into the main project, in time for the presentation on the 29th.

Running the parser on a "blank" canvas gives the following as of now:
<html>

<head>
<title>[PAGE TITLE HERE]</title>
</head>

<body>
<div>
<!-- CANVAS "Canvas{ID: "isc_Canvas_0",
position: "absolute",
className: "normal",
width: 100,
height: 100,
children: Array[2],
cacheOffsetCoords: true,
zIndex: 200036,
}" GOES HERE -->
</div>
</body>

</html>
This should be a valid webpage, even if it's not very interesting . . . yet.

I also created the PowerPoint for our presentation tomorrow. I made the basic structure and did a lot of the editing.

Ian

Monday, February 27, 2012

Changing Roles

Hi,

Honestly, I'm a failure at GWT. It drives me insane. I don't know what it is--the poor design, the convoluted and broken API, or the lack of documentation so that I can work around it. Maybe I just haven't learned to love it yet, and I'm giving it undeserved flak. Maybe everything somehow makes sense. I don't know. But I can't stand it.

That's why, henceforth, I am distancing myself as much as possible from GWT as possible. I have changed my role in the group. I will be writing code to parse GWT objects into HTML. I can do this; it's more low-level and less tied to GWT's API than making the objects in the first place. I also have experience with HTML.

While Nialls works on the GUI, I'll be taking the canvas objects he creates and turning them into standard HTML. For now, the HTML will be dirty. Among other things, it will make use of tables for alignment.

The design challenges here will not be trivial. Data conversion is difficult to execute in a clean, crisp way. In addition, there's the meta challenge of getting the HTML itself to have a decent design, even if it is using tables. I honestly don't see what the big deal is, just so long as the HTML isn't poorly written.

Additionally, after the fiasco of last week's presentation, I have tasked myself with creating the group's presentations. Presentations will begin with one person (me) describing at a high level the group's accomplishments, the architecture, where we're going, what we've been working on, and any bureaucracies that need to be addressed. From there, the individual group members will give more in-depth discussions of what they are doing and how they are doing it. After this will come questions.

So, I will be doing GWT to HTML conversion and will be handling organizing the presentations. For next time, there will hopefully be a spike of minimal GWT to HTML parsing, and our next presentation.

Ian

Thursday, February 23, 2012

First Client Meeting

Hi,

Well, we had our first client meeting today. I can't say it went . . . spectacularly.

I think a lot of the problem was that we talked about what we did individually, instead of as a unified whole.

Well, we know better now. In the future, presentations will be more like presentations instead of journal dumps. We're working a lot on group communication, so hopefully, we'll be more coherent.

Additionally, I think perhaps it would be most wise to have one person summarize the group's proceedings, and then individual questions may be deferred to those who know best.

Ian

Tuesday, February 21, 2012

Menu Spike Postmortem

Hi,

Well . . .

I've played around with it some more, and I'm disliking GWT more than I'd originally thought. It seems very powerful, but there's basically nothing coherently organized about how to use it. I find stuff on the GWT site like "GWT is being used by tens of thousands of projects around the world.". Uh huh.

In any case, the good news is that I've successfully completed a spike. It's ugly and bad, but it works. It may be found in the SVN repository.

The spike is (VERY heavily) based off of one of the other spikes (presumably Nialls's). I cleaned up a lot of things, in the process trying to get some semblance of understanding. In the end, I removed a lot of the hardcoded stuff, and tried to abstract it. It still does basically the same thing.

The primary issue this raised, however, is how the general structure will be set up. The main concern I have is the use of canvases versus the use of panels. Everything I saw said that you should use panels. However, in the spike I was working from, canvases were used.

From what I dimly understand, panels would allow automatic positioning and sizing, which is something this project will desperately need. On the other hand, again, as I dimly understand it, canvases allow drag and drop functionality. And I have to say, it looks really good. Unfortunately, I wasn't able to find anything useful about this schism in functionality and how to resolve it.

The other, somewhat tangential issue, is copying of objects. When dragging, a new object is created. That's fantastic, but it does mean that the old object's settings need to be copied over. The spikes currently just hardcode it, which is dirty. And the GWT designers, in their infinite wisdom, didn't provide some adequate way of doing this--or, at least, making it obvious. I hacked up a deep copy using what essentially amounts to serialization, but the software complained that it didn't know what the classes I used are. So, GWT-created pages don't support all of Java? Okay, that would have been nice to know. In any case, the upshot is that copying might be an issue.

Ian

Menu Spike

Hi,

Well, I've got a start. I've decided that I'm going to reverse engineer some of the previous spikes. I reconfigured Eclipse to be more strict, so now a number of problems have been caught earlier.

GWT is ugly, but at least using it is falling-down simple. So, I don't anticipate too much of an issue. I think that it will definitely be possible to get something at least working well by Wednesday, even though I'm only (really) starting the spike today, Tuesday.

We shall see.

Ian

Monday, February 20, 2012

GUI Design

Hi,

So I'm doing a lot of the GUI design, mostly because this is the only thing I can really latch onto in the project.

I met with Nialls, and we agreed on the general structure of the GUI. I will be writing a spike that demonstrates menu creation using GWT. This is pretty much the trial by fire for me with GWT, so we'll see how it goes.

I have given myself until Wednesday morning to write something rudimentary, because that is when our client meeting is; it would be awesome to have something cool to show. The finished spike will be completed by Saturday.

There are three areas of the GUI: the left, center, and right. On the left is a list of all the different things that can go on a website (menus, images, panels, etc.). You can drag and drop these elements into the center area, which shows how the website will look. You can select elements in this working area. If an element is thus selected, the right area will show options for that element (styles and other attributes).

The idea is to do this for the specific example of menus.

Ian

Sunday, February 19, 2012

Getting Set Up

Hi,

After a major ordeal attempting to get stuff to work, I have finally succeeded.

Installing GWT was a hassle. The download link appears somewhat broken. In any case, it would get about halfway through, and then crash with a timeout error. I downloaded an archive, and installed from that without (too) much further ado (tweaking settings were necessary).

After this, I installed Smart GWT, which is a library over GWT (I think?).

After installing SVN (Tortoise) on my computer, I was able to check out the project's repository. There were two spikes. One ran and one did not. In any case, I'm fairly confident that I'll be able at least to use this thing.

Next time: my spikes and udpdates!

Ian

Thursday, February 16, 2012

Getting Started

Hi,

So I met with the group in the common area at Centennial. I like my group members, and I look forward to getting to know some of them more closely.

I received a sort of mental runabout trying to figure out the project's architecture, but I think I have a (better) handle on it now.

Both the group leader and myself agree that it would be good to design the project, and then divide work. With luck, this will be done soon.

We are tentatively planning to meet this weekend, and I think it would behoove us to do so each weekend. Due to some limitations, ideally this could be done remotely, at least sometimes.

The project will have a surprisingly large coding component. Of course, in Java. Le sigh. At least there's a reason: the Google Web Toolkit, which will be an important part of making the project, is based on working with Java. Given how awesome it is, I . . . suppose . . . it will be worth it.

For now, I'm having trouble installing some specific Eclipse plugins requisite for the project.

The group leader should have something akin to SVN up tonight (or very soon, certainly).

Ian

Monday, February 13, 2012

Project Chosen

Hi,

Well, I think nearly all of the really good projects got culled. None of the remaining ones interested me as much. In the end, none of my top five were chosen.

I asked, 3/4-seriously, if I could just go solo on my own project, but I vaguely caught a "no" from Ackley's direction.

All things considered, it's good, I suppose, that I got my first choice of the remaining projects.

As I understand it, it will be a mostly web-based project. This will provide an opportunity to brush up on my web design skills (although my new website has helped with this already). In particular, I look forward to exercising my PHP-fu, and gaining experience with JavaScript (I hope it won't prove as disgustingly condescending as Java).

My CSS skills are also pretty pathetic. I've used it, but poorly. In my new site, I have one CSS sheet. It's actually a PHP file that's loaded as CSS.

Anyway, though I'm not . . . ecstatic about how everything turned out, I'm going to make the best of it.

Ian

My Presentation Rant

Hi,

Well, now that it's over, my project pitch I think went pretty well.  I sat down (actually paced endlessly) and memorized the following tirade:
Hasn't it ever bothered you that those games you play are plotless, and that any given backstory is merely an excuse by the game developers to give you repetitive gameplay?

At the risk of sounding like an idealizing hippie, I find the dreary monotony of modern games despicable. Something needs to be shaken up, and I think that it's high time that that shaking up comprised the pathetic excuse of a plotline that as a gamer you endlessly have to suffer through.

Consequently, I am making a game where there is something to think about. It will be a WWI flight simulator, but the characters will have personalities, and the backstory will have merit in its own right. It won't just be some curtain to hide a gaping editorial hole as in some other game where you just punch the same buttons in the same ways to do the same thing for the same rewards, incentives, and dumb monologues.

By contrast—and, in case you glazed over it in my proposal—our game will have a plotline that is surreal, anachronistic, bizarre, and downright insane. We are going to make a game so “out-there” that when something like a swarm of giant spiders, quantum tunneling through mountains, wielding mayonnaise-shooting death ray cannons, accompanied by dragons, and lead by Dalek overlords under the mistaken geographic presumption that they're in Spain, kick down the front doors of indie gaming and crash the party, the rest of you will be too awestruck to wonder why you didn't think of doing it first.

Well, here's your chance. I need imaginative, flexible, fast-coding innovators with a passion for creating the next big thing out of whole cloth. It will be fun, challenging, and rewarding. I need CS students who thrive on their own reserves of such commonly untapped creativity. If you like code, and you like good games, we need you. Please consider my proposal; thank you very much.
The tirade was delivered confidently, and I'm pleased to say that that I exceeded my expectations for the amount I would remember (nearly all; faltered a bit at the end in the moment).

I got a lot of people asking me about the project and seeming interested.  However, I think the overall effect was too strong.  In one student's words: "Your project sounds really great, Ian, but honestly, I think you're too fucking insane to work with."

Well, I prefer the term "idealistic".  Oh well.

Ian

Wednesday, February 8, 2012

Revised Project Proposal

Hi,

Well, I basically rewrote the proposal.  It's still recognizable, but I made a lot of improvements that addressed most issues.

In particular, I've clarified the point about the story, and addressed redundancy by breaking the projecting into chunks and analyzing each of those chunks to completeness within that section.

The formatting is, I think, nicer, and I think the overall structure is much more coherent.

So, here's the link!
http://cs.unm.edu/~imallett/other/460/pp2f.pdf

Ian

Saturday, February 4, 2012

Overall Reaction to Reviews

Hi,

So, I've gotten all the reactions back from all people (two students, plus Ackley).

In general, I think that they provide some key insights, and give inklings of suggestions to improve the overall proposal.  I also feel like some people missed important and clearly obvious sections of the proposal, or were unnecessarily rude.

This aside, in sum, here are the (major) things that will be addressed in the final revision of the proposal:

  • Story: The story was truly intended to be open-ended, so that everyone in the team can share in making it awesome.  I VERY DELIBERATELY did NOT specify what the story would be, so that we'd all be able to work on it.  However, this point needs to be made much more clearly.  Every reviewer commented on this.
  • Missing Sections: The proposal has several missing sections, such as stakeholder identification and budget.  These must and will be added.
  • Consistency and Flow: The proposal is sometimes redundant and inconsistent.  Personally, I feel like the entire thing reads like a hippie's rant--disillusioned and illogical.  Other reviewers also noted that the proposal is often redundant.

Ian

Friday, February 3, 2012

Ideal Project Team in Three Words

Hi:

To me, an ideal project team is:
"Fast, Flexible, Professional"

"Fast": software development needs to happen quickly.  Changes need to happen rapidly so that progress can be made.  This goes hand-in-hand with flexibility to produce Agile Software Development.

"Flexible": The software team must be open to new ideas, and be able to quickly adapt to implementing them.  This ensures that the project can be restructured in the event of changes, or even completely scrapped and renewed if necessary.

"Professional": Finally, the software team doesn't merely need to be productive; the software team must be professional to both themselves and the client.  This ensures that there is a working environment for everyone that is conducive to actually making progress.

Words I might have included, but didn't:
"Competent, Intelligent, Cheerful"

"Competent": Good software development does not have to be made exclusively by competent people.  Although it is somewhat of a prerequisite, so long as the development is professional and fast, the product will be good.  This may imply that being able to develop quickly while still being professional implies competence; so we needn't be redundant by including it.

"Intelligent": Similarly to "Competent".  Additionally, while intelligence is important to being a computer scientist, I'd argue that being flexible and open to new ideas is more important.  Without an ability to learn or be open to new ideas, intelligence stagnates.

"Cheerful": One doesn't need to enjoy one's job to be successful at it (although I would hope that you do . . .).  Simply so long as the person's attitude does not cross the boundaries of professionalism.

Ian

Wednesday, February 1, 2012

Proposal Review 2

Hi,

The second proposal is entitled "SimpleMesh Project Proposal".

The gist of the second proposal is to create a very easy language (file format) that will allow novice users to write genuine 3D models easily.  Additionally, the project proposal supposes that this format can be easily read and written by scripts.  The second part concerns the creation of a model reader for this file type that allows basic navigation and other viewing.

My overall reaction is that the proposal has merit, especially in that is seems to be a (fairly) new idea (I myself have definitely found myself wanting something like this at one time or another).  However, I do feel like the proposal itself does not do the idea justice.  The paper is riddled with typographical and grammatical errors, and the proposal's structure could use some work.

Format: 4/10 = > 2.0/5.0
The paper is long enough that I feel like a table of contents might be useful.  There are a variety of headings used, inconsistently, to attempt to give some order to the paper.  However, the text itself seems haphazard.  I get lost in the middle trying to remember what exactly the purpose of a particular section is.  Some things would better be put in other places.  I support the author's inclusion of a terminology page to help readers unfamiliar with the topic area.

Writing: 4/10 => 2.0/5.0
The proposal has many errors.  I specifically noted many in all of grammar, verb agreement, punctuation, hyphenation, pronoun agreement, and sentence structure.  Spelling is mostly okay, although some typos manifest conspicuously throughout.  The writing itself is colloquial instead of professional, and reads like a transcript of a stream-of-consciousness monologue.  Although I previously mentioned this in the format critique, many sections feel out-of-place where they were put.  In fact, the entire thing doesn't appear to have been revised or proofread at all.  At least the general message is clear.

Goals and Tasks: 6/10 => 3.0/5.0
The author clearly has a good vision of what it is he wants to accomplish.  However, only some of this is successfully imparted to the reader.  The goals presented are at times vague, or alternately too precise (e.g., "the SimpleMesh project will consist of many adapter parts across many systems." versus "The orbiting distance[ in the viewer] can be adjusted by shift+up and shift+down.").  It should be said that everything the author wants done is present within the report; my complaint is that the goals can often only be inferred from the author's rambling prose.  My advice: short bullet points; expand as necessary.

Scope: 8/10 => 4.0/5.0
After reading the proposal, one actually has a surprisingly good idea of what the project entails.  I can't say I understand exactly what the boundaries are, because the project is deceptively open-ended, but I have a pretty good idea based on what the author intends to accomplish.  This is definitely something my report needs to work on too: I think an explicit this-is-in-but-this-is-out discussion would be beneficial.

Plausibility: 8/10 => 4.0/5.0
I think the project is definitely doable, but, like my project, I think a lot would depend heavily on the team.  I think that file parsing and semantics will be harder than the author anticipates.  Making the project general enough to be useful while still fulfilling its stated task of being incredibly easy would be a fine line the project would constantly have to tread (for example: "Can I use 3D textures?  Don't the texture coordinates have to be 3D?  Can I do that with your system?").  I feel like a more concrete plan would improve plausibility, although I may just be getting confused by the inconsistent language of the document.

Novelty: 9/10 => 4.5/5.0
The project isn't completely novel, but I think it would fill a much-needed void in graphics.  As I said above, it will be a fine line of complexity.  But, I think the idea is basically new to this field, and would be useful besides.

Stakeholder Identification: 9/10 => 4.5/5.0
The stakeholders are never identified explicitly, but the author does in fact state that the project is for people who know next to nothing about graphics ranging to people who just want quick and easy fixes for modeling applications.

Support and Impact: 8/10 => 4.0/5.0
The author identifies the project as open source and expects it to subsist, at least at first, on a PayPal donation button.  I've had a PayPal donation button on my webpage of free tutorials and projects for about five years, and--though those resources have found at least some audience--as of today, no has ever clicked it.  Not even once.  But, I think it might be plausible, and honestly I can't suggest a better option for an open source project, so I can't really complain there.  The section is brief and could be in more detail, but overall, I think this section is pretty good.

Evidence: 6/10 => 3.0/5.0
The author presents some information, but generally it expects readers to assume that such a product would be useful.  To some degree, this is obvious (both having experience in this field, and through reading between the lines of this proposal), but it's never clearly stated.

Challenges and Risks: 4/10 => 2.0/5.0
The author acknowledges some of the major challenges, including the difficulty of using 3D APIs, but this is only part of the project.  A huge part of the project seems to be the .smpsh file format they plan on inventing from scratch.  This is not even mentioned as a challenge.  Lexical analysis and parsing of custom file formats, while certainly possible in this time period, is still a significant challenge that should not be taken lightly.  The author also mentions the difficulties of making a website and making sample meshes.  I agree that these are challenges, but like all the challenges of the project, the discussion about them--and more importantly how to solve them--is either lacking or nonexistent.  The author stresses creativity as a requisite for overcoming challenges.  That's good, but it doesn't really address the specifics of what will make this project challenging, nor how to address those concerns.

So: overall, I think this is a comparatively excellent idea.  As stated above, I think that the proposal could benefit from being restructured and cleaned up in the ways enumerated.

Ian

Project Proposal Review 1: Response

My project was reviewed by Kyle Wagner on his blog, at this location.  I think he raises some good points, but has also missed some.  I'd like to comment on his response below:

Kyle writes: "The proposal should have focused on making a game engine rather than have the pretense that a story driven game is made.".  This is my bad.  Apparently, the proposal did not give the impression that the point was on making an involving story.  The point really is to make a story-driven game, but I suppose I must have focused too heavily on implementation details.  This will be revised in the next version.

Kyle's opinion is that the project is "impossible to implement in a twelve-week period".  To this allegation, here is a screenshot from a one-day "spike" demonstrating the feasibility of the project.  Start to finish, the spike took 22 hours:
Notice the crude shadows.  The airplane is also shooting, and flying over a terrain loaded from a file.  The code for this is horrendously messy, but it demonstrates that the technical challenge of making a basic game framework to add content to is NOT impossible.  I also found the assertion surprising given our mutual experience in CS 413, which required a demanding project as well.

It should be noted that in-class, Kyle said that making a renderer might not be such a difficult task for someone like him or me, but that as a group project proposal, it might be unfeasible--although I do say in my proposal that "A graphics library will likely be used to help set up the basics.", and I would hope that people would know their capabilities before signing up for any project.

Follows, a breakdown of Kyle's quantitative assessments and my responses to his rationale.

Format: 2/5
Kyle says that the format is hard to follow and disorganized, as well as missing sections.  This is somewhat true.  I feel like the proposal is well-organized, but some sections are indeed missing.  This is because I was unaware of Ackley's recommendations for the proposal here.  In any case, this is an excellent (implicit) suggestion; this shall be corrected in the next revision.

Writing: 3/5
Kyle writes that the grammar and spelling are "fine save for a few errors".  I'll look for these while revising.  Kyle points out that each section is a rehash of the last.  This is somewhat true; I tried to look at the project from different perspectives in each section.  However, it is correct that that could be improved.

Goals and Tasks: 1/5
In contrast to Kyle's assertion that there is no description whatsoever of how the project should be accomplished, the proposal does give more than two pages of step-by-step discussion about what each phase of the project entails in section V.  I agree that the "proposal gives a vague idea of what the author wants"; my idea is never really concretely hammered down.  This will be revised.

Scope: 1/5
I agree that I can be more clear about what is and what is not a part of the project.  I feel like there is at least some consideration (for example, networking is optional if there's enough time).

Plausibility: 1/5
Kyle's opinion is that "there is a lack of direction" and that "the project has too many ideas crammed into one to be plausible".  I definitely agree that there is at least some lack of direction, though I note that I deliberately left the storyline open-ended, because I think that's the fun part of the project, and I didn't want to tie us down.  To the second, I don't think there are too many ideas--the project is, in essence just a WWI flight simulator with a story that doesn't suck.  The only extra idea--to make it multiplayer--was deliberately made optional in case it would make the project too hard.  And, with regards to plausibility, please see the screenshot above.

Novelty: 1/5
Kyle writes that the idea is too unclear to be compared, and that there are no competitors listed.  I think that this is true.  In the next revision, competitors and inspirations will be listed.  I would argue that my project has at least some novelty, in that it goes in a direction that modern games never go, but I think perhaps this was impeded by a lack of clarity.

Stakeholders Identification: 1/5
I did not list stakeholders in my proposal.  This will be corrected in the next revision.

Support and Impact: 2/5
Kyle writes: "The author throws out a couple of ideas[,] but never flushes them out to be a business model."  I completely agree with this.  It shall be corrected.

Evidence: 1/5
I also agree that there is a lack of evidence in the arguments for need and impact.

Challenges and Risks: [No score given?]
Kyle writes "The proposal doesn't take a look at what might be difficult or why it is."  I would like to direct Kyle's attention to section IV, "Requirement Challenges".  This section describes the major issues and potential resolutions of each of the six major portions of the project, over the course of a solid two pages.  I actually think this is one of the areas the proposal is best on.

So: thanks, Kyle, for reviewing my proposal!  I appreciate that you expounded the faults of the project proposal as you saw them rather than trying to sugarcoat or ignore them.  And, despite the fact that your review was harsh (even you said as much), I think that it's all for the best.  I feel like a lot of your criticism is justified and useful, although I think that you missed some key points when reading.  I will take your recommendations into consideration when revising this proposal.

As for me, I realized some other faults in my proposal as I reread it with Kyle's critique.  These issues will be fixed as well.  A selection is below:
-As opposed to listing what is included in the project and then letting the reader infer from there, I think a good idea would be to define some negative boundaries of what will NOT be in the project.
-Adding explicit risks would be beneficial in section IV.
-Kyle mentioned this in passing: there is no budget analysis.

Ian