• 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.
See, that seems like a lot to me. But maybe it's not? Were you aiming for more originally, or what was the thought process there?

If I were to break it down, I'd say a dozen or so of those are one or two line characters. I'd need time for a more detailed breakdown, and for that, I would feel more comfortable doing that over e-mail or PM rather than in public.

We just went by who we needed for that particular scene, then paid for the art, then got the VO. We made a dialogue hub with branches for story and loops.

I imagine that it's quite different from what you are asking, which is multiple characters on screen at once and any interactive at any time.
 
Real quick on the issue of Singletons, I think that calling them out for being global and people (in a team) being able to do things they probably shouldn't is a bit unfair.

First of all, there's a reason that there's public and private variables and methods. It's totally okay to have private code in a Singleton, just like it's totally okay to only expose what you want/need to when using a Singleton. Just like you don't need to keep everything in a class private, you likewise don't need to make everything in a Singleton public.

Second, the argument "well, some other guy/gal on my team could possibly do something I don't want him/her to do with my SuperSpecialSingleton class, so therefore Singletons are bad" is heavily flawed. You can't invalidate a whole design pattern based off of A.) what might happen and B.) the mistakes of somebody who doesn't fully understand what they're doing.

This whole thing boils down to the main argument surrounding Singletons that's been around forever, namely that if you use them correctly, they're fine, but if you misuse them you're in for some trouble. The core issue being that there's two main camps (i.e. pro-Singleton and anti-Singleton) and both sides have extremists on each end. There's no full guideline on what constitutes "proper" usage, so everyone loses their head when someone isn't following what they believe to be the "right way". Whether that's "you should use a Singleton here" or "you absolutely should not use a Singleton here!", proper usage is subjective.

Personally, as I said earlier, I feel like they're a completely valid design pattern, even for teams. The person structuring them should obviously be thinking on public/private access if they want to mitigate the chance of someone else misusing the contained data, but that goes for pretty much any public-facing class.

A lot of programmers, I feel, see Singletons as an easy way to access something globally, and that generally gets abused. That's not the fault of the Singleton, rather it's the fault of the implementor, but for reasons unknown to me Singletons (as a design pattern) generally take the majority of the blame. Maybe it's because it's easier to steer people away preemptively, or perhaps it's due to them being fundamentally misunderstood (or coming from an unmanaged background with memory leaks, etc.) -- I'm not sure. I've got no issue with them, if used correctly (and, not to be hypocritical, I fully understand that my idea of "correct" is 100% my own, and probably not going to fully mesh with someone else's).

Anyway, I didn't mean to go off on a tangent here and derail the thread. I mainly just wanted to provide what I thought was a good counter-view to the main argument of "Singletons are bad". The gist of it is: bad code is bad code. It's generally not the code's fault, but instead the blame should fall on the most error-prone component in any human-machine interface -- the squishy bit doing the typing.
 

Firebrand

Member
I know there's a hundred and one ways to do everything and there's always staunch defenders or opposition to everything, but in general, what is the consensus on using Singletons for "systems" like rendering, sound, input, etc. around these parts? Good? Bad? Whatever works?

I'm having this challenge where my game object hierarchy is like so:

Code:
Engine
    Scene(s)
        Layer(s)
                Game Object(s)
                        State(s)

I'm having this challenge when I need a Game Object (like a character) to be able to create new objects (like bullets), but the place the trigger for this could happen is inside of a given state.

Making all systems Singletons and creating a game object factory system seems like the easiest approach, I just don't know if that's a terrible idea or not.

What say you, Indie programmer GAF?
I probably would just supply instantiated objects with a factory reference.

Core engine stuff is a bit trickier. If it's a solo project that isn't huge in scope I would personally just go with service locators/singletons/globals rather than implement messaging for all parts. For what it's worth, the Uncharted engine described in the book Game Engine Architecture (check it out if you haven't) uses global pointers (*gasp*) to singletons. "It isn't pretty, but it works."
 
