Tuesday, June 29, 2010

New Places

After a haze of Bioshock, reading, and sketching, I've regained some momentum. Lots of new ideas for hotel layout, slowly being converted to ASCII. Also a more logical graph of the layout:
Once more of these places are set up, I'll get started on the Hotel's first special guest... he should be a familiar one. Guests follow a scheduled path, so how should they react to collisions? How definite should their path be? I'm voting waypoints, to allow them to sidestep players. Well, not quite waypoints, but connected-regions. Ah, this brings me back to the good old days of science projects... I can't wait to return to pathfinding. Anyway, your task is to interrupt their schedule with relevant diversions. Hopefully there should be several different sub-activities to that part...

  • combat
  • conversation, followed by hunt-down-clues
  • ESM tracing at night for more clues
  • kitchen minigame to upset their stomach
  • snake minigame to help sort their thought-stream

I also separated the MnemonicRL content and hotel content a bit more strictly. The server running now only has MRL stuff, although I could make it run in Hotel-mode just as easily. This first chunk of the game doesn't involve Cyphen quite so immediately, so it's better for me to encapsulate my thoughts strictly within the Hotel. Well, off to it.

Monday, June 28, 2010

Return, Barely

My surgery (wisdom teeth) went fine; I've technically been back since Saturday. Code hasn't captured me, though -- focus is lost. The multiple projects thing doesn't seem to help. I also tried playing with Perlin noise, which could greatly help with animating water or clouds, but I'm missing some of the math background. All I've really managed is a half-hearted stab at a ballroom:
But where's the old sense of charm? The magic is in detail, not breadth. Gameplay-wide, I'm split among traditional roguelike combat, the herding puzzle in the kitchen, the snake sentence-munging, and the guests trodding their eternal paths. Bleh.

Thursday, June 24, 2010

A brake

I'm taking a brake for a few days due to some medical things. Train company's gonna be pissed, but they don't need to stop anyway. Server should stay up, but in my painkiller-induced haze, who knows. I started work on a snake-type creature (think the old game, snake); got an idea or so on how it can be used in the hotel. Also worked a bit on (ideas for) combat mechanics, but no new revelations that'll help. Ultimately, what's the most comfortable way for non-programmers (read: you) to tweak monsters' stats up or down a bit?

  • Editing a self-explanatory text file
  • A web interface with nice forms
  • Some built-in editor... most work for me, I'd have to draw up a nice interface for that.
Ideas? Well, I'm out.

Tuesday, June 22, 2010

A Different Pace

I tried something new today to escape the rut, and it worked rather pleasantly: I didn't touch Mnemonic till an hour or so ago. Instead, I worked on my heat distribution Python program -- tomorrow, I'm going to generalize and implement a strategy for partitioning a map among N processors, complete with ghost zone handling. Next I delved into openscenegraph and emerged with 10^4 colored cubes arranged properly. I could never get ogre deployed properly on Debian. Tomorrow I hope to get my own camera controls going. Oh, and I started exercising more as well -- that greatly helps my state of mind.

Oh, I guess if you're following this blog, you want to hear about Mnemonic. Well, too bad, because you're going to see instead.
Oh, nothing new, you say? Go login. It swings. To and fro, parabolically... I might animate the candles, make them aflame...
And then here's the lobby in general, touched up just a taste with some color and a tree. I haven't figured out how I want to animate the fountain yet, nor will the lobby remain so plain-looking.
So tomorrow? Who knows. Within Mnemonic, I'm splitting my focus between adding new maps to the hotel and stabilizing combat for normal gameplay (oh, did I mention the revamped battle bar? Still a few tweaks I'm working on though). We'll see.

Monday, June 21, 2010

Direction

Well, I gave up on the web layout and 3D dungeons. Got it working more or less, but realized it wasn't what I was shooting for. Worked instead on adding real-time lag back in. After you move, individual maps can control when you can move again (don't worry, this is always in the milliseconds). I vaguely want to get combat stable to a point where people might play, but I'm not sure if I want to work on this or not.

