• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

GAF Indie Game Development Thread 2: High Res Work for Low Res Pay

Status
Not open for further replies.
Decided to lazy about and put the game together today. Got everything working from splash to map level select. Reworked the in-game menu and got all saves working across PS4 and PC.

Feels neat to see everything working from launching the game through playing, continuing, cutscenes, etc.

Added some new debug options on PS4 to help me diagnose issues and squashed several bugs today. Will have to finish the options screen on the main menu tomorrow and get that set for PS4.

I unified my input system so now everything is much cleaner to read and implement new stuff if needed across the board as I let conditionals handle the rest between PS4/PC.

All loading is pretty much non-existent. I wanted to make sure everything was quick and I'm less than 1 second between fades. Fairly happy with the result.
 
So apparently AnimNotifies are deprecated in UE4 4.12?

The following functions and variables of the UAnimInstance class are now deprecated:
UngroupedActivePlayerArrays, SyncGroupArrays, VertexAnims, MakeSequenceTickRecord, MakeBlendSpaceTickRecord, SequenceAdvanceImmediate, BlendSpaceAdvanceImmediate, CreateUninitializedTickRecord, GetSlotWeight, SlotEvaluatePose, ReinitializeSlotNodes, RegisterSlotNodeWithAnimInstance, UpdateSlotNodeWeight, ClearSlotNodeWeights, UpdateSlotRootMotionWeight, MontageEvaluationData, GetNodeFromIndexUntyped, GetCheckedNodeFromIndexUntyped, GetCheckedNodeFromIndex, GetNodeFromIndex, RootNode, EvaluateAnimation, NativeEvaluateAnimation, RequiredBones, AnimNotifies, GetSyncGroupReadIndex, GetSyncGroupWriteIndex, TickSyncGroupWriteIndex, MorphTargetCurves, MaterialParameterCurves, InitializationCounter, CachedBonesCounter, UpdateCounter, EvaluationCounter, SlotNodeInitializationCounter, bBoneCachesInvalidated, AddAnimNotifies, PassesFiltering, PassesChanceOfTriggering, AddAnimNotifyFromGeneratedClass, UpdateAnimationNode

I've just now noticed a bunch of stuff in my game is now broken that I was previously handling with AnimNotify events. What a mess. I can't seem to figure out what Epic's replacement for them is supposed to be. The documentation apparently hasn't been updated to reflect this change.

My notifies still seem to work most of the time but sometimes halfway through a level they stop working completely out of nowhere. Their events just don't trigger. The second boss in my game is currently completely broken because of it. Currently scrambling to figure this out, and very confused as to why they would throw out such a handy, convenient feature.
 
So apparently AnimNotifies are deprecated in UE4 4.12?

I've just now noticed a bunch of stuff in my game is now broken that I was previously handling with AnimNotify events. What a mess. I can't seem to figure out what Epic's replacement for them is supposed to be. The documentation apparently hasn't been updated to reflect this change.

My notifies still seem to work most of the time but sometimes halfway through a level they stop working completely out of nowhere. Their events just don't trigger. The second boss in my game is currently completely broken because of it. Currently scrambling to figure this out, and very confused as to why they would throw out such a handy, convenient feature.

What version were you using before? Why did you update?
 
Actually I just realized the change happened in 4.11. That quote was from the 4.11 release notes. It's a miracle any of my animnotifies worked at all up until now.

I'm on version 4.12.3 right now and I was previously on 4.11. I didn't start noticing stuff breaking with AnimNotifies until 4.12.3 though.

I updated for bugfixes / performance improvements. My game is small enough in scope that I can usually fix anything that breaks due to an engine update in a single day. So I've been keeping my game updated with the latest engine version. (I always keep backups of previous versions though of course, just in case)
 

JulianImp

Member
How are cutscenes in 3D done?
It's scripted or the whole scenes is done in a 3D software and then imported to the game engine?

Both are fine. In-engine cutscenes afford you more consistency and perfect continuity, but require heavy scripting to have everything work within the confines of the game itself, while prerendered scenes will allow you to do whatever you want with characters even if that couldn't be feasibly done in game, but might lead to a loss of consistency if you go overboard with cutscene-only stuff.

