Saturday, March 12, 2016

ShoppyRL day one: "I'm the map, I'm the map..."

So today I made a map! It's similar to the TriQuest map (2013 7DRL) in that it's composed of "danger zones", but this time the danger zones are "fuzzed" a bit so they're not perfectly square. Well, actually they have holes cut out of them!

I've also created some creatures which are placed on the map: 5 heroes and a bunch of monsters. The terrain and the creatures can be edited in data files!

I also made a basic combat system; not sure how balanced it is, but it's similar to the one I used in TriQuest. Hopefully balancing it will require only tweaking creature stats...

Finally, there's a console app which displays the map and simulates some combat (though creatures can attack each other from across the map). I think I'll have to use some other sort of GUI, though, as the console app is way too slow then displaying the map. No idea why the Windows console can't just display a grid of characters... isn't that what it's for?

I think I'm basically on track for today, though I'll be rather busy the rest of the week so I don't really have high hopes of completing this game on time. I would have continued on with tomorrow's goals, but I'd already spent enough time programming for one day! (Even though I borrowed a lot of utility code from other projects of mine...)

Speaking of tomorrow's goals...

  • Create a real GUI
  • Oops, I forgot to finish this... let me go publish it now!

ShoppyRL day 8: "Game over, boys! No, wait, career over..."

So, I wasn't able to complete ShoppyRL this week. I already knew it on day 2 - I just had too much going on, and I was also fed up with trying out different UI frameworks. The Windows console was too slow after all (seriously Microsoft, how hard it is to make a freaking CONSOLE?!) and I tried WPF but I don't know enough about it to make anything happen in the "proper" way without what felt like gigabytes of repetitive view-model code. I could have hacked together a "fake" WPF app, or switched over to WinForms in which that sort of coding style is actually considered acceptable, but at that point I didn't really care anymore; I didn't have time for any more messing around, so I gave up. Sorry folks! Maybe I'll pick this up again someday, but I kind of doubt it... I don't even think I want to be a programmer anymore! Well, I could do it if I didn't have to write user interfaces, but good luck finding a job or open-source project like that...

Friday, March 4, 2016

ShoppyRL day zero: "Once more unto the breach..."

Time for another 7DRL! This time I'll be doing an idea that Nick (my friend who helped me with polishing up Beware of Strange Warp points a few years ago) and I have been discussing.

This one's called "ShoppyRL", and it's inspired by the PC game Recettear as well as the Android game Merchant. In ShoppyRL, you play the role of a shopkeeper by day, and switch over to controlling an adventurer by night to fend off the monster incursion.

As a shopkeeper, you'll be buying, selling, and crafting items with various town citizens, including adventurers, craftsmen, and other such folks. You want to make a decent profit, but be sure not to overcharge the adventurers, as you want them to have enough money to buy more gear later!

As an adventurer, you'll patrol the area outside the town in search of the demon gates, which are spawning the invading monsters. If you destroy the demon gates, you win the game, but of course they are well guarded by monsters, so you'll need to gather loot to improve your adventurers. Wait too long, though, and the monsters will overrun the town!

That's right, "adventurers". There will be several adventurers, and you'll be able to switch between them at any time, with the ones you're not controlling being run by the AI. I'm hoping to get some sort of "hunting pack" mechanic in there that keeps the adventurers close together (stay near the strongest ally, for instance) while also attacking nearby enemies, so they don't run off and get killed too easily. Of course, the monsters will employ this algorithm as well, so prepare for some epic battles!

Stay tuned over the next week as I develop ShoppyRL!

Oh, yeah, goals for tomorrow...
  • Create "creature", "townsperson", "hero", and "monster" classes
  • Create a map, and populate it with terrain, heroes, and monsters
  • Implement basic combat mechanics (not movement yet, just combat)
  • Create unit tests to make sure the map and combat work (since there won't be a GUI yet)