Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2

Author Topic: Nausicaä Roguelike  (Read 2777 times)

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Nausicaä Roguelike
« on: March 21, 2013, 09:18:08 am »

Hi all,

My wife and I are trying to get a little joint project going. It started as a 7drl, but because of a pretty terrible week we didn't get very far.

For the theme, we decided on something we are very passionate about: Hayao Miyazaki's masterpiece, Kaze no Tani no Nausicaa, published in English as "The Valley of the Wind" or "Warriors of the Wind" or some such nonsense. It's a wonderful anime that foregoes R-rated content, boobs of infinite size and kinky dresses for a beautiful, meaningful story. I usually like to say Nausicaa was my first love, but my wife doesn't find it nearly as fun ;)

For mechanics, we decided to do something close to a roguelike which has non-complicated graphics stuff. We're using Python 3 and PyGame. PyGame is a little too lower-level for my liking, but I can't find something which is higher level and not horrible to get working with Python 3.


It's still really early in development, but here's a tiny screenshot. I'll explain what's behind it in a second.






While it does look simple, here's what we've gotten properly implemented so far (in a way that's extensible, hopefully moddable, and so forth):
  • Items are read from an xml file and a spritesheet. It's *really* easy to add new properties or graphics to all sorts of objects, and then use them from within Python.
  • The input system is up and running. It reads keybindings from an xml and transforms key press events into "in-game events", such as "ACCEPT" when you press enter/return, "EXIT" when you press ESC, and so forth.
  • A fairly extensible GUI system (no mouse, sorry, perhaps later) using an input stack that propagates events downwards if they haven't been consumed. This has been used to implement lists, direction selectors, etc. The several GUI elements (lists, etc) have callbacks so that you can use them for multiple uses (a selector for a set of items can be used for pickup, drop, examining, throwing, etc)
  • A nice activation system, where items get activated through callbacks as well. Items set their own callbacks, and as the hero moves, time passes. Once it reaches an activation/event, it gets executed, and in turn it might spawn other activations further down the line, or immediately. The crops you see in the image, for instance, will require care (that's an activation that reduces crop care every X time steps), and will also grow into new stages (activations that happen in longer time-scales). This information, again, is mostly all read from xml properties, without me having to set up specific classes to declare lots of variables for all the things in the XML.
  • Basic actions are done, such as movement, pickup, drop, opening and closing containers (which make their items visible), etc etc, though some testing needs to be done.
  • Map scrolling, so it can be bigger than what you see.

Next up, I am planning to implement:
  • Procedural village generation, to have several crop sites, trees, houses, and villagers.
  • Villager AI, so they take care of crops, etc.
  • Splitting the game into seasons, and each season perhaps the hero will be able to assign how many villagers do what tasks.
  • Combat, eventually


Now, I would very much like to keep the game as close as possible to the atmosphere of the movie/manga. All the ideas I am coming up with, however, will make for an insanely depressive game. I would love feedback and other suggestions (if you haven't watched the movie, do yourselves a favour and watch it!):
  • Events - every "season", different events can happen:
    • Insects sometimes travel to the village. Ideally, you'd get rid of them without violence (how, not sure). If you don't, you will enrage the forest and more insects will come. They will have a certain "rage" level, and they will leave once they have done damage corresponding to the rage level. This includes killing villagers, so your village gets progressively smaller and smaller as people die...
    • Spores, either from insects or just drifting with the wind, will sometimes come into the village. If not taken care of, they will kill crops, grow miasmas and make people go sick and take over the village. You'll have to burn them.
    • Enemy nation attacks/visits. They will land, and they might be militaristic or not. Defend or trade or pay taxes or something. Not too sure about this.
  • Village management: how many people should tend the crops and care for them, how many should search for spores, search and harvest chico nuts, build buildings, draw water, etc.
  • Adventuring: more classical RL behaviour. You should be able to travel to or find several locations. Abandoned villages, half-taken over by the toxic jungle, wrecks from past civilisations, the toxic jungle itself... food for these adventures are the chico nuts you have people gather, so you have limited exploration time. You might find ohmu shells, interesting artifacts, raw materials, etc. These should allow you to make better tools for villagers and so forth. Of course, killing insects should always be a bad idea, but they are not initially aggressive. Perhaps certain events might make them aggressive, and the more you kill, the more dangerous is becomes to stay in the jungle.

These are just some loose ideas. They shouldn't be overly difficult to implement, but they'll take some time. Either way, I'm not sure if they make a good game. I mean, right now, with these mechanics, the goal is just to survive as long as possible, as you lose people more and more to attacks... I don't want it to be a fixed story adventure that you play one time, or I could try to follow he storyline of the movie...

Any ideas are awesomely and greatly appreciated!

And for whoever insists on using C++ and whatever, you can have a look at the code here. In particular, look at the Entity Manager which reads from entities.xml. It's set up so the content of entities.xml dynamically sets what variables are available in each class. Then you can just use them in the code without worrying.

I've tried to keep the code pretty commented, and I would love feedback on the GUI system, the way I'm handling events and so forth :)
« Last Edit: March 24, 2013, 12:55:44 pm by Anvilfolk »
Logged

Mephansteras

  • Bay Watcher
  • Forger of Civilizations
    • View Profile
Re: Nausicaä Roguelike
« Reply #1 on: March 21, 2013, 01:23:56 pm »

Oh, neat! I really like Nausicaä, so it's really interesting seeing a game being made from it.

Have you read the Manga for it?
Logged
Civilization Forge Mod v2.80: Adding in new races, equipment, animals, plants, metals, etc. Now with Alchemy and Libraries! Variety to spice up DF! (For DF 0.34.10)
Come play Mafia with us!
"Let us maintain our chill composure." - Toady One

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Nausicaä Roguelike
« Reply #2 on: March 21, 2013, 01:28:41 pm »

Awesome! I feel like so few people know about this movie. It's awesome!

I did read the manga a couple of times, quite a long time ago. I started re-reading it a little while back but got busy and stopped. I have to say that although it really fleshes things out, I love the simplicity and purity that comes off from the movie's storyline. I've been inspiring myself a little bit more on that, but if I do end up implementing a more strategic layer to the game with factions and stuff, I guess I'll have to put the Doroks in ;)

Since you know it, how do you feel about the game mechanics and stuff? Any suggestions? Like I said, I'm really scared of making it a depressing exercise in survival :\

Mephansteras

  • Bay Watcher
  • Forger of Civilizations
    • View Profile
Re: Nausicaä Roguelike
« Reply #3 on: March 21, 2013, 01:44:57 pm »

Hmm. Well, it's kind of a difficult balance with that world.

On the one hand, you have isolated areas like the Vally of the Wind which are generally peaceful, but require careful vigilance to remain prosperous.

Other areas are more involved with War and keeping the forests at bay using violence and strength, which is ultimately a losing battle.

And, of course, there are the lands beyond the forests which nature has truly reclaimed and purified, but are unknown by humanity (except ultimately Nauicaa herself in the Manga.) But if I remember correctly even there it's not ready for people to move into yet.

I guess it depends on the focus you want to give. Like any post-apocalyptic setting, you have two aspects: Survival and Adventure. Survival stories revolve around trying to rebuild or at least maintain civilization in a world where it is all but gone. Adventure stories revolve around exploration, combat, and survival on a small scale.

The storylines of the Movie and Manga are fairly major. They involve major changes to the world, the Vally of the Wind, and revelations about the state of the world and what nature is actually doing. In that sense, the overarching story for humanity is a struggle to survive long enough to see that purified world.

Before that point, the stories are more...typically post-apocalyptic. A crumbling world full of danger, but many interesting things to do if you're traveling around in it. If you think about Master...Geppo? Whatever his name was, who traveled around and explored ancient ruins and whatnot, that makes for a pretty good basic Adventurer type game. Doesn't need a huge story or goal, simply explore and maybe try to help out the various towns and villages so that they survive longer. Could be an interesting exercise in a changing world and trying to have an impact.

For a town, it's going to generally be about normal farming, trading, building, repairing...town stuff. Insect Attacks should be rare, unless the player gets greedy in some way, and anything other than occasional traders from other towns should be minimized. That is, if you want to focus at the low level like a DF Fort. Running an empire in a post apocalyptic world would be interesting, but a very different game from what I think you're trying to do.

Sorry, I'm rambling. I guess my main point is that Survival is fun, it's only depressing if you're stuck in a downward spiral where failure is the inevitable conclusion. Just...don't make that inevitable. After all, that's not at all the point of those stories.

Logged
Civilization Forge Mod v2.80: Adding in new races, equipment, animals, plants, metals, etc. Now with Alchemy and Libraries! Variety to spice up DF! (For DF 0.34.10)
Come play Mafia with us!
"Let us maintain our chill composure." - Toady One

USEC_OFFICER

  • Bay Watcher
  • Pulls the strings and makes them ring.
    • View Profile
Re: Nausicaä Roguelike
« Reply #4 on: March 21, 2013, 08:49:14 pm »

I'm going to admit, you had me at Nausicaä Roguelike. Everything else was just icing on the cake.

Insects sometimes travel to the village. Ideally, you'd get rid of them without violence (how, not sure).

In the manga (the only version I've seen), she uses strobe grenades to stun/calm an Ohmu, and then a wormflute to lead the insects back into the forest. Bright lights also seem to stun/confuse the insects. However I'd imagine that those two things would only work below certain rage levels. Once the insects get mad enough, you'll have no recourse but to suck up the damage and then lead them away once they calm down.

Adventuring: more classical RL behaviour. You should be able to travel to or find several locations. Abandoned villages, half-taken over by the toxic jungle, wrecks from past civilisations, the toxic jungle itself... food for these adventures are the chico nuts you have people gather, so you have limited exploration time. You might find ohmu shells, interesting artifacts, raw materials, etc. These should allow you to make better tools for villagers and so forth. Of course, killing insects should always be a bad idea, but they are not initially aggressive. Perhaps certain events might make them aggressive, and the more you kill, the more dangerous is becomes to stay in the jungle.

Don't forget about all the fossilized remains of the God Warriors sticking up in the ground. Mostly heads according to the manga, but you could also include hands, feet and other limbs to add more atmosphere.

Like I said, I'm really scared of making it a depressing exercise in survival :\

I wouldn't be too scared about making it a depressing exercise in survival. That's pretty much how the world seems to be in Nausicaä, and you should follow it in some form or fashion. But like Mephansteras said, balancing it will be hard. I'd probably focus more on the adventure/exploration first, and then finish off with the survival/management parts. That's just me though.

Any suggestions?

Please tell me that you'll include the Wormhandlers. I love me some Wormhandlers.

And, of course, there are the lands beyond the forests which nature has truly reclaimed and purified, but are unknown by humanity (except ultimately Nauicaa herself in the Manga.)

Didn't the Forest People at least know about the purified lands beyond the forest? Or am I just mixing up my plot threads?
Logged

Mephansteras

  • Bay Watcher
  • Forger of Civilizations
    • View Profile
Re: Nausicaä Roguelike
« Reply #5 on: March 21, 2013, 08:54:12 pm »

I honestly can't remember. It's been years since I read the Manga.
Logged
Civilization Forge Mod v2.80: Adding in new races, equipment, animals, plants, metals, etc. Now with Alchemy and Libraries! Variety to spice up DF! (For DF 0.34.10)
Come play Mafia with us!
"Let us maintain our chill composure." - Toady One

USEC_OFFICER

  • Bay Watcher
  • Pulls the strings and makes them ring.
    • View Profile
Re: Nausicaä Roguelike
« Reply #6 on: March 21, 2013, 09:06:33 pm »

It's been a while for me too, though from what little I've gathered, I think that even the Wormhandlers know how the forest purifies the land, though obviously they haven't actually seen the purified areas.

EDIT: The Forest People have definitively been to the purified areas.
« Last Edit: March 21, 2013, 09:11:31 pm by USEC_OFFICER »
Logged

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Nausicaä Roguelike
« Reply #7 on: March 22, 2013, 06:54:13 am »

Ewww, wormhandlers! I'll definitely have to re-read the manga to get a good grip on them!

Thanks a *TON* for all the suggestions! Seeing somebody else interested in this is great motivation!


In particular, the remains of the god-warriors and those strobe grenades gave me an idea. Strobe grenades would be a great way to calm animals. You might start with a few of them as a stock in the village, but you'd need more eventually. I'm thinking they could be made from the powdered remains of god warriors, and they'd take a while to prepare, so you'd always have to have some people taking care of that to keep your stocks up. It might be a bit off-cannon, but for mechanics' sake it might work.

Perhaps wormflutes need to be made from a very specific plant from the toxic jungle as well, and perhaps you'd need to throw them to get the insects to go away, or they'd have limited uses or somesuch. This way you'd have to keep exploring.

Another thing I forgot to mention is that we definitely need wind mechanics! In particular, I want to implement windmills that pull water from underground, and that needs to get distributed to the crops.

One thing I'm worried is exactly what you, as the "prince or princess" of whatever village you're from, will get to do there. I mean, just walk around? Caring for plantations is too repetitive, for instance. The AI should take care of everything, whether you're there or not. Perhaps at the start of every season you'll get "omens" from the wind, saying whether the wind is pure or "strange". If it's pure, you're free to do whatever you want - go out exploring or stay and organise things, order construction of new buildings, etc. If it's *not* pure, then you'll have to stay and resolve whatever's coming with the wind (insects, other factions, etc).

Ideas ideas... I just need to start implementing them ;)

USEC_OFFICER

  • Bay Watcher
  • Pulls the strings and makes them ring.
    • View Profile
Re: Nausicaä Roguelike
« Reply #8 on: March 22, 2013, 07:48:57 am »

In particular, the remains of the god-warriors and those strobe grenades gave me an idea. Strobe grenades would be a great way to calm animals. You might start with a few of them as a stock in the village, but you'd need more eventually. I'm thinking they could be made from the powdered remains of god warriors, and they'd take a while to prepare, so you'd always have to have some people taking care of that to keep your stocks up. It might be a bit off-cannon, but for mechanics' sake it might work.

I don't see that as terribly off-cannon. What the God Warriors are made out of are never explained fully, and I'd imagine that some parts of their innards could be used to make strobe grenades. You should also be able to make the grenades from scratch, though obviously not that many at a time and you'd need experienced people to make them. A slow and steady source of grenades as opposed to the large caches from the God Warriors.

Perhaps wormflutes need to be made from a very specific plant from the toxic jungle as well, and perhaps you'd need to throw them to get the insects to go away, or they'd have limited uses or somesuch. This way you'd have to keep exploring.

I don't see why the wormflutes couldn't be made out of normal, every day materials. The danger in them comes from the fact that air needs to be constantly flowing through them, so if you put them away suddenly you're surrounded by a bunch of confused insects. Obviously they should be expensive enough that you wouldn't throw them to lure the insects away without a very good reason.

I don't see why you would force the player to explore the sea of corruption. It's a hostile and toxic place filled with deadly creatures. Exploring it should be something special that you need to plan and prepare for, not something that you need to do for your village to survive. Of course it'd be harder to survive without exploring the forests, but it should still be possible to. The forests should be high risk, high reward areas that favour the bold and the prepared. Just my two cents though.

Perhaps at the start of every season you'll get "omens" from the wind, saying whether the wind is pure or "strange". If it's pure, you're free to do whatever you want - go out exploring or stay and organise things, order construction of new buildings, etc. If it's *not* pure, then you'll have to stay and resolve whatever's coming with the wind (insects, other factions, etc).

The manga mentions that the valley is protected from toxins by the winds that blow in from the ocean. So if the omens are favourable/neutral, you'll get a message like: "The wind tastes slightly of the sea" or something along those lines. And if the wind blows in from the Sea of Corruption, then something is happening with the insects, if it blows in from overland then other factions etc.

Ewww, wormhandlers! I'll definitely have to re-read the manga to get a good grip on them!

I don't think that the manga goes over the wormhandlers in too much detail. If you can nail down their aesthetic, you should be mostly there.

EDIT:

Other, more violent ways not mentioned in the manga/film should be included for driving away the insects. Burning or driving them back with fire should definitively be an option, as would wounding or inflicting pain to drive them back. Certain rare/expensive chemical sprays might also be an option. Plain old killing them should also work, and would probably lower their rage level with each death. Of course the violent methods would be most effective against the smaller or weaker swarms. When an Ohmu gets pissed attacking it would probably do more harm than good.
« Last Edit: March 22, 2013, 08:07:48 am by USEC_OFFICER »
Logged

Tsuchigumo550

  • Bay Watcher
  • Mad Artificer
    • View Profile
Re: Nausicaä Roguelike
« Reply #9 on: March 22, 2013, 02:36:05 pm »

Post to watch.
Logged
There are words that make the booze plant possible. Just not those words.
Alright you two. Attempt to murder each other. Last one standing gets to participate in the next test.
DIRK: Pelvic thrusts will be my exclamation points.

GlyphGryph

  • Bay Watcher
    • View Profile
Re: Nausicaä Roguelike
« Reply #10 on: March 22, 2013, 02:51:46 pm »

This sounds promising. I look forward to following the progress.
Logged

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Nausicaä Roguelike
« Reply #11 on: March 24, 2013, 12:56:08 pm »

Spoiler: Title screen (click to show/hide)


Worked on this quite a bit this weekend... it's mostly behind the screnes stuff, but everything is much more sane.

Code: [Select]
Massive rewrites.
- Separation of main game class, the visuals/rendering, and game states
- A game is now a GameManager
- The GameManager takes care of GameStates, using initialise(), run(), terminate() and nextState()
- All rendering is done through the singleton View
- EntityManager is now also a Singleton
- Lots less references to Games (previously used for reference) and EntityManagers
- All things drawn on screen are managed by GameStates, and are called "menus".
- Added a class for Sprites (simple image), and the ability to add menus that do not consume input
- Graphics display configurations now in config.xml, parsed by View
- Random is now in a place of its own
- And probably a ton of other little things :)

This is basically just the engine making more sense. Not much to see, except perhaps a title screen and making it easy to change between several "game states". That's how all the cool kids do it, and it does make sense, so now there's sort of a state machine taking care of the general stuff. The GUI also underwent a bit of an overhaul... not entirely happy with it, but I think it's a little more sane now.

Since this is the Valley of the Wind, I'd love it to have nice animations of the windmills and such... and that's what I'm really not happy with: the current system for displaying animations, different states, etc. I'll probably rehash that before I start going into gameplay proper. This is probably stupid, since it'll take longer to get a game, but hey... windmills rolling!

I also need to work on multi-tile objects...

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Nausicaä Roguelike
« Reply #12 on: March 30, 2013, 08:26:11 pm »

I put in a few more hours of work on this today :)

I'm working on multi-tile entities, which are partially working (need to make sure multi-tile actors are limited by their new size... Ohmu, here you come!). I also implemented animations, which I'm pretty excited about, since I'm hoping you'll see the effects of the wind and so forth :) They seem to be mostly working, though I need to test out a couple more things.

Multi-tile objects rendering is kinda borked. The tiles around multi-tile objects draw over it, so I just need to implement layered rendering. Should be fine, perhaps a couple hour's work. I'll try to find some time tomorrow, but after that it's more game features hopefully :)

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Nausicaä Roguelike
« Reply #13 on: April 01, 2013, 05:43:38 am »

I think most of this is working :) I'm quite annoyed at SDL's performance to be honest, but I seriously can't be arsed to switch the entire engine to something else at the moment. Apparently you only get hardware acceleration in full-screen. Ah well, it's not like framerate is going to be a massive issue anyway.

Have a tiny video of the current state of things.

Neonivek

  • Bay Watcher
    • View Profile
Re: Nausicaä Roguelike
« Reply #14 on: April 01, 2013, 10:04:14 am »

Is... she doing an Egyptian dance?
Logged
Pages: [1] 2