Also, that new character portrait for Alice sure looks good! I think giving it a less anime-ish feel could help differentiate the game from the increasingly common quick anime aesthetic cash-in games.
 
I've been a bit quiet on the Stage Presence front for a while. I've been working on unlockable gear that.

Here's the Mood-O-Meter, the latest in crowd mind probe technology. It tells you the crowd's mood in real time and shows you how close you are to losing the game:



And here's the unlockable Crucifix for the Cathedral level. Useful for warding off crowds of music loving demons. Each level has a specific item like this that makes scoring easier.

 
Speaking of character portraits...

Is there a way to quickly change Images in a UI component in Unity 5.3 without having to pile on all possible combinations?

As in, read some variable, change portrait image based on result. Assuming that there are 7 (including 1 placeholder which is defaulted to) portraits, and the character's type determines the portrait. I'm trying to think of a way that isn't "put ALL the images in there and change alpha on a case-by-case basis". Like something that can grab an Image on demand and dump the correct one... (prefabs to the rescue?)

(Unity UI coding is a bit obtuse IMO...)
 

JulianImp

Member
Speaking of character portraits...

Is there a way to quickly change Images in a UI component in Unity 5.3 without having to pile on all possible combinations?

As in, read some variable, change portrait image based on result. Assuming that there are 7 (including 1 placeholder which is defaulted to) portraits, and the character's type determines the portrait. I'm trying to think of a way that isn't "put ALL the images in there and change alpha on a case-by-case basis". Like something that can grab an Image on demand and dump the correct one... (prefabs to the rescue?)

(Unity UI coding is a bit obtuse IMO...)

Take all sprites and store them in an array, and then do something such as "currentSprite = spriteArray[currentIndex];".

An even better way would be to use an enum, as in:

Code:
public enum Portrait
{
    Bob,
    BobAngry,
    BobCrying,
    Alice,
    AliceHappy,
}

That way, you could declare a "public Portrait characterPortrait;" property and change it in Unity using enum values rather than obtuse indexes. To map an enum to an index so that you can load something from an array with it, you'd simply use "portraitArray[(int)characterPortrait]".
 

mStudios

Member
Both are fine. In-engine cutscenes afford you more consistency and perfect continuity, but require heavy scripting to have everything work within the confines of the game itself, while prerendered scenes will allow you to do whatever you want with characters even if that couldn't be feasibly done in game, but might lead to a loss of consistency if you go overboard with cutscene-only stuff.

Also, that new character portrait for Alice sure looks good! I think giving it a less anime-ish feel could help differentiate the game from the increasingly common quick anime aesthetic cash-in games.

Thank you! Glad it's having a good reception lol.

Let's say the walking dead, from tell tales games. Are those scripted, right? I'm want to experiment with something like that.
 

Jobbs

Banned
I was hoping more for a "Wow, that's freaking cool! Looking good! What engine are you using? What's your buddy's comic?" :)

My artist is just using the MM sprites as a reference for the time being (AFAIK) so I have something to move forward with development wise and make sure that the animation system is working correctly. We have a lot of states we plan to incorporate - hence some of my questions via PM - and it's way more interesting and encouraging to see "real" stuff in place instead of blocks and programmer art placeholders, you know?

I understand it's nice to see things working with better placeholders, but my reaction was that it looked too obviously like mega man. It may be a useful exercise but it looked like a half baked concept to me. I am happy that you're making progress. :)
 

Blam

Member
Would I get a C&D if I had started recreating MegaMan X in UE4? I've already got the jumping mechanics, and all that working need to get shooting and all that stuff working.

I'd assume I would get one from Capcom.
 
Would I get a C&D if I had started recreating MegaMan X in UE4? I've already got the jumping mechanics, and all that working need to get shooting and all that stuff working.

I'd assume I would get one from Capcom.

As long as you're not talking about it or showing it off, how would they know you're working on one?
 
