Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1390938 Posts in 66804 Topics- by 59547 Members - Latest Member: changlea

April 20, 2021, 12:38:15 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsYear In The Trees
Pages: 1 ... 5 6 [7] 8 9 10
Print
Author Topic: Year In The Trees  (Read 31816 times)
Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #120 on: June 04, 2018, 01:10:21 PM »

Yah D2's solution is to treat your "hand" as just another inventory slot, so when you quit the game and return, whatever was on your cursor is still there. Planning to keep that same pattern. It's a little funky, but think it's the best available option. I do think the weirdness around that behavior was something that D3 devs thought they were fixing.

As long as players keep their inventory open, nothing would be reset. it's one of those things where you have to decide between what feels right and what's convenient. Like, smoothing out all the weird inconvenient stuff in games the way that Blizzard does, i can see the merit in accessibility...but it also gets rid of some of the personality. Seems to me like, players complaining about something doesn't necessarily mean it's bad.

Yeah, more inventory space could be unbalancing, but I can just shrink either grid if need be. Allowing players keep the extra inventory space and deal with stuff getting forgotten in there isn't all that bad. I could also default the crafting section to be open when there's stuff in there and they open the inventory window. I've also wondered about just anchoring all crafting to workbenches and other external inventories...still too soon to really make those decisions though, need to get into content mode first.
Logged

stevenmelin
Level 0
**


film & game music composer


View Profile WWW
« Reply #121 on: June 05, 2018, 05:39:32 AM »

Beautiful work! I love the art style. Is your goal to develop the entire game solo?
Logged

film & game music composer
www.stevenmelin.com
Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #122 on: June 05, 2018, 06:41:23 AM »

Beautiful work! I love the art style. Is your goal to develop the entire game solo?

thanks! yea pretty much ^_^
Logged

stevenmelin
Level 0
**


film & game music composer


View Profile WWW
« Reply #123 on: June 05, 2018, 06:59:38 AM »

thanks! yea pretty much ^_^
Impressive! Who, Me? I just PM'd ya with a thought.
Logged

film & game music composer
www.stevenmelin.com
Tusky
Level 1
*



View Profile WWW
« Reply #124 on: June 05, 2018, 07:03:16 AM »

thanks! yea pretty much ^_^
Impressive! Who, Me? I just PM'd ya with a thought.

Is it: please can I do your music?  Tongue
Logged
stevenmelin
Level 0
**


film & game music composer


View Profile WWW
« Reply #125 on: June 05, 2018, 07:14:56 AM »

Impressive! Who, Me? I just PM'd ya with a thought.

Is it: please can I do your music?  Tongue
Maaaaaybe kinda sorta!?
Logged

film & game music composer
www.stevenmelin.com
Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #126 on: June 05, 2018, 07:46:34 AM »

lol tusky

ya sorry but no, the soundtrack is off limits!! get a lot of requests like this, so maybe its not clear from my bio, but music is kinda my main thing.

down the line, and dependent on some external funding situation, i could see contracting some help with sound design and QA though  Toast Right
Logged

stevenmelin
Level 0
**


film & game music composer


View Profile WWW
« Reply #127 on: June 05, 2018, 08:03:46 AM »

lol tusky

ya sorry but no, the soundtrack is off limits!! get a lot of requests like this, so maybe its not clear from my bio, but music is kinda my main thing.

down the line, and dependent on some external funding situation, i could see contracting some help with sound design and QA though  Toast Right
Cool to hear! I'm always impressed by solo devs. I look forward to following your dev! Gentleman
Logged

film & game music composer
www.stevenmelin.com
Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #128 on: June 08, 2018, 08:56:56 AM »

Hey all - so a few months back I did a fairly lengthy interview with Erik Meyer for indiegraze.com which I have been meaning to crosspost for some time. There's a lot here, so hopefully you'll find something interesting/useful!


---


Indiegraze: You've spoken to the influence of games like Crawl, ADOM, Hyper Light Drifter, and Moonman, among others, and I note these games focus on beautiful minimalism, meaning devs only use as many pixels as necessary to convey an action, something that has certainly carried over into your work. From a visuals standpoint, what standards do you hold for yourself regarding tiles, trees, and the animations themselves? What does your workflow look like?


Lunoland: When I first started, I thought I would eventually need to bring in a "real" artist because I thought I wasn't good enough. Originally the minimalism was just a practical thing: I wanted to do something I could succeed at, and pixel art seemed like that thing. It's really become a central part of the project since then though.

With all the uncertainty in indie games at the moment, my advice would be to start something you think you can finish yourself. That way, the game won't be cancelled due to a collaborator leaving or you running out of money. It's no accident that self-reliance and stoicism are some of the major themes explored in the game!

One thing that I love about the visual style is the orderliness that accumulates as the resolution gets smaller and smaller. The individual pixels become increasingly important, so you have to be very deliberate about where you choose to place them. Low-res art makes the game more performant too - the textures are absolutely tiny! Animating also becomes much easier, but backgrounds become a huge bottleneck because you have to be so meticulous. You can't just paint.

I think some pixel artists will attempt to keep things more organic by working the way they would in high-res digital art...just with the pencil tool. I actually like the pixel art styles that embrace the rigidity though. You let the blockiness of the pixels become part of the visual vocabulary. It becomes more analytical. It's almost like you're uncovering the correct way each object should look in the game world through trial and error.

