Generate a clojure sub-project to see if I have any better luck using that for the actual UI pieces
Add a bunch of boilerplate. Totally untested (I haven't even tried to do a lein run). Just decided to back off from basing the initial state machine on an async channel, since it really needs to be communicating over the client socket. Just wanted to have this approach at least vaguely milestoned, in case I change my mind later
Debug it far enough to get to 'Waiting on the Client'. This version relies on jeromq, which I really don't want. Then again, there are lots of things I don't want
Start building a basic splash screen. Probably doesn't work at all, but I'm out of steam for the night.
Main change: adding a second splash screen that indicates the client has connected and we're waiting for it to connect to the server. File got converted to DOS mode in the process.
Convert to unix-ish line endings
Fix basic syntax errors and similar typos. Add the placeholder for the directory (along with the directives to point there) where the native binaries go. Have the code for rendering the splash screens running...right up to the point where it tries to clear the color buffer. That fails because there's no OpenGL context in the current thread.
Was getting an error about an existing thread owning the graphics context when I tried to do a reset. Add some graphics termination code. Now doing a second reset causes a NPE. And the basic problem about not having a graphics context in the current thread persists.
Add comment about multiple top levels
Code merge
Preliminary changes to get all the graphics running in 1 thread. Totally untested--lwjgl isn't running on windows
Mucking around with leiningen bug #898. On windows, at least the first frame of my window gits drawn. It pretty much immediately throws an exception, and this solution is more than a little filthy (it's extremely platform-dependent), but it's a little closer
Find an idea about how to make this work cross-platform. Fix the basic timeout that was throwing an exception (the timeout ctor requires an int: floats and ratios don't cut it). Fix a NPE from an atom in the dead universe that I'd forgotten to initialize. Don't try to proceed to 'ready to play' until we've received a response from the client, which isn't even being requested yet
Initial stab at making the native stuff multi-platform. Only checked on Windows
The renderer shouldn't switch to the second phase of its splash screen until we get a ping back from the client. Trying to implement that. So far, not having much luck
Switch to using cljeromq as a git-dependency rather than trying to maintain a copy in this repo. Still having major issues with trying to port to penumbra, but that's what I get for trying to tackle too much at once.
Code merge. Line-ending differences are obnoxious.
Based on my experiments with my pen-sample project, get what I had ported to penumbra. Sort of. The FSM is pretty much totally broken/commented out. Right now, a window flashes, then it crashes when I throw an exception that I shouldn't be reaching. Still. It's a nice step forward
Update to new alpha version of core.async
Add a namespace for the FSM. Start implementing it as an agent