Would I get a C&D if I had started recreating MegaMan X in UE4? I've already got the jumping mechanics, and all that working need to get shooting and all that stuff working.

I'd assume I would get one from Capcom.

They seem to be fairly tolerant of fan games, like the NES-style remakes of Mega Man 7-8, or the forever-in-development Mega Man X: Corrupted. I'm not sure how they would feel about a strict 1:1 recreation using their assets though, if that's what you're talking about.

As long as you're not talking about it or showing it off, how would they know you're working on one?

I mean... I assume he would want to share it, otherwise that's not even a question. :p
 

Jobbs

Banned
Would I get a C&D if I had started recreating MegaMan X in UE4? I've already got the jumping mechanics, and all that working need to get shooting and all that stuff working.

I'd assume I would get one from Capcom.

only if you attempt to sell it.

it's not unprecedented that they'd C&D a non profit free fan game, but it'd be rare. I think that'd only happen if it conflicted with a game they were making or if it was TOO big/popular . Or they just felt like being dicks.

if you're just dinking around for your own amusement and maybe a small community somewhere it won't matter.
 
Would I get a C&D if I had started recreating MegaMan X in UE4? I've already got the jumping mechanics, and all that working need to get shooting and all that stuff working.

I'd assume I would get one from Capcom.

If it's really good, and it makes headlines, there's a good chance they'll come after you.

If it's not good and doesn't get press, they won't bother.

Basically, be as secretive as you can and it's a non-issue.
 

bumpkin

Member
I understand it's nice to see things working with better placeholders, but my reaction was that it looked too obviously like mega man. It may be a useful exercise but it looked like a half baked concept to me. I am happy that you're making progress. :)
For sure! It's coming together bit by bit. I'm pretty excited and engaged, loving how it's coming together from a technical/engine standpoint.

The Mega Man style sprites were just a quick means to an end for my artist. He does a ton of side/freelance work and this game project is another one in his queue. Between his freelance commissions, regular job, a wife and two kids, he only has so much free time to devote to the game. He wants for it to look more like the comic it's based on, simple MM re-skins for the sprites are basically our equivalent of placeholder art. That's why they're ink only.
 

Blam

Member
They seem to be fairly tolerant of fan games, like the NES-style remakes of Mega Man 7-8, or the forever-in-development Mega Man X: Corrupted. I'm not sure how they would feel about a strict 1:1 recreation using their assets though, if that's what you're talking about.

I mean... I assume he would want to share it, otherwise that's not even a question. :p

only if you attempt to sell it.

it's not unprecedented that they'd C&D a non profit free fan game, but it'd be rare. I think that'd only happen if it conflicted with a game they were making or if it was TOO big/popular . Or they just felt like being dicks.

if you're just dinking around for your own amusement and maybe a small community somewhere it won't matter.

If it's really good, and it makes headlines, there's a good chance they'll come after you.

If it's not good and doesn't get press, they won't bother.

Basically, be as secretive as you can and it's a non-issue.

Yeah probably going to finish it, and then release it. Thanks for the feedback. I'll keep hush hush about it till I've got either half or the entire thing done. Only reason I was asking is cause I was going to have a sorta of real time ghost mode if you wanted to race someone else.

It's sorta ambitious, and honestly I can definitely see Capcom giving me a C&D if it takes off.
 
So what all goes into an options menu to edit.

I have the basics like screen shake %, volume tweaks, controller - what else should I be tossing in a side-scroller?

There's a zillion different ways I can go but I'd like to keep it slim, tbh.
 
Spent my weekend adding a new Random Cloud generator as well as changing all my models to use a new vertix lit shader so no more scene lighting required.

4Rmfrbi.gif


and a more high res shot since the gif compressions loses alot of detail :)

psrAec0h.jpg
 
Take all sprites and store them in an array, and then do something such as "currentSprite = spriteArray[currentIndex];".

An even better way would be to use an enum, as in:

Code:
public enum Portrait
{
    Bob,
    BobAngry,
    BobCrying,
    Alice,
    AliceHappy,
}