Regarding my standards, yeah, I definitely feel like there's a "right" way everything in the game should look and I will continually revise an asset until I find it. It can take 5 minutes or it can hours, but I just know it when I see it. I've developed this crazy ethos that every part of the game, including things like the UI windows and fonts, should be of a piece. The perfectionism is kind of a burden, but having a strong aesthetic foundation gives you an easy way make choices and decide what should and shouldn't be in the game.




IG: The in-game menu system conveys a range of information (health, map, inventory, etc), so as you've added and tweaked elements, what UI/UX principles guide the way? Even good games like Terraria can have a lot of hotkeys and cumbersome menus; what kinds of ergonomic/graphical considerations come into play?


LL: The UX is still very much a work in progress. It's true that I've been heavily influenced by ADOM and other classic ASCII rogue-likes, but my god do those games have a lot of buttons. I'm actively working against that! It's a PC game first and foremost so keyboard/mouse will be the default mode of play, but I'm trying to keep it relatively painless to use a controller as well. I'm absolutely married to the grid-style inventory so we'll see if I can actually pull it off!

I love games that have an ornate, skeuomorphic look to the UI. I came up playing Everquest and those kinds of early dorky-looking RPG games for PC with a lot of UI. There's a trend now in modern games to do the slick, minimal thing. It's like you look at trailers and #screenshotsaturday and devs are downright afraid to show their UI! It can make sense for some games, but the whole web 2.0 look is something I'm trying to resist.

I actually think Breath of the Wild is guilty of this, but it's such a lovely game that I don't think anybody cared. Blizzard is definitely doing this right though: I referenced Hearthstone quite a bit when designing my UI. That and the old Heroes of Might and Magic games!




IG: Crafting/recipe mechanics can make the detritus of game worlds more interesting, but an overabundance of options can also be overwhelming or dominate the experience, so as you've implemented this set of features, how do you make everything run like clockwork without feeling too predictable? It's fun to craft, but a game can't only involve collecting things, no?


LL: Agreed. I'm glad you brought up Terraria, because in some ways that's the kind of game I'm trying to avoid. I don't want you to have to play the game with a wiki open the whole time. For this reason, your character has to actually unlock a recipe before you can craft it, so don't even bother with Google. Everything will be in your recipe book! You can also find usable items scattered throughout the world or by trading with NPCs.

The crafting in this game actually functions a bit more like a quest log though: You start with a few basic recipes, and as you craft more you'll discover new recipes that require increasingly exotic ingredients.

In the background, there are several tiered tech trees that govern how the recipes unlock, so the kinds of things you tend to craft will be the kinds of recipes you learn. Some of the recipe tiers are mutually exclusive, so your character will actually become specialized over time (e.g. if you learn to make the very best armor, you won't be able to cook the very best food).

The new recipes show you the ingredients, but not where to find them. My hope is that this will gently guide players: "Oh look, I just unlocked hearty stew...hmm, but how do I get a potato? Where can I find stock?", and thus you set off on your path to become the greatest chef in the land.

Players who aren't interested in crafting can loot dungeons instead. Or you may grow/collect resources and trade with NPCs for provisions. My lofty goal is that players will feel intrinsically motivated to pursue their own interests, but that the game will be guiding them enough that they won't feel the need to Google spoilers too often to progress.




IG: As creatives, it's important to acknowledge the roles our surroundings play in our projects; I live in the Fargo area, while you live in Chicago, so what does the Midwest contribute to what you do? Similarly, as you've been looking at crowdfunding options and sharing your work through social media, what adjustments and takeaways have presented themselves?


LL: I'm very midwestern at heart! At this point, half my life has been in Chicago and the other half in Michigan. Chicago has a great indie community that has become increasingly important to my personal development, but I really do miss the nature and beauty in Michigan. The city can actually be pretty stifling for me a lot of the time - the cost of living is high, there's people everywhere, and day-to-day life is much more stressful and inconvenient than it was in Michigan.

I think the game actually represents my longing to return to more natural surroundings. I've always wanted to move back to Michigan, but my career and personal life have become pretty dependent on Chicago. Most of my friends live here. The bands I play in are here. The only games people I really know are here. So maybe the fantasy of escaping to a solitary cabin in the woods and the game world that I'm inventing are a way of coping with the things I'm missing here in the city.

I think in talking about my ideas for the game with others and trying to get my work out there, I'm learning that this is actually a pretty good hook too; A lot of people seem to feel the same way. I think the charm and success of a game like Stardew Valley speaks to this.




IG: Music and sound in general play a prominent role in your work, so I should note that you're recording your own live performances on various instruments to make the audio unique; can you let me into your process a bit? Within 8-bit games, what do you see as *generic* music, and which elements that you add/approaches you use bring critical nuances?


LL: I love working on the game's music because it's the skill I've spent the most time developing. My degree is actually in music! I feel so much more efficient when working on the soundtrack than I do the art or code.

As for the live performance aspect, I want to be careful not to make any kind of value judgement about working purely with MIDI. I don't record live because I think it will be better per se, it's just sort of what I know already. I try to highlight the live soundtrack as an interesting point of differentiation though, since most game music tends to be some flavor synth and very much "on the grid".

My process is sort old-fashioned, but it's not like I record to tape or anything. Since it's just me, I multi-track everything to a click unless there's a lot of rubato or it's primarily a single part. Most of it is just me sitting at the piano chasing ideas around for a few hours until something grabs me. I usually build everything on top of some harmony that I find interesting, but occasionally a hook or melody will form first and things will take shape around that.

Once I have enough of a structure to go on, I put down a scratch piano reduction of the tune, and then I arrange everything on top of that. I mix a bit as I go and once I've tried all my ideas and it feels like there's nothing left to add I switch into full-on editing/mixing mode. If I'm being good, I'll put the tune down and come back a day later for a final mix and a quick master. At the very end of the project I re-master the work as a whole, and that's it!

A lot of the aesthetic in my music leans pretty heavily on tape machines and electromechanical stuff (Rhodes, Mellotron/Chamberlain, tone-wheel/transistor organs, that sort of thing). They're sounds that are somewhere between a synth and an actual acoustic instrument.

That stuff is great because it's got a ton of character and dirt, but it's very unambiguously a reproduction. It never enters the uncanny valley the way a lot modern sample libraries that are striving for realism do. I think the stylized pixel art look is equally timeless for the same reason. Realism doesn't tend to age well! Then again, the vintage tape machine sounds we use today were once the hyper-realistic samples of the 60's, so who knows. Maybe future devs will be making "retro" Uncharted-style graphics in another 30 years, but I kinda doubt it.

As for what makes game music sound "generic", I think a lot of it tends to fall into the same two buckets because of the history: There's the sequenced chip tune/80's synth wave stuff that comes from the limitations of early computers and consoles, and then the cinematic orchestral stuff with apocalyptic choir/tribal drums coming out of the film & television world.

Those styles aren't bad (although I personally don't care for the cinematic stuff), they're just ubiquitous; It's going to be pretty tough to stand out doing the synth stuff unless you can hire Disasterpeace or Survive! It think this is actually a good thing because it represents a huge opportunity for indies...there's this blue ocean of local musicians hungry to collaborate who exist outside the tradition of game music.




