The LPC Approaches
Hello Flare devs and fans!
Towards the beginning of the month I added orthogonal tile support for Flare so we could build a Flare-based game for the Liberated Pixel Cup. I could probably make a game alone, but seriously, where's the fun in that?
We've still got a week before the official coding portion of the contest starts, but I think now would be a good time to do some brainstorming and talking about what we'd like to do. Post here if you're interested in helping out and/or have great ideas for what kind of game we should make.
Tentative schedule for making the game:
Week 1: Core data (enemies, powers, items, reskinning UI, etc.)
Week 2 - 3: Mapmaking (It's likely I'll finally get around to making a tutorial on this if others are interested in participating)
Week 4: Quests + NPCs
Last few days: Polish and Balancing (maybe translations)
For ideas, I had a few thoughts:
- Robin Hood game. There's a great archer made by Wulax that could be an awesome hero.
- Some sort of shapeshifting game. Like Zelda, where you have to get an item that enables you to get to the next dungeon. Think "I can't get across this chasm until I get a ring that changes me into a bat."
Anyone interested?
I would find the shapeshifting more interesting. Would the easiest way to implment that be with items that got picked up that when cast gave you certain forms, like bat form, pig form, whatever?
makrohn, I think the easiest way to do that is to attach a power like power id #135 to an item as a power_mod or use power (see items #100 and #500 for examples).
We may have to tweak the code a bit so the power can last indefinitely, even after quit and reload in some cases. (Imagine a plot event that permanently transforms the hero until he can find an item to change himself back.)
If you like the idea of shapeshifting as the main plot hook, any ideas for what the general world could be? I like the concept, but I haven't been able to flesh out a good world yet.
Well, what kind of artwork assets are we looking at? I think it'd be fun to do something a bit childish, turning into a squirrel and going into a tree, then underwater as a turtle, within dungeons having to turn into each of those to go through holes and cross moats, that sort of thing, maybe?
Plus, I think I am more in for quests, and I might be willing to do some mapping if it's orthognal/Zeldaish more than isometric/Diabloesque.
Even if you don't want to do mapping (though I think you should! It'll be pretty easy with the LPC tiles) it'll still help me a ton for you to work on quests. It should end up looking a lot more Zeldaish since it's all orthographic.
Here's a couple of links to show what I know we have to work with, though it's likely there will be much more.
http://lpc.opengameart.org/static/lpc-style-guide/assets.html
http://opengameart.org/forumtopic/progress-pic-thread-show-us-what-youre...
We have a lot of medieval-looking people to work with but very few animals and creatures. There's also a really nice oriental tileset we can use. I can also make some art, but I'd rather focus on mapmaking and content than art once the coding portion of the contest starts.
Until the programming portion starts, I'll be creating a complete reskin of the Flare UI in a pixel art style that matches the LPC.
Let me think: Bat for flight, snake for holes, slime for underwater, and then some kind of doppleganger to get past guards, would be a good start, probably!
(and a bush for camoflage?)
I love the ideas! One thing to remember is that we're not limited by just movement types when we transform. You actually get a full new set of powers along with it. So consider these ideas:
Takes no new code in the engine (afaik):
Takes a small amount of code:
We also can use a map event to transform the player permanently at the beginning of the game (for plot reasons) until he/she can find a way to revert back. That could possibly be a good first quest. I'm thinking something really weak and limiting to start off. I'd like to do 4 dungeons, each with a transformation, plus one plot-related "cursed" transform at the beginning of the game to kick it off. So any ideas about which 5 transformations you'd like to do? The first transform would have to be ridiculously lame, so it could be anything, but the others should feel cool. I'd also say the bat one is obvious. We should definitely do that one.
Make his first form a mouser or rat, or if you want to be original a koala or sloth
Danimal, I'd really like to do something like a koala, but sadly, I am not an artist, so I'm limited by what the artists produce for the competition.
(On the other hand, if any artists are out there reading this, we'd love to have you aboard for the lpc!)
I am going to largely take my inspiration here from the general feel of SNES games.
Our story begins in a small town called Laurelia, when a teenaged woman, about to come of age, named Daphne falls down the well... She calls for her dog to come and save her, but the silly little chihuahua just yips at her instead of running to find help. Left to save herself, she begins to explore the cave at the bottom of the well, which hides a secret altar. With just a stick to swing and rocks to throw, she makes her way in Fight Form to the back of the cave. The inscription reveals that Laurelia's residents are secretly the descendents of a hero who sealed away a great evil, which Daphne has accidentally released! Before fleeing, the Evil curses her, triggering her first transformation into a slime.
In this slime form, she is able to further explore the cave, and find a talisman from the Ancient Hero, which allows her to swap back and forth from Fight Form to Bat or Bird Form. Bat form will let her finally fly over some pits and out of the well.
Once she escapes the cave, the ubiquitous village elder reveals that he was, of COURSE, going to tell her the village's secret on her 18th birthday next week, but now she has a Sacred Duty - travel through two more dungeons to collect the Sacred Trinkets which will allow her to shift into two additional forms, before going on to defeat the ancient Evil Once-And-For-All, thereby completing the Ancient Hero's Mission.
On the way to the second dungeon, maybe she has to pass through a heavily-populated enemy area where she has to shift into Bush Form to shuffle past enemies (can we use a scaled down tree-top graphic?). In the second dungeon, I think that she would have to cross some pits in bat form, but also gain Archer Form here. Archer form could remove the sword weapons that Daphne can normally use, but the Archer form could shoot her bow further. Depending on how complicated we can get with maps and events, every switch might raise one wall while it lowers another. At the end of the dungeon, she finds one half of Juggernaut Form.
The second dungeon could be a fire dungeon, where she discovers ghost form, which will temporarily allow her to walk through walls (and perhaps, for the backtracking adeventurer, allow her to pick up a bit more gold and items from earlier areas). Maybe it also allows damage immunity? If it does confer damage immunity, I think it'd be necessary for defeating the dungeon boss. Then she picks up the second half of Juggernaut Form
The final dungeon, Juggernaut form is stronger with the sword, but cannot user arrows, and can punch through walls to get her to the final resting place of the Ancient Evil.
If we use this storyline, maybe Laurelia is the only town in the game, maybe there are more between dungeons. Let me know what you think. I also feel strongly that the protagonist be a female, just because even in the indie game world, there seems to be a lack of female protagonists. Just look at the most recent Humble Indie Bundle (which I adore).
makrohn, this is AWESOME!
I was really struggling for a story, but I this really sums up what I was aiming for.
A quick overview of what tilesets we'd need:
Overview of the art we'd need for the hero:
And a thought on the items:
Great, Pennomi! I was definitely thinking Daphne-in-armor for Juggernaut form. I also agree with your take on Ghost form and how to run the items. "Snake" could definitely be a spitting/archer form, or we could make it an Amazon form with a leather armor graphic and a mohawk or something.
Yes, I think that will work well.
To make sure the story isn't left dangling if we can't finish it (though I don't see why we couldn't) I suggest we make the beginning and end first, then fill in the middle as time permits.
In order to prevent the player from doing the other dungeons early, we'll have to design it so you need the previous talisman to travel there. So the archery dungeon is across a river with an (in-repair?) broken bridge (so you fly across as bat).
The fire dungeon would require some form of archery. So maybe a rock you can shoot to make an avalanche of rocks that creates a makeshift bridge through a lava flow?
The boss dungeon could just have magical flame pillars that stop you from entering, unless you're in ghost form.
I might have to "study" some old Zelda games to see how the dungeon progression went. ;)
Hrm... now I have to make a world map.
In respect to your time considerations, we could just make the dungeons N/E/S/W of the village, and if a dungeon gets dropped, it's appropriate talisman can simply be the reward of the prior dungeon, so we don't have to redesign a dungeon for the dropped prior content.
That way, we also only need the one village as the central hub.
Actually, I really like that. 4 dungeons - 4 cardinal directions. It feels complete.
Probably there will be one map per building in the town (maybe 3 to 6?), and one for the town itself.
We'll want 2 to 3 large maps (but light on events) in between each dungeon and the town.
I'd image 3 or 4 small maps (but heavy on events) per dungeon.
Totaly that sounds like... (crunching numbers)... About 30 maps total. Eh, I think that's doable.
The thing I *AM* worried about is that I think I might be underestimating the time it takes to create the core data.
Today was mostly busy work - getting the repos basically set up and the Flare code migrated. We *shouldn't* see any collisions with Flare data because I changed the data path. There are still some instances of the word Flare, though. Also, the ortho map renderer needs a little work. A recent commit made it so it only partly renders.
https://github.com/pennomi/polymorphable
This is the repo. I'm not sure if that's what I'm going to call the game (it's kind of lame) but it's an okay code name. I'm actually thinking I want the initials of the game to be LPC, with "polymorphable" as the middle word.
Tonight I'm going to try to flesh out the Issues list with the roadmap for the rest of the month.
Hopefully after that, it's all systems go and I can get right down to it. Most likely, conversation on different elements will go on in the respective GitHub issue.
makrohn, do you have a GitHub account?
Laurelia's Polymorphable Citizens!
I do have a github account, now I just need to learn how to use it. i accidentally branched FLARE with it, so I should be able to branch LPC as well, and then just figure out how to request my commit to end up back in the main branch. At the very least, I also know how to download/compile. To remain true to the style guide, I may create install it both natively on my Ubuntu machine, as well as in a couple VMs (Ubuntu, and something else?) to see how easily it installs. I've never made a .deb before, but maybe it's something to look into.
I will also probably spend some time today and this week storyboarding and acripting - the non computer kind!
There's a bunch of hair and clothes in LPC_Melior, a nice stone pattern in Casper Nilson, some female demon wings which might go well with bat form in jastiv, some sword animations and tilesets in deeklu (maybe a wheat maze on the way to a dungeon?) and some possible ui elements (I wouldn't mind using some for chat bubbles), Johannes Sjollund has some plate armor for the Juggernaut.
And I'll look through the Pennomi files once I get GIMP installed on this computer!
All my files should also be on OGA in the LPC Collection.
http://opengameart.org/content/liberated-pixel-cup-0
I think you'll need the newest version of GIMP, which isn't in the Ubuntu repos. I had to install from a PPA.
I really like the demon wings. Somehow I missed those.
Ah! I was looking at a different link. I think I do like your menu UI better, especially for the general style.
I use Ubuntu at work, an iMac at home, so I had to install an extra package to get GIMP running. (sidenote: I am actually at a weird point in my life where I use three OSes daily - I support Windows professionally, run Ubuntu at that job, and come home to an iMac. I like to think this makes me a good tester.)
Wooo I did my first git commit!
Cool! Now when you want to send the changes to me, use the "pull request" button on your project, and it will be sent to me for merging.
I can do that! I actually already just committed them directly into it, is that bad form? Should I use my own repo and then do the pull requests from there? Sorry, n000000b am I.
Don't worry about it, not too long ago I was in the same situation. :)
You committed directly into your fork. That's a great practice. But to send all the changes upstream to my repo, you issue a "pull request" from the web interface and it will get sent straight to me for merging.
This way, you can actually fork a project and do all the commits you want without spoiling anyone else's fork with WIP code or content. It's a nice feature, once you get the workflow down.
Or, if it's more convenient, I can just give you access to commit directly to my repo. It's simpler that way.
You did give me the access, and I did commit directly. I'll try to do things the courteous way from here on out, though, and commit to my own branch and file pull requests.
Oh, that's funny. For some reason I didn't notice you did a direct commit. Good job!
I think the typical GitHub workflow is through pull requests, (because that allows non-collaborators to submit code) but since this project is direct collaboration, I think it simplifies things to just work on the same repo.
Up to you, though.
Just so that I can always be up to date with whatever you're doing for code, I'll just work out of your branch directly, if that's alright, then!
Yep, I think that's easier.
Done messing around for the evening, but I tried unsuccessfully to get the robe graphics into a .png file. I think I messed /something/ up, because even when the game didn't bug out when I equipped them, it still didn't actually show any robes. Ah well, something for tomorrow!
I did a ton of cleanup in the repo, moving stuff that we wanted to keep into its proper place and deleting a bunch of stuff that we don't need. I also removed many of the hero options from the character creations screen, since we won't be needing male characters and we're replacing that all anyway.
I spent the rest of the time looking through all the art we have. Unfortunately, there's not a lot in the way of female clothes - mostly that one female mage set. The base set also has a big dress, but no attack animation there, I'm afraid.
We have a great selection of NPCs, though.
I added all the music entries I could see possibly working to the repo.
Tomorrow I think I'll start working on images for Daphne. (Unless you get the robe done.) I'm pretty confident I know what we have to do to get it all working. I'll also take a look at the weapons we have. Hopefully they'll translate over to the female base as well.
Makrohn, I took a look at building out character sprites. I figured out what the problem you were having is - this particular blitting function requires the sprite to have no transparency. So in GIMP you can remove the transparency from the layer and resave to get it to work. What a headache. :(
I've added a basic robe/hair combo to the repo.
Building out Laurelia has taken me much longer than anticipated (it's still not done, but closer!)
Other than that, I think the only major thing left I had slated for this week was the power tree redesign. Any ideas on cool powers you'd like to see? (It's going to be a full redesign of the tree, so we need lots of ideas!)
hi all,
cool looking game. I just downloaded,compiled,built and was able to move around.
While it's really early days, you should look at the configuration part. For instance it isn't clear in the input that the keyboard movement is by default (as only Mouse and Joystick are listed). It would be nice/good to see Keyboard listed there as well.
I dunno if you have any dialogs or anything up yet. I was able to see the different NPC's and walk upto them but no real dialogs I could discern or a way to speak with them.
In short, will be keeping an eye on it.
Very early days, indeed! We just started on the 1st. There's a whole lot that's already built, just not implemented yet. You should probably see some enemies and fleshed out dialogs, as well as a couple of vendors, by the end of the week. Once the dungeons are implmented, there'll be some powers and transformations ready to go!
shirish, I can see why we'd need some extra help text that shows what you need to do. The control scheme actually uses both the mouse and keyboard - mouse for aiming and interacting with objects, keyboard for movement. I don't think that is explained anywhere in the game, so maybe we'll write something along those lines.
You should be able to click on any NPCs you see to talk to (and later, trade with) them.
By the end of the week you should see some serious gameplay.
@makhron @pennomi Look forward to the updates.
See this new thread for updates: http://opengameart.org/forumtopic/laurelias-polymorphable-citizen
I figured I ought to put our progress report next to all the others! :)
Pennomi - not sure if this is just me or everyone. Ubuntu 12.04.
$ g++ -I /usr/include/SDL src/*.cpp -o polymorphable -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf
/tmp/cchf9XBw.o: In function `Avatar::loadGraphics(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
Avatar.cpp:(.text+0xa96): undefined reference to `SDL_gfxBlitRGBA'
Avatar.cpp:(.text+0xad9): undefined reference to `SDL_gfxBlitRGBA'
Avatar.cpp:(.text+0xb33): undefined reference to `SDL_gfxBlitRGBA'
Avatar.cpp:(.text+0xb8d): undefined reference to `SDL_gfxBlitRGBA'
Avatar.cpp:(.text+0xc15): undefined reference to `SDL_gfxBlitRGBA'
/tmp/cchf9XBw.o:Avatar.cpp:(.text+0xc58): more undefined references to `SDL_gfxBlitRGBA' follow
collect2: ld returned 1 exit status
Ah, yeah, I think I forgot to add a file. I'm kind of tied up right now, but you can find that file in the other Flare repo. Could you add that to polymorphable for me?
Uploaded art_src/logo/flare_logo.svg, which should fix any issues people have with cmake. Still not sure how to handle the g++ compile error I'm getting, though. I'll look into it.
Sorry about that, I didn't give good directions.
We pulled in one function from SDL_gfx, since we didn't need the whole thing.
It's currently in the Flare/src folder as "SDL_gfxBlitRGBA.h/.cpp". We'll need to add those files into our src folder as well. If you can, try to grab that file from the latest Flare repo and add it into ours. I simply forgot to "git add" it. :/
I didn't see that specific file, just SDL_gfxBlitFunc.c/.h. Copied those from FLARE, same error. On a whim, I changed SDL_gfxBlitFunc.c to .cpp and it worked! I'm guessing this is afflicting main as well.
Thanks for figuring that out! Like I said, I've been working a lot, so my brain is a little fried...
Ah, Clint explained it in an issue I opened over there: It's a C file, not a C++ file, which is okay, but the command to compile needs to be changed just slightly:
g++ -I /usr/include/SDL src/*.cpp -o flare -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf
to
g++ -I /usr/include/SDL src/*.c src/*.cpp -o flare -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf
Our own README has been updated appropriately.