That way, you could declare a "public Portrait characterPortrait;" property and change it in Unity using enum values rather than obtuse indexes. To map an enum to an index so that you can load something from an array with it, you'd simply use "portraitArray[(int)characterPortrait]".

All right, though now there's a second problem: this portrait coding is going to be in at least six different locations and two scripts. Going to guess I need an object to hold just the array and enough coding to return it?

Never mind, did it on my own.
 

TheKroge

Neo Member
I'm not exactly sure how to ask this, so help me out if it's not clear, but do any of you have tips on how to nudge testers towards giving feedback? Our alpha is out there, and so far only 2 people have posted their thoughts.

My gut feeling tells me the rest just didn't like the game and thus didn't feel a need to be involved in it's development this early (since it's almost more of a tech demo than a true vertical slice). In which case I have a second question: do you think that feedback will grow as the game becomes more complete, or is that not a given?
 

KOCMOHABT

Member
I'm not exactly sure how to ask this, so help me out if it's not clear, but do any of you have tips on how to nudge testers towards giving feedback? Our alpha is out there, and so far only 2 people have posted their thoughts.

My gut feeling tells me the rest just didn't like the game and thus didn't feel a need to be involved in it's development this early (since it's almost more of a tech demo than a true vertical slice). In which case I have a second question: do you think that feedback will grow as the game becomes more complete, or is that not a given?

finding testers and publicity in general is a big problem for most indies. Often more important than your actual game unfortunately.
Try posting here: https://forums.tigsource.com/index.php?board=6.0 maybe you can attract some more!

Second point: Depends on whether you manage gain more and more publicity. A lot of people who are passionate about your game from the start will try it out when it becomes available early, but don't necessarily come back later for more complete iterations, so unless you get a lot more publicity the opposite might be true and you may end up with fewer testers even.

On the other hand it's obviously easier to attract people when the game looks more complete.


-------------------

on an unrelated note, here is a youtube video comparing the two different camera modes in my game https://www.youtube.com/watch?v=vjc9JUbrffA
 

JulianImp

Member
I'm not exactly sure how to ask this, so help me out if it's not clear, but do any of you have tips on how to nudge testers towards giving feedback? Our alpha is out there, and so far only 2 people have posted their thoughts.

My gut feeling tells me the rest just didn't like the game and thus didn't feel a need to be involved in it's development this early (since it's almost more of a tech demo than a true vertical slice). In which case I have a second question: do you think that feedback will grow as the game becomes more complete, or is that not a given?

The best feedback in games tends to be not what people say, but rather their actions and reactions to what happens in-game. For the first part I'd strongly recommend that you build some barebones local analytics system (as in, append to a file whenever a player enters a level, dies [alongside the play time and death position] or leaves via the pause screen), and for the second there isn't much you can do unless you can be on-site watching them play.

A good way to playtest I heard from a fellow developer is to think of what you think the player will think and do in your game levels, and then compare your predictions with what they actually end up doing during playtests. Are they reading where they should go at the pace you expected? Can they keep up with the enemy encounters or do they kite small groups of enemies to make things easier for themselves? Do they keep forgetting to use some ability? How many times did they fail a jump and ended up dying or wasting time, and how did they react to that? All those things will help you fix your game a whole lot more than verbal feedback, which tends to not address the real problem because playtesters rarely understand the intrincacies of what's happening under the hood, which is what actually dictates how the game works.

Like, maybe someone says that level 2's too easy compared to level 1, but upon closer inspection you could come to understand that the playtester actually got used to the mechanic you used in level 2 a lot more easily than with level 1's. Therefore, the goal wouldn't be to make level 1 easier by weakening enemies/traps or making level 2's obstacles harder, but rather to see if you can find a way to explain level 1's mechanics better to the player, like you did with 2. There's also the issue that playtesters will all have different skill levels and abilities, so someone might be great at memorizing game patterns while the other could keep running into the same trap a thousand times, and you kind of have to take that into account when deciding whether your intended player behavior mirrored the actual player's actions to see what needs to be fixed.
 