Beyond Mnemonic, I cleaned up the Python code for heat equations that I wrote during camp. I'm challenging myself to get it working in parallel properly. I'm also struggling with OGRE yet again... Zombissault has been on hold since I returned to Mnemonic. I'd like to get myself in the pace of working on a few projects at once to avoid stasis in any. More later, maybe.

Sunday, June 20, 2010

Time and Again

Home has become a place of sleeping, eating, and showering the past few days, but my schedule is winding down again. I vaguely remember getting the web-type dungeons working a few nights? days? ago, but it doesn't seem that I've written about that yet. I was waiting to get 3D dungeons working, which aren't tough at all -- I'll elaborate tonight with results, provided I don't wind up with friends again. Ah, the busy life.

Wednesday, June 16, 2010

Well, something

Another day with an ample magnitude in the time category. Camp got me thinking about collaborative diffusion (an old pathfinding technique) in a new way at least... the concept of ghost zones and "adaptive mesh refinement" sound suspiciously like fancy terms for things I've ended up figuring out for myself in previous years.

I didn't too much today, but I do have a sample random curve:
My algorithm is recursive. Breshamn (misspelled and verbified!) a line between the two points. Unless the line's shorter than a threshold, then find the center and project a third point perpendicular outwards a little bit. Then draw two lines, instead. It certainly does produce... unique paths, perfect for the level style I have in mind. The problems:

  • Gonna have to modify my current border() cellular automata method to handle paths this thin. I don't quite remember why I ever wanted " . " to not become "#.#"
  • Sometimes the path isn't continuous, and I'm not sure why there are breaks. My guess is rounding errors; grid's limited to integers
  • The path can end up crossing itself because the angles and amplitudes permit this. Actually, I guess that's technically permissible -- not for a curve-generating algorithm, but within the context of the maps they'll be used in, it'll add flavor.
So that's about all. I have a vague idea in my head to use cellular automata (or similar) to produce a random curve, but only time will reveal how useful this may be.

Tuesday, June 15, 2010

Exhaustion

Camp is now taking away from my develoment time, ironically enough. Python frustrates me with its awkward syntax, intrusive print statement, wacky data structures. I'm biased from my Perl/C++ background, but by the end of the week, I will have a justified list of complaints. :)  We start MPI / parallelism tomorrow, although I won't exactly be there for that lesson.

Anyway, I have so little time this week to do anything. I've got an hour or so before exhaustion (and the dusty overlords shall claim me for the next chunk of days), so I'll see about those new guestroom maps. The pace will pick up again, I promise.

Monday, June 14, 2010

Lexical Jiffy Cult Bees

Ehem, or technical difficulties. It's been a long day. "Boot camp" proved sufficient, provided the other four days of it pose better challenges than haggling with a new associate. So I come home without a parallel computation mindset, but with a nice sketch of my final idea for the area preceding random guestrooms... a maze. Picture winding corridors, twisting and bending and diverging constantly, overlapping in three dimensions... imagine tracing an Esemplasma (if I haven't explained this before, I will later) trail through these paths. Imagine that your means of detecting ESM must be fueled by vanquished memories. Oh, and imagine that the room becomes more angry and potent if you wander off too far.

You've got my idea.