My friend and I decided to soft launch our new iOS game. It's still missing a few features but this way we can implement changes based on feedback from other players. If you have an iPhone or iPad, please give it a try.

Bounce+ on App Store.

bounce_main.png


bounce_game.png
 

jahasaja

Member
A bit of both. Graphics was what made me stop and look. The name had a hand in getting my attention. Then I watched the trailer and thought, this looks like something I might get if I don't have anything to play.

Let me know what you think of it if the time ever comes. It is certainly not for everyone since the learning curve is very steep.
 

amanset

Member
Well after taking a five week holiday over Christmas (I had a lot of holiday saved up) I have managed to get stuff almost ready to release. My first ever released game. Just a basic tutorial and sound left to do.

But now I am back to the day job today. No more resting morning and coding afternoons anymore, well apart from my usual work coding). If only I had one more week.
 

Lautaro

Member
shaowebb posted some really good resource. And I would consider unwrapping your object along where hard edges meet to hide the seems. I would also create shells for the parts that protrude from the base surface. I kind of highlighted some edges to give you an idea of how I start to go about it:

rOEb.jpg

(something like that)

Thanks, yeah I have a similar setup. I think I need more seams for the sides because those are the ones that get stretched a lot.
 

bumpkin

Member
I'm a fan of the Singleton pattern for things like this. Specific managers (audio, in particular) rarely ever need to have more than one instance, so they're set up for Singletons nicely, in my opinion.

Personally, I use an auto-instantiating prefab with Unity. That way I can have a single manager that'll get auto-instantiated from a prefab the first time I access any of its methods. Basically a kind of hybrid lazy-load.

I don't really get all of the general hate for Singletons. They're super-userful, if used correctly (and not overused), so I think that the main pain-point for a lot of people is working out how to use them effectively without making everything a Singleton because it's easier to access.
A Singleton seems like the easiest route for what I'm trying to accomplish, but I've gotten around having to use them for everything else. I've seen strong opinions both for and against their use, so I was just curious what the consensus was. I've read that their biggest weakness is they aren't safe for multi-threaded applications. That's fine for my use, but I'd like to have my engine be at least a little forward-thinking for future projects/platforms.

You don't need to go the singleton route. You could always make this part of an event system. When a bullet should be added, throw out an instantiation event and then you have an object that listens for these events and adds new bullets as needed.

I implemented something like this for a school project a few years ago. I could probably do it better now, but my approach at the time was quick and simple.

The basic idea is that you have a central message dispatch class (think of it as the postal office), and when objects want to hear about certain types of messages, they register themselves with this message dispatcher basically saying hey, I care about these types of messages, so please let me know when they come in. Then you just publish messages to the dispatcher from anywhere in the code and the dispatcher will then notify all objects that have registered for that particular type of message. This results in you having a fairly significant decoupling of code. No direct instantiation in areas of code that really shouldn't need to care about such things, and if you need to change how a message is handled, the objects that care about said message don't really need to know (unless you're just straight up removing it or changing who will care about said event of course).

I did it in C++, so I made messages a struct consisting of an enum and a void*. When some object went to handle a message, it would take a look at the enum value and based on that enum value it would cast the void* to the correct type and then use the data from there.

There are other ways of doing such things in other languages, but that's just my example for a simple C/C++ based approach.

With respect to all systems as singletons - don't do it. It's easier now, but the type of code that singletons allow is insidious. There is a reason that singletons are known as code smells. The best description I've read of them is that 'Singletons are the politically correct name for global variables in OO".

I made the mistake of making the systems singletons, and I paid for it dearly with all the stupid shit my classmates did with the code. It was a bloody horrible idea. I was working in a group of 4 other students, and by the end of the project, there was all sorts of shit in places where they didn't belong. If you ever plan to work with somebody else, you don't know their level of competence. You don't know if they understand the long term cost of code with a lot of dependencies on other classes. If you make your systems all singletons, and you work with others, you bet your ass that somewhere along the way someone will do something ridiculous like create methods in the rendering system that are called in the physics system. This happened in spite of me doing my best to provide an architecture that allowed the separation (via the messaging system). The second those singletons come in, all bets are off. You completely lose your ability to reason about the separation of code. It makes it harder to track down bugs since everyone can access everything.

The central dispatch system may end up becoming a singleton (or global - same shit, different name), but at least the global state is contained to that single class, and all it's doing is dispatching messages. The implementation of how you handle said messages can vary - either immediate calls (IE - a call to an object where you essentially go 'object->handleMessage(message)') or you can just have each object have a mailbox that they check at certain points in time.
That's actually a really clever approach to the problem. I'm not sure it'd work in my existing class structure without some reworking.

I probably would just supply instantiated objects with a factory reference.

Core engine stuff is a bit trickier. If it's a solo project that isn't huge in scope I would personally just go with service locators/singletons/globals rather than implement messaging for all parts. For what it's worth, the Uncharted engine described in the book Game Engine Architecture (check it out if you haven't) uses global pointers (*gasp*) to singletons. "It isn't pretty, but it works."
This is the approach I'm leaning towards right now. The Scene class has access to the collection of "systems" and is what instantiates to the top-most level of Game Objects. I suppose I could add a data member to my base Game Object class for a factory class and pass that in at creation time to connect 'em.
 