Pehesse

Member
I'm not exactly sure how to ask this, so help me out if it's not clear, but do any of you have tips on how to nudge testers towards giving feedback? Our alpha is out there, and so far only 2 people have posted their thoughts.

My gut feeling tells me the rest just didn't like the game and thus didn't feel a need to be involved in it's development this early (since it's almost more of a tech demo than a true vertical slice). In which case I have a second question: do you think that feedback will grow as the game becomes more complete, or is that not a given?

Yeah, it's something I hear is a pretty big problem for most of us - among the suggestions I've read, the main takeaway is something like "make a feedback form, and have as few steps as possible between playing the game and accessing the form" (something like quitting the game=>launches the form, or even access it from the game itself through a debug key or something).

Don't hesitate to underline that your version is for feedback purposes, as well, so they understand what they're getting into.

I completely relate to the feeling "nobody gave feedback, that must mean they didn't like it", but it's in fact truer to remember that most people just don't speak up unless you hold a microphone under their mouth and FORCE them to speak out. If you *need* feedback early, then make sure giving feedback is part of the game flow for the user, otherwise they'll just skip it altogether! The state of advancement of the game doesn't really matter, either, as least from my own experience.

In any case I wish you luck with this and hope you'll have better success that I did/do :-D
 

anteevy

Member
The best feedback in games tends to be not what people say, but rather their actions and reactions to what happens in-game. For the first part I'd strongly recommend that you build some barebones local analytics system (as in, append to a file whenever a player enters a level, dies [alongside the play time and death position] or leaves via the pause screen), and for the second there isn't much you can do unless you can be on-site watching them play.

A good way to playtest I heard from a fellow developer is to think of what you think the player will think and do in your game levels, and then compare your predictions with what they actually end up doing during playtests. Are they reading where they should go at the pace you expected? Can they keep up with the enemy encounters or do they kite small groups of enemies to make things easier for themselves? Do they keep forgetting to use some ability? How many times did they fail a jump and ended up dying or wasting time, and how did they react to that? All those things will help you fix your game a whole lot more than verbal feedback, which tends to not address the real problem because playtesters rarely understand the intrincacies of what's happening under the hood, which is what actually dictates how the game works.

Like, maybe someone says that level 2's too easy compared to level 1, but upon closer inspection you could come to understand that the playtester actually got used to the mechanic you used in level 2 a lot more easily than with level 1's. Therefore, the goal wouldn't be to make level 1 easier by weakening enemies/traps or making level 2's obstacles harder, but rather to see if you can find a way to explain level 1's mechanics better to the player, like you did with 2. There's also the issue that playtesters will all have different skill levels and abilities, so someone might be great at memorizing game patterns while the other could keep running into the same trap a thousand times, and you kind of have to take that into account when deciding whether your intended player behavior mirrored the actual player's actions to see what needs to be fixed.
Some really good advice! I'm using a mix of Steam Leaderboards and Steam Statistics to track stuff, which works really well for balancing. But far more helpful is getting streamers or youtubers play your game - watching someone play your game, seeing their reactions, where they struggle, what they don't understand, how they are approach a difficult section etc.

Sadly, getting feedback for an actual beta of the (basically full) game is even more difficult than for a short alpha/prototype. Most testers only seem to play the first few levels and then quit. At first I feared they didn't like it, but as it turns out, most just want to use the test to get an impression of the game and then wait for the final version to play through. Which is obviously not really helpful, as I have now tracked over a hundred testers playing the first chapter, but only about a dozen actually finishing it.
 

JulianImp

Member
Some really good advice! I'm using a mix of Steam Leaderboards and Steam Statistics to track stuff, which works really well for balancing. But far more helpful is getting streamers or youtubers play your game - watching someone play your game, seeing their reactions, where they struggle, what they don't understand, how they are approach a difficult section etc.

Sadly, getting feedback for an actual beta of the (basically full) game is even more difficult than for a short alpha/prototype. Most testers only seem to play the first few levels and then quit. At first I feared they didn't like it, but as it turns out, most just want to use the test to get an impression of the game and then wait for the final version to play through. Which is obviously not really helpful, as I have now tracked over a hundred testers playing the first chapter, but only about a dozen actually finishing it.