IG: I like that you're meshing survivalism and magic in YITT, meaning I might have to fend off a bear and a skeleton at the same time. That said, what do you see as critical in balancing activities like fishing, mining, and farming with magic and hidden secrets? When you seek to balance the different options, what are your criteria?


LL: It shows up in Don't Starve a bit, but I'm definitely aiming for more of a high-fantasy setting. There's a lot of post-apocalyptic zombie stuff and gritty nature survival out there...I want witches, herbs, and crystals!

The balance part is tough because I'm not really there yet. Like, the game is very vertical slice-y at the moment, so I have a lot content planned but I don't really know how much of it is actually going to work.

For what I have in mind, you will definitely be doing some Gandalf shit though. You will definitely shoot a fireball. Magic is just another natural process that can be potentially understood in this world, but the setting is sort of low-tech so most of the inhabitants are fairly ignorant of how the world works. This meshes with the nature survival stuff pretty easily though, as anything you'd do in this world like fishing, you can do it just a little bit better with magic.

It might sound a bit lazy, but in the story I've written magic is sort of a stand-in for humanity's ability to disrupt homeostasis and shape the world towards our ends (human flourishing, usually). I promise there's nuance though! The story does not take an clear stance on the ethical question of whether or not it's best to do this.




IG: The fact that you use randomly-generated levels and items to nudge players toward different preoccupations and experiences means YITT will have solid replay value; as a developer, what is your philosophy behind revealing the history of the game world? How do you dole out secrets and narrative flow, given varied exploration and advancement options?


LL: I hope so! I'm trying to design the game so that you won't be able to see everything on a single character.

As for the story, uncovering it will be pretty passive almost by necessity. I think if you're trying to make a rogue-like where it's very player directed and vaguely sand-box-y, you can't really have the player be the "chosen one". The story can't be happening to them, they have to be free to interact with the parts that are novel or interesting to them and ignore the stuff they've already seen (especially if they're going to be dying a lot). So a lot of learning happens from electing to cultivate relationships with NPCs and discovering ambient lore hidden throughout the world.

For example, one of your characters may discover an abandoned house that you've never seen before. If you explore it, you might find some journal hidden under a loose floorboard that provides a little back story on the people that lived there. It won't show up in every game, but the next time you see it you can just move on. Excepting a few big moments, most of the narrative will work this way.

A lot of these vignettes will end up being flavor, but some of them will tease the central mystery of the world. Players who like to explore and hunt for secrets will accumulate enough of these little pieces that, when taken as a whole, give you a pretty good idea of what's going on. It's the sort of thing where I have this whole back story, but I will only surface bits and pieces of it in the game. If I'm lucky, a lot of wildly inaccurate fan theories will emerge. I love that stuff!

Of course, it should also be possible to just ignore the story altogether and survive by running a little farm for a year if that's your thing.




IG: You are a multi-instrumentalist and recording engineer who loves pixel art and has a day job as a backend programmer and business intelligence analyst for an online retailer. You've also participated in Indie City game events, not to mention your application to the Swedish games incubator Stugan, so how do you see these varied aspects of your life finding their way into your work? As you chart a course for yourself, what do you fall back on, and what drives you forward?


LL: Hmm, I guess mostly it's that I have this pretty broad range of interests and that I've spent a lot of time cultivating, but I don't think I could ever be fully satisfied in a career where I only get to focus on one of them (well, maybe original music, but let's be realistic I stand a better chance of winning the lottery at this point).