shaowebb

Member
sigh...that moment when you are deep into experimenting with nodes in shaders and you look up and notice its time for work. Was toying with various documentation on Blender's nodes and seeing what sorts of effects I could create adding color ramp nodes into sets of other shader node trees.

Right now I do cel shading with several things.
  • specialized materials saved in zbrush as ZMT files.
  • making a textured image, duplicating it and doing a color curve edit to make it more extreme in contrast, duplicating that and doing a colorize, and duplicating that and doing a grayscale then using things like hard light, multiply and other blend layers in photoshop I can turn regular images into cel shaded textures after a quick edit define pattern and texture fill with the bucket
  • ramp shaders
  • various toon shader options to control outline thickness parameters within my rendering software.

Finding i could use both my textures, and materials and then go in and add color ramps on top of those interested me. Now I gotta go to work for 8 hours instead.

sigh...if anyone wants to leave me any interesting links please do. I'll be playing with this all night when I get home testing results.
 

SeanNoonan

Member
I don't really play mobile games and I'm not really into runners either. But I would definitely play this even if it was just a straight port. It looks really fun from the video I've seen and, again, I am just in love with the Game Boy aesthetic. It looks great in motion too.
I guess I'm hoping more people feel the same...
Of course it would be awesome if you could extend the gameplay and interactivity somewhat for a PC port, but I'm not sure what that would entail, since you obviously can't just give players free movement. Either way, I'm definitely gonna keep it on my radar ;)
I have a couple of plans for what I'd do for the PC version, but mainly interface changes rather than anything core.


Aww. I guess I never posted about it but I've always been impressed by the presentation on it in all the gifs you've posted. It has all kinds of neat lil touches and I tend to envy anyone who can really pull off aesthetics suited to stuff like the gameboy or whatnot :D
Thanks! It's nice to get recognition now and again, helps encourage more development :D
 
Thanks! It's nice to get recognition now and again, helps encourage more development :D
No worries :3
There's so much going on in this thread sometimes it's hard to know what to even respond to, so I fear many awesome things I like that people put in here never get the recognition they deserve :eek:

On a fun and unrelated note, I sometimes fool myself into thinking I actually know what I'm doing, but then Unity will throw a wrench in the works to remind me that I'm still oblivious to much.
Just recently it was making one of my prefabs inactive during some of my instantiations of it. Note that the keyword here is 'some'. Some instances of it beyond a certain point are active as they should be. It's weird because it's the actual prefab that's being set active/inactive as far as I can tell and I never interact with it myself, I mean heck, I never even set its instances as active/inactive either :eek: I've had to put a workaround in by adding a gameobject.setActive(true) in the startup function of the code on the prefab but I've never seen it do this before and it completely confuzzles me :/
 

TronLight