I'd think that giving out keys to your everyman player and hoping they do proper testing is a pretty tall order, mostly because they see it as a free game more than a "I must play the hell out of this so that the developers can use the analytics and feedback to better tune the game". Maybe something such as early access would work better for you, since it's true that most people playing a beta because they want to see the game is more about seeing if the game still shows promise more than doing proper playtesting.
 

TheKroge

Neo Member
Lots of good thoughts here. I do have a few people I've used in the past who have recorded themselves playing my last game, and that was one of the most helpful things. It doesn't quite replace the benefit of seeing what a majority of players like/dislike/find buggy, but it is helpful.

I think incorporating a feedback form/button in the game is something I will test, and report back on.
 

JulianImp

Member
XUTb.png


Made my first prototype attack animation. It's rough and I haven't implemented it but it's a start.

Again, there's no movement outside of the left arm, so you'll need to work on that for a more palateable final version.

When swinging a heavy weapon such as that axe, most of the time you'd start with the opposite shoulder ahead of the one that's holding the weapon, and then take a step with the left leg while rotating your torso so that the left shoulder overtakes the right. Both of those actions are meant to add more strength to the swing. You could make the first few frames stay longer than the rest for a "heavier" swing, or make them last very little for a faster swing. A simple way to start IMO would be to have the character's torso start turned the other way with the axe held up and behind him, a second frame with the axe mid-swing where the torso has swapped direction (and is now looking the way it does in your other sprites), and a third that completes the swing; you'd also have to add some leg movement, with the left leg starting behind the right leg and taking a long step forward as the character swings the axe.
 

Kalentan

Member
Again, there's no movement outside of the left arm, so you'll need to work on that for a more palateable final version.

When swinging a heavy weapon such as that axe, most of the time you'd start with the opposite shoulder ahead of the one that's holding the weapon, and then take a step with the left leg while rotating your torso so that the left shoulder overtakes the right. Both of those actions are meant to add more strength to the swing. You could make the first few frames stay longer than the rest for a "heavier" swing, or make them last very little for a faster swing. A simple way to start IMO would be to have the character's torso start turned the other way with the axe held up and behind him, a second frame with the axe mid-swing where the torso has swapped direction (and is now looking the way it does in your other sprites), and a third that completes the swing; you'd also have to add some leg movement, with the left leg starting behind the right leg and taking a long step forward as the character swings the axe.

Hm.. I'll for sure take this into account. Although before I can do that I think I need to get rid of the "fur cloak" that he's wearing. At least for now. Cause a lot of the stuff your saying is true but I find myself having trouble due to having put the cloak on. I'll edit that out and come back with your suggestions.
 
Would I get a C&D if I had started recreating MegaMan X in UE4? I've already got the jumping mechanics, and all that working need to get shooting and all that stuff working.

I'd assume I would get one from Capcom.

Honestly if you actually went far enough for them to consider sending a C&D you might as well just make your own thing that you can sell imo.
 

Jobbs

Banned
been screwing around with some things. I noticed the jump and landing animations on this enemy lacked sufficient emphasis, so rather than change the animations I just added some squish and stretch to the sprite within the engine, which worked surprisingly well.

ex: https://gfycat.com/BlaringCrispLark
 

correojon

Member
I'm not exactly sure how to ask this, so help me out if it's not clear, but do any of you have tips on how to nudge testers towards giving feedback? Our alpha is out there, and so far only 2 people have posted their thoughts.

My gut feeling tells me the rest just didn't like the game and thus didn't feel a need to be involved in it's development this early (since it's almost more of a tech demo than a true vertical slice). In which case I have a second question: do you think that feedback will grow as the game becomes more complete, or is that not a given?