I'm sort of worried I figured this out 5 or 6 years too late, but indie games is a space where I can do *all* of these things and more. It's pretty amazing! I never get bored and I feel this real sense of excitement and motivation.

I just never thought it would be possible for me to have any kind of shot at a career where I wouldn't hate Mondays, you know?

At this point, I would absolutely make a deal with the devil and give up playing games forever if it meant I could be paid a livable wage to make my own indie games. In some ways, that's kind of what I've already done (see my Gamasutra article).

So yeah, my ambition right now is the same as everyone else's: find a path to working on the game full-time. Stugan is definitely a part of that. If I'm accepted this year, that'll be like dipping a toe in. Maybe a whole foot. I work a crazy amount on the game outside of my regular job, and I've even taken on a second freelance job to try to start transitioning to half-time. So I'm doing everything I can to make this happen, there's not much time left for anything else and a major part of me can't help but wonder if I'm just deluding myself.

I acknowledge that's probably a bit unhealthy, but it's what get's me out of bed these days.

 Wizard
Logged

Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #129 on: July 17, 2018, 05:51:22 AM »

Hey y'all, first devlog from Stugan! I'll post some game updates first, with a life-at-Stugan entry to follow.

Thus far I've finished tons of bug fixes and essential quality of life improvements (thank you play testers), and I've also added two new systems for quests and dialog. The dialog system in particuar took me way more time than I anticipated (no surprise there) because I had to do a fair bit of refactoring to get everything fully integrated. Even though the process to display the dialog was already working, I had to establish more of the framework for NPC interaction, decide how everything would be organized, and so on.

For this devlog entry, I want to talk about how I approached designing my dialog system, and what I learned along the way.

Dialog System

Design Goals
As I worked on the dialog, I was able to crystallize these goals and limitations for the game's narrative:

1. I want to tell a compelling story where the player is not the center of attention. The story isn't thrust upon you, you're just discovering how the world is; Maybe a bit like an archaeologist who is researching ancient peoples while simultaneously interacting with their descendants.

2. No walls of text. The dialog system should actively discourage me from trying to show much more than a short sentence or two on screen at once. I've been referencing some classic JRPGs since they have a lot of story but are a breeze to read. It really helps to have the text broken up into readable, bite-sized chunks.