Everybody is Mikkelsexual
Hey guys, I'm working on my project for my college's programming course. We have to write a little game in Java, nothing too fancy. I got the graphical side of things and I have a question I hope someone here with more experience that me can answer.

I want to lay down a set of tiles and then have my characters be on them (and prossibly move later). Right now I'm using a JPanel with a GridLayout for that, putting a grid of JComponents on it.

I'll have to put my characters JComponents over the tiles JComponents, so I guess I should switch to a JLayeredPane to do this in an easier way? An also, how can I position my characters respect to the tiles? They should need to be centered on the tiles, so I was thinking about getting the xy of the tile (the origin point of it) and use that as position for the character(which would be on a Jcomponent of the same size), but that can't be done on the standard layouts like GridLayout right?
 

Tapejara

Member
So I've been working on a simple local multiplayer game in Game Maker. It looks atrocious (well the character sprite looks nice, but I'm no artist so the game itself looks awful), the gameplay is really simplistic; but I'm close to having my first "build" finished and I'm quite proud! Hoping to get better at sprite art so I can make the game look presentable, and hopefully one day craft something as nice as the games in this thread.
 

bumpkin

Member
So I've been working on a simple local multiplayer game in Game Maker. It looks atrocious (well the character sprite looks nice, but I'm no artist so the game itself looks awful), the gameplay is really simplistic; but I'm close to having my first "build" finished and I'm quite proud! Hoping to get better at sprite art so I can make the game look presentable, and hopefully one day craft something as nice as the games in this thread.
I always dig up sprites online to use as placeholders. My go-to for a character is a King of Fighters XII Terry idling animation. It's a flashy way to test animation. :D

latest
 

Blizzard

Banned
I never use outside sprites because I'm terrified I will some day release a game and forget to replace one or two, and the combined forces of Steam users and Nintendo will mock and sue me into the ground.
 

Bollocks

Member
Not really a game but I recreated one of my favourite mechanics from Sleeping Dogs, the hacking minigame using HTML and JS:

1302601421.jpg


vrMfaYc.png


It's functional, but it's not very satisfying so far, it lacks feedback as in if you press up and down it currently replaces the digit. An animation would be nice. Also a ripple effect on the arrows and a more streamlined UI.
 

correojon

Member
I think I´m close to having a design on my main character. GAF, meet Kitsune, the Fox Spirit who will defend the Spirit Realm against the Demon King:
hHyNzAk.png

I know the sprite has a lot of flaws, but what do you think about the design? I think I´m going to add some red painting on the mask and change proportions a bit so the body is smaller and the legs longer. Also, I´d really appreciate any advice on spriting, specially on color combinations, I think the red belt feels a bit off.

I never use outside sprites because I'm terrified I will some day release a game and forget to replace one or two, and the combined forces of Steam users and Nintendo will mock and sue me into the ground.
I´m currently using a Mario sprite to test all animations before I can make all the necessary sprites, but for everything else I´m just using single color squares and rectangles, I think you shouldn´t worry and just do whatever helps you push development forward.
 

Razlo

Member
I think I´m close to having a design on my main character. GAF, meet Kitsune, the Fox Spirit who will defend the Spirit Realm against the Demon King:
hHyNzAk.png

I know the sprite has a lot of flaws, but what do you think about the design? I think I´m going to add some red painting on the mask and change proportions a bit so the body is smaller and the legs longer. Also, I´d really appreciate any advice on spriting, specially on color combinations, I think the red belt feels a bit off.


I´m currently using a Mario sprite to test all animations before I can make all the necessary sprites, but for everything else I´m just using single color squares and rectangles, I think you shouldn´t worry and just do whatever helps you push development forward.

I'd personally like to see the limbs get thinner as they get near the body, or have the limbs get shorter and fatter. But it does look good as is.
 

missile

Member
Some progress over here. Mainly dealt with hardware stuff the last days, but
also did a bit of work on the software site of Retrotron.

xT77Y6STUdYflXqUFO.gif