I think the best feedback is to watch people play your game. If you´re like me and don´t have a local pool of players to watch in person, you can implement a replay feature in your game. This is the way I´ve done it:
  • In every frame, I store the current state of all inputs (right key, jump button...) if any of them is active, along with the frame counter. The frame counter is just an integer which starts at 0 and adds 1 every frame, so I can precisely store when the player pressed any button.
  • When the player quits to the main menu, I save all these data to an external text file.
  • Then, I somehow get the player to send me the file. Note that it will be a small text file, so I´m looking into different ways for this to be handled automaticaly by the game without the player needing to do any additional action. Maybe they´ll just need to answer a simple question when they close the game. Something along the lines of "Do you want to send some debug information to the developer and save the lives of 1000 kittens?" and the game posts the info in a server or something.
  • Now, in your game you can implement a system that reads inputs from this data file instead of the keyboard/controller. Just by using the frame counter you can search which inputs to load in every step.
  • And voilá, you can now replicate the user´s playthrough on your game! This method is also really useful for debugging and replicating situations, but if your game uses random functions without seeds it won´t be able to replicate 100% truthfully the player´s game.

For storing the data in a simple way I used a binary approach. Imagine your game only has 2 inputs: run and jump. You could identify every state like this:
  • Run = runPressed*2^0
  • Jump = jumpPressed*2^1
So you could express the current state of inputs with a single integer value:
Code:
inputs = runPressed*2^0 + jumpPressed*2^1;
And only store the information if inputs != 0 (that is, only store info if a key is pressed), so the external file and the memory used by the system remain small. The final input file will look something like this:
//Frame number - input state
30 1
31 1
32 1
33 3
...

Hope you find it useful, I think that as Pehesse said, the best way to maximize feedback is to do all the work for the player so it´s the same work for them to send you feedback or not.
 

missile

Member
R941tLy.gif


Got my retrolized volume lights running, finally! After tinkering around with
the parameters of my model, I got some first cool lighting out of it. The glow
you see is not any fake, it's really there, fully three-dimensional, and it
depends on the properties of the medium the light passes through.
 

bumpkin

Member
How did you guys decide what engine to use?
I think it comes down to what you know and how dedicated you are to learn new languages. I'm speaking from pretty limited knowledge, but based on my limited knowledge, Unity seems like a lot of people's go-to because you can deploy one codebase across multiple platforms. Unreal Engine 4 is popular because of its reputation for being widely used by AAA dev studios. Game Maker is geared towards users who don't necessarily have a programming background. I can't speak to others like Stencyl (what Jobbs is using for Ghost Song).

Me? I've just got a big ego and want the experience of doing it myself, so I'm building an engine from scratch using C++ and SDL (libsdl.org). Doing it this way, I'll only have the features I need and since SDL is multi-platform, I should be able to use most of the same codebase and build it for both Mac and Windows.
 

JulianImp

Member
I think the best feedback is to watch people play your game. If you´re like me and don´t have a local pool of players to watch in person, you can implement a replay feature in your game. This is the way I´ve done it:
  • In every frame, I store the current state of all inputs (right key, jump button...) if any of them is active, along with the frame counter. The frame counter is just an integer which starts at 0 and adds 1 every frame, so I can precisely store when the player pressed any button.
  • When the player quits to the main menu, I save all these data to an external text file.
  • Then, I somehow get the player to send me the file. Note that it will be a small text file, so I´m looking into different ways for this to be handled automaticaly by the game without the player needing to do any additional action. Maybe they´ll just need to answer a simple question when they close the game. Something along the lines of "Do you want to send some debug information to the developer and save the lives of 1000 kittens?" and the game posts the info in a server or something.
  • Now, in your game you can implement a system that reads inputs from this data file instead of the keyboard/controller. Just by using the frame counter you can search which inputs to load in every step.
  • And voilá, you can now replicate the user´s playthrough on your game! This method is also really useful for debugging and replicating situations, but if your game uses random functions without seeds it won´t be able to replicate 100% truthfully the player´s game.

For storing the data in a simple way I used a binary approach. Imagine your game only has 2 inputs: run and jump. You could identify every state like this:
  • Run = runPressed*2^0
  • Jump = jumpPressed*2^1