3. The player is not able to respond to dialog, and thus there is no "branching" conversation. This keeps the complexity down and also dovetails nicely with the passive nature of the story (see #1). Very little gameplay should depend on you "unlocking" stuff in conversations with NPCs. If you already know how something works, you should be able to proceed without stepping through a conversation.

4. For storytelling and atmosphere, the characters need to be able to conditionally remark about certain world events (weather, seasons, etc.), and to have "scriptable" dialog, e.g. an NPC's dialog changes when you're carrying a certain item or if you've visited a special area.

5. No animated text effects. These have become pretty popular in RPGs and visual novels today, and I think they would be fun to implement. Ultimately though, it would create a lot of unnecessary work for me, and since most of these effects tend to be a bit fun/goofy I think it would clash with the tone of the game.


A good example of what I don't want might be the WoW quest text, where there's no less than three paragraphs for even the most mundane task. I have a hunch that this is in part due to the size of their text box and font; With all that space there's probably some psychological pressure on the writers to be wordier. This is compounded by the fact that the average player probably goes through hundreds if not thousands of these quest boxes...yikes.


What I absolutely won't be doing. How many of you just read the "quest objectives" and moved on?  Cheesy


Presentation

Back when I first started working on how I could add text to the game, I was struggling with the ultra-low resolution. I wanted to use pixel fonts and have all the UI and artwork be the same resolution, but the fonts were taking up too much space.

The first thing I came up with was this sort of, cinematic-style dialog. I thought that this would give me more space, but there was an issue: it required you to enter into a sort of "dialog mode".


I thought the letterbox would be necessary to create space for the dialog


A common strategy is to pause the game while this sort of thing is happening. Guild Wars 1 actually made your character invulnerable during dialog/cutscenes, which resulted in the funny side effect of monsters wailing on you indefinitely while you chat.

I tried it out but it just felt wrong; It really seemed like you ought to be able to start a conversation and then continue to play the game or walk away if something was attacking you. The dialog should be part of the world, and I needed you to be able to dismiss it at any time.


The next thing I experimented with were these world-space UI word bubbles


I tried word bubbles instead, and it fit my needs perfectly. You can exclude the speaker name if a character hasn't introduced themselves yet or is unimportant and it will still be clear who is talking. The word bubbles also allow characters to have ambient conversations with each other as you run by. This is awesome because as the player moves out of sight of the word bubbles it models "being out of earshot" of the conversation.

The only downside is that you need to be really careful with the length of the text, but as I mentioned earlier this is a really helpful limitation. I was able to get enough space on screen by allowing certain fonts to be rendered at half of the pixel size of the artwork; I'm really strict about where I use this scaling, so you don't really notice.


The dialog and tooltips are all half the resolution of the artwork and NPC name/gold!


Systems

Once I figured out how the dialog would look, I needed some kind of system to manage which dialog you see when you talk to an NPC. Through testing, I was able to figure out some good rules for how the dialog should advance:

- Any button that has context sensitive "cancel" functionality will end the conversation immediately

- Walking away from the NPC or choosing another interaction (shopping, quest, etc.) will also end the conversation

- A conversation is a list of dialog elements, where each element contains 1 to 4 lines on average.

- You must click or push a button to advance to the next line. When you've finished a set of lines the word bubble disappears and talking to the NPC again will advance to the next dialog element in the list. If you talk to an NPC after you've reached the end of the list, I use the tried and true RPG convention of displaying the last line of the last dialog element.

- While a new line is printing, you can push this "OK" button to display it instantly

- If an NPC's dialog needs to temporarily change for some reason, the previous conversation will pick back up later from the first line of the dialog element you left off at. In this way, the dialog elements act as checkpoints.

- You will not advance to the next dialog element in a conversation until the last letter of the last line is visible: If you make it to the last line of some dialog, but push the cancel button or walk away instead of pressing "OK", you still get the next set of lines in the series when you talk to them again. However, if cancelled mid-line, the dialog starts over from the first line of that element so you won't miss anything on accident.

Finding the rules for that behavior went really smoothly, but figuring out how to represent this in data was less straightforward than I imagined. Would I need to be able to specify the NPC's name for each line, or each dialog element? What if the NPC has introduced themselves in a previous conversation, but in this conversation they are named "Mysterious stranger"? Working out these issues was a challenge that I underestimated.


Another big mistake I made was trying to build a generic system for NPCs to have conditional dialog. I thought I could do something simple that would impose some helpful limitations, but the system I wrote was all kinds of speculative and quickly mutated into something terrible.

I tried to define a list of "dialog events" (raining, snowing, npc's mom died, etc.) and have other game systems register/remove these events from a static collection. When chatting to an NPC, the dialog system would check this list against the NPC's data to try and work out the highest priority piece of dialog to show at that moment. Worst of all, I thought it would be good to define this data in Unity's inspector on each NPC.


This...fucking sucked. I can't even show you what the code that evaluated this data looked like.


After two days of trying to build this system (and just after I had added a second "priority" number for each snippet for dialog) I recognized what a shit idea this was. It seems I'm continually relearning this lesson (despite years of constant ranting), but over-engineering some speculative, generic solution before you fully understand your problem and have lived with a more manual, hard-coded process for a while is always a gigantic mistake.

What worked best in the end? Just scripting it for each NPC. Literally a script on each NPC that returns the correct dialog, and the logic/content is defined in text in that script. No sandbox methods, no events or messages, just straight up hard coding the behavior. So much better.


Scripting: Infinitely more flexible, immediately understandable, far easier to edit


For many players, I expect that untangling the narrative mysteries will be a major incentive to explore, but the story will always be optional. For now at least, I think I ended up with a dialog system that ticks all the right boxes for this game. I suppose I could have also tried to keep things fresh with procedural narrative, but I actually want to be able to finish the game!

Here's a look at the finished system in action. Next time I'll talk about how a simple re-skin of crafting yielded a quest system with a totally different feel and tons of storytelling possibility.

Thanks for reading! Wizard



« Last Edit: July 17, 2018, 06:19:38 AM by Luno » Logged

sidbarnhoorn
Level 3
***


View Profile WWW
« Reply #130 on: July 17, 2018, 06:49:18 AM »

This looks lovely and I'm liking the music you're composing for it too! Smiley Good luck with the development!  Coffee
Logged

Siddhartha Barnhoorn
--------------------
Award winning composer

Composed music for the games Antichamber, Out There, The Stanley Parable, Planet Alpha...

Website:
http://www.sidbarnhoorn.com
Bandcamp:
https://siddharthabarnhoorn.bandcamp.com
Twitter:
https://twitter.com/SidBarnhoorn
Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #131 on: July 17, 2018, 11:17:50 PM »

This looks lovely and I'm liking the music you're composing for it too! Smiley Good luck with the development!  Coffee

thank you so much!
Logged

jg.camarasa
Level 1
*


View Profile
« Reply #132 on: July 19, 2018, 03:18:58 AM »

Quote
over-engineering some speculative, generic solution before you fully understand your problem and have lived with a more manual, hard-coded process for a while is always a gigantic mistake.

Preach!
Logged

Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #133 on: August 14, 2018, 10:51:26 AM »

Thanks for stopping by! I just got back to the US after two months in the Swedish woods participating in Stugan. I wrote this three-part post to tell you all about my experience there and the progress I made on the game.

I mentioned in the last post that I would write about the new quest system and I'm actually going to cover that in the second and third posts which will be a play-by-play analysis of all my commits at Stugan.

The Stugan Post-Mortem Part 1: Life at Stugan
The Stugan Post-Mortem Part 2: Game Progress Report
The Stugan Post-Mortem Part 3: Game Progress Report Continued


The Stugan Post-Mortem Part 1: Life at Stugan

First off I need to say that I'm beyond grateful to the organizers, Jana and Tommy Palm and Oskar Burman, for selecting me. There's really nothing else like Stugan; Every comparable incubator or accelerator program either asks for equity in your company, a share of your profits, or some kind of fee. I owe this amazing summer entirely to them/the 2018 sponsors, and it feels like a big step forward in my journey.

It's really been bittersweet leaving the natural beauty of Dalarna county in Sweden behind. Landing in Chicago after 14 hours of travel and driving home through the city sprawl around O'Hare, all I could think was "why the fuck do I live here?" The gritty urban bleakness and boxy office parks along the freeway were underscored by the two days prior I spent in clean and charming Stockholm.

After almost two months though, I think I was starting to hit the wall a little bit, so despite all of that part of me was pretty glad to be back home. I have a few days off to get over my jet lag before returning to work, but needless to say I think it's going to be tough adjusting to my old routine.

It's been especially hard saying goodbye to all the amazing people I met this summer. I think we were just at the point where some deeper friendships were beginning to form, so it's really a bummer to be splitting up now.


Stugan class of '18! That's me on the far-left, bottom row


The Good
+ Balance. The work life balance really was as amazing as it sounds. The accommodations were also much less rustic than I imagined: We lived in pairs in these cozy, neatly furnished two-bedroom apartments, each with a full kitchen. Folks were always organizing little group events in the evenings and there were lots of wholesome summer-camp-y activities any time you needed a break. Hiking, swimming, sauna, biking to the nearby town...I don't think I watched a single minute of TV. I only ended up taking two days off from work, but I don't feel burnt out in the slightest (knock on wood). I think this was only possible because of the program and community there. It was definitely the ideal environment for me to safely test my limits a bit.


+ Community. I guess this naturally fluctuates a bit year to year, but our group seemed to get along really well. I learned so much and I couldn't have worked as hard as I did without their companionship. A few weeks in, some loose circles of friends had formed but it never felt clique-y. You could kind of float between different groups depending on your mood.

It was interesting for me as someone who's fairly introverted to get to feel like a part of this collective. Back home, almost all my creative time is spent solo and I feel like I'm sort of on the perimeter of the indie scene. Cheesy as it sounds, my time at Stugan has really got me thinking about priorities in life; The value of co-working spaces and community is becoming increasingly apparent.


+ Natural surroundings. This is something I've really been missing in Chicago. City parks just don't compare. You can always make time to drive somewhere of course, but there's really no substitute for ambient nature. It's like a panacea for burn out and stress that just puts you at ease. I was often reminded of the parts of Michigan where I grew up, so I had been toying with the idea of moving out of the city. Ultimately though, that would be at odds with the community stuff I mentioned previously. I'm not sure if there's a way to have both, but the fantasy of escaping to a solitary life in the woods continues to color my work on the game.


I took this picture on the last day at Stugan. I was on a solo hike to gather a few final field recordings and nature sounds


+ Feedback. We organized weekly playtesting sessions and there were always new people stopping through to try out everyone's games. Playtests gave me little targets to hit each week and helped me get over being too precious about showing the game. It sounds cliche, but there were so many small things I hadn't thought of, from gameplay to marketing, that once someone else pointed it out to me it just seemed obvious. Instead of having to say, "Oh yeah I know that's broken" over and over, it's really an amazing feeling to solve these issues and suddenly see players unblocked and giving you new and useful feedback.

One example was the campfire in my demo: you can build one, but it doesn't do anything yet and the current asset is like the third pixel art thing I ever made. I thought it wasn't super important and that I could just finish it later, but after watching players jump through all these hoops to build one...it was such a disappointing moment. It's one of the first things people try to do in the game and I realize now that I need to juice it up so it feels awesome when players figure out how to make one for the first time.


Thanks for playing my demo for half an hour, here's your shitty reward XD


The Bad?
- Pressure. Since I wasn't earning any income while I was gone but I had to continue to pay rent, health insurance, and so on, I felt like I was on the clock the entire time: I was paying for this one way or another, so I'd better be getting a lot out of it. I was afraid of not getting enough done on the game and coming back empty handed, but I also wanted to get the most out of the experience. I'm not sure if I could have prepared for this better, but if nothing else it was probably a descent proxy for being a full-time indie.


- Autonomy/Privacy. In theory, you were allowed to make your own schedule, but in practice you're sort of bound by the scheduled meal times. I think this is an inescapable side-effect of trying to find an efficient and cost-effective way to feed 20 people 3 times a day (and the food was pretty dang good too). As a result, everyone has a similar schedule and you're around the same people constantly. Despite this, FOMO is still a thing and it's kind of hard to go off on your own much. Two months was pretty much my limit, so I'm happy to be back home deciding my own meals and such.


Meal times were really important for group cohesion/structure, but the routine starts to get to you eventually


- Anxiety. Speaking of food, I have a lot of allergies (some of which are the deadly sort) so I have this crazy anxiety about eating out and not preparing my own food. As you can imagine, a program overseas where all your meals are made for you* is sort of a nightmare for me.

Add to that me being a weird loner in this ever-present group, and I probably ended up pushing myself too hard. It's tricky when you meet a lot of new people like this, and you're trying to please everyone and be the best version of yourself; I couldn't really let down my guard often, and I wasn't super in touch with many people back home so I didn't have a great way to process stuff.

I probably should have taken more time alone? In my experience, mitigating anxiety with avoidance always seems to make the problem worse. At least, I do feel more resilient for having pushed the boundaries of my comfort a bit.

* I should say that the staff at Bjursås SkiCenter where we were staying did a really solid job of accommodating the various dietary challenges for our group. I'm sure some of them must have been kinda perplexed by all these international weirdos hanging around all summer, but they really made us feel welcome.


- Attachments. The combination of my schedule, the time difference, spotty wifi, and this crazy new experience had me pretty checked out of reality. I really disappeared into my work, which was great in some ways, but I sort of had to put everything in my life at home on pause and some things nearly imploded as a result. I think it would have gone much more smoothly if my situation was a little different, so YMMV.


- My podcast? I attempted to record a game dev podcast while I was away and wow that was a pretty foolish idea in retrospect. I released two episodes (which you can find here) before I realized, but I was definitely overextended. It was a worthy experiment though, since I've wanted to try it for a while, but I knew I'd never have enough time at home.


Conclusion
So that's it for the life at Stugan portion. Overall, it was incredible and something I'll never forget. If you think it might be a good fit, I definitely recommend that you apply next year - it's common to have to apply twice if your game is big, so don't give up hope if you didn't hear back this year.

There's so much more to say, and I've only scratched the surface here, but I may have some opportunities to talk more about the experience soon. I'll keep you posted, but the best place to stay updated on such things is my twitter.

Stay tuned for part 2 where I'll discuss the work side of things and challenges I faced there.







« Last Edit: August 16, 2018, 06:57:49 AM by Luno » Logged

Mochnant
Level 0
***



View Profile
« Reply #134 on: August 14, 2018, 11:17:25 AM »

Great recap, Luno!  Sounds like an overall very positive experience!  Looking forward to seeing the various changes and improvements.
Logged
Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #135 on: August 14, 2018, 11:27:41 AM »

Great recap, Luno!  Sounds like an overall very positive experience!  Looking forward to seeing the various changes and improvements.

Thanks Moch, part two should be coming tomorrow! There's also a bonus audio version of this post available as well. Wizard
Logged

Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #136 on: August 15, 2018, 06:29:08 PM »

The Stugan Post-Mortem Part 1: Life at Stugan
The Stugan Post-Mortem Part 2: Game Progress Report
The Stugan Post-Mortem Part 3: Game Progress Report Continued


The Stugan Post-Mortem Part 2: Game Progress Report

Well I know literally no one asked for this, but I thought it might be a useful exercise to go through my entire commit history at Stugan and talk about what I did there and why.

There's enough here that I decided to split this section into two posts, so Part 3 will pick up where I leave off here. Let's begin!

Quote
2018-06-29
Misc fixes to weather system et al. Finished dialog (probably).

2018-07-01
Major overhaul of the input manager!

The very first thing I did at Stugan was get my dialog system sorted out. This was such an important feature (and you can read about it in detail here). With the dialog in the game, everything just came alive with purpose.

A nice side effect of working on this was that I noticed I was checking if a button had been pressed in several different places. As a result, I ended up doing some important clean up on the input system and squashed a few bugs with modifier keys (shift, alt, control) while I was at it.

I remember being really mad at myself over how much time I wasted exploring generic solutions for the dialog system, but looking back this was really a pretty great start!

These features sort of set the tone for the rest of Stugan actually. I had to go through some older code to tie off loose ends or make new stuff work, and in doing so had to deal with a lot of tech debt/jank from the start of the project.

In the midst of these sorts of clean-up operations, I remember being really frustrated because it felt like fixing all the old code would be impossible. I thought, "In the next game, I'm just going to do all this stuff right the first time." But the important lesson here is that you can't skip learning, and this feeling is a delusion: Nothing is ever actually so bad that it would be easier to start over. Looking back on it now it wasn't even that hard, I just fixed things as I went and one by one the crufty old scripts disappeared.


The simple/flexible dialog system I added lets NPCs remark about world events like weather. Read more here



Quote
2018-07-02
Tons of fixes to interactions, squashed some bugs, added a lot stuff to the tech demo area so I can actually do playtesting.

2018-07-06
Added a feature to sync any UI window the player inventory. Fixed some NPC interaction stuff, and improved the clock UI (smaller and more modular)

By this point we had established a time for weekly playtesting, so now the pressure was on to have my little tech demo area be something more than a dumping ground for the random shit I was working on. To get useful feedback, I was going to have to actually do a bit of level design. I was also long overdue to try to make the in-game clock UI a little smaller, so I spent a day or so on that.

After this first round of feedback, I had a sheet of paper with like 20 issues on it. Most only took a few hours to fix, but there was more than enough stuff to keep me busy for the next week.

A good example is this "sync UI windows to the player's inventory" thing. Before I added it I would watch people open up the crafting table or the shop and fumble around trying to find their inventory, or to figure out where that item they just bought went. Then they'd be annoyed trying to close both windows afterwards. Adding this feature was easy and fixed all of that.

I guess I should have foreseen this, but everyone kinda had the same story by the end of Stugan: "I came here with a lot of new stuff I wanted to do but because of playtesting I had to fix a ton of issues instead." I'm glad though, since the game is much better for it.


The evolution of my clock UI


Final clock. Perfect clock.



Quote
2018-07-07
Started on quests. Tons of refactoring and bug fixes, experimenting with better monobehaviour wrapper.

2018-07-12
Cleaned up some stuff. Spent hours and hours testing new monobehaviour replacement idea out and turns out it's slower in most cases than my current wrapper.

This one was pretty brutal. So like a lot of Unity users, I have my own wrapper class for MonoBehaviour. My wrapper has a version of GetComponent that caches the result in a dictionary and uses that cached version for subsequent requests. I realized months ago that I only need one component cache per GameObject, instead of one per script...I was probably doing extra GetComponent lookups and storing copies of the same reference in multiple dictionaries (say, if three scripts each needed the object's Transform). I ended up talking about this issue with some of the other devs there and I was inspired to work on it.

I experimented with a couple different strategies and eventually, I settled on a solution where I had a static dictionary of GameObjects and components caches (which were themselves just dictionaries of Type, Component).

Long story short, I ended up spending way too much time tinkering with this and benchmarking to see if I could get better performance. Under this scheme though, GameObjects had to register and remove themselves from this static dictionary. As a result it ended up being an order of magnitude slower to load/unload scenes. The performance gains on the GetComponent lookups only became apparent when I had an object with like 3 or more scripts that all needed references to each other, which in practice just never happened.

Maybe the lesson here is something to do with premature optimization? I really had an itch to work on this problem and I learned some stuff so I guess that's something, but ultimately it felt like a big waste of time.

I still have the code and I think it's actually pretty clean, so maybe someone else can use/improve it. You can find the wrapper here.



Quote
2018-07-14
Finished quest feature for the most part, working on juicy UI for it now.

2018-07-18
Quests totally finished!

Finally back on track! This was a really big feature that I was unsure of, but I think it worked out. I remember thinking, "Come on dude, do you really need to have a quest system in this game?" Turns out yes (audience groaning), but hear me out! I actually thought about this pretty carefully, and I had some good reasons:

- The game desperately needed more ways to provide structure and direction for the player.
- After seeing what a difference the dialog system made, having more storytelling options seemed like a big plus.
- Most importantly, I had come up with a plan to add a quest system that would be dead simple and could use a lot of existing tech.

That last point is worth discussing. While I was working on this problem I came to the realization that, at a high level, all my major game systems kinda do the same thing: turn items into other items.

The part of my ecosystem simulation where you can give monsters their favorite item to spawn more of them can be understood as trading those favorite items for more of that monster's drops. Shopping is just trading items for more items (with gold currency in the middle). Crafting is trading two or more items for a new item. Even the farming simulation can be understood in this way: items + time = new items. Maybe this is just game design 101, but whatever.

So there are a few basic systems on the ground floor that let you trade time/effort for items, but everything else deals with exchanging those items upwards. I realized quests could work the same way. It's really just crafting plus dialog. You'll trade two or more items for a new item, except you won't know the result until the trade is complete (audience ooo's and ahh's).

Later on I could maybe see adding a simple quest journal that tracks the last piece of quest dialog for each quest you've accepted, but that's it; No checkboxes, no minimap info, it's just up to you to figure it out. Balancing should be similar to other systems and will mostly depend on knowing an item's value (which is of course harder than it sounds).

The interesting thing I've been noticing is how these subtle mechanical differences really change the feel of the interaction. Like the quest system is literally just the crafting system but with a few lines of dialog and you can't see the result...but what a difference that makes. It also gives me more levers to change the value of items in interesting ways (a boring example is items that have no other use besides completing a quest).

I probably spent 5 solid days on this feature since I did need to create some new tech (the concept of an inventory grid with "item requirements"), but most of the time I spent was on the UI.


I spent a few days making this juicy UI for completing a quest because I really wanted this moment to feel good


The quest system shown with a bit more context



Quote
2018-07-19
More bug fixes, behavior updates, added context sensitive shift click for inventories and refactored interactions a bit.

2018-07-22
Changed how clickable colliders work (they're now called "interactables"). Updates to cursor behavior and misc bug fixes for dragging.

More feedback from play testing here, mostly consisting of quality of life stuff and bug fixes. The biggest feature was adding a context sensitive shift + click (a la Minecraft) to make it easier to move items between your inventory and your quickbar, sell to a shop, or place items in external inventories (e.g. crafting, quests, storage).


Probably not the most pressing feature, but this was an easy improvement


Around this time, we also did an 8 hour game jam at Stugan. I did music and audio programming on a team with monster talents Adam and Tim for a game we called "The Secret of Dank Mountain":


Have you discovered the secret?

I had this really ambitious plan to have this dynamic music with all these loops that would fade in an out, but in the end I spent most of the time creating the music (there were 11 loops) and only did about half of the dynamic stuff I wanted.

It's funny (and perhaps a bit painful) to admit that in some ways this jam game already has more attention than my actual project. You can play the game here, or just check out the music I did.



Stay tuned for Part 3 tomorrow where I'll talk about the back half of Stugan, complete with more GIFs and (hopefully) useful info. By this point, time was really flying by and I had to make some tough choices about how I wanted to spend the rest of my time!
« Last Edit: August 16, 2018, 06:57:32 AM by Luno » Logged

AlexVsCoding
Level 6
*


Enthusiasm at dangerous levels.


View Profile WWW
« Reply #137 on: August 15, 2018, 10:22:28 PM »



Whoof, that is some tasty UI design, LOVE that little gasp of dust that emerges upon unlocking, amazing work.

Also super cool to get deeper insight into the Stugan experience, it's been something I've wanted to apply to for a number of years, I worked on a summer camp in upstate NY a couple of years back and in that environment it was an excellent incubator for working on games. Look forward to the third instalment!
Logged

litHermit
Level 1
*


1


View Profile WWW
« Reply #138 on: August 16, 2018, 01:18:05 AM »

This looks amazing, it really captures my imagination so I gotta follow
Logged

Mochnant
Level 0
***



View Profile
« Reply #139 on: August 16, 2018, 06:01:02 AM »

We may not have asked for this update format, but I am glad we got it.  Interesting and insightful.  Thanks for sharing!
Logged
Pages: 1 ... 5 6 [7] 8 9 10
Print
Jump to:  

Theme orange-lt created by panic