For, I tried to somehow mimic the horizontal desync behavior some old TVs
undergo upon vertical retrace, which produced some instabilities on the upper
part of the screen for a couple of lines. The effect seen here is currently
not a real simulation of it, because I currently don't simulate the horizontal
sync-pulses during vertical retrace, yet, but will do so when my new filters
are in place which will filter out the sync-pulses instead of explicitly
knowing them in advance as of the moment. With the filters in place it becomes
possible to sync during the visible part of the scanline period, i.e.
producing (wrong) horizontal sync-pulses due to signal overshoot, distortions,
etc. Currently, sync distortions only happen within the vicinity of the
tracked position of the sync-pulses.


The hardware site of Retrotron comes along nicely, too.

6qA14ZX.png


Got a bundle of Nano micro-controllers to mess around with. The hardware and
software environments are up and running now. Over the next week I'm going to
port Retrotron's video signal generator (I wrote in software on the PC) over
to the AVR to let it execute on the Nano whatever. Problem is, it now gets
a bit more complicated because now everything needs to be realtime and the
timings need to match perfectly. End of story should be a composite video
signal coming out of one of the pins. The signal itself should contain an
image of a small RAM buffer. This is sort of simulating a simple VGA adapted
(monochrome for the time being) if you so will.
 
So I'm probably gonna post some more updates here and there but I've been testing layouts and throwing meshes-in-progress to get the scale and feel of the room.

Art on the top- screenie on the bottom
Interior_render_3000.jpg

labbossinterior5.png


It's getting closer and closer!
It's the first real "hostile" location in the game (this is from the 'boss' chamber) so even without textures/etc, running through and encountering fights make it feel so real now :D

Also, I've been working on the shader for what seems like weeks, probably closer to months and I'm probably at my 24th iteration and still can't nail it.
I know exactly what I want but I'm juuuuust not doing something right somewhere.

If anyone is really familiar with Shader Forge, at this point I will be MORE than happy to pay you for your advice or help cause it feels like I'm totally not getting something.
 

correojon

Member
I'd personally like to see the limbs get thinner as they get near the body, or have the limbs get shorter and fatter. But it does look good as is.
Yeah, I agree that it should be overall less slim. I´ve mentally pictured it with shorter and fatter limbs and I like a lot what I imagined. Thanks for the suggestions!
 
So I'm probably gonna post some more updates here and there but I've been testing layouts and throwing meshes-in-progress to get the scale and feel of the room.

Art on the top- screenie on the bottom
Interior_render_3000.jpg

labbossinterior5.png


It's getting closer and closer!
It's the first real "hostile" location in the game (this is from the 'boss' chamber) so even without textures/etc, running through and encountering fights make it feel so real now :D

Also, I've been working on the shader for what seems like weeks, probably closer to months and I'm probably at my 24th iteration and still can't nail it.
I know exactly what I want but I'm juuuuust not doing something right somewhere.

If anyone is really familiar with Shader Forge, at this point I will be MORE than happy to pay you for your advice or help cause it feels like I'm totally not getting something.

I always take for granted how much easier it is to match the concept art in 2D as opposed to 3D. Looking good so far! I'm excited to watch this progress. :)
 
So I'm probably gonna post some more updates here and there but I've been testing layouts and throwing meshes-in-progress to get the scale and feel of the room.

Art on the top- screenie on the bottom
Interior_render_3000.jpg

labbossinterior5.png


It's getting closer and closer!
It's the first real "hostile" location in the game (this is from the 'boss' chamber) so even without textures/etc, running through and encountering fights make it feel so real now :D

Also, I've been working on the shader for what seems like weeks, probably closer to months and I'm probably at my 24th iteration and still can't nail it.
I know exactly what I want but I'm juuuuust not doing something right somewhere.

If anyone is really familiar with Shader Forge, at this point I will be MORE than happy to pay you for your advice or help cause it feels like I'm totally not getting something.

Looking good.
 

anteevy

Member
Finally got my Steam page running for Road to Ballhalla (prev. Roll Playing Game):