So you could express the current state of inputs with a single integer value:
Code:
inputs = runPressed*2^0 + jumpPressed*2^1;
And only store the information if inputs != 0 (that is, only store info if a key is pressed), so the external file and the memory used by the system remain small. The final input file will look something like this:


Hope you find it useful, I think that as Pehesse said, the best way to maximize feedback is to do all the work for the player so it´s the same work for them to send you feedback or not.

There's a big but to this approach, and it's that your system is not only frame-dependent (so using Time.deltaTime in Unity for player movement, for example, would screw up with your playback), but also requires the whole game to be entirely deterministic, foregoing randomness (or storing the random seed coupled with a custom RNG to avoid it desynching across different hardware if possible) and having a deterministic physics engine as well. Most games made in Unity, for example, would fail those two tests because they tend to be built for frame independence, and the physics system doesn't appear to behave in a really consistent, deterministic way either.

Also, for storing flags C# supports the [Flags] attribute to enums, meaning you can code stuff such as:
Code:
[Flags]
public enum ControlFlags
{
    Jump = 1,
    Attack = 1 << 1,
    Left = 1 << 2,
    Right = 1 << 3,
    Up = 1 << 4,
    Down = 1 << 5
}
 

Pehesse

Member
Small update, but... I'M DONE WORKING ON CHARACTER ANIMATIONS FOR THE GAME! Yes, for real!
Unless I missed something, that'd be the pits
The only assets left are menu-related so they shouldn't take half as much time as this did... hopefully. And then, script, script, script!

Do you guys know of any indie devs that work off of Patreon donations?

I believe Zoe Quinn does? Looking around, I also find this:

https://gamepopper.co.uk/2014/08/16/game-developers-on-patreon/

https://www.reddit.com/r/gamedev/comments/2dpn5s/game_developers_on_patreon/

The numbers on the campaigns linked aren't encouraging, but they're still something.
I'm hoping to eventually add my own name to that list, though for now, my patreon isn't really high profile, very understably so :-D
 

neko.works

Member
The Square-Enix Collective feedback campaign for Light Fairytale just ended, at 93% YES!

The game is the 7th most popular on the platform, and 6th most discussed.

This feedback phase was really helpful, for instance, I now know that putting the PS4 version as a stretch goal was a mistake: I will add it to the base goal of the KickStarter.

Feedback was positive overall, but I still feel that the game is not yet ready for the funding phase, and can be improved a lot more. The current plan is starting the KickStarter around this October, with a new trailer, and a playable demo.

Cl_qJIMXIAA7T6i.jpg:large
 

ephemeral

Member
The Square-Enix Collective feedback campaign for Light Fairytale just ended, at 93% YES!

The game is the 7th most popular on the platform, and 6th most discussed.

This feedback phase was really helpful, for instance, I now know that putting the PS4 version as a stretch goal was a mistake: I will add it to the base goal of the KickStarter.

Feedback was positive overall, but I still feel that the game is not yet ready for the funding phase, and can be improved a lot more. The current plan is starting the KickStarter around this October, with a new trailer, and a playable demo.

Cl_qJIMXIAA7T6i.jpg:large

Well deserved! Congrats :). I love the chibi characters and I'm looking forward to playing it on my ps4.
 

Pehesse

Member
The Square-Enix Collective feedback campaign for Light Fairytale just ended, at 93% YES!

The game is the 7th most popular on the platform, and 6th most discussed.

This feedback phase was really helpful, for instance, I now know that putting the PS4 version as a stretch goal was a mistake: I will add it to the base goal of the KickStarter.

Feedback was positive overall, but I still feel that the game is not yet ready for the funding phase, and can be improved a lot more. The current plan is starting the KickStarter around this October, with a new trailer, and a playable demo.

Cl_qJIMXIAA7T6i.jpg:large

Congrats! Though what does that mean in practical terms? I'm not really familiar with what the Square Enix Collective is about or how it works, so I'd love to hear more details about it from you since you have first hand experience now!
 
Status
Not open for further replies.
Top Bottom