So although the server is down and I have no access to anything (currently fixing Western Digital's wretched sector alignment bug from a live CD), I am working on some "simple" code to generate a sin wave between two points. The geometry of rotation is proving slightly fickle, but I shall prevail because there's nothing else to do.

Sunday, June 13, 2010

A boring 30th post

No fun extras yet, sorry. Old dungeons are reopened -- had to fix a staircase and map generation regression. Auto-explore mode should be mostly working once again, press the "O" key on a map that isn't lit up yet. I've had several confirmed cases of the Windows install working just fine now, so if that's been holding you back... now's the time to play.

Except there's still not much to do yet. What's the quickest way to balance the game? Should I focus on old monsters and items and the old dungeons, or work on just the kitchen puzzle and guestrooms...? I could really use some help.

Saturday, June 12, 2010

Early update means more later

Well, swimming was refreshing. Remember that wretched screenie last night? Yeah, forget it and take a look at what I've cooked up today:
Don't the stoves and tiles look better? I'm chasing the green ingredients into the yellow pots... or trying to. Their movement is still slightly buggy, but the local minima should be easy to fix. Herding actually doesn't take an influence map... it's easier to restrict the vegies' path to a linear one. That makes sense visually, anyway... you don't want vegies near the sides. Anyway, I need to come up with a good placement for the pots to make compiling dishes fun. More later? Quite possible.

Deceptive beginnings

Today, I made minor changes to the map editor; fixed the standing wave implementation for wavy paths (thanks to simcop); successfully got a Windows friend running the game; and transformed a perfect maze into a perfect maze... of stovetops! The others are outright banal, so that last one... Yes, yes...

If that's not disorienting, I don't know what is. So once I get the ASCII art right, you'll basically be in a maze of connected stovetops. The hotel has a kitchen, after all. You will chase/herd ingredients towards a destination pot to create different concoctions for guests. Meanwhile, the staff will be pissed.. chefs can pop out of nowhere, spring traps on you. I hope this'll be a good blend between combat and puzzle. If I get the visuals right too, then hey.

I'm going to engage in recreational activities outdoors tomorrow, and this upcoming week I'll be attending a series of lectures and workshops on parallel computing. But I'll see what I can cook up in my spare time.

Thursday, June 10, 2010

Abstractions only, please

No pretty pictures today, sorry. I accomplished three simple but vital tasks today...

  1. An in-game clock that'll run at whatever rate I tell it to, and not necessarily a consistent one.
  2. Regions within a map that may print descriptions when you enter them. There's that interactive fiction element.
  3. And also an interact command, currently bound to the space key, that may trigger something within a region.
Random guestroom dungeons are still bugging me. I had a few ideas for the bulk of the room before you get to the giant silhouette  furniture. There could be a floating path to follow, a maze... but underneath is a giant colored checkerboard. A second maze is superimposed there. You have to solve the first maze while minding what sort of large tile is beneath you. To complica make things more interesting, the path could sway back and forth... I have a great visual image of this, but it turns out to be a taste tricky to implement. I was going to use a standing wave with 3 stationary nodes (the path sways by pivoting around you) but my parametrization of this isn't working out too well. Plus, I'm not sure standing waves with a moving center node even exist, let alone a nice equation to model one. I have consulted my old physics teacher with this problem...

But anyway, the issue stands -- what should happen in a randomly-generated guestroom? Bugger if I know, I'll figure it out tomorrow.

Quite a bit more than yesterday

Maybe I was just being wicked and saving the good stuff for today. First off, I forgot that I've never posted a picture of the Lock & Key Suite... so here it is with the new auto-generated doors and room numbers:
I promise it really looks like a key, it's hard to capture zoomed-out renderings. More interestingly, each of these doors leads to a randomly generated "guest room dungeon." Two instances:

So right now, it's just some randomly chosen and placed furniture. Boring, I know, but I'm still trying to work out how to make the moving walls into a good puzzle. There will be combat in the guestrooms, but not with traditional monsters. I'm also playing with interactive fiction-style regional descriptions and an interact command.

Next plans are more suites (I really need mappers, pleaase?), coloring in everything to give it atmosphere (oh, and I haven't forgotten about lighting effects either), and the clock. Recall, the same 24 hours loop... I want to wrap a game-time system around my POE timers and configure things so that game-time might slow down/speed up in player-time. Once this and more of the hotel are fleshed out, I can begin implementing guests and their memories... this means actual gameplay at last. Try to control your salivation.

Wednesday, June 9, 2010

Solamente un poco

You don't get much out of me today, sorry. Just an elevator that's always going down to pursue an abstract noun...
Like the checkerboard effect? I'm voting this thing won't actually work to get to most suites... otherwise, my beautiful overworld would go to waste. We can't have that, no. If I manage to conjure myself from sleep early tomorrow (urgh... today), the existing suites will hopefully get doors (with room numbers!) that will lead to the random guestroom dungeons which... I still need to work on. I could really use some help with mapping... I wonder where the best place to look would be.

Tuesday, June 8, 2010

Reflection on the Self

Two simple updates today. First, a suite that hearkens back to "S lf Hotel," the poem I wrote ages ago that inspired this entire idea. Criminal on the run from thought, you must examine yourself. Introspection in a roguelike, naturally, means an @.



Second, we have the antechamber of the random guestrooms. First, before many of the numerous sliding-wall traps have been activated. And second, after most of them are firing. They'll be hidden much better, as will other traps, but basically you follow a little corridor before you reach the actual guestroom. The rooms won't be all that random; I'm whipping out some ASCII art skills and funky perspective to make them look interesting. I still wanted a random component, thus antechambers. 


So, progress. I have ambitious plans for tomorrow as usual, and I will deliver what I can. Few new ideas crept in for guests and their stories today, but I really feel like I need a sprawling hotel with tons and tons of floors before I can implement these guys. Plus, some of my work tomorrow will be working on an interact command and textual descriptions of regions all interactive fiction-style. Things're coming together. I smell a trailer once this "episode" is playable.

Sunday, June 6, 2010

Eight-legged Torsos

I revoke my previous post; dual screens are absolutely worth it once set up properly. The trick was Twinview and trusting xfce over compiz. I have free time the next few days, so expect more progress.

Oh, and the pool's open.

More like a sauna, really. Not sure what should happen in here... I guess some intimate players might want a little section of their own. Surely some of the guests with steamier memories might visit this place... More soon. :)

Saturday, June 5, 2010

More trouble than it's worth

You have no idea how guilty I feel about skipping a day. Well, good and bad news... Yesterday, I created the lock-and-key floor, pimped out the overworld with more coloring and signs, and got a great start on the spider-themed pool (oh yes, prickly).

I would've had everything up, but I went out and didn't come home early, as usual. So today I have spent all of my time home trying to get dual monitors set up properly. If you just want a super-wide screen, Twinview's great, but I can't stand that setup... I want certain things to be bound to each screen. When I alt-tab, I don't want compiz grabbing from both screens. Compiz can't bind a screen to a workspace. So apparently what I want is not Twinview but to run separate X screens. This nearly works... except xfce and every other WM can't handle this so far. Lovely.

Anyway, I'll be out again tonight, but the server's up, and hopefully I'll have the pool done (right now, pool's closed -- couldn't resist) and corresponding pictures. Cheers!

Thursday, June 3, 2010

The Spider's Thread of Thought

The map editor now correctly handles conveyor belts... making new ones, deleting them, storing properly in files, moving, resizing... this was rather taxing on my analytical skills, but in the end, the code is well-designed and functioning. I've used it to considerably sharpen up the hotel "overworld," somewhat inspired by Hogwarts' staircases of doom. How's it look?



I've yet to really play with lighting on these new levels. The traditional orb-shaped FOV really doesn't apply. So I'm still pretty awake; my DVI-VGA adaptor hasn't arrived yet, so the novelty of dual monitors isn't there to distract me. I just might update later with a fleshed-out lobby, new floor, or random room design... who knows, maybe all three.

Maintenance

But not quite on MnemonicRL. Today I had work, and then my new hardware parts came in (800GB drive -- internal, kthx, DVD burner, and Geforce 210). I've spent most of the evening slacking around and copying partitions. However! I revamped the now less hideous "BDSM::Toy" class... meaning very soon, you can move and resize conveyor belts and other fun dungeon features in real-time in the editor. This is much trickier than it sounds. I haven't felt like mapping today, but I may unwind later by fleshing out the random rooms... I found lots of inspiration for furniture and other things within. Later!

Tuesday, June 1, 2010

To be in a place

What is the difference between looking at a map in its entire glory and actually walking through, playing on the conveyor belt staircases, casting your shadows upon the walls...? See for yourself... the Hotel is now accessible from the left-most staircase in Cyphen. That includes the lobby (needs the chandelier and some color), the overworld (needs color and possibly real-time degradation of the rings as the delusions increase, and the keyboard symbol dungeon.

I didn't accomplish everything I wanted to today, but with my time left tonight, I'm going to sketch some random room designs, try to fix the parent.pm bug that is more present in the Windows releases than I thought, and finally work on the conveyor belt dungeon feature and try to get that integrated in the map editor. You have no idea how tough it is counting coordinates to place these buggers.