http://store.steampowered.com/app/425410/?snr=1_5_1100__1100

tinyBuild is going to publish it. It's crazy, a year ago my target/wish was to somehow get through Greenlight with the game and I never thought I'd find a publisher. Tried anyways as I had nothing to lose and got lucky. :)

If anyone is at PAX South, I'm currently finishing up a showbuild that will be playable at their booth. Won't be there myself, though.
 

DNAbro

Member
Finally got my Steam page running for Road to Ballhalla (prev. Roll Playing Game):

http://store.steampowered.com/app/425410/?snr=1_5_1100__1100

tinyBuild is going to publish it. It's crazy, a year ago my target/wish was to somehow get through Greenlight with the game and I never thought I'd find a publisher. Tried anyways as I had nothing to lose and got lucky. :)

If anyone is at PAX South, I'm currently finishing up a showbuild that will be playable at their booth. Won't be there myself, though.

that is a great trailer. Looks really awesome.
 
Finally got my Steam page running for Road to Ballhalla (prev. Roll Playing Game):

http://store.steampowered.com/app/425410/?snr=1_5_1100__1100

tinyBuild is going to publish it. It's crazy, a year ago my target/wish was to somehow get through Greenlight with the game and I never thought I'd find a publisher. Tried anyways as I had nothing to lose and got lucky. :)

If anyone is at PAX South, I'm currently finishing up a showbuild that will be playable at their booth. Won't be there myself, though.

I saw TinyBuild's tweet a few hours ago. How have they been to work with?
 

snarge

Member
Finally got my Steam page running for Road to Ballhalla (prev. Roll Playing Game):

http://store.steampowered.com/app/425410/?snr=1_5_1100__1100

tinyBuild is going to publish it. It's crazy, a year ago my target/wish was to somehow get through Greenlight with the game and I never thought I'd find a publisher. Tried anyways as I had nothing to lose and got lucky. :)

If anyone is at PAX South, I'm currently finishing up a showbuild that will be playable at their booth. Won't be there myself, though.

Congrats! tinyBuild seems like a great company to be working with these days. And DAMN, your game just shines!
 
You guys might get a kick out of this. I've had some playtesters playing GunWorld 2 for a couple of weeks. Two of the three main protagonists are macho, beefy males (one of them is an anthropomorphic eagle), and they regularly comment on and compliment each others muscular physique. You can even collect body oil to oil up your chest for more power, and cut-off jean shorts to wear.

One of my playtesters was enjoying the game, but described it to me as "mildly homoerotic". I haven't been able to stop laughing about it sense. If it didn't have an ESRB rating of E10+, I'd put that quote in the official description.
 

Jumplion

Member
Finally got my Steam page running for Road to Ballhalla (prev. Roll Playing Game):

http://store.steampowered.com/app/425410/?snr=1_5_1100__1100

tinyBuild is going to publish it. It's crazy, a year ago my target/wish was to somehow get through Greenlight with the game and I never thought I'd find a publisher. Tried anyways as I had nothing to lose and got lucky. :)

If anyone is at PAX South, I'm currently finishing up a showbuild that will be playable at their booth. Won't be there myself, though.

I'll definitely check it out when I have time. I'll be showcasing my board game Circular Reasoning at PAX South with the publisher, so if anyone's meandering around the board game section definitely drop by!
 
I've been experimenting a lot with Fuse lately, some things are far from giving me positive results (like trying to use Rigify from Blender, btw thanks Shaoweb for the suggestions) but others so simple as trying the toon shader with a Fuse model gave me some nice results:

https://gfycat.com/UnlawfulAnnualCockroach

Out of curiosity, what kind of "far from...positive" results are you getting with Rigify?

So I'm probably gonna post some more updates here and there but I've been testing layouts and throwing meshes-in-progress to get the scale and feel of the room.

Art on the top- screenie on the bottom
Interior_render_3000.jpg

labbossinterior5.png

Very cool scene. Interested in seeing the progression
 
Status
Not open for further replies.
Top Bottom