Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Max

#136
Hey Akamatsu. One thing that will help is putting some periods in your sentences what you ask questions, I was a bit confused trying to read that. But the take away is you're trying to recreate some of the freezing behavior of the redeads in Ocarina?

There's a couple things you'll probably need. The way I would do it requires a basic understanding of timers and some basic enemy programming.

For the freezing part specifically, I think you want the redeads to freeze link when he's close enough? You'll have to have your enemy script check the distance to the hero every several milliseconds, you can find a lot of enemy scripts that do that.

Once the player is close enough, you'll probably want to use hero:freeze() to stop the player moving. Then you'll set a timer and after  3-4 seconds, call hero:unfreeze().

If you have other questions, feel free to ask, I'm not sure if you've seen the documentation for Solarus, but look through there for timers and such.
http://www.solarus-games.org/doc/latest/lua_api_timer.html

#137
Your projects / Re: Ocean's Heart
September 02, 2018, 01:34:05 PM
It's up to you- I'm planning a late 2019 release, so there's still a lot to do, but Christopho has done like 3-4 hours of let's play of this game on his channel, so there's at least that much. I can put out a slightly updated version late tonight if you'd like, it wouldn't go much further content wise but since the last demo I've made a bunch of small changes to things like the sword attack,small changes in the world, replaced most sound effects, etc.
#138
Game art & music / Re: Original art
September 02, 2018, 03:06:42 AM
Congratulations, that must have been a boatload of work. The animations look pretty smooth.

The one thing that stuck out to me- when she jumps, is she flailing around a little bit? I only caught a glimpse, because in your video, she mostly only jumps while holding out her sword, but I think once she jumped without the sword out and she looked kind of like she was panicking? I thought it was an interesting character touch that perhaps communicated her personality through her movements, it makes her seem a little flustered. Was that intentional? Or maybe I mistook what was even happening XD
#139
I studied architecture for a while in college, and I've had the idea that some of the principals I learned about can be useful in designing games. Designing a building and designing a space you go through in a game are actually pretty similar. One simple principle used in architectural design in the differentiation of destination spaces as opposed to circulation spaces. Basically- is this space one I go to do to something (congregate, cook, sit, etc) or a space I use to get somewhere? Is this a room or a hallway?

The reason you'd care, as an architect, is people are uncomfortable occupying circulation spaces. In other words, people aren't comfortable if their table is in a hallway. I'm going to talk about designing buildings for a little bit before we move on to video games, but bear with me.

Many of us have been to coffee shops, and they're a good example. Here's a quick floor plan I made of like, every Starbucks near my house. It's not a great drawing, but hopefully you can figure it out.



The circulation space is in blue here. This space, right on the line between the door and the counter, is clearly where you walk once you come in to order a drink. It's a hallway, basically. Nobody sits in the tables that are shoved over here unless it's their last resort, because these are not in a destination area.

The other tables, by comparison, are much more comfortable to occupy. This feels like a destination space, kind of like a smaller room off the hallway.. One big reason for that is boundaries. This area is bounded in on three sides with walls, it feels contained. It's also not so rectangular, it's more square. And this ability for people to see boundaries that separate their area from other areas makes people more comfortable there.

Sometimes destination spaces are bound in and defined by walls, counters, or furntiure. Sometimes they're only visual, like defining an area with a rug. They're often more of a square than a long, narrow rectangle. Circulation spaces can also be defined with walls or maybe different colored floor tiles, and they're often longer and narrower.

So you can categorize most spaces as either a destination space or a circulation space. Rooms or hallways- let's bring this back to games. I wanted to write this because I sometimes see levels designed as a series of hallways without any rooms between them. Here's an example of one of the most boring areas to travel through in Zelda: A Link to the Past:



I put blue boxes around the circulation space- this area is just a long, long hallway. There are still enemy encounters here (the one near the bridge is particularly interesting), but they're shoved into a hallway. Let's compare this area to a later Zelda game, Minish Cap, where the designers again needed to basically shove a long hallway into a narrow part of the overworld:



I've again outlined the circulation spaces in blue (darker blue), and now the destination spaces in orange. These destination areas are bounded in on their corners and have narrow-ish entrances and exits. They feel more like rooms. And for the most part, the enemies are first placed on the map in the rooms when you enter the areas, leaving the hallways for walking through as a breather before the next room with an enemy or other activity.

The way the designers in Minish Cap used bushes and varied width of the paths to section off areas allows for a much more varied trip through this area. Instead of a long hallway, it's a series of different rooms connected by short hallways. This also builds in a little bit of pacing to the game, peaks of interest in the rooms, and lulls of calm in the hallways.

One way to do this is just to break up a long hallway into a series of rooms, putting fences or trees to block in "walls" and "doors", for example. It's important to remember how much of the map a player can see at once though. In Zelda 1, every section of the overworld was blocked off, as only once screen was loaded at a time. In Link to the Past, where the map scrolls, you'd need to be aware of how much of an area a player can see, and create "rooms" that are scaled appropriately. If they're too big, they may feel like open, boundary-less areas.


I think if we pay attention to the kind of spaces we're building, particularly in our overworlds, we can create a more interesting world to travel through, and one that gives the player peaks on interest and times of reflection.

#140
Quote from: Diarandor on August 27, 2018, 11:25:58 AM
1) Solarus is not an emulator, so your request makes no sense.

He's just asking if you can play Solarus games on an emulator. Which, although I don't know how it'd be done, you can. I built a raspberry pi emulator running RetroPie, and somewhere along the line I ended up with a couple Solarus games on it, Mask of Solarus and Return of the Hylian. That's actually the reason I decided to give the Solarus engine a try, because I knew somehow, these games can run on RetroPie.

No idea how that works though. I was hoping someone who knows better than me about publishing a playable game with Solarus (as like an exe or something) would answer so I could learn too, lol.
#141
Well right now, the fact that the hero throws an item on swinging the sword is the only thing that keeps this bug from being game-breaking, so maybe don't address that issue yet, haha. Also it makes sense, if you've got a shoebox or whatever in your hand then you suddenly swing a weapon you'd probably drop the shoebox :p
#142
Just to confirm, I still have this issue also. 1.5.1, though.

I did some testing a while ago, and my suspicion is that game:set_paused(false) puts the hero in an "idle" state instead of in a "carrying" state? Anyway, I think I traced the issue to game:set_paused(false), but then I forgot and never fixed it.

To reproduce it on my end, my pause screen shows a dialog and some images (that's all it does), and every time I pause when carrying an item, I get this bug.

Question- does swinging your sword force the item to be thown and reset the action button? That's how it works for me, which "solves" the issue but it's still a bug.

#143
I also have this problem in my game, which I think is 1.5.3? I don't think I ever solved the issue, but I'll look into what I found out once I get home.
#144
Okay, that makes sense. It'll help me remember, too : )
Can't wait for 1.6 then!
#145
Sometimes making new versions require revisions isn't the worst thing, if it makes the new version so much more intuative for newer users.

But anyway, I was wondering if this is related to how npc sprites and like, door sprites for example draw sprites differently relative to their origins. If you've ever tried to use a door sprite as an NPC or vice versa, you'll see what I mean. Can there be some standardization of where the origin point is relative to or is there a reason different types of entities draw sprites relative to their origins differently?
#146
I've had this one too. When you're going to a new map, every entity on the old map is removed, because the old map doesn't exist anymore. If you define entity:on_removed() for any map entity, it'll be called when you change maps.

I don't know what you're calling on removed for, but it looks like you want the book case to deactivate when the slime is killed? Maybe use slime:on_dead() instead.

Or, you could do
Slime:on_removed
If map:has_entity(bookcase)
Then remove bookcase


#147
Development / Re: Required Sound Effects?
July 26, 2018, 10:34:38 PM
Quote from: Christopho on July 26, 2018, 08:19:44 PM
There are still some hardcoded sound names in the engine, but no "monkey" or "octorok". Maybe these sounds are declared in your quest tree but missing on the filesystem? You can use the quest editor to show these kind of inconsistencies in the quest tree.
The engine attempts to preload all sounds declared in your quest if you call sol.audio.preload_sounds(). That would explain your problem.

The full list of files whose name is still hardcoded in the engine is detailed here: https://gitlab.com/solarus-games/solarus/blob/dev/work/data_files.txt (and we try to reduce it with every release).

Last remark: I recommend to use the latest release (1.5.3) rather than 1.5.1 to have a more stable engine.

Uh-ha, that was exactly it! I didn't realize when a sound effect was declared in the quest tree but wasn't available in the file system, they're moved to the bottom of the sound effects list in the editor. I was still searching for them alphabetically, oops. Moving them out of alphabetical order did make it much easier to delete them though, so there's that. Thanks guys! Now I've just got two more sound effects to change and I'll be using 100% my own assets : )
#148
Bugs & Feature requests / Re: door function issue?
July 26, 2018, 06:57:10 PM
So, I tried to reproduce your error and couldn't. My code:

Code (lua) Select

function basement_door:on_opened()
  print("no problems here")
end


That worked fine, so maybe it's an issue with Solarus 1.5.3? I'm running 1.5.1. That or you actually do have a typo in your door entity's name on the map. Just to cover all the bases, it is a door entity, right? Sometimes I use NPCs as doors and just set them disabled whenever I need the door open, but that would never call door:on_opened().
#149
Development / Required Sound Effects?
July 26, 2018, 06:52:00 PM
Hi! So, I thought the documentation for Solarus listed every sound effect the engine needed. I've been replacing all the placeholders I've been using from ALTTP, and I thought I was done, but I'm getting error messages for sounds the engine shouldn't need. Like, why do you need a monkey sound effect, engine? I thought it might be just because I was loading saves that had already tried to load them, but it happens even on a clean save file, so it seems like the engine is looking for every sound effect in the ALTTP resource pack.

Here's what I get when I start any games:

Info: Solarus 1.5.1
Info: Opening quest 'C:/Users/User/Downloads/SOLARUS - v1.5.2win32/Oceans Heart Test 02'
Info: Sound volume: 100
Info: Music volume: 100
Info: Joypad support enabled: true
Info: 2D acceleration: yes
Info: Turbo mode: no
Info: Video mode: normal
Info: LuaJIT: yes (LuaJIT 2.0.3)
Error: Cannot find sound file 'sounds/boss_charge.ogg'
Error: Cannot find sound file 'sounds/boss_fireball.ogg'
Error: Cannot find sound file 'sounds/bounce.ogg'
Error: Cannot find sound file 'sounds/chest_appears.ogg'
Error: Cannot find sound file 'sounds/heart_container.ogg'
Error: Cannot find sound file 'sounds/hero_seen.ogg'
Error: Cannot find sound file 'sounds/ice.ogg'
Error: Cannot find sound file 'sounds/intro.ogg'
Error: Cannot find sound file 'sounds/lamp.ogg'
Error: Cannot find sound file 'sounds/magic_bar.ogg'
Error: Cannot find sound file 'sounds/monkey.ogg'
Error: Cannot find sound file 'sounds/octorok.ogg'
Error: Cannot find sound file 'sounds/world_warp.ogg'
Info: Language: en
Info: Music volume: 60
Info: Lua console: yes
Info: Simulation started


Anybody know why the engine is looking for these effects? The errors don't seem to affect the game, since I never call these sound effects as far as I know, but it'd be nice to not start with 20 errors whenever I test anything.
#150
General discussion / Re: Templates for Resources
July 21, 2018, 05:52:43 PM
I thought you might have been coming from that background based on your question, lol. It's nice to not be beholden to some random number and layout of tiles.

Since you also have to create each sprite in the editor, those don't need to be any particular size either. Many of my enemies and NPCs are 24x24 or larger. The default hitbox for NPCs is still 16x16, but the displayed sprite can be whatever size you want. If it's huge you may need to do something to work around the 16x16 hitbox. For example, boats in my games are NPCs that have like 128x96 sprites, so I use wall entities to keep the player